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

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

    Liebe Freunde der gepflegten edomi-Sucht,

    meiner erster LBS für das Forum betrifft alle mit einer PV-Anlage von SMA: Der LBS liest aus dem SunnyPortal die aktuellen Werte aus (z.B: für eine Datenarchiv), die der SMA homemanager dorthin gemeldet hat. Der Baustein liest die PV-Werte, wie auch Werte eines eventuell vorhandenen Speichers. Login und PW sind im Logik-Editor per Eingang zu hinterlegen, im Coding muss man nichts tun. Es ist ratsam, sich dafür im SunnyPortal einen eigenen User mit geringen Rechten anzulegen und vor allem einem eigenen PW, damit man sein wertvollen Admin-Account nicht in edomi hinterlegt. Immerhin kann man mit dem eine Reihe Parameter ändern, die durchaus relevante Auswirkungen haben.

    Zusatzinfos:
    • Der Baustein nutzt im EXEC-Teil "cURL", einen Standard-Bibliothek, die hier einen HTTPS Zugriff inklusive Login und POST-Methode nutzt. Wer also für andere Quellen auch POST-Zugriffe benötigt, kann sich hier bedienen...
    • Man sieht im Baustein auch, dass der 1.Zugriff per POST und Login erfolgt, alle folgenden Zugriffe für das eigentliche Abholen der Werte aber per GET. Das wird so lange versucht, bis der GET-Zugriff wegen abgelaufener Session nicht mehr geht, dann wird automatisch wieder der etwas länger dauernde POST-Weg mit Login gegangen.
    • Der Baustein läuft in dieser Form seit nunmehr 1,5 Wochen bei mir verlässlich.
    • Ich habe im Eingang einen TraceLevel angeboten, mit dem man die Meldetiefe des Bausteins steuern kann. So kann es gelegentlich sein, dass SMA das gelieferte JSON anpasst und der Leseprozess dann nicht mehr funktioniert. In diesen Fällen kurz den LogLevelk hoch setzen, dann wir einem mit TraceLog das Roh-JSON angezeigt und man kann daraus auf Fehlersuche gehen
    • Ich persönlich fände es auch für andere, etwas komplexere LBS ratsam, einen TraceLog-Level einzubauen. Sicher nicht für simple LBS, aber für komplexe LBS lade ich Euch, dies genau so einzubauen. Ich denke, es schadet nicht, wenn die lBS in bestimmten Dingen gleich Ticken. Falls jemand einen bessere Umsetzung sieht: Nur her damit, dann mache ich es gerne auch besser.
      @Christian: Oder sollte man im Befehl einen LogLevel direkt mitgeben können? Dann spart man sich das IF?


    Der Threat soll dazu dienen, über den LBS zu diskutieren und auf diesem Weg mir Verbesserungswünsche oder Probleme zukommen lassen zu können.

    saegefisch edomi LBS SMA 1.JPG

    #2
    Nachtrag: Ich hole derzeit alle 15min ab und als zusätzlichen Trigger, wenn ich in der Visu auf die Seite mit den Werten wechsle. Für eine Datenarchiv wäre vielleicht etwas mit einer Frequenz von 5 oder sogar 1 Minute sinnvoll - wer es denn so eng braucht.
    Der erneute (automatische) Login war bei mir übrigens meist nach 1-1,5h nötig (Sieht man mit TraceLogLevel 1). Kümmern muss man sich darum aber nicht...

    Kommentar


      #3
      Ich persönlich fände es auch für andere, etwas komplexere LBS ratsam, einen TraceLog-Level einzubauen.
      Ich habe diese Funktion kennen- und lieben gelernt :-)
      Danke und LG, Dariusz
      GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

      Kommentar


        #4


        Mein Vorschlag ist noch konkreter in Richtung: Den LogLevel am Eingang mit Default #init=0 bereitstellen, d.h. nur echte Fehlermeldungen. Wer mehr sehen will kann dann im LogikEditor sein Informationsbedürfnis einstellen, OHNE in das Coding zu müssen. Wie gesagt: Bei LBS, wo das Sinn ergibt, nicht bei technisch banalen LBS.

        Kommentar


          #5
          saegefisch
          Selbst auf die Gefahr hin, dass mir gleich der Rest des Forums erklärt, dass ich nur an der einen oder anderen Stelle nur hätte nachlesen müssen, aber wie installiert man (d)einen LBS?

          Kommentar


            #6
            Edomi Ring klicken, rechts bitte auf Verwaltung, danach unten links den Button ...

            EDIT:

            Vorher Edomi Ring klicken, links auf Konfiguration, Logik, Logikbaustein, Community Bausteine, dann oben auf NEU und Copy / Paste ..

            Vorher noch unter edomi.knx-user-forum.de registrieren und den eigenen Nummernreis erhalten ...
            Zuletzt geändert von coliflower; 14.02.2016, 14:34.
            Danke und LG, Dariusz
            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

            Kommentar


              #7
              coliflower
              Danke, aber damit der Baustein importiert werden kann - muss ich die Dateien doch sicher in ein bestimmtes Verzeichnis hinterlegen...

              Kommentar


                #8
                NEIN, du erstellst einen eigenen LBS und kopierst den Code aus den „fremden“ LBS in dein LBS oder JA, du kopierst den LBS in das richtige Verzeichnis „deines“ Edomi … weiß es aber nicht auswendig wo (steht aber sicher in der Anleitung).
                Danke und LG, Dariusz
                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                Kommentar


                  #9
                  Ok - Danke.

                  Kommentar


                    #10
                    Zitat von coliflower Beitrag anzeigen
                    Vorher noch unter edomi.knx-user-forum.de registrieren und den eigenen Nummernreis erhalten ...
                    Mmh, bestimmt lecker

                    Kommentar


                      #11
                      Zitat von KNXFan1970 Beitrag anzeigen
                      coliflower
                      Danke, aber damit der Baustein importiert werden kann - muss ich die Dateien doch sicher in ein bestimmtes Verzeichnis hinterlegen...
                      ...wenn ich nicht falsch liege.......

                      usr/local/edomi/www/admin/lbs

                      Kommentar


                        #12
                        Vielleicht habe da selber etwas nicht verstanden, aber als Nutzer eines LBS aus dem Forum braucht man doch keinen Nummernkreis! Nur wenn man eigenen LBS entwickelt und dem Forum zur Verfügung stellen möchte, braucht man einen Nummernkreis.

                        Als Nutzer aus dem download-Bereich den LBS herunter laden und dann gibt es aus meiner Sicht zwei Möglichkeiten (korrigiert mich, wenn ich falsch liege):
                        • Der einfache, aber schlechtere Weg: Im 19er-Abschnitt des eigenen edomi einfach einen LBS selber anlegen mit der selben(!) Nummer und das Coding 1:1 hinein kopieren
                        • Besser: Den LBS herunter laden, die PHP-Datei in das von Robby genannte Verzeichnis kopieren und dann wie von coliflower notiert in der Verwaltung "Logikbausteine -> importieren"

                        Danach ist der LBS nutzbar.

                        Kommentar


                          #13
                          Zitat von saegefisch Beitrag anzeigen
                          Vielleicht habe da selber etwas nicht verstanden, aber als Nutzer eines LBS aus dem Forum braucht man doch keinen Nummernkreis! Nur wenn man eigenen LBS entwickelt und dem Forum zur Verfügung stellen möchte, braucht man einen Nummernkreis.

                          Als Nutzer aus dem download-Bereich den LBS herunter laden und dann gibt es aus meiner Sicht zwei Möglichkeiten (korrigiert mich, wenn ich falsch liege):
                          • Der einfache, aber schlechtere Weg: Im 19er-Abschnitt des eigenen edomi einfach einen LBS selber anlegen mit der selben(!) Nummer und das Coding 1:1 hinein kopieren
                          • Besser: Den LBS herunter laden, die PHP-Datei in das von Robby genannte Verzeichnis kopieren und dann wie von coliflower notiert in der Verwaltung "Logikbausteine -> importieren"


                          Danach ist der LBS nutzbar.
                          Natürlich sollte der LBS die Nummer bekommen die der Ersteller dem Baustein zugewiesen hat. Dafür ist ja extra der Downloadbereich eingerichtet worden mit klarer Nummernvergabe.

                          Kommentar


                            #14
                            ...und das ist hier für diesen LBS: "19000110" bzw. der LBS im Verzeichnis muss heißen: "19000110_lbs.php"

                            Und noch etwas: Sollte die Anleitung Fragen offen lassen oder nicht klar genug sein, dann lasst mich das bitte auch wissen. Gerne schärfe ich das dann nach... Danke!
                            Zuletzt geändert von saegefisch; 14.02.2016, 19:05.

                            Kommentar


                              #15
                              Einen LBS "installiert" man in der Tat am besten so:

                              Datei in dieses Verzeichnis kopieren: usr/local/edomi/www/admin/lbs

                              Dann: Verwaltung / Logikbausteine importieren

                              Fertig.
                              EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                              Kommentar

                              Lädt...
                              X