Enphase Gateway mit Local API und Token-Based Authentication einbinden

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • sthome
    Azubi
    • 24.04.2016
    • 8

    Enphase Gateway mit Local API und Token-Based Authentication einbinden

    Hallo zusammen,

    ich möchte gerne das Enphase Gateway meiner PV-Anlege in Loxone einbinden. Ziel ist es, die Produktion, den Netz-Verbrauch und den Haus-Verbrauch jeweils mit aktuellem Wert und Lifetime-Wert auszulesen. Zudem benötige ich den Ladestand der Batterie.

    Mit der aktuellen Firmware ist der lokale Zugriff nur über die Token-Based Authentication möglich, was hier ausführlich beschrieben ist:
    Accessing IQ Gateway local APIs or local UI with token-based authentication (enphase.com)

    Die JSON-Files würde ich über die virtuellen Eingänge in Loxone auslesen können. Ich habe nur keine Idee, wie ich die Authentifizierung hinbekomme.

    Ein Beispielaufruf mit Token wäre wie folgt:
    curl -f -k -H 'Accept: application/json' -H 'Authorization: Bearer <Token>’ -X GET https://<IQ Gateway-ip>/api/v1/production/inverters

    Geht das direkt in Loxone mit einem virtuellen Eingang oder ist der Umweg über Loxberry notwendig/sinnvoll?

    Viele Dank und viele Grüße
    Stefan


  • Tico
    Lox Guru
    • 31.08.2016
    • 1035

    #2
    Eine kurze Lektüre der API, die Sie verlinkt haben, zeigt einige wichtige Qualifikationen für das Token.

    Wenn Sie Installateur oder Selbstinstallateur sind, ist das Token 12 Stunden lang gültig.
    Wenn Sie Systembesitzer sind, gilt das Token 1 Jahr lang.

    In Loxone müssten Sie den Token manuell in die Config kopieren/einfügen und speichern. Dies ist wirklich nur für den Fall des Systembesitzers praktikabel.

    Haben Sie die Anmeldedaten des Systembesitzers, Installateurs oder Selbstinstallateurs?

    Ich habe kein Enphase-System, habe aber ein ähnliches API-Format für die Bereitstellung einer Token-basierten Authentifizierung direkt aus dem Miniserver verwendet.​
    Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

    Kommentar

    • sthome
      Azubi
      • 24.04.2016
      • 8

      #3
      Hi Tico,
      Ich bin Systembesitzer. Damit ist der Token ein Jahr gültig, was für mich OK ist.
      ​​​​​​Wie löst du die Authentifizierung?
      Viele Grüße
      Stefan

      Kommentar

      • Tico
        Lox Guru
        • 31.08.2016
        • 1035

        #4
        Erstellen Sie zunächst eine virtuelle Eingangsdrucktaste, die in einen Statusblock führt. Das Feld Status-Text sollte das Token enthalten.
        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Status Blcok.png
