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

    #31
    Ich nutze den SMA HM für das Energiemanagement da ich für KNX keine Alternative gefunden habe die eine Wettervorschau beinhaltet und die Daten so schön darstellt. Der HM regelt bei mir die Wärmepumpe (SG Ready über KNX), die Waschmaschine, Trockner, Spülmaschine und noch ein paar Kleinteile direkt über SMA Steckdosen. Gerade habe ich noch eine Mennekes Amtron Autoladestation mit eingebunden.

    Mich stört ebenfalls am meisten, dass der HM eine ausser Haus Lösung ist. Daher wäre es zumindest schön wenn ich die Dosen zumindest im KNX schalten könnte.

    Kommentar


      #32
      naja, ich fand, dass die meisten Verbraucher unausweichlich sind und habe daher keinen Mehrwert gesehen, überhaupt per Solarertrag zu schalten. Mit Der PV-Anlage habe ich meinen Verbrauch bereits um >30% reduziert, mit der Li-Batterie (zur Zeit 6kWh) um weitere 30%, so dass ich nun rund 65-70% unter meinem früheren Verbrauch bin (über das Jahr; im Winter natürlich schlechter, im Sommer dafür manchmal über Tage komplett autark).

      So habe ich den Mehrwert schlicht nicht mehr gesehen. Denn Warmwasser brauche ich - so oder so. Und daher schalte ich die WW-Wärmepumpe stets um die Mittagszeit an mit der höchsten Wahrscheinlichkeit für einen PV-Überschuss. Mit der im Wasser gespeicherten Solarenergie komme ich gut bis zum nächsten Tag. Aber ich brauche ja auch WW bei Regen und Sturm; daher zeitgesteuert. Die Wärmepumpe in der Lüftung (im Winter) ist ebenfalls unausweichlich. Gleiches für Waschmaschine, Trockner und Spülmaschine: Wird ja gebraucht - egal, ob die Sonne scheint oder nicht. Und wenn sie scheint, habe ich meist soviel Überschuss, dass es egal ist, ob ich 1h nach Sonnenaufgang oder Mittags starte. Daher hier: starten wir manuell z.B. morgens z.B. mit 4h Zeitvorwahl. Hohe PV-Wahrscheinlichkeit um die Mittagszeit, das empfanden wir als hinreichend.

      Anders gesagt: Ich habe die Wettervorhersage von SMA HM nie ganz verstanden, da ich entweder etwas brauche oder nicht. Ich schalte ja meist nichts an, nur weil gerade Sonne da ist. Okay, das hakt etwas, wenn die Vorhersage weiß, dass es nachmittags sonnig wird und mein WW Mittags ohne PV startet. Okay, aber der Aufwand.... ich bin so weit runter mit dem Verbrauch, das fand' ich schon prima. Und die Batterie bügelt ohnehin Wolken-Pausen für mich aus. Dafür braucht man keine große Batterie, dafür reichen schon 2kWh

      Lange rede, kurzer Sinn: Nein, ich weiß nicht, ob man an die Schalt-Vorhersagen im SMA Portal kommt. Aber ich halt es für möglich. Mit dem LBS kommst Du ja rein; danach musst Du mal mit firefox und der Netzwerkanalyse schauen, was Du da noch so findest. Das JSON-Auslesen der Vorhersage ist vielleicht so möglich: vielleicht hat google ja auch dazu ein paar gute Infos von anderen mit der gleichen Frage. Falls Du kein JSON findest, musst Du Dir die Infos, die Du suchst aus dem GET heraus parsen. Wie das grundsätzlich geht (Textmuster finden), findest Du z.B. für "timestamp" auch schon im LBS als Arbeitsvorlage. Wie gesagt: Firefox und das Netzwerkanalyse-Werkzeug liefert alles, was man dafür braucht.

      So oder so - der LBS sollte ein guter Einsteig/Kopiervorlage sein, aus der Du einen LBS bauen kannst, der die Vorhersage ausliest.

      Viel Erfolg dabei
      Carsten

      Kommentar


        #33
        Hallo zusammen,

        funktioniert denn der Baustein bei Euch?
        Ich habe seit einer Woche eine PV Anlage mit SMA WR und Home Manager. Die Darstellung im Web-Portal funktioniert einwandfrei.

        In Edomi bekomme ich den Baustein nicht zum Laufen. ​​​​​
        Beim Aktivieren des Projekts kommt nach dem Edomi-Start die Fehlermeldung im Anhang.
        ​​​​​ Studio_20171005_210707.jpg ​​​​​​

        Was mache ich falsch?
        Angehängte Dateien

        Kommentar


          #34
          Das „writeToTracelog“ musst Du im LBS auskommentieren, das geht ab Edomi 1.52 nicht mehr.

          Kommentar


            #35
            Alternativ Andres Hilfsbaustein 19001192 zusätzlich benutzen, bis saegefisch seinen Baustein mal angepasst hat.
            Gruß Andreas

            -----------------------------------------------------------
            Immer wieder benötigt: KNX-Grundlagen PDF Englisch, PDF Deutsch oder
            Deutsche Version im KNX-Support.

            Kommentar


              #36
              Ok, danke für die Hilfe. Habe die Zeile auskommentiert.
              Erhalte aber trotzdem keine Daten :-(
              Hat das LBS momentan jemand erfolgreich in Betrieb?

              Kommentar


                #37
                Melde mich nach krankheitsbedingter langer Zwangspause zurück... sorry, dass es so lange gedauert hat.

                LBS habe ich jetzt vom alten Log befreit, aber tatsächlich bekomme ich derzeit auch keine Daten mehr. Der Login scheint zu klappen, aber das Abholen der Daten liefert ein stets altes JSON vom letzten Login-Zeitstempel mit leeren Daten. Macht die gleichen Schritte im Browser, wird ein korrekter JSON zurück geliefert. Mir schient fast, dass SMA etwas Kleines, aber Feines an der Abhollogik geändert hat:

                1.) Aufrufen "https://www.sunnyportal.com/Templates/Start.aspx" und mit Zugangsdaten des edomi-SMA-Users einloggen
                2.) Abholen des JSON mit "https://www.sunnyportal.com/homemanager"

                Code:
                {"__type": "LiveDataUI", "Timestamp": { "__type": "DateTime", "DateTime": "2017-10-12T19:32:35", "Kind": "Unspecified" },"PV": 0,"FeedIn": 0,"GridConsumption":  3308,
                [...]
                Ich analysiere gerade, warum mir der LBS derzeit hingegen liefert:
                Code:
                [FONT=arial][COLOR=#393930]{"__type":"LiveDataUI","Timestamp":{"__type":"DateTime","DateTime":"2017-10-12T19:18:02","Kind":"Unspecified"},"PV":null,"FeedIn":null,"GridConsumption":null,"[/COLOR][/FONT]


                Sobald der LBS wieder Daten liefert, gibt es eine Version 1.3 zum Download

                Kommentar


                  #38
                  Super, vielen Dank!
                  Bin ja schonmal beruhigt, dass ich nichts falsch gemacht habe ;-)

                  Kommentar


                    #39
                    Frage in die Runde zu JSON per cURL in PHP:

                    Bislang hat folgende Vorgehen funktioniert. Möglicherweise hat SMA etwas geändert:
                    • Der LBS versucht stets den billigsten Weg einer direkten GET-Abfrage der JSON-Daten. Wenn der nicht erfolgreich ist, dann wird der Login-Prozess (per POST) über eine anderes Seite prozessiert, um dann in Folge wieder solange den GET des JSON-Daten zu versuchen, bis der Server die Session beeendet hat (nach 1-2h) und ein erneuter Login nötig ist. Die JSON-Abfrage dauert nur 10-20ms und kann problemlos minütlich durchgeführt werden; einen minütlichen kompletten login möchte ich nicht als work-arround für folgende Frage...enn aktuell geht das Vorgehen nicht mehr:
                    • Der erste GET nach dem Login liefert tatsächlich aktuelle Daten
                    • Alle folge-GET-Abfragen liefern nun immer wieder die selben JSON-Daten, obwohl curl_getinfo mir einen http-code = 200 zurück liefert und auch leicht differierende Laufzeiten. Der GET scheint also erfolgreich durchgeführt zu sein.

                    Links die Ausführungszeit, rechts der immer gleiche JSON vom letzten Login von rund 1h früher...
                    Code:
                    2017-10-12 22:32:00    101507    9119    2    Gestartet (Tracelevel 3)...
                    2017-10-12 22:32:00    215287    9119    3    CURL_ERRNO 1: 0
                    2017-10-12 22:32:00    215553    9119    3    CURL_INFO 1: CURLINFO_HTTP_CODE:200| CURLINFO_TOTAL_TIME:0.113108| CURLINFO_SIZE_DOWNLOAD:569
                    2017-10-12 22:32:00    216089    9119    3    JSON:{"__type":"LiveDataUI","Timestamp":{"__type":"DateTime","DateTime":"2017-10-12T21:34:01","Kind":"Unspecified"},"PV":0,"FeedIn":0,"GridConsumption":992,"DirectConsumption":0,"SelfConsumption":0,"SelfSupply":0,"TotalConsumption":992,"DirectConsumptionQuote":null,"SelfConsumptionQuote":null,"AutarkyQuote":0,"BatteryIn":0,"BatteryOut":0,"BatteryChargeStatus":26,"OperationHealth":null,"BatteryStateOfHealth":null,"ModuleTemperature":null,"EnvironmentTemperature":null,"WindSpeed":null,"Insolation":null,"InfoMessages":[],"WarningMessages":[],"ErrorMessages":[],"Info":{}}
                    2017-10-12 22:32:00    221127    9119    2    Abgeschlossen!
                    2017-10-12 22:33:00    216691    9386    2    Gestartet (Tracelevel 3)...
                    2017-10-12 22:33:00    327761    9386    3    CURL_ERRNO 1: 0
                    2017-10-12 22:33:00    327996    9386    3    CURL_INFO 1: CURLINFO_HTTP_CODE:200| CURLINFO_TOTAL_TIME:0.110434| CURLINFO_SIZE_DOWNLOAD:569
                    2017-10-12 22:33:00    328483    9386    3    JSON:{"__type":"LiveDataUI","Timestamp":{"__type":"DateTime","DateTime":"2017-10-12T21:34:01","Kind":"Unspecified"},"PV":0,"FeedIn":0,"GridConsumption":992,"DirectConsumption":0,"SelfConsumption":0,"SelfSupply":0,"TotalConsumption":992,"DirectConsumptionQuote":null,"SelfConsumptionQuote":null,"AutarkyQuote":0,"BatteryIn":0,"BatteryOut":0,"BatteryChargeStatus":26,"OperationHealth":null,"BatteryStateOfHealth":null,"ModuleTemperature":null,"EnvironmentTemperature":null,"WindSpeed":null,"Insolation":null,"InfoMessages":[],"WarningMessages":[],"ErrorMessages":[],"Info":{}}
                    2017-10-12 22:33:00    334115    9386    2    Abgeschlossen!
                    Was kann die Ursache sein, dass ein Server immer wieder die selben JSON-Daten liefert, anstatt die aktuellen? Könnte da ein Cache ursächlich sein (wie prüfen? wiedeaktivieren?)
                    Jemand eine Idee? Gibt es einen curl_setopt-Parameter, der das bedingt oder verhindert? Im Browser funktioniert es (Siehe oben) ganz wunderbar (wenn ich mal annehme, dass Refresh/F5 = GET mit curl entspricht.

                    Danke für jeden Hinweis.

                    Kommentar


                      #40
                      Versuch mal ein "#0815" an die URL zu haengen, wobei "0815" die aktuelle Epochalzeit ist, also "time()". Wenn das Portal nicht allzu zickig ist, koennte das funktionieren.

                      Kommentar


                        #41
                        @Michael: Danke, werde ich mal versuchen
                        Status@all: da beruflich unterwges nicht vor kommendem WE. Verhalten weiterhin für meine Augen kurios. Baue mir gerade erstmal wieder eine Eclipse-Umgebung auf, damit ich den LBS (adjustiert für lokale Ausführung) lokal testen kann - ohne die sonst immer wieder erforderlicher Projektaktivierung von edomi. Bei so einem PHP-cURL-SMA-spezifischen Thema ist das hinderlich.

                        Nachtrag -> FRAGE: Hat jemand cUrl in Eclipse auf einem 64bit-Win10 schon installieret bekommen? Bei mir scheitert die Installation wohl, weil curl nur 32bit kann aus dieser Quelle (URL: http://www.curl.com/cde.update-site.win32/). Install SW -> Add ->..."Cannot complete the install because some dependencies are not satisfiable com.curl.eclipse.cde.win32.en.feature.group [8.0.7001.v2016-03-11-024805-79-GhO7w31270140220135916] cannot be installed in this environment because its filter is not applicable."

                        Hat jemand eine andere Quelle oder eine Lösung, wie man curl installiert bekommt, um derlei effizient in Eclipse lokal zu entwickeln? Oder muss ich mir in einer 32bit-VM ein 32bit-Eclipse dafür installieren?
                        Zuletzt geändert von saegefisch; 15.10.2017, 23:32. Grund: Nachtrag...

                        Kommentar


                          #42
                          Zwischenstatus: Aktuell klappt es mal 5-15h am STück, dann mal wieder kurz nicht oder auch über viele Stunden nicht. Solche Fehler sind blöd zu beseitigen... :-/ Ich kämpfe u.a. mit sporadisch angezeigten PopUp-Fenster (und vielleicht anderem Zeug). Bin auf versteckte Übergabeparameter gestoßen und damit werden dies hoffentlich unterdrückt. Dieses WE leider noch keine Lösung, aber es wird. Nächste Chance am nächsten WE....

                          Und so am Rande:Für alle, die selber mal mit curl in PHP experimentieren/testen/entwicklen wollen, ohne edomi jedes Mal neu zu starten, folgende - recht banale - Lösung:
                          * Plan A: Ich habe viele Stunden erfolglos versucht, curl in eclipse/PDT unter PHP zum laufen zu bringen. Die Installation von CDE (curl) klappt zwar, wenn man eclipse und java JRE 32bit installiert, doch war ich nicht in der Lage, es auch nutzen zu können. Ich bin weiterhin der Meinung, es sollte gehen, aber ich habe es bislang nicht geschafft und gebe auf.
                          * Plan B: Aber wenn man daheim einen NAS stehen hat (oder vermutlich sonstige andere WebServer), dann einfach dort ein PHP anlegen und im Browser ausführen. Habe lediglich meine Funktion "LB_LBSID_writelog" umgebaut, damit sie Ausgabe per echo macht und nun kann ich wohl auf meinem QNAP-NAS mich endlich mit dem eigentlichen inhaltlichen Fehler im LBS beschäftigen...

                          Kommentar


                            #43
                            Hi Leute,

                            ich hätte mir gern den LBS-Quelltext angeschaut (zum üben und verstehen lernen). Ich finde den LBS 19000110 nur nicht hier im Download-Bereich, kann das sein?

                            Viele Grüße

                            Jürgen

                            Kommentar


                              #44
                              Natürlich nicht! Ist ja geheim http://service.knx-user-forum.de/?co...ad&id=19000110

                              Kommentar


                                #45
                                Neuer Zwischenstatus: Weil es stundenweise ging und dann stundenweise mal wieder nicht, habe ich intensiv analysiert mit meiner letzten (internen) Version 1.3. Das Ergebnis hat mich zu einem kompletten Umbau des LBS geführt: Der Login-Prozess ist nun umgestellt und vereinfacht.

                                Lasse den LBS jetzt mal laufen. Wenn am kommenden WE die Woche korrekt ermittelt wurde, sollte es endlich ein neue (öffentliche) Version 1.4 geben können

                                Kommentar

                                Lädt...
                                X