Neues Plugin: SMA 2 Loxone

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Prof.Mobilux
    Supermoderator
    • 25.08.2015
    • 4700

    #1

    Neues Plugin: SMA 2 Loxone

    Hallo zusammen,

    mit dem Plugin können Geräte des Herstellers SMA (Wechselrichter, Energy Meter, Sunny Home Manager 2) ausgelesen und die Werte an den Miniserver gesendet werden. Es ist eine Alternative zur Auslesung per Modbus/TCP und (soll) mehr Daten als die Modbus-Schnittstelle zur Verfügung stellen (z. B. Daten der einzelnen Strings).

    Alle Werte werden per MQTT übertragen und über das MQTT Gateway an den Miniserver gesendet. Das Plugin funktioniert nur unter Debian Bookworm, es muss also ein aktueller LoxBerry V3 sein, der bereits auf Debian Bookworm (Debian 12) läuft.

    Das Plugin nutzt dabei die Library von https://github.com/littleyoda/pysma

    Unterstützte Geräte:
    • Geräte mit Webconnect-Interface
    • Geräte basierend auf ennexOS (z. B. die Tripower X Serie)
    • SMA Energy Meter (EMETER-10, EMETER-20) und Sunny Home Manager 2.0 (hm-20/shm2)
    • Alle SMA Geräte über Speedwire - ohne Verschlüsselung (mit reduziertem Umfang an Werten)
    Vom Autor der Library und von mir erfolgreich getestete Geräte:
    • Tripower X (STP XX-50) (12,15,25)
    • Sunny Tripower Smart Energy (10.0)
    • Sunny Boy Storage (SBS3.7-10, SBS5.0-10)
    • Energy Meter 2 (EMTER 20)
    • Sunny Home Manager 2 (SHM2)​​​​
    Ich selbst besitze nur einen Tripower X - 12, kann daher zu anderen Geräten nichts sagen.

    Download im Wiki: https://wiki.loxberry.de/plugins/sma2loxone/start

    Viel Spass damit!
    🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


    LoxBerry - Beyond the Limits

  • buki
    Smart Home'r
    • 17.05.2017
    • 80

    #2
    Das werde ich gerne mal mit meinem STP10 (ohne smart energy) und emter20 ausprobieren. Bisher alles via modus tcp angebunden. Werte vermisse ich so eigentlich keine, werde es trotzdem mal so versuchen.

    Kommentar

    • Prof.Mobilux
      Supermoderator
      • 25.08.2015
      • 4700

      #3
      Danke!

      Bei mir ist Modbus aktuell noch nicht freigeschaltet - streite mich noch mit dem Solateur um das Installer Passwort Daher kann ich es noch nicht vergleichen. Hab gelesen, dass per Modbus die Leistungsdaten der einzelnen Strings nicht aus dem TriPower kommen, sondern nur die Gesamtleistung. Da ich die Leistung der Strings gerne einzeln hätte (zur Bestimmung der Solarstrahlung), hab ich das Plugin mal zusammengebastelt.
      🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


      LoxBerry - Beyond the Limits

      Kommentar


      • buki
        buki kommentierte
        Kommentar bearbeiten
        ich habe das heute kurz geprüft. ich kann hier via modbus tcp für beide strings jeweils die werte current/voltage/power (A/V/W) seperat lesen. Also 6 Werte bei zwei Strings, A mit drei kommastellen, Volt mit einer. Watt nur ganzzalig.
    • buki
      Smart Home'r
      • 17.05.2017
      • 80

      #4
      Das funktioniert soweit tadellos. Der EnergyMeter 2 und der Loxberry befinden sich zusammen im selben VLAN/Link. Ich vermute dies müsste aufgrund der Multi-Cast Komunikation eine Vorbedingung sein. Der Sunny Tripower 10 (STP10.0-3AV-40) hängt am LAN Kabel und konnte mit der Speedwireinv eingebunden werden. Wichtig dabei, "user" ist case-sensitiv und muss mit kleinbuchstaben eigegeben werden. "User" funktioniert nicht. Ich schreibe dies, weil beim Weblogin am Tripower "User" ausgewählt wird. Die Daten stimmen mit denen, die ich mittels Modbus TCP ermittle überein, aber man muss sich nicht um die Register, Registerreihenfolgen, signed, unsigned, validierungen etc kümmern. Die Werte kommen via MQTT. Fertig und gut. Meines erachtens eine sehr gelungene Sache. Danke. Ich werde es weiter beobachten und dann vielleicht mal umbauen.


      Bei mir sieht es jetzt so aus:
      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 622