Ansichten: 1724
Größe: 17,9 KB
ID: 397011


        Erstellen Sie dann einen virtuellen Ausgang mit Feldern wie abgebildet.

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Virtual Output 1.png
Ansichten: 1901
Größe: 16,9 KB
ID: 397009Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Virtual Output 2.png
Ansichten: 1696
Größe: 34,5 KB
ID: 397010

        Speichern Sie in Miniserver und starten Sie dann die 'Live-Ansicht mit manueller Ventilanpassung'. Drücken Sie den Push Button Eintrag in den Status Block.

        In diesem Stadium (wenn es richtig funktioniert) werden die Daten von der Enphase auf der Miniserver SD-Karte unter der Adresse /user/common/Enphase_Values.json gespeichert.

        Verwenden Sie einen beliebigen Webbrowser, um zu der folgenden Adresse zu navigieren, wobei Benutzername und Passwort die Zugangsdaten für den Miniserver und IP und Port für den Miniserver sind -
        Code:
        http://Username:Password@Your_miniserver_IP_address:Port/Enphase_Values.json
        z.B.
        Code:
        http://Tico:MySecretPassword@10.1.1.5:52056/Enphase_Values.json
        Wenn die virtuelle Ausgabe funktioniert hat, sollten Sie Daten von der Enphase-API auf dem Browserbildschirm sehen. Posten Sie einen Screenshot, wenn Sie erfolgreich waren; Sie haben den halben Weg geschafft.​

        Wenn mit dem Webbrowser nichts gefunden wird, gibt es eine alternative Option, die Sie ausprobieren können.
        Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

        Kommentar


        • Tobbbeeeey
          Tobbbeeeey kommentierte
          Kommentar bearbeiten
          Guten Tag, ich bekomme leider immer diese Fehlermeldung wenn ich die JSON Datei abfragen will:
          Können Sie mir bitte sagen was da falsch läuft? Danke

          184 15:40:31.575 Unbenannt Response 192.168.178.48 /api/v1/production/inverters HTTP/1.1 401 Unauthorized\r\nServer: openresty/1.17.8.1\r\nDate: Thu, 25 Apr 2024 13:41:14 GMT\r\nContent-Type: text/html\r\nContent-Length: 555\r\nConnection: close

        • Tico
          Tico kommentierte
          Kommentar bearbeiten
          Es ist mir unklar, bei welchem Schritt Ihre Fehlermeldung auftritt.

          1. Beim Virtual Ouput, der die Daten auf der Miniserver SD-Karte speichert?

          2. Beim Virtual Input, der die Daten auf der SD-Karte abfragt?

          Was passiert bei dem oben beschriebenen Schritt, "Verwenden Sie einen beliebigen Webbrowser, um zu der folgenden Adresse zu navigieren, wobei Benutzername und Passwort die Zugangsdaten für den Miniserver und IP und Port für den Miniserver sind -"
      • sthome
        Azubi
        • 24.04.2016
        • 8

        #5
        Hi Tico,
        vielen Dank! Es funktioniert.
        die Anleitung ist zwar etwas kompliziert, aber ich bekomme über die gewünschte JSON-Datei.

        Was wären die nächsten Schritte?
        Gibt es auch eine Möglichkeit über Loxberry dies zu konfigurieren?

        Viele Grüße
        Stefan

        Kommentar


        • Tico
          Tico kommentierte
          Kommentar bearbeiten
          Können Sie ein Bildschirmfoto der JSON-Ausgabe schicken?
      • PaulH
        Azubi
        • 24.08.2023
        • 3

        #6
        Beispiel wie meine Enphase-loxone gerade lauft:



        /api/v1/consumption ==> /user/common/Enphase_consumption.json

        und

        /api/v1/production ==> /user/common/Enphase_production.json


        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 30,3 KB ID: 401634


        /api/v1/production/inverters ==> /user/common/Enphase_inverters.json

        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 15 Größe: 17,7 KB ID: 401645


        Enphase datei lesen mit virtual eingang:
        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 35,6 KB ID: 401637
        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 82,5 KB ID: 401638​​​
        Angehängte Dateien
        Zuletzt geändert von PaulH; 26.08.2023, 18:29.

        Kommentar


        • Ron
          Ron kommentierte
          Kommentar bearbeiten
          Hallo,

          kun jij de Enphase ook afschakelen? ik zie dat je gebruik maakt van virtuele outputs!!!
      • Tico
        Lox Guru
        • 31.08.2016
        • 1035

        #7
        Hallo @PaulH. Sind Sie die gleiche Person wie @sthome (der Urheber des Threads)? Ich bin ein wenig verwirrt, was Ihre Frage ist?

        Angenommen, die obigen Screenshots funktionieren nicht, dann sehe ich, dass in der URL etwas falsch ist. Sie sollte lauten -

        Code:
        http://admin:Password@192.168.1.253:Port/dev/fsget/user/common/Enphase_production.json
        ​Beachten Sie, dass in der obigen URL ein Port zu definieren ist. Das könnte der Standardwert 80 oder 7777 sein oder was auch immer Sie geändert haben.
        Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

        Kommentar

        • PaulH
          Azubi
          • 24.08.2023
          • 3

          #8
          Hallo Tico
          bin nicht die gleiche person.

          Habe keine frage, aber meinse screenshots sind von meine loxone-enphase connection (und lauft ok jetzt)

          Kommentar

          • mr-manuel
            Extension Master
            • 20.03.2021
            • 122

            #9
            Ich kann gerne auch einige Infos zur API beisteuern. Habe selbst einen Treiber für die Venus OS Integration von Victron Energy geschrieben die den Token alle 12 Stunden selbst neu erstellt. Je nach Firmware Version des Envoy braucht man den installer oder owner Token.

            Es ist auch möglich die Produktion der einzelnen Inverter auszulesen.

            Hier die Links:

            Enphase-API is an unofficial project providing an API wrapper (including local/LAN Gateway API) and the documentation for Enphase®'s products and services. - Matthew1471/Enphase-API







            Kommentar

            • Highendsyl
              Azubi
              • 01.12.2023
              • 2

              #10
              Danke Allen, es funktioniert bei mir. Um Enphase Envoy-S an der Miniserver zu verbinden habe ich eure Posts genutzt und in der Totalen genutzt:
              /api/v1/production

              Weil ich 2 Envoy-S habe (Wohnhaus + Gartenhaus), habe ich alles 2 Mal machen müssen. Ich habe eine Impulsgeber jede 60 Sekunden um die Daten neu an zu fordern.

              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: loxone enphase enlighten envoy.jpg
Ansichten: 1391
Größe: 1,25 MB
ID: 413082

              Kommentar

              • BensLox
                Azubi
                • 11.03.2024
                • 2

                #11

                Mein Envoy ist unter http://192.168.2.95 erreichbar. Wenn ich auf der Registrierungsseite den Token eingebe, kann ich die Daten über die verschiedenen API-URLs abrufen. Daher funktionieren die IP-Adresse und das Token gut.
                Ich habe alles so gestaltet, wie Tico es so schön beschrieben hat. Allerdings erhalte ich immer wieder Fehler in der Kommunikation. Der Taster mit dem Statusblock gibt den Token sauber zurück wenn ich auf den drei Punkten des Ausgangs stehe.
                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1069
