[Tuto] Enphase Metered + Node-RED + jMQTT

bonjour manumdk,

as tu trouver une solution?
de mon coté j’ai réussis à retranscrire la premiére requette https et récupérer le premier cookie session
image

mais après je bloque sur la deuxième requête:

error in generating Token…

DSL faute de frappe…

je poursuit la connexion enphase V7 sur esp32 directement.
Merci à tous.

Salut,
Oui, grosse avancée :grin:
J’ai publié sur mon github l’exemple qui marche chez moi :

Essaies et dis moi.

Manu

1 « J'aime »

Merci,

Effectivement j’en suis pas encore là.
Je viens de finir la partie qui récupère le token sur le site Enphase directement depuis l’esp32.

Super, c’est la partie que je n’ai pas faite, tu peux partager ?

bonjour c’est pas du tout optimisé pour le moment.
je peux t’envoyer ca en MP si tu veux, mais c’est juste une transposition du node-red pas vraiment bien faite pour le moment.

Avec plaisir :wink:

C’est fait

Si ça vous intéresse, ce que j’utilise dans mon plugin

C’est du python mais c’est lisible

Avec la récupération du token automatiquement ou manuel suivant le choix
d’après la doc officiel de l’api enphase

1 « J'aime »

Hello,

Le truc c’est qu’à mon avis cette méthode ne permet plus d’accéder à la partie stream sinon ça aurait continué de fonctionner avec l’ancien flow node-red.

Quand j’ai tenté de régler le problème je suis reparti pratiquement de zéro et j’aboutissais toujours sur un not authorized.

Enfin j’ai peut être raté quelque chose mais je me suis bien enquiquiné pour trouver comment faire.

1 « J'aime »

Bizarre j’ai rajouté ça pourtant pour palier le problème d’index
C’est quelle url?

Avec le script j’accède à 3url différentes

Sachant que une fois le token stocker on accède à toutes les url de là passerelle

Bhé regarde si tu arrives à appeller /stream/meter mais c’est particulier, ça fonctionne en SSE, c’est la passerelle qui envoie ces événements à celui qui s’y connecte.

Avant la dernière version c’était OK, depuis la dernière version j’ai pas réussi avec node-red.

Mais bon peut être qu’avec python les appels sont différents et que ça fonctionne je sais pas.

A Dac je la connais pas celle là
J’utilise

ivp/meters/readings

C’est peut être la nouvelle URL équivalente. Elle fonctionne en http normal ? Tu appelles ça répond et stop ?

Alors je suis pas devant l’ordinateur mais je me souviens que elle s’actualiser toute seul dans un navigateur

donc non elle ne s’actualsie pas toute seul:

voici son contenu:

[
    {
        "eid": 704643328,
        "timestamp": 1691330096,
        "actEnergyDlvd": 2892135.657,
        "actEnergyRcvd": 11999.595,
        "apparentEnergy": 3435721.706,
        "reactEnergyLagg": 875379.328,
        "reactEnergyLead": 275159.990,
        "instantaneousDemand": 2219.030,
        "activePower": 2219.030,
        "apparentPower": 2376.961,
        "reactivePower": -853.009,
        "pwrFactor": 0.933,
        "voltage": 234.872,
        "current": 10.120,
        "freq": 50.000,
        "channels": [
            {
                "eid": 1778385169,
                "timestamp": 1691330096,
                "actEnergyDlvd": 2892135.657,
                "actEnergyRcvd": 11999.595,
                "apparentEnergy": 3435721.706,
                "reactEnergyLagg": 875379.328,
                "reactEnergyLead": 275159.990,
                "instantaneousDemand": 2219.030,
                "activePower": 2219.030,
                "apparentPower": 2376.961,
                "reactivePower": -853.009,
                "pwrFactor": 0.933,
                "voltage": 234.872,
                "current": 10.120,
                "freq": 50.000
            },
            {
                "eid": 1778385170,
                "timestamp": 1691330096,
                "actEnergyDlvd": 0.017,
                "actEnergyRcvd": 23435.950,
                "apparentEnergy": 1453.884,
                "reactEnergyLagg": 581.641,
                "reactEnergyLead": 2.157,
                "instantaneousDemand": -0.106,
                "activePower": -0.106,
                "apparentPower": 0.215,
                "reactivePower": 0.018,
                "pwrFactor": -1.000,
                "voltage": 5.148,
                "current": 0.044,
                "freq": 50.000
            },
            {
                "eid": 1778385171,
                "timestamp": 1691330096,
                "actEnergyDlvd": 0.024,
                "actEnergyRcvd": 31430.470,
                "apparentEnergy": 21791.615,
                "reactEnergyLagg": 585.431,
                "reactEnergyLead": 3.308,
                "instantaneousDemand": -1.770,
                "activePower": -1.770,
                "apparentPower": 2.854,
                "reactivePower": -0.000,
                "pwrFactor": 0.000,
                "voltage": 9.603,
                "current": 0.297,
                "freq": 50.000
            }
        ]
    },
    {
        "eid": 704643584,
        "timestamp": 1691330096,
        "actEnergyDlvd": 2614783.660,
        "actEnergyRcvd": 1631998.694,
        "apparentEnergy": 6077993.045,
        "reactEnergyLagg": 119544.309,
        "reactEnergyLead": 2978481.516,
        "instantaneousDemand": -1325.212,
        "activePower": -1325.212,
        "apparentPower": 1434.200,
        "reactivePower": 499.827,
        "pwrFactor": -0.929,
        "voltage": 234.792,
        "current": 6.114,
        "freq": 50.000,
        "channels": [
            {
                "eid": 1778385425,
                "timestamp": 1691330096,
                "actEnergyDlvd": 2614783.660,
                "actEnergyRcvd": 1631998.694,
                "apparentEnergy": 6077993.045,
                "reactEnergyLagg": 119544.309,
                "reactEnergyLead": 2978481.516,
                "instantaneousDemand": -1325.212,
                "activePower": -1325.212,
                "apparentPower": 1434.200,
                "reactivePower": 499.827,
                "pwrFactor": -0.929,
                "voltage": 234.792,
                "current": 6.114,
                "freq": 50.000
            },
            {
                "eid": 1778385426,
                "timestamp": 1691330096,
                "actEnergyDlvd": 12896.207,
                "actEnergyRcvd": 0.000,
                "apparentEnergy": 432.861,
                "reactEnergyLagg": 548.849,
                "reactEnergyLead": 1.330,
                "instantaneousDemand": 0.000,
                "activePower": 0.000,
                "apparentPower": -0.000,
                "reactivePower": 0.000,
                "pwrFactor": 0.000,
                "voltage": 2.998,
                "current": 0.000,
                "freq": 50.000
            },
            {
                "eid": 1778385427,
                "timestamp": 1691330096,
                "actEnergyDlvd": 6174.239,
                "actEnergyRcvd": 0.000,
                "apparentEnergy": 11733.080,
                "reactEnergyLagg": 547.029,
                "reactEnergyLead": 1.574,
                "instantaneousDemand": 0.161,
                "activePower": 0.161,
                "apparentPower": 1.556,
                "reactivePower": -0.000,
                "pwrFactor": 0.000,
                "voltage": 4.519,
                "current": 0.345,
                "freq": 50.000
            }
        ]
    }
]

