Forum eedomus
https://forum.eedomus.com/

[Résolu] Panneaux solaire avec Enphase
https://forum.eedomus.com/viewtopic.php?f=14&t=7717
« Précédent  Page 9 sur 15  Suivant »
Auteur:  ArnaudP [ 09 Mars 2023 15:21 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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
Auteur:  Nico13 [ 10 Mars 2023 12:34 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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.
Auteur:  ArnaudP [ 21 Mars 2023 18:45 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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 ...
Auteur:  Tim [ 26 Avr 2023 07:40 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

+1
J'ai le même problème que vous, sans doute à cause de la connexion par ID, comme vous !
Auteur:  Daviddu13 [ 06 Mai 2023 13:17 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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
Auteur:  ArnaudP [ 07 Mai 2023 22:05 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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 ...
Auteur:  qwench [ 11 Mai 2023 10:31 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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
Auteur:  qwench [ 11 Mai 2023 10:47 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

Récupération du token ici:
https://github.com/cddu33/enphase_secur ... rd.py#L114
Auteur:  jack [ 24 Mai 2023 16:56 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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é 3911 fois
Auteur:  qwench [ 30 Mai 2023 10:36 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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.
Auteur:  lancevo7 [ 31 Mai 2023 06:21 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

SAlut,

De mon coté ca ne fonctionne pas, j'ai bien mis le token, mais tout reste a 0...
Auteur:  jack [ 31 Mai 2023 10:37 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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 ?
Auteur:  lancevo7 [ 31 Mai 2023 14:05 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

oui j'ai toute les infos (c'est une metered envoy s) l'url est sans api/v1
Auteur:  jack [ 31 Mai 2023 15:02 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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)
Auteur:  lancevo7 [ 01 Juin 2023 06:00 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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"}]}
Auteur:  jack [ 01 Juin 2023 08:28 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

J'ai testé rapidement de mon coté avec /production.json et cela ne marche pas non plus
Mystère...
Auteur:  lancevo7 [ 01 Juin 2023 08:53 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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
Auteur:  qwench [ 02 Juin 2023 09:13 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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"
    }
  ]
}
Auteur:  lancevo7 [ 02 Juin 2023 11:11 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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
Auteur:  jack [ 07 Juin 2023 09:29 ]
Sujet du message:  Re: [Résolu] Panneaux solaire avec Enphase

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é 3315 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 ?
Page 9 sur 15 Le fuseau horaire est UTC+1 heure