Größe: 459,1 KB
ID: 426281
                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1043
Größe: 567,3 KB
ID: 426283
                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1042
Größe: 720,2 KB
ID: 426284
                Wenn ich die Kommunikation starte, erhalte ich im HttP-Monitor dieses Ergebnis:
                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1028
Größe: 282,0 KB
ID: 426285
                Wer hat eine Ahnung, welchen Fehler ich mache?​​
                ​​
                Angehängte Dateien

                Kommentar

                • Tico
                  Lox Guru
                  • 31.08.2016
                  • 1035

                  #12
                  Vielen Dank für die freundlichen Worte. Es scheint, dass Sie einige Aspekte der Umsetzung missverstanden haben -

                  Der virtuelle Ausgang startet den Prozess, indem er die Enphase abfragt und die Antwort auf der lokalen SD-Karte des Miniserver speichert. Sie können mit einem Browser überprüfen, ob die Daten am richtigen Ort gespeichert sind. Navigieren Sie zu -

                  Code:
                  http://Miniserver_Username:Password@Your_miniserver_IP_address/Enphase_Values.json
                  z.B.
                  Code:
                  http://Tico:MySecretPassword@10.1.1.5/Enphase_Values.json

                  Sie sollten Daten von der Enphase-API auf dem Browserbildschirm sehen.

                  Der virtuelle HTTP-Eingang ruft dann diese Daten ab. Ihr virtueller HTTP-Eingang ist nicht richtig eingerichtet, um die auf dem Miniserver gespeicherten Inhalte abzufragen. Beachten Sie die Screenshots unten, um den Miniserver nach den gespeicherten Daten abzufragen.

                  Sie haben also einen virtuellen HTTP-Eingang, der die Daten vom Miniserver selbst abruft.

                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Virtual Input.png
Ansichten: 1118
Größe: 214,9 KB
ID: 426295
                  Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

                  Kommentar

                  • BensLox
                    Azubi
                    • 11.03.2024
                    • 2

                    #13
                    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 254,7 KB ID: 426550
                    Vielen Dank, Tico.
                    Die Fehlermeldung ist verschwunden. Die Ergebnisse kann ich auch über den Webbrowser erzielen. Nur diese Ergebnisse werden nicht aktualisiert.​
                    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 40,6 KB ID: 426551
                    ​​Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1002
Größe: 124,7 KB
ID: 426553
                    Zuletzt geändert von BensLox; 13.03.2024, 17:23.

                    Kommentar

                    • Tico
                      Lox Guru
                      • 31.08.2016
                      • 1035

                      #14
                      Der Bereich, den Sie geschwärzt haben, scheint sehr kurz für einen Benutzernamen und ein Passwort zu sein. Das Kurzformat muss Benutzername:Miniserver_Passwort und Miniserver_IP:Port enthalten -

                      Code:
                      http://admin:TestMe@10.1.1.99:7777/Enphase_Values.json

                      Der Port muss angegeben werden, wenn er sich von 80 unterscheidet. Sie haben dies in den Optionen von "Configure Miniserver" festgelegt.


                      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Network Ports.png Ansichten: 0 Größe: 6,5 KB ID: 426586

                      Ein alternatives langes Format ist -

                      Code:
                      http://admin:TestMe@10.1.1.99:7777/dev/fsget/user/common/Enphase_Values.json

                      Beide sollten funktionieren.

                      Die Befehlserkennung wäre -

                      Code:
                      "maxReportWatts": \v

                      Beachten Sie, dass zwischen dem Doppelpunkt und dem \v ein Leerzeichen steht.

                      edit 1: Wenn Sie mit der rechten Maustaste auf die Webbrowser-Seite klicken und dann 'Seitenquelle anzeigen' wählen, kann sich die Formatierung um maxReportWatts ändern. Dieses Format ist das, was der Miniserver sieht.)

                      edit 2: Sie müssen auch die virtuelle Ausgabe nach einem von Ihnen gewählten Zeitplan aktualisieren. Dazu müsste ein Impulsgenerator mit einer Frequenz von z.B. alle 60 Sekunden an den virtuellen Ausgang angeschlossen werden. Dieser fragt die Enphase ab und lädt die Daten erneut auf den Miniserver herunter.
                      Zuletzt geändert von Tico; 14.03.2024, 02:08.
                      Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

                      Kommentar

                      • Toms84
                        Extension Master
                        • 13.09.2015
                        • 160

                        #15
                        sthome

                        Eine Frage bitte.
                        Wie oft rufst du den virtuellen Ausgang mit dem Token auf.
                        Das habe ich noch nicht ganz verstanden.
                        VO wird ausgeführt.
                        Antwort wird gespeichert.Aus der liest man dann die Daten aus.
                        Dann muss ich den VO ja z.b im Sekundentakt ausführen damit ich immer die aktuellen Daten habe?

                        Danke für die Erklärung
                        Grüße

                        Kommentar

                        Lädt...