Ankündigung

Einklappen
Keine Ankündigung bisher.

Enphase

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Nachtrag: Ich hab bisher keinen Weg gefunden, per API entweder einzelne Inverter abzuschalten bzw. die produzierte Leistung zu begrenzen.
    Mein aktueller Kenntnisstand ist, dass man nur die gesamte Produktion per API ein/ausschalten kann.
    Weiß da jemand vlt. mehr?

    Kommentar


      #17
      Hallo, mein System lief - ja, lief die letzten 18 Monate problemlos. Leider wurde ich vor 4 Tagen auch upgedated auf 7... Kommunikation mit Enphase läuft, ich berichte gerne.

      Direkt in CentOS konnte ich noch keine Möglichkeit finden wie wir dieses Tokenthema lösen kann - bin für jeden Tipp dankbar. Es gibt zwar eine Doku aber diese funktioniert so einfach nicht mit Edomi (was an meinen schlechten Programmierkenntnissen liegen mag).

      Also curl & get wie in der Dokumentation beschrieben habe ich zur Zeit noch nicht ans Laufen gebracht. Zwangsupdates bei Systemen die rein lokal laufen.... Ich könnte gerade wirklich ... , wir stehen kurz vorm Urlaub und zu Hause laufen die Automatisierungen nicht mehr...

      Also Augen auf beim Systemkauf.

      Sorry, habe gerade echt schlechte Laune.

      Kommentar


        #18
        Zitat von merlin1900 Beitrag anzeigen
        .. Zwangsupdates bei Systemen die rein lokal laufen....
        Ich will ja nicht Öl ins Feuer gießen, aber lokal scheint dein System nicht gelaufen zu sein. Wie ist dieses update auf dein System gekommen? btw: Es gibt auch im enphase-Manager eine Option, wo man zusätzlich auch noch die updates abschalten kann. Einige User haben berichtet, dass enphase ihnen sogar ein downgrade auf 5.x draufkopiert hat.

        Kommentar


          #19
          Hallo zusammen,

          ich berichte gerne über die Kommunikation mit dem Enphase Support. 1. Email - Standardantwort. Wir entschulidgen uns für die Unanehmlichkeiten...., hier die Beschreibung der neuen API. Mit Token geht alles wie immer....
          Problem, Zeit und Know-How für PHP ist etwas eingerostet. Ggf. könnte man das sonst für EDOMI lösen.

          Zweite Mail - direkt auf den Punkt, ich habe keinem Update zusgestimmt, meine Anlage hat keine Batterie oder IQ8 die ein Update benötigt hätten, eine Sicherheitslücke ist nicht kommuniziert und meine Anlage läuft seit 18 Monaten wie bestellt und ohne Probleme. Bitte um Downgrade auf 5x. So, und hier zeigt sich augenscheilich die Strategie, selbst mit Erinnerung keine Antwort. Schade!

          Die Anlage lief mit 5.x gut und kommunizierte sowohl mit der Cloud für die App und das Datenstoring als auch lokal über die lokale API zur Anbindungen in EDOMI (wie oben beschrieben). mit 7.x natürlich nicht mehr. Sehr schade.

          Meine schnelle Lösung war über mein KNX Smartmeter - das wollte ich eigentlich los werden, da ich den Platz brauchen könnte im Verteiler. Ok, nun hat es wieder eine Berechtigung und sorgt in Verbindung mit EDOMI für die Überschusssteuerung.

          Kommentar


            #20
            Falls du einen RASPI hast, könnte ich dir meinen eigenen Python Code und mein LBS zum Testen geben.. Doc hab ich halt keine..

            Kommentar


              #21
              Hallo zusammen,

              ich habe mal wieder die Zeit gefunden mich mit dem API Problem zu beschäftigen.
              Mittlerweile habe ich auf dem EDOMI Server sowohl das Python Script laufen:
              Code:
              import json
              import time
              import requests
              import urllib3
              urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
              
              user = '[user]'
              password = '[password]'
              envoy_serial = '[serial]'
              myenvoy = 'https://[local ip]'
              
              def getToken():
                      data = {'user[email]': user, 'user[password]': password}
                      response = requests.post('https://enlighten.enphaseenergy.com/login/login.json', data=data)
                      response_data = json.loads(response.text)
                      data = {'session_id': response_data['session_id'], 'serial_num': envoy_serial, 'username': user}
                      response = requests.post('https://entrez.enphaseenergy.com/tokens', json=data)
                      global token_raw
                      token_raw = response.text
                      return True
              
              def checkAuth( sess, header ):
                      response = sess.get( myenvoy + "/auth/check_jwt", headers=header, verify=False  )
                      if response.status_code == 401:
                          return False
                      return True
              
              getToken()
              
              if token_raw=='':
                      print("Failed to get token\n")
                      quit()
              
              authorization_header = { "Authorization": "Bearer " + token_raw }
              session = requests.Session()
              
              if not checkAuth( session, authorization_header ):
                              print( "Failed to authorize\n" )
                              quit()
              
              e_home = session.get( myenvoy + "/production.json", data=authorization_header, verify=False )
              #print( e_home )
              
              if e_home.status_code == 401:
                      print( "Failed to read 'home.json'\n" )
                      quit()
              
              # Writing to sample.json
              with open("sample.json", "w") as outfile:
                  outfile.write(e_home.text)
              print( e_home.text )
              
              ​
              als auch einen funktionierenden curl Befehl, den ich in ein scipt packen könnte :

              Code:
              curl -f -k -H "Accept: application/json" -H "Authorization:bearer [... token]" -X GET https://[local ip]/production.json
              der curl Befehl ist natürlich schneller, da hier kein Token mehr abgefragt wird, wird aber nur für 12 Monate funktionieren und dann muss bedacht werden den Token über die Enphase Website zu aktualisieren.

              Nun aber meine Frage an die EDOMI Experten. Wie bekomme ich die resultierende .json Antwort am besten aus der Shell zurück an EDOMI um damit wieder meine Logik zu steuern? Ich stehe da leider etwas auf dem Schlauch.

              Danke!

              Kommentar


                #22
                Zitat von merlin1900 Beitrag anzeigen
                Wie bekomme ich die resultierende .json Antwort am besten aus der Shell zurück an EDOMI um damit wieder meine Logik zu steuern?
                Ich würde dann statt eines Shell-Befehls den HTTP-Request LBS verwenden. Der sollte das eigentlich können. Dann hast du die Antwort direkt in EDOMI.

                Alternativ kannst du natürlich per Shell Befehl auch ein Skript aufrufen, welches zuerst die Abfrage macht und dann das Ergebnis via CURL an die EDOMI Remote API übergibt.

                Kommentar


                  #23
                  Ist schon einer weiter gekommen?
                  Das mit dem Python Script ist für mich zu hoch.
                  Wäre sehr schade, denn die Anlage läuft sehr gut.
                  ich versuche gerade meine Wallbox zu integrieren.
                  Dazu wären die Lifedaten vom System sehr hilfreich.

                  Kommentar

                  Lädt...
                  X