Tuto - ipx800 V4 & V5 - enphase envoy - conso/prod en local

Yo merci de vous intéresser à mon petit casse tête perso.
Pour répondre à Mistoukwak : non justement dans STATUS.xml 0
(Je suppose que VA12 correspond à analogV11) reste désespérément à 0.
Je pense que c’est la fin de mon code qui ne fonctionne pas, le curl …

Alexis

Bonjour,

Le code n’y est pour rien si quand vous mettez l’adresse

Dans le navigateur la variable ne change pas.

Etes vous sur de votre paramètre apikey ?

Ci-dessous extrait de la doc V4 :

Paramétrage réseau

Le menu de paramétrage réseau donne accès à la plupart des informations et des réglages réseaux de votre IPX800V4.

Paramétrage réseau

API

La page API permet de déterminer :

  • si l’API est protégées par une « clef »,
  • la clef en question (par défaut « apikey »), elle ne doit pas excéder 31 caractères,
  • le port utilisé pour l’API M2M (par défaut 9870),
  • si le M2M est activé,
  • si les en-tête sont conservées lors des réponses M2M.

API

Il faut bien que la clé soit activée et qu’elle corresponde.

Tant que la commande ci-dessus ne fonctionnera pas dans un navigateur, elle ne fonctionnera pas avec le curl du code.

Essayer aussi d’enlever le :9870 après l’adresse de l’IPX.
Je n’ai pas souvenir l’avoir déjà mentionné dans une requête API, il est dédié au M2M il me semble.

http://192.168.1.250/api/xdevices.json?key=apikey&SetVA12=173

Et la ça devrait marcher.

Bon courage.
Jon

1 « J'aime »

J’ai suivi les conseils de Mistoukwak, donc j’ai enlevé la référence au port 9870 dans la requète et activé le M2M - ça fonctionne pour Enphase et ma requête Netatmo fonctionne toujours.
Je remets les captures ci dessous (Si cela peut aider d’autres utilisateurs avec Enphase)
Paramètres de l’IPX :


Code PHP sur le NAS :

<?php

$IP_IPX800="192.168.1.250";
//$IP_IPX800="192.168.1.250:9870";
$API_key="apikey";
$url = "http://192.168.1.150/api/v1/production";
$json = file_get_contents($url);
//echo $json;
//exit();
$json_devices = json_decode($json,true);
$En_WattsNow = ($json_devices["wattsNow"]);
//echo $En_WattsNow;
//exit();
$URL_Push="http://" . $IP_IPX800 . "/api/xdevices.json?key=" . $API_key . "&SetVA12=" . $En_WattsNow;
//-- Affichage de l'URL générée--------
echo $URL_Push . "<br>";
//exit();
//----Envoi des données à l'API--------
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL_Push);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);
?>

Résultat dans un widget :
image

Merci à tous

4 « J'aime »

Merci pour le partage et ceux qui suivront nos messages !

@fgtoul Peux tu modifier le titre du message pour ajouter V4/V5 et intégrer la solution à mon Tuto ?

Merci

Ce topic n’est plus d’actualité, Enphase a changé de méthode d’authentification :

Announcement: The end of life for Enphase API v2 has been extended from August 15, 2022 to December 31, 2023 . For more details, visit About API v4

Plus rien ne fonctionne !

C’est vrai, sauf si vous êtes encore avec l’ancienne version du firmware.

Salut Gevaudan,
C’est justement mon pb
Le système a pris une mise à jour automatique, je suis en version : D7.6.175 (f79c8d) date de la version : 22 Jun, 2023 12:43 PM
Je suis en train de me battre avec ce tuto : [L’API d’Enlighten Systems (enphase.com)]
(The Enlighten Systems API)

L’IPX V5 n’est pas compatible avec l’authentification Bearer (et encore moins le 4).
Seuls moyens : Créer un script bash qui va chercher les données (mais nécessite une connexion internet) ou l’achat du module de comptage GCE et d’y mettre des pinces amp.
J’ai opté pour le second choix :slight_smile: