Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS 19000110: SMA Sunnyportal auslesen (inkl. cURL-HTTPS-Zugriff per Login und POST-Methode)

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

    #46
    Liebe SMA-edomi-Schnittmenge und php-Experten,

    ich bin nach vielen Tagen und Runden am Ende meines Lateins. Ich habe gerade den LBS in einer neuen Version 1.4alpha hoch geladen. Die Version ist noch einmal eine spürbare Weiterentwicklung von meiner internen Version 1.3.
    • Zunächst: CustomLog ist gelöst (was das kleinste Thema war)...
    • Mir scheint die Logik prozessual nun wirklich zweckdienlich und gut.
    • Um offensichtliche normale regelmäßige Lesefehler zu lösen, gibt es nun als weitere Eingangsparameter. Das neue Verfahren kommt meist beim 1. Leseversuch zum Erfolg, aber es versucht ansosnten eine Weile, es durch Nachlesenm und ggf. neuen login erfolgreich zu schaffen; denn es scheint normal, dass es gelegentlich ein paar Versuche braucht:
      • E5: Zeit in Sekunden, wie lange bei fehelnden Daten nachgelesen werden soll (z.B. 45 sekunden)
      • E6: Wartezeit bis zum nächsten Nachleseverusch (z.B. 1 Sekunde)
      • E7: Offset zum Trigger, damit man ein wenig weg kommt von den glatten Minuten (wo viele abfragen) (z.B.: 3 Sekunden, damit würde man bei minütlichem Trigger immer um hh:mm:03 erstmals Lesen)
      • sinnvoller Loglevel ist 5 (wenn es geht) oder 6 (in der Eprobung), 7-8 in der Analyse
    Hilferuf:
    • Stundenweise (meist ab etwa Mitternacht) funktioniert der LBS tadellos und liefert verlässlich Daten
    • Am frühen Mogren schlägt das Lesen fehl und gelingt dann gar nicht mehr - bis auf einzelne Lichtblicke oder die kommende Nacht --> daher: alpha
    EXE19000110: 2.Versuch | HTTP-Code 200 + JSON, aber DateTime fehlt - Nachlesen in 1sek... | Warning: Updating of the live data was interrupted.

    Für die Analyse habe ich ein einzeln lauffähiges PHP aus einer Kopie des LBS gemacht. Darin sind nur edomi-spezifische Dinge (z.B. Log) auskommentiert bzw. durch lokale Pendants ersetzt. Wer einen NAS oder Webserver hat: Einfach die PHP-Datei im Web-Verzeichnis ablegen und mit "<IP>/LBS19000110_v1.4alpha.php aufrufen (dort automatisch immer mit LogLevel 8). Um neben dem Normalfall (bereits angemeldet beim erneuten Aufruf des LBS/PHP) auch den Erstaufruf testen zu können, gibt es auch ein Abmelde.PHP. Die PHP-Dateien findet Ihr im ZIP im Download-Bereich.
    --> Damit funktioniert der Zugriff jederzeit und auch bei Auffrischen selbst im sekundentakt und jederzeit auch tagsüber!

    => Warum klappt das das selbe Coding als lokales PHP, nicht aber dauerhaft von edomi aus?

    Ich bin wirklich dankbar für Eure Hilfe!

    Viele Grüße,
    Carsten
    Zuletzt geändert von saegefisch; 16.11.2017, 14:17.

    Kommentar


      #47
      Update zu meinem letzte Post und der Frage:
      * Die gesamte Zeit hatte ich den Trigger für die Abholung auf minütlich. Mit dem Post habe ich frustriert auf 5 minütlich gestellt - nun scheint es besser zu gehen; ich habe fast kontinuierlich Daten. Könnte die Frequenz zu hoch sein und SMA blockiert dann den Zugriff? Oder die Anzhal/24h? Aber wieso kann ich mit dem selben User und - hinter dem NAT - aus Sicht von SAM der selben IP aus dem Browser die Daten gleichzeitig erfolgreich abfragen? Kann der Client erkannt werden, obwohl beide den selben user-agent nutzen?
      * Könnte es an der Version von PHP/cURL liegen?
      * Geht die Vesion 1.4alpha bei jemandem (mit SMA-Sunny Portal-Zugang)?

      Update 17.11.2017/15:30:
      Seit nunmehr fast 24h geht die Abfrage lückenlos mit Trigger "5-minütlich". Zwischendurch wird bei manchen Visu-Seiten zeitweise sekündlich getriggert - bislang alles problemlos. Man sieht im Log auch, dass nachts meistens der 1. oder 2. Leseverusch gelingt, tagsüber es aber fast immer 2 oder auch mal bis zu 15 Versuche bedarf, um erfolgreich Daten zu bekommen. Aber darauf ist der LBS nun klar ausgelegt mit neuen Eingangsparamtern.
      Möglicherweise habe ich versucht, einen in gewisser Weise unmöglichen Kampf zu gewinnen, wenn der Server es nicht erlaubt, 24/7 jede minütlich abzufragen. Nachdem es in der Vergangenheit minütlich klappte habe ich nun wohlmöglich einen Geist gejagt. Nun ja, dem Coding hat es strukurell gut getan...

      * 5-minütlich scheint die Version 1.4 stabil - und könnte mit dieser Fußnote wohl den alpha-Status verlieren. --> Dafür wären Erfahrungen anderer sinnvoll
      * Es bleibt die Frage, wie hinter dem NAT der SMA-Server erkennt, dass gerade genau edomi abfragt und nicht ein Browser oder ein anderer Rechner. Wenn man das wüsste, könnte man vielleicht doch minütlich, aber den Identifier z.B: über 5 Ausprägungen alternieren lassen... --> Ideen?
      Zuletzt geändert von saegefisch; 17.11.2017, 15:29.

      Kommentar


        #48
        Hi,
        Werde gleich mal die neue Version einbauen und auch Testen
        Danke noch mal für deine Mühe

        Kommentar


          #49
          Prima, danke! Bin auf jede Rückmeldung mit eigenen Erfahrungen gespannt.

          Update:
          * Bei mir läuft es jetzt mit einem 3-minütlichen Trigger und hatte tagsüber mal 45min keine Daten bekommen. Davon abgesehen okay. Ich lasse es erst einmal wohl bei 3 Minuten - mal schauen...
          * Als Lösung baue ich gerade einen "Hypercare-LBS". Der SMA-LBS wird regelmäßig z.B. 5-minütlich ausgeführt. Wenn man aber auf eine Visu-Seite mit Energiewerten wechselt (oder manuell auslöst), würde der Hypercare-LBS in 3 Phasen eine höhere Frequenz antriggern - eben genau dann, wenn man es barucht: Z.B. 30sek jede Sekunde, dann 60sek alle 10Sek und dann noch mal 300sek alle 60Sekunden. Damit strapaziert man das SMA-Abruf-Kontingent hoffentlich noch nicht - wäre für mich ein ordentlicher Kompromiss/Plan B gegen die vermutete SMA-Begrenzung.
          * Sporadisch habe ich Werte, die aber inhaltlich ausreißen. In einer 1.4beta teste ich gerade zwei weitere (per zwei neuen optionalem Eingangsparametern aktivierbar) Prüfungen auf Plausibilität: 1.) Batterieladestand = 0% | 2.) Summe der Werte von Gesamtberbrauch, Netzsumme, Batteriesumme und PV nicht nahe Null. Bei Auftreten wird neu gelesen (wie bei anderen Prüfungen auch).

          Wenn es die Tage bei Dir/Euch/mir gut läuft, könnte es kommendes WE eine finale Version 1.4 geben...

          Kommentar


            #50
            Hallo,
            Habe den LBS auch probiert, erhalte keine Daten was mach ich verkehrt???
            Meine Anlage PV Anlage mit Sunnyboy Wechselrichter Sunnyboy 5000TL-21 an SMA Sunnyportal physikalische Überschuss Einspeisung kein Akku.
            Welches Format müssen eigentlich die Ausgangswerte haben?
            anbei meine Logik

            SMA Abfrage.JPG

            Ich bin EDOMI Anfänger
            Angehängte Dateien

            Kommentar


              #51
              Zitat von ulwdf Beitrag anzeigen

              Ich bin EDOMI Anfänger
              Nach dem erstellen der Logik auch das Projekt neu aktiviert.

              Was sagt denn der Live Monitor, im Screenshot sieht man ja nur die "Normale Ansicht" im Logikeditor

              Kommentar


                #52
                Ja klar Projekt aktiviert, probiere schon länger....
                anbei Screenshot vom Live Monitor keine Werte, die drei GA habe ich auch Visualisiert keine Werte

                Life Monitor.JPG

                Kommentar


                  #53
                  melde miich dazu die Tage...die Lösung wurde von SMA wohl beschnitten, ist so nicht mehr für den ganzen Tag nutzbar. Zumindest hört das Lesen bei mir nach rund 400 Werten täglich reproduzierbar auf und beginnt recht genau um Mitternacht wieder. Aber abgesehen davon: die 400 sollten kommen, dazu melde ich mich.

                  Meine Handlungsalternative: Für die Werte des Energy-Meters habe ich eine sehr hcofrequente Lösung in-house, also ohne Cloud. Für die WT-Werte werde ich wohl was für ModBus machen, wäre dann auch in-house ohne Cloud. Grundsätzlich geht der Durchstich, aber ist noch nicht in Gänze umgesetzt.

                  Wofür der LBS immer noch wunderbar geht: Wnen man ihn nur triggert - und dann auch gerne hochfrequent, wenn man gerade auf einer Visu-Seite mit der Ausgabe der Werte ist. Ist dann genauso gut, wie Web oder die SMA-App. Aber auch die Webseite wirft Dich nach einer Weile raus. Daher: Für's Archiv schient es mir mittlerweile nutzlos wegen der Beschränkung von SMA. Für Anzeige sollte es gehen.

                  Kommentar


                    #54
                    Hi,

                    hast Du diesen Baustein noch im Gebrauch. wollte diesen einsetzten um 1 mal pro Tag die Daten abzuholen...
                    Leider funktioniert es bei mir nicht. Muss ich was besonderes beachten?

                    Grüße
                    Thomas

                    Kommentar


                      #55
                      Hi Thomas,

                      beim letzten Check habe ich noch Daten aus dem Sunny Portal bekommen (gerade noch mal geprüft: läuft) - aber mit unserem neuen ModBus-LBS sehe ich keine wirkliche Bewandtnis mehr, der mir die Mühe mit dem SunnyPortal rechtfertigt. Daher lasse ich das zwar weiter laufen (mittlerweile nur noch alle 10 min, damit es über den ganzen Tag reicht) - immerhin läuft das seit vielen Monaten. Aber wenn SMA irgend etwas ändert, werde ich daran nicht mehr arbeiten. Im DL-Bereich habe ich den LBS bereits mit "end of love" (EOL) markiert.

                      Besonderheiten? Eigentlich nicht:
                      E1 = Trigger
                      E2 = User
                      E3 = PW
                      E4 = Loglevel (bei mir mittlerweile = 0)
                      E5 = 10
                      E6 = 3
                      E7 = 0
                      E8 = 30

                      Kommentar


                        #56
                        Danke Dir, so habe ich es auch konfiguriert, leider kommen bei mir keine Daten an (Login und Passwort passt)

                        Code:
                        2018-05-23 15:13:22    921796    9240    8-debug|8    EXE19000110 [v1.4alpha]:    Gestartet (Tracelevel 8)... (112)
                        2018-05-23 15:13:23    226043    9240    8-debug|8    EXE19000110 [v1.4alpha]:    DATA | CURL_ERRNO: 0 | CURL_INFO: CURLINFO_HTTP_CODE: 200 | CURLINFO_TOTAL_TIME: 0.302425 | CURLINFO_SIZE_DOWNLOAD: 30924 | CURLINFO_EFFECTIVE_URL: https://www.sunnyportal.com/Templates/Start.aspx?ReturnUrl=%2fhomemanager | CURLINFO_REDIRECT_COUNT: 1 | CURLINFO_SSL_VERIFYRESULT: 0 (112)
                        2018-05-23 15:13:23    227762    9240    5-warning|8    EXE19000110 [v1.4alpha]:    1.Versuch | HTTP-Code: 200, aber keine JSON-Daten - Neuanmeldung... | Bytes: 30924 (112)
                        2018-05-23 15:13:23    228528    9240    8-debug|8    EXE19000110 [v1.4alpha]:    reconnect: 1 | retry : 0 (112)
                        2018-05-23 15:13:23    352576    9240    8-debug|8    EXE19000110 [v1.4alpha]:    LOGOFF | CURL_ERRNO: 0 | CURL_INFO: CURLINFO_HTTP_CODE: 200 | CURLINFO_TOTAL_TIME: 0.122685 | CURLINFO_SIZE_DOWNLOAD: 30936 | CURLINFO_EFFECTIVE_URL: https://www.sunnyportal.com/Templates/Start.aspx?ReturnUrl=%2fTemplates%2fLogout.aspx | CURLINFO_REDIRECT_COUNT: 1 | CURLINFO_SSL_VERIFYRESULT: 0 (112)
                        2018-05-23 15:13:23    354526    9240    8-debug|8    EXE19000110 [v1.4alpha]:    Postfields:{"__EVENTTARGET":"","__EVENTARGUMENT":"","ctl00$ContentPlaceHolder1$Logincontrol1$txtUserName":"xxxx","ctl00$ContentPlaceHolder1$Logincontrol1$txtPassword":"xxxx","ctl00$ContentPlaceHolder1$Logincontrol1$LoginBtn":"Anmelden","ctl00$ContentPlaceHolder1$Logincontrol1$RedirectURL":"","ctl00$ContentPlaceHolder1$Logincontrol1$RedirectPlant":"","ctl00$ContentPlaceHolder1$Logincontrol1$RedirectPage":"","ctl00$ContentPlaceHolder1$Logincontrol1$RedirectDevice":"","ctl00$ContentPlaceHolder1$Logincontrol1$RedirectOther":"","ctl00$ContentPlaceHolder1$Logincontrol1$PlantIdentifier":"","ctl00$ContentPlaceHolder1$Logincontrol1$ServiceAccess":"true","ctl00$ContentPlaceHolder1$hiddenLanguage":"de-de"} (112)
                        2018-05-23 15:13:23    510557    9240    8-debug|8    EXE19000110 [v1.4alpha]:    LOGIN | CURL_ERRNO: 0 | CURL_INFO: CURLINFO_HTTP_CODE: 200 | CURLINFO_TOTAL_TIME: 0.153313 | CURLINFO_SIZE_DOWNLOAD: 31532 | CURLINFO_EFFECTIVE_URL: https://www.sunnyportal.com/Templates/Start.aspx | CURLINFO_REDIRECT_COUNT: 0 | CURLINFO_SSL_VERIFYRESULT: 0 (112)
                        Übrigens das Modbus SMA habe ich ich seit Tage im Einsatz und manchmal bekomme ich nicht vollständige Daten, wie ist es bei Dir?

                        Grüße
                        Thomas

                        Kommentar


                          #57
                          User und PW im LBS ohne Hochkomma, Gänsefüßchen oder ähnlichem? PW mit ungewöhnlichen Sonderzeichen? Kannst Du Dich denn mit den Daten am Sunny Portal im Browser anmelden? Sind die Rechte des Users dort hinreichend?
                          Bei der Entwicklung habe ich damals mit den Entwicklerwerkzeugen vom Firefox den POST-Prozess verfolgt und analysiert. Das war nämlich ein recht langer Weg, bis ich da durch kam. Wäre also noch ein Ansatzpunkt für Ursachenforschung.

                          Aus dem ModBus-LBS bekomme ich auch immer mal wieder Außreißer, meist nach unten oder leer. Habe leider noch keine Zeit gehabt, dem nach zu gehen.

                          Kommentar


                            #58
                            Hallo, ich nutze auch das SMA Portal und würde gerne versuchen den LBS bei mir einzubinden und mit in EDOMI einiges anzeigen lassen. Hat jemand mal Lust einen Screen der Visu zu Posten als Anregung bzw. Ideee für mich...? :-)

                            Kommentar


                              #59
                              Nach meinen Erfahrungen (siehe oben) rate ich Dir von der Lösung ab; nutze lieber die ModBus-Lösung. Die läuft bei mir bislang hochfrequent und verlässlich.

                              Kommentar


                                #60
                                Leider hat nicht jeder SMA Wechselrichter einen ModBus. Ist der LBS im Downloadbereich eigenlich der Aktuellste bei mir endet der Eingang bei E7 in #55 wird noch E8 gezeigt.

                                Kommentar

                                Lädt...
                                X