Größe: 40,1 KB
ID: 435669

      Kommentar

      • buki
        Smart Home'r
        • 17.05.2017
        • 80

        #5
        Kleiner Bug, Die Geräte können bei mir momentan nicht enfernt werden
        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 553
Größe: 53,7 KB
ID: 435672

        Kommentar

        • Prof.Mobilux
          Supermoderator
          • 25.08.2015
          • 4700

          #6
          Danke für Dein Feedback und das Testen! Das Löschen schaue ich mir an.
          🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


          LoxBerry - Beyond the Limits

          Kommentar

          • matt_ch
            Azubi
            • 09.06.2024
            • 2

            #7
            Hey Danke, super Plugin.

            Bei meinen WR's über webconnect funktioniert es leider nicht.

            In den Logs steht bei beiden folgendes. Angaben wurden korrekt hinterlegt. Webconnect ist auch auf beiden WR's aktiv.


            20:45:27.360 INFO: Running for Device SUNNY TRIPOWER 10.0

            20:45:27.748 ERROR: Could not start session: Login URL not found, try using HTTPS

            20:45:27.748 CRITICAL: Authentication failed!

            und


            20:51:23.164 INFO: Running for Device SUNNY TRIPOWER 10.0 SE

            20:51:23.685 ERROR: Could not start session: Login URL not found, try using HTTPS

            20:51:23.685 CRITICAL: Authentication failed!

            Gruss

            Kommentar


            • Prof.Mobilux
              Prof.Mobilux kommentierte
              Kommentar bearbeiten
              Jo, falsche Authentifizierung. Steht doch da. User/Passwort falsch.

            • matt_ch
              matt_ch kommentierte
              Kommentar bearbeiten
              Das seh ich selbst Wenn falscher username dann steht das auch in den Logs. Habe ich schon probiert. Das Passwort stimmt auch, da ich mich damit per Webinterface am WR anmelden kann.
          • Prof.Mobilux
            Supermoderator
            • 25.08.2015
            • 4700

            #8
            Mmmhh, dann kann ich nicht helfen. Laut Doku nutzt der "Tripower (STP XX) (8,10)" das Protokoll "speedwireinv", während der "Sunny Tripower Smart Energy (10.0)" "webconnect" nutzt. Keine Ahnung ob da eventuell webconnect bei Deinem WR nicht geht... Schreibst leider nicht welchen Tripower Du genau hast (oder ich hab's überlesen).

            Du könntest mal das Originalskript testen und wenn das auch nicht geht einen Bugreport beim Originalprojekt machen.

            Skript: https://github.com/littleyoda/pysma/...pts/pysma2mqtt
            Issues: https://github.com/littleyoda/pysma/issues​
            🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


            LoxBerry - Beyond the Limits

            Kommentar


            • matt_ch
              matt_ch kommentierte
              Kommentar bearbeiten
              ok, danke.
              Habe einen STP10.0-3SE-40 und STP10.0-3AV-40 welche beide Weconnect supporten. Wenn ich Webconnect auf dem WR deaktiviere, dann geht z.B. die SMA Energy app nicht mehr.. Scheint also zu funktionieren.

              Werde dann aber bei Gelegenheit wie du gesagt hast, mal das Originalscript testen.

            • Prof.Mobilux
              Prof.Mobilux kommentierte
              Kommentar bearbeiten
              Vielleicht gibt es da irgendwelche Versionsunterschiede. Das Readme sagt auf jeden Fall, dass für den STP "speedwireinv" genutzt werden soll. Hast Du das mal probiert?
          • AlexAn
            Lebende Foren Legende
            • 25.08.2015
            • 4295

            #9
            Eventuell werden die Zugangsdaten mit Sonderzeichen anders aufgelöst. Da könnte eine Umstellung auf einen neuen Benutzer helfen was ja ohnehin nicht schaden kann zu differenzieren!
            Zuletzt geändert von AlexAn; 14.07.2024, 10:58.
            Grüße Alex

            Kommentar


            • matt_ch
              matt_ch kommentierte
              Kommentar bearbeiten
              'speedwireinv' habe ich probiert, geht aber auch nicht. Würde mich auch sehr erstaunen, da der WR nur über LAN angeschlossen ist und nur per Speedwire mit dem EnergyMeter spricht.

              Betreffend Passwort - Habs probiert aber Sonderzeichen werden gemäss WR policy immer gefordert.
              Lower case
              Upper case
              Number
              Special characters ?_!-
              8-12 characters

            • Prof.Mobilux
              Prof.Mobilux kommentierte
              Kommentar bearbeiten
              Und wieso sollte das dann nicht gehen? LoxBerry und WR sind im selben LAN? Speedwire Verschlüsselung ausgeschaltet?

            • buki
              buki kommentierte
              Kommentar bearbeiten
              AlexAn Hast du einen SMA STP10? Die idee mit dem seperaten (API) benutzer ist absolut ok, nur ist es so, dass es bei SMA genau zwei user gibt:
              user
              installer
              ... fertig. Jedenfalls bei meinem.
          • matt_ch
            Azubi
            • 09.06.2024
            • 2

            #10
            Es ginge schon. Speedwire ist auch aktiv da der WR mit dem Enerymeter darüber spricht. Verschlüsselung aus.

            Kommentar

            • buki
              Smart Home'r
              • 17.05.2017
              • 80

              #11
              matt_ch Anbei ein screeshot meier STP10 konfig, vielelicht hilft es. Ich verwende speedwireinv (webconnect geht hier auch nicht, ich bekomme die selben fehlermeldungen wie du)
              Bei mir ist WLAN aus und der WR hängt am LAN (sie nennen es speeedwire) mit fixer IPv4.
              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 539
Größe: 57,7 KB
ID: 436770
              Angehängte Dateien

              Kommentar


              • matt_ch
                matt_ch kommentierte
                Kommentar bearbeiten
                Ja genau so sieht es auch bei mir aus. Sehr komisch. Werde es sobald ich Zeit finde auch mal noch mit dem Originalscript testen. Danke
            • swante7653
              Azubi
              • 14.01.2022
              • 3

              #12
              Ich bin der Author der pysmaplus-Library.

              Da es wohl etwas Verwirrung bzgl. den verschiedenen Interfaces gibt, habe ich sie in der FAQ zusammengefasst:
              (FORK for Developement). Contribute to littleyoda/pysma development by creating an account on GitHub.


              Kurzfassung: webconnect benutzt den eingebauten Webserver des Wechselrichters und nicht die webconnect Schnittstelle. Webconnect beschreibt somit eigentlich nur eine Generation von Geräten.

              Speedwire hat eine Vielzahl von Unterprotokollen.
              "speedwireinv": Es wird von fast jedem SMA-Gerät unterstützt[1] und kann die Messwerte via UDP-basiert abrufen. (Wird auch vom Sunny Explorer genutzt)
              "energymeter": Der SHM nutzt ein eigenes Unterprotokoll und verschickt die Daten per Multicast.


              Bei den webconnect Problemen, ist wahrscheinlich die folgende Fehlermeldung die entscheidende:
              "Could not start session: Login URL not found, try using HTTPS"
              Falls möglich, sollte dem Skript in diesem Fall "https://<ip-Adresse>" statt nur der ip-Adresse übergeben werden.
              Keine Ahnung, wie es bei diesem Plugin funktioniert. Bei meiner Home-Assistant Integration, kann der User wählen, ob er http oder https nutzen will.



              [1] (Ausnahmen/Einschränkungen beim SHM bzw. EM10/20)
              Zuletzt geändert von swante7653; 15.07.2024, 20:30.

              Kommentar

              • Prof.Mobilux
                Supermoderator
                • 25.08.2015
                • 4700

                #13
                Hallo swante7653!

                Danke Dir für Deine Erklärungen! Wir übergeben eigentlich weder http noch https mit, sondern lediglich die reine IP bzw. den Hostnamen, so wie Du das hier auch gemacht hast:

                (FORK for Developement). Contribute to littleyoda/pysma development by creating an account on GitHub.


                Ich habe im Endeffekt Dein Skript benutzt und es nur so umgebaut, dass die Commandline Parameter aus einer JSON Config gelesen werden. Mir hat nicht gefallen, dass sonst alle Passwörter in der Processliste im Klartext für jedermann lesbar sind (ps aux). Ansonsten ist es aber Dein Skript.



                Der Parameter "url" enthält dabei nur die IP, ohne http oder https. Mit ennexos funktioniert das bei mir auch einwandfrei (mit Deinem Skript als auch mit unserem modifizierten Skript).

                VG
                MIcha
                Zuletzt geändert von Prof.Mobilux; 16.07.2024, 09:58.
                🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                LoxBerry - Beyond the Limits

                Kommentar

                • Prof.Mobilux
                  Supermoderator
                  • 25.08.2015
                  • 4700

                  #14
                  swante7653 Hab mir jetzt Deine FAQ auch nochmal durchgelesen - und bin jetzt etwas verwirrt, welche Zugriffsmethoden es überhaupt gibt. Ich hatte mir (ich glaube auch aus Deinem Skript) folgende Methoden abgeschaut:
                  • ennexos
                  • shm2
                  • speedwireem
                  • speedwireinv
                  • webconnect
                  Wenn ich die FAQ richtig verstehe wurde "speedwireem" und "shm2" genmeinsam ersetzt durch "energymeter"? D. h. die alten Methoden gibt es nicht mehr und für alle Geräte nutzt man "energymeter"?
                  🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                  LoxBerry - Beyond the Limits

                  Kommentar

                  • swante7653
                    Azubi
                    • 14.01.2022
                    • 3

                    #15
                    oh je. Ich sehe schon, Dokumentation ist verbesserungswürdig.

                    1.) "Der Parameter "url" enthält dabei nur die IP, ohne http oder https."

                    Wenn nur nur die IP-Adresse übergibst, versucht er eine http Verbindung aufzubauen.
                    Wenn du jedoch "https://<ip>" übergibt, versucht er eine https Verbindung aufzubauen.
                    Im Home Assistant frage ich den User, ob er eine SSL-Verbindung möchte und packe dann ein "https://" vor die übergebene IP-Adresse.
                    Ich weiß jetzt nicht, ob man in deinem Dialog einfach "https://123.345.567.789" eingeben kann.

                    2.) Die Namen sind historisch gewachsen, wurden im Laufe des Wachstums umbenannt und wahrscheinlich noch nicht in allen Dokumentationen überall vereinheitlicht.

                    speedwireem und ganz früher speedwire wurde durch energymeter ersetzt und nur für SHM2 und EM10/20 verwendbar.. (Kommunikation via Multicast)
                    speedwireinv ist für die Kommunikation mit fast alle SMA Wechselrichter (außer SHM2 und EM10/20) verwendbar (Kommunikation via UDP; "inv" => Inverter)

                    shm2 ist sehr spezial. shm2 greift via Modbus (TCP/IP) auf den shm2 zu. Hierfür benötigst du aber eine besondere Freigabe ("Grid Guard Code") von SMA, da dieser Weg normalerweise für Vierteilnetzbetreiber reserviert ist. Über "shm2" bekommst du weniger Informationen als über "energymeter", aber du kannst die Einspeisung steuern.
                    [Warum man dieses Interface evtl. braucht, kann im https://www.photovoltaikforum.com/ nachlesen. Hat mit einer verbuggten SHM2 Firmware zu tun)
                    99,9% der Personen werden shm2 nicht brauchen, sondern sind mit "energymeter" besser bedient.

                    (versuch) eines Entscheidungbaum:

                    SHM2 or EM10/20 => "energymeter"
                    Gerät hat eine Weboberfläche + Gerät der Webconnect-Generation => "webconnect"
                    Gerät hat eine Weboberfläche + Gerät mit ennoxos Betriebssystem (neue Produktserien seit ca. 2022) => "ennoxos"
                    sonst => "speedwireinv"

                    Kommentar

                    Lädt...