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

3 « 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