concernant ton autre page j’y accede bien et je reçois ces données toutes les secondes:

data: {"production":{"ph-a":{"p":2215.634,"q":-853.723,"s":2374.322,"v":234.352,"i":10.131,"pf":0.93,"f":50.0},"ph-b":{"p":0.0,"q":0.0,"s":0.0,"v":0.0,"i":0.0,"pf":0.0,"f":0.0},"ph-c":{"p":0.0,"q":0.0,"s":0.0,"v":0.0,"i":0.0,"pf":0.0,"f":0.0}},"net-consumption":{"ph-a":{"p":-1330.458,"q":488.637,"s":1435.879,"v":234.056,"i":6.144,"pf":-0.93,"f":50.0},"ph-b":{"p":0.0,"q":0.0,"s":0.0,"v":0.0,"i":0.0,"pf":0.0,"f":0.0},"ph-c":{"p":0.0,"q":0.0,"s":0.0,"v":0.0,"i":0.0,"pf":0.0,"f":0.0}},"total-consumption":{"ph-a":{"p":885.175,"q":1342.361,"s":933.618,"v":234.204,"i":3.986,"pf":0.95,"f":50.0},"ph-b":{"p":0.0,"q":0.0,"s":0.0,"v":0.0,"i":0.0,"pf":0.0,"f":0.0},"ph-c":{"p":0.0,"q":0.0,"s":0.0,"v":0.0,"i":0.0,"pf":0.0,"f":0.0}}}

très intéressant comme infos ^^

1 « J'aime »

bonjour ,
je ne sais pas si le message était pour moi .
Mais de mon coté c’est bon. j’ai transféré l’excellent travail de Bison dans mon esp32.
le preuve de concept fonctionne.
Il me reste à l’implémenter dans mon projet perso.(routeur solaire charge /décharge batterie)

Merci beaucoup à bison pour les pistes de développement.

2 « J'aime »

Bonjour,
Tout d’abord merci à Bison pour son travail !
J’ai ajouté une fonction qui permet une reconnexion automatique.
Si internet est dispo, il redemande un token, mais dans le cas contraire, il réutilise le précédent.
Nécessite:
node-red-contrib-msg-resend
node-red-contrib-mytimeout
cette modification devrait fonctionner en cas de token non valide, de perte de la connexion LAN, ou reboot de Node-Red.

En tant que nouvel utilisateur enregistré sur le forum, je ne peux poster le fichier, comment dois-je faire?

Bonjour et bienvenue,

Merci pour ta participation sur ce flow node-red. Actuellement moi je fais un restart du flow toute les 24h pour éviter le soucis donc je testerais ta modification avec plaisir.

Participe à 1 ou 2 sujets, tu devrais vite pouvoir passer au stade supérieur et donc pouvoir poster une image / un fichier :slight_smile:

1 « J'aime »

C’est bon! voila le fichier!
Enphase D7.6.175 v1_with auto-connect.json.txt (16,4 Ko)

2 « J'aime »