[Résolu] Panneaux solaire avec Enphase

Discussion sur la box eedomus

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar ArnaudP » 09 Mars 2023 15:21

HEllo tous,

J'ai lu avec beaucoup d'ettention l'ensemble de ce post, car ma passerelle S MEtered est tombée e panne et suite à son remplacement j'ai les mêmes syptomes que la plupart d'etre vous .. (toutes les valeurs à 0

En effet l'authentification à été changé car lorsque je me log en local sur la passerelle elle me demande de m'identifier via mon USer Mdp Enlighten .... :(

Je suis vraiment embeté de ne plus pouvoir recuperer des datas/status/infos via ce pluging car mon chauffe eau etait piloté par mon eddumus en cas de surplus (injection)

J'espere que la personne qui a devellopé ce plugin trouvera le temps et la patience de trouver une solution :D

Belle journée à tous

ArnaudP
ArnaudP
 
Messages : 57
Inscription : 06 Sep 2014

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar Nico13 » 10 Mars 2023 12:34

Pour ma part j'ai palié à ce défaut en utilisant la donnée provenant du LIXEE.
Quand je dépasse une certain puissance d'injection, je lance la chauffe.
Nico13
 
Messages : 9
Inscription : 21 Jan 2022

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar ArnaudP » 21 Mars 2023 18:45

He ben que de deception ...
J'ai l'impression qu'Eedomus meurt à petit feu ...
De moins en moins d'activité sur le forum, des MaJ qui s'espaces de plus en plus ...

Je me demande vraiment si je vais continuer a financer l'abonnement premium l'année prochaine ...
ArnaudP
 
Messages : 57
Inscription : 06 Sep 2014

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar Tim » 26 Avr 2023 07:40

+1
J'ai le même problème que vous, sans doute à cause de la connexion par ID, comme vous !
Tim
 
Messages : 8
Inscription : 10 Juil 2019

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar Daviddu13 » 06 Mai 2023 13:17

Bonjour je relance également le sujet

Car je viens de finaliser mon installation solaire
Et j'ai une remontée à zéro depuis mon Enphase-s

Je recherche également des icônes et wiget pour rendre mon interface plus agréable.

Merci de vos retours
Daviddu13
 
Messages : 20
Inscription : 22 Nov 2017

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar ArnaudP » 07 Mai 2023 22:05

2 mois passé et malheurseument toujours aucune solution ?
Depuis ma nouvelle passerelle impossible de l'interfacer avec Eedomus car le systeme d'autentification a changé (par JETON ) ...

Une petite relance SVP .... d'autre systeme comme jeedom y sont deja ...
et je n'ai que trop peu de compétence en script PHP ...
ArnaudP
 
Messages : 57
Inscription : 06 Sep 2014

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar qwench » 11 Mai 2023 10:31

Bonjour

Pour avancer sur le sujet, voici le repo du script jdom gérant le renouvellement du token:
https://github.com/cddu33/enphase_secur ... R/index.md
qwench
 
Messages : 18
Inscription : 04 Mars 2021

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar qwench » 11 Mai 2023 10:47

qwench
 
Messages : 18
Inscription : 04 Mars 2021

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar jack » 24 Mai 2023 16:56

j'ai réussi à faire marcher quelque chose chez moi
Mais je n'ai pas vraiment de compétence et j'ai beaucoup tâtonné...
Bref, pas sûr que ce soit optimal, que cela marche longtemps (cela a marché 1 jour donc pas de recul), hyper secure ou que cela marche chez vous mais je partage ce que j'ai fais :

1. vous récupérez un token qui est valable 1 an si j'ai bien compris sur l'adresse suivante https://enlighten.enphaseenergy.com/ent ... m=XXXXXXXX
où XXXXXXXX est le numéro de série de votre passerelle envoy

2. vous créez un script php que vous nommez VOTRE_NOM dans eedomus comme suit (vous remarquerez que je me suis largement inspiré des scripts envoy-s présent sur le store) :
Il faut remplacer le YYYYYYYYYYYYYY par le token que vous avez eu en étape 1

Code : Tout sélectionner
$xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";   
$xml .= "<EMPHASE>\n"; 
$valOption =getArg('val');
$unitOption =getArg('unit');
$adressOption =getArg('adress');



//$valOption (Selection de la valeur desiree)
// 1:   wattsNow : Puissance instantanée de l'installation
// 2:   wattHoursToday : Energie produite aujourd'hui
// 4:   wattHoursLifetime : Energie produite depuis la mise en service
//
//$unitOption (Selection de l'unite de la valeur retournee)
// 1:   W ou Wh
// 2:   kW ou kWh
// 3:   MW ou MWh
// 4:   GW ou GWh

$address = 'https://'.$adressOption.'/api/v1/production';
$request=httpQuery($address, $action = 'GET', $post = NULL, $oauth_token = NULL, $headers = array("Authorization: Bearer YYYYYYYYYYYYYYYYYYYYY"), $use_cookies = false, $ignore_errors = true);

$xml .= "<ETAT> ok </ETAT>\n";
$tMyTab =sdk_json_decode($request);
$rValue = '';

switch ($unitOption)
    {
        case 1:
            $unit= 1;
            $xml .= "<UNITE> W ou Wh </UNITE>\n";
            break;
        case 2:
            $unit= 1000;
            $xml .= "<UNITE> kW ou kWh </UNITE>\n";
            break;
        case 3:
            $unit= 1000000;
            $xml .= "<UNITE> MW ou MWh </UNITE>\n";
            break;
        case 4:
            $unit= 1000000000;
            $xml .= "<UNITE> GW ou GWh </UNITE>\n";
            break;
    }


switch ($valOption)
    {
        case 1:
            $rValue= $tMyTab['wattsNow'];
            break;
        case 2:
            $rValue= $tMyTab['wattHoursToday'];
            break;
      case 3:
            $rValue= $tMyTab['wattHoursSevenDays'];
            break;
        case 4:
            $rValue= $tMyTab['wattHoursLifetime'];
            break;
        default:
            $rValue= $tMyTab['wattsNow'];
    }
   
$rValue= round($rValue/$unit,2);
$xml .= "<VALUE>".$rValue."</VALUE>\n";
$xml .= "</EMPHASE>"; 
sdk_header('text/xml');
echo $xml;

?>   


3. vous créez un nouveau périphérique de type HTTP - capteur comme suit :
Image
en remplaçant la VAR1 par l'adresse IP de votre passerelle
Pièces jointes
Capture.PNG
Capture.PNG (27.48 Kio) Consulté 8930 fois
jack
 
Messages : 14
Inscription : 07 Oct 2018

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar qwench » 30 Mai 2023 10:36

Merci pour les info, Jack.
Ton script retourne beaucoup moins d'info que le script dispo sur le store.
Mais on peut ajouter le token à la main dans le script complet:

Récupérer son token perso avec l'url ci dessous
https://enlighten.enphaseenergy.com/ent ... 3456789012

Le serial number se trouve sur la page
https://enlighten.enphaseenergy.com/web ... rs?v=3.4.0 en cliquant sur 'passerelle', l'id est 'SN:'

Il faut ensuite remplacer la ligne
Code : Tout sélectionner
239: $request       = httpQuery($url,...


par

Code : Tout sélectionner
$request       = httpQuery($url, $action = 'GET', $post = NULL, $oauth_token = NULL, $headers = array("Authorization: Bearer eyJraWQiOiI3ZDEwMDA1ZC03ODd8sdfeeFDSk5LTRkMGQtYmNiNC0yNDRmOThlZTE1NmIiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiIxMjIwNDQwNzA1MzYiLCJpc3MiOiJFbnRyZXoiLCJlbnBoYXNlVXNlciI6Im93bmVyIiwiZXhwIjoxNzE2OTY3MzAzLCJpYX.......etc......"), $use_cookies = false, $ignore_errors = true);


Le token est valable 1 an, après quoi il faut en régénérer un.
Le script pourrait être adapté pour faire ça automatiquement.
qwench
 
Messages : 18
Inscription : 04 Mars 2021

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar lancevo7 » 31 Mai 2023 06:21

SAlut,

De mon coté ca ne fonctionne pas, j'ai bien mis le token, mais tout reste a 0...
lancevo7
 
Messages : 20
Inscription : 31 Mai 2023

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar jack » 31 Mai 2023 10:37

Bonjour lancevo7
Quand tu vas adresse_ip_passerelle/api/v1/production et qu'au lieu de saisir tes login et mot de passe enphase tu saisis le token au milieu de la fenetre, qu'obtiens tu ?
jack
 
Messages : 14
Inscription : 07 Oct 2018

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar lancevo7 » 31 Mai 2023 14:05

oui j'ai toute les infos (c'est une metered envoy s) l'url est sans api/v1
lancevo7
 
Messages : 20
Inscription : 31 Mai 2023

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar jack » 31 Mai 2023 15:02

As tu bien changé le lien dans le code pour avoir l'url sans le api/v1 et as -tu vérifié que les valeurs que tu souhaites collecter a bien le même nom que dans le script (par exemple pour avoir la production instantatané, je dois chercher la valeur du champ qui se nomme wNow)
jack
 
Messages : 14
Inscription : 07 Oct 2018

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar lancevo7 » 01 Juin 2023 06:00

jack a écrit:As tu bien changé le lien dans le code pour avoir l'url sans le api/v1 et as -tu vérifié que les valeurs que tu souhaites collecter a bien le même nom que dans le script (par exemple pour avoir la production instantatané, je dois chercher la valeur du champ qui se nomme wNow)


En fait dans le plugin l'url est deja bonne de base

'$address_envoy = getArg('adress');
$url = 'http://'.$address_envoy.'/production.json';'

J'ai bien mis le token aussi en dessous

et quand je met l'url en direct j'ai ca en resultat

{"production":[{"type":"inverters","activeCount":0,"readingTime":0,"wNow":0,"whLifetime":0},{"type":"eim","activeCount":1,"measurementType":"production","readingTime":1685595629,"wNow":-0.0,"whLifetime":0.0,"varhLeadLifetime":0.102,"varhLagLifetime":609.356,"vahLifetime":170.108,"rmsCurrent":0.0,"rmsVoltage":239.457,"reactPwr":0.0,"apprntPwr":-0.0,"pwrFactor":0.0,"whToday":0.0,"whLastSevenDays":0.0,"vahToday":13.108,"varhLeadToday":0.102,"varhLagToday":47.356}],"consumption":[{"type":"eim","activeCount":1,"measurementType":"total-consumption","readingTime":1685595629,"wNow":1835.986,"whLifetime":71573.256,"varhLeadLifetime":35399.9,"varhLagLifetime":2449.434,"vahLifetime":91011.753,"rmsCurrent":7.78,"rmsVoltage":239.403,"reactPwr":10.584,"apprntPwr":1862.637,"pwrFactor":0.99,"whToday":2232.256,"whLastSevenDays":46598.256,"vahToday":4373.753,"varhLeadToday":3280.9,"varhLagToday":47.434},{"type":"eim","activeCount":1,"measurementType":"net-consumption","readingTime":1685595629,"wNow":1835.986,"whLifetime":71573.259,"varhLeadLifetime":35399.798,"varhLagLifetime":1840.078,"vahLifetime":91011.753,"rmsCurrent":7.78,"rmsVoltage":239.349,"reactPwr":10.584,"apprntPwr":1858.502,"pwrFactor":0.99,"whToday":0,"whLastSevenDays":0,"vahToday":0,"varhLeadToday":0,"varhLagToday":0}],"storage":[{"type":"acb","activeCount":0,"readingTime":0,"wNow":0,"whNow":0,"state":"idle"}]}
lancevo7
 
Messages : 20
Inscription : 31 Mai 2023

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar jack » 01 Juin 2023 08:28

J'ai testé rapidement de mon coté avec /production.json et cela ne marche pas non plus
Mystère...
jack
 
Messages : 14
Inscription : 07 Oct 2018

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar lancevo7 » 01 Juin 2023 08:53

jack a écrit:J'ai testé rapidement de mon coté avec /production.json et cela ne marche pas non plus
Mystère...


En fait c'est bizarre, ca donne meme pas d'erreur, je comprend pas
lancevo7
 
Messages : 20
Inscription : 31 Mai 2023

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar qwench » 02 Juin 2023 09:13

Bonjour
Si je mets l'url http://192.168.0.xxx/production.json dans mon navigateur, j'obtient un json complet et détaillé, même sans ajouter de token:

Code : Tout sélectionner
{
  "production": [
    {
      "type": "inverters",
      "activeCount": 8,
      "readingTime": 1685693149,
      "wNow": 2005,
      "whLifetime": 5744476
    },
    {
      "type": "eim",
      "activeCount": 1,
      "measurementType": "production",
      "readingTime": 1685693351,
      "wNow": 2005.743,
      "whLifetime": 5784894.885,
      "varhLeadLifetime": 0.002,
      "varhLagLifetime": 2106444.785,
      "vahLifetime": 7705762.107,
      "rmsCurrent": 8.64,
      "rmsVoltage": 699.201,
      "reactPwr": 137.99,
      "apprntPwr": 2013.779,
      "pwrFactor": 1.0,
      "whToday": 4271.885,
      "whLastSevenDays": 131150.885,
      "vahToday": 5550.107,
      "varhLeadToday": 0.002,
      "varhLagToday": 1475.785
    }
  ],
  "consumption": [
    {
      "type": "eim",
      "activeCount": 1,
      "measurementType": "total-consumption",
      "readingTime": 1685693351,
      "wNow": 221.202,
      "whLifetime": 15744004.769,
      "varhLeadLifetime": 3067396.202,
      "varhLagLifetime": 9575945.571,
      "vahLifetime": 22576142.686,
      "rmsCurrent": 0.836,
      "rmsVoltage": 699.316,
      "reactPwr": -495.147,
      "apprntPwr": 584.31,
      "pwrFactor": 0.38,
      "whToday": 2449.769,
      "whLastSevenDays": 59163.769,
      "vahToday": 6631.686,
      "varhLeadToday": 3057.202,
      "varhLagToday": 1530.571
    },
    {
      "type": "eim",
      "activeCount": 1,
      "measurementType": "net-consumption",
      "readingTime": 1685693351,
      "wNow": -1784.541,
      "whLifetime": 13962600.848,
      "varhLeadLifetime": 3067396.201,
      "varhLagLifetime": 7469500.786,
      "vahLifetime": 22576142.686,
      "rmsCurrent": 7.804,
      "rmsVoltage": 699.431,
      "reactPwr": -357.157,
      "apprntPwr": 1819.589,
      "pwrFactor": -0.98,
      "whToday": 0,
      "whLastSevenDays": 0,
      "vahToday": 0,
      "varhLeadToday": 0,
      "varhLagToday": 0
    }
  ],
  "storage": [
    {
      "type": "acb",
      "activeCount": 0,
      "readingTime": 0,
      "wNow": 0,
      "whNow": 0,
      "state": "idle"
    }
  ]
}
qwench
 
Messages : 18
Inscription : 04 Mars 2021

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar lancevo7 » 02 Juin 2023 11:11

qwench a écrit:Bonjour
Si je mets l'url http://192.168.0.xxx/production.json dans mon navigateur, j'obtient un json complet et détaillé, même sans ajouter de token:

Code : Tout sélectionner
{
  "production": [
    {
      "type": "inverters",
      "activeCount": 8,
      "readingTime": 1685693149,
      "wNow": 2005,
      "whLifetime": 5744476
    },
    {
      "type": "eim",
      "activeCount": 1,
      "measurementType": "production",
      "readingTime": 1685693351,
      "wNow": 2005.743,
      "whLifetime": 5784894.885,
      "varhLeadLifetime": 0.002,
      "varhLagLifetime": 2106444.785,
      "vahLifetime": 7705762.107,
      "rmsCurrent": 8.64,
      "rmsVoltage": 699.201,
      "reactPwr": 137.99,
      "apprntPwr": 2013.779,
      "pwrFactor": 1.0,
      "whToday": 4271.885,
      "whLastSevenDays": 131150.885,
      "vahToday": 5550.107,
      "varhLeadToday": 0.002,
      "varhLagToday": 1475.785
    }
  ],
  "consumption": [
    {
      "type": "eim",
      "activeCount": 1,
      "measurementType": "total-consumption",
      "readingTime": 1685693351,
      "wNow": 221.202,
      "whLifetime": 15744004.769,
      "varhLeadLifetime": 3067396.202,
      "varhLagLifetime": 9575945.571,
      "vahLifetime": 22576142.686,
      "rmsCurrent": 0.836,
      "rmsVoltage": 699.316,
      "reactPwr": -495.147,
      "apprntPwr": 584.31,
      "pwrFactor": 0.38,
      "whToday": 2449.769,
      "whLastSevenDays": 59163.769,
      "vahToday": 6631.686,
      "varhLeadToday": 3057.202,
      "varhLagToday": 1530.571
    },
    {
      "type": "eim",
      "activeCount": 1,
      "measurementType": "net-consumption",
      "readingTime": 1685693351,
      "wNow": -1784.541,
      "whLifetime": 13962600.848,
      "varhLeadLifetime": 3067396.201,
      "varhLagLifetime": 7469500.786,
      "vahLifetime": 22576142.686,
      "rmsCurrent": 7.804,
      "rmsVoltage": 699.431,
      "reactPwr": -357.157,
      "apprntPwr": 1819.589,
      "pwrFactor": -0.98,
      "whToday": 0,
      "whLastSevenDays": 0,
      "vahToday": 0,
      "varhLeadToday": 0,
      "varhLagToday": 0
    }
  ],
  "storage": [
    {
      "type": "acb",
      "activeCount": 0,
      "readingTime": 0,
      "wNow": 0,
      "whNow": 0,
      "state": "idle"
    }
  ]
}



Moi je dois mettre le token, il me le demande, apres j'ai le resultat
lancevo7
 
Messages : 20
Inscription : 31 Mai 2023

Re: [Résolu] Panneaux solaire avec Enphase

Messagepar jack » 07 Juin 2023 09:29

lancevo7 a écrit:
qwench a écrit:Bonjour
Si je mets l'url http://192.168.0.xxx/production.json dans mon navigateur, j'obtient un json complet et détaillé, même sans ajouter de token:

Code : Tout sélectionner
{
  "production": [
    {
      "type": "inverters",
      "activeCount": 8,
      "readingTime": 1685693149,
      "wNow": 2005,
      "whLifetime": 5744476
    },
    {
      "type": "eim",
      "activeCount": 1,
      "measurementType": "production",
      "readingTime": 1685693351,
      "wNow": 2005.743,
      "whLifetime": 5784894.885,
      "varhLeadLifetime": 0.002,
      "varhLagLifetime": 2106444.785,
      "vahLifetime": 7705762.107,
      "rmsCurrent": 8.64,
      "rmsVoltage": 699.201,
      "reactPwr": 137.99,
      "apprntPwr": 2013.779,
      "pwrFactor": 1.0,
      "whToday": 4271.885,
      "whLastSevenDays": 131150.885,
      "vahToday": 5550.107,
      "varhLeadToday": 0.002,
      "varhLagToday": 1475.785
    }
  ],
  "consumption": [
    {
      "type": "eim",
      "activeCount": 1,
      "measurementType": "total-consumption",
      "readingTime": 1685693351,
      "wNow": 221.202,
      "whLifetime": 15744004.769,
      "varhLeadLifetime": 3067396.202,
      "varhLagLifetime": 9575945.571,
      "vahLifetime": 22576142.686,
      "rmsCurrent": 0.836,
      "rmsVoltage": 699.316,
      "reactPwr": -495.147,
      "apprntPwr": 584.31,
      "pwrFactor": 0.38,
      "whToday": 2449.769,
      "whLastSevenDays": 59163.769,
      "vahToday": 6631.686,
      "varhLeadToday": 3057.202,
      "varhLagToday": 1530.571
    },
    {
      "type": "eim",
      "activeCount": 1,
      "measurementType": "net-consumption",
      "readingTime": 1685693351,
      "wNow": -1784.541,
      "whLifetime": 13962600.848,
      "varhLeadLifetime": 3067396.201,
      "varhLagLifetime": 7469500.786,
      "vahLifetime": 22576142.686,
      "rmsCurrent": 7.804,
      "rmsVoltage": 699.431,
      "reactPwr": -357.157,
      "apprntPwr": 1819.589,
      "pwrFactor": -0.98,
      "whToday": 0,
      "whLastSevenDays": 0,
      "vahToday": 0,
      "varhLeadToday": 0,
      "varhLagToday": 0
    }
  ],
  "storage": [
    {
      "type": "acb",
      "activeCount": 0,
      "readingTime": 0,
      "wNow": 0,
      "whNow": 0,
      "state": "idle"
    }
  ]
}



Moi je dois mettre le token, il me le demande, apres j'ai le resultat


C'est parce que Qwench tu dois avoir une session d'ouverte avec tes mots de passe enregistrés dans ton navigateur

Sur ce lien https://support.enphase.com/s/question/0D53m00008vPvHLCA0/access-iq-gateway-through-curl-commands-with-tokenauthentication-only-allowed-for-some-urls-not-all-urls-giving-401-authorization-required-error-message, d'autres utilisateurs mentionnent le fait que certaines adresses marchent avec le token et d'autre non par la call d'API.
Il est écrit qu'il faut utiliser les cookies pour que cela marche.
J'ai fait les test et cela marche avec http://192.168.0.xxx/production.json

Voilà ce que j'ai fait :
1. je me connecte sur le navigateur avec le token sur l'adresse http://192.168.0.xxx/production.json
2. Aller dans les outils de développeur du navigateur (appuyer sur F12) puis onglet application puis dans storage aller dans cookie, repérer l'adresse de la passerelle.
3. récupérer sur la droite le nom dans la colonne "name" et la valeur dans la colonne "value"
Capture-cookie.PNG
Capture-cookie.PNG (42.92 Kio) Consulté 8334 fois

4 ajouter dans le code du script eedomus dans le code du httpquery le cookie :
Code : Tout sélectionner
$request       = httpQuery($url, $action = 'GET', $post = NULL, $oauth_token = NULL, $headers = array("Authorization: Bearer eyJraWQ.......etc......"[b][u], "cookie: nom_du_cookie=valeur_du_cookie"[/u][/b]), $use_cookies = false, $ignore_errors = true);


cela marche mais j'imagine que dès que je vais fermer mon navigateur, le cookie sera supprimé et cela ne marchera plus
Est-ce que quelqu'un sait comment récupérer un cookie en script pour pouvoir automatiser ?
jack
 
Messages : 14
Inscription : 07 Oct 2018

PrécédentSuivant

Retour vers Box eedomus

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invité(s)