Zonnepanelen - Enphase local API data ophalen en gebruiken in Flows

Hoi,

Ik probeer data van de local api van de Enphase Envoy S-metered op te halen en te gebruiken in Homey.
Het ophalen van de data via de local API is gelukt. Nu wil ik graag een variabele aanmaken in Homey die aangeeft wat het actuele opgewekte vermogen is. Wie heeft er tips?

Het Curl command dat ik gebruik voor het ophalen van de local API informatie is als volgt.

curl -f -k -H “Accept: application/json” -H “Authorization: Bearer [Token]” -X GET https://[Gateway IP-Adres]/ivp/meters/reports/production

Dit levert de volgende output in Command Prompt

{
    "createdAt": 1687364706,
    "reportType": "production",
    "cumulative": {
        "currW": -1.710,
        "actPower": -1.710,
        "apprntPwr": 20.912,
        "reactPwr": 0.797,
        "whDlvdCum": 0.000,
        "whRcvdCum": 0.001,
        "varhLagCum": 0.000,
        "varhLeadCum": 0.000,
        "vahCum": 0.013,
        "rmsVoltage": 237.008,
        "rmsCurrent": 0.087,
        "pwrFactor": -0.25,
        "freqHz": 50.00
    },
    "lines": [
        {
            "currW": -1.710,
            "actPower": -1.710,
            "apprntPwr": 20.912,
            "reactPwr": 0.797,
            "whDlvdCum": 0.000,
            "whRcvdCum": 0.001,
            "varhLagCum": 0.000,
            "varhLeadCum": 0.000,
            "vahCum": 0.013,
            "rmsVoltage": 237.008,
            "rmsCurrent": 0.087,
            "pwrFactor": -0.25,
            "freqHz": 50.00
        }
    ]
}

Hoe kan ik zorgen dat bijvoorbeeld de “currW” waarde (=1.710) in een variabele beschikbaar wordt die om de minuut wordt bijgewerkt en kan worden gebruikt in Flows?

3 Likes

Hoi,

Ik denk dat je met dit voorbeeld een eind zou moeten kunnen komen :

1 Like

Dankjewel voor het meedenken. Het topic wat je aanhaalt is precies wat ik wil. Waar ik echter tegenaan loop is dat ik niet goed weet hoe ik de API kan bevragen met de logic functie. Waar moeten bijvoorbeeld de volgende zaken terechtkomen?

"Accept: application/json” -H “Authorization: Bearer [Token]”

Graag gedaan.
Die horen in het header field vlgs mij.
Zet ze wel ieder op een nieuwe regel middels Shift+Enter (in Advanced flows)

Oke, dat helpt. Dank! Nu loop ik echter tegen de volgende error aan.

“Request to https://[local gateway ip]/ivp/meters/reports/production failed, reason: self signed certificate”

Met Curl worden met de commandline option “-k” self-signed certificates toegestaan. Hoe ik hetzelfde voor elkaar krijg met een HTTP GET request begrijp ik niet. Is dat mogelijk?

Zo niet, is er een andere route waarlangs ik data kan gebruiken via een local API met een self-signed certificate?

Dus dit werkt niet, al is het tijdelijk ‘ter test’?
http://[local gateway ip]/ivp/meters/reports/production
Screenshot from 2023-06-22 20-16-20

In je lokale netwerk heb je geen certificaten e.d. nodig toch?

Lokale http bevragingen worden door de Envoy geredirect naar https. Totdat de ontwikkelaar van de Zonnepanelen app de tijd en energie heeft gevonden de app te updaten is het met een workaround wel mogelijk data te presenteren in Homey.

Nee helaas, krijg toch een melding over een self signed certificate.

Dank voor de tip! Is het mogelijk om deze homebrigde-enphase-envoy docker vanaf homey met een homeyscript te draaien? Of is een Raspberry Pi oid nodig voor een soort van permanente oplossing.

Dat eerste is niet mogelijk op Homey. Op een Pi kan je wel de Homebridge image installeren en daarop dan weer de Envoy plugin.