Petit partage pour remonter les infos de conso et de production des installations photovoltaïque sous Enphase Envoy avec une IPX800 V5 :
Créer un « PUSH » pour la PRODUCTION en GET : URL de l’Envoy en local, port 80, Auth Mode : Basic, login : envoy, pass : les 6 derniers chiffres du numéro de série de votre envoy, URI : /api/v1/production
Créer un « PUSH » pour la PRODUCTION en GET : URL de l’Envoy en local, port 80, Auth Mode : Basic, login : envoy, pass : les 6 derniers chiffres du numéro de série de votre envoy, URI : /api/v1/consumption
Il ne vous reste plus qu’a créer de quoi parser le JSON retour qui donne :
Allons plus loin : réalisons une règle de « routage solaire ».
SI « Plage horaire » et « Consommation est inférieur a production » ON « votre appareil ici (chauffe-eau, chauffage, pompe à chaleur,…).
plage horaires : pour éviter de lancer la règle a des moments où la production pourrait être égale à la consommation (tel que le matin ou le soir)
Pour information, une vise à jour est en cours de déploiement sur les systèmes Envoy de Enphase (D7.4.7), celle-ci activera le « live status » dans l’application, mais supprimera la possibilité d’utiliser la fonction décrite plus haut. Pour ceux qui souhaite la conserver, désactivez les mises à jours automatique dans Toolkit.
Hello,
C’est l’IPX V5 qui parse le json, il faut donc utiliser un objet de type « parser json » avec le résultat du push.
Précisons que depuis la mise à niveau des passerelles Envoys S metered en version 7.x, cette méthode ne marche plus. Elle requiert une authentification par jeton de type bearer que l’IPX ne sait pas gérer.
Okayy donc en V4 c’est mort ?
Ou existe-il une solution pour récupérer les infos de prod et conso ?
Merci pour ta réponse en tout cas.
Cordialement
Alexis
Bonsoir
C est vrai en version 7 la envoy a changé sa méthode d authentification
Moi je récupère les infos de l envoy via node red que j envoi en Mqtt sur la V5
Rafraîchissement environ toutes les 5 secondes
Cordialement
Re bonjour
J’ai essayé le code suivant hébegré sur mon NAS Synology, mais quand je l’exécute (Sur le NAS) en résultat j’ai : « Pas de données »; pourtant en décommentant les 2 lignes j’ai le résultat dans le navigateur.
<?php
$IP_IPX800="192.168.1.250:9870";
$API_key="apikey";
$url = "http://192.168.1.150/api/v1/production";
$json = file_get_contents($url);
// A décommenter pour résultat dans le navigateur
//echo $json;
//exit();
$json_devices = json_decode($json,true);
$En_WattsNow = floatval($json_devices["wattsNow"]);
$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>";
//----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);
?>
Je me suis basé sur le script Netatmo de @fgtoul.
Mais je ne suis pas dèv.
Je sais juste « interpréter du code » (entre guillemets)
et j’essaye d’adapter.
OK.
C’est donc là qu’on doit chercher !
Je n’ai pas le temps tout de suite mais je jette un coup d’oeil un peu plus tard !
Çà ne doit pas être bien compliqué.
Jon
L’IPX V4, n’a pas la capacité de lire le résultat non parsé. Il va donc que vous ajoutiez à votre script des fonctions de type « regex » afin d’isoler le résultat souhaité, puis de le renvoyer sur votre entrée analogique virtuelle avec l’API de l’IPX
Quand je lance le PHP dans un navigateur, j’ai un résultat :
170
Par exemple, le résultat est tel quel sans guillemets rien, juste le chiffre 170 (Mes panneaux sont à l’ombre à cette heure ci)
Il n’y a pas moyen de récupérer ce nombre ?
Sans parler de parser, car il n’y a rien à parser là, j’ai juste une valeur…