Ankündigung

Einklappen
Keine Ankündigung bisher.

SMA_EM Plugin

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

    SMA_EM Plugin

    Hallo,

    ich stelle in den DEV gerade ein Plugin zum Auslesen der Netzwerk Multicasts des SMA Energy Meters ein: https://github.com/smarthomeNG/plugi...develop/sma_em

    Das hier dient als Support-Thread. Die Methode zum Auslesen der Werte wurde mit freundlicher Genehmigung des Autors aus folgendem Github Projekt übernommen: https://github.com/datenschuft/SMA-EM

    Bisher geht es mit 1 EnergyMeter und unterstützt nur einen Bruchteil der möglichen Werte (nämlich Bezug, Einspeisung und cos phi).
    Zuletzt geändert von psilo; 26.12.2016, 16:38.

    #2
    Servus und Danke für das Plugin!

    Funktioniert super

    Gibt es eine Möglichkeit, die aktuelle Gesamt-Erzeugung, den aktuellen Verbrauch (und evtl sogar Batterieladung) zu sehen? Soweit ich das in der SMA-Doku sehen kann, gibt das Protokoll diese Sachen nicht aus, oder? Allerdings wird all das im sunnyportal visualisiert, und ich frage mich, woher das Portal diese Daten bekommt...

    Gruß,
    //Giase

    Kommentar


      #3
      Das Portal / der Home Manager bezieht auch Daten vom Wechselrichter direkt.. nicht nur vom Energy Meter. Ob es noch mehr Daten gibt, musst Du den im README referenzierten Autor des SMA EM Open Source Projekts fragen. Ich verwende mit freundlicher Genehmigung nur Code vom ihm und verpacke ihn als Plugin In aktueller Version kann das Plugin alles, was auch der Originalcode konnte.

      Kommentar


        #4
        Ok, dann schau ich mal ob ich datenschuft auf github direkt erreiche. Ich sage Bescheid wenn's was neues gibt

        Kommentar


          #5
          Ich glaube aber ehrlich gesagt nicht, dass es mehr Daten gibt

          Kommentar


            #6
            Auf Wunsch in https://github.com/smarthomeNG/plugins/issues/319 habe ich eine komplett neue Version des Plugins gerade in den Develop geschoben. Die Version braucht leider auch den neusten DEV Core, da ich am Web Interface bspw. ein Auto Update der Werte eingebaut habe.

            Der Code liegt unter https://github.com/smarthomeNG/plugi...develop/sma_em

            Das Plugin sollte jetzt auch mit neueren Versionen des SMA Energy Meters klarkommen, wie in http://www.eb-systeme.de/?page_id=3005 beschrieben.
            Mangels Hardware bin ich aber auf eure Tests angewiesen. Mit meinem V1 Energy Meter klappt alles.

            Leider musste ich auch die Benennungen der Items anpassen und habe das time_sleep Attribut in der plugin.yaml als cycle neu definiert.
            Grund für die Items: die Attribute im SMA-EM Repository, auf dem ich aufbaue, haben sich geändert:
            https://github.com/datenschuft/SMA-EM

            Es gibt jetzt aber auch eine neue STRUCT für die Items, die verwendet werden kann!
            Zuletzt geändert von psilo; 11.01.2020, 19:10.

            Kommentar


              #7
              Hi,

              Vielen Dank für das update! Ich habe gerade mal versucht, auf develop umzusteigen, aber dann läuft leider gar nix mehr. Muss mal schauen wenn ich Zeit habe, genauer reinzukucken.

              Ich sehe immer wieder folgendes Problem, und ich bin mir nicht sicher, ob das irgendwo getracked ist:
              Code:
              2020-11-17 00:00:20 ERROR plugins.sma_em.update_sma_em Method plugins.sma_em.update_sma_em exception: invalid literal for int() with base 10: '0e'
              > Traceback (most recent call last):
              > File "/usr/local/smarthome/lib/scheduler.py", line 614, in _task
              > obj()
              > File "/usr/local/smarthome/plugins/sma_em/__init__.py", line 167, in _update_sma_em
              > emparts = self.readem()
              > File "/usr/local/smarthome/plugins/sma_em/__init__.py", line 533, in readem
              > emparts = self.decode_speedwire(smainfo)
              > File "/usr/local/smarthome/plugins/sma_em/__init__.py", line 486, in decode_speedwire
              > int(bversion[4:6]))
              > ValueError: invalid literal for int() with base 10: '0e'
              Kannst du mir sagen, ob das mittlerweile auch gelöst ist?

              Danke!
              //giase

              Kommentar


                #8
                Kann ich leider nicht. Bei mir tritt das nicht auf.

                Kommentar


                  #9
                  Das scheint ein Problem mit hex-input zu einer Funktion zu sein, ich kann aber nicht genau sagen wo das '0e' herkommt und ob man das vorher konvertieren könnte.

                  Code:
                  >>> int('0e')
                  Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                  ValueError: invalid literal for int() with base 10: '0e'

                  Kommentar


                    #10
                    Vielleicht auch nur bei bestimmten Energy Metern. Hast du die 2er oder die 1er? ich die 1er..

                    Der Konvertierungscode ist ja 1:1 aus dem SMA EM Projekt übernommen (mit freundlicher Genehmigung des Autors). vielleicht findest du da was
                    https://github.com/datenschuft/SMA-EM

                    Kommentar


                      #11
                      Nicht ganz...
                      Im Plugin steht:
                      Code:
                      version = str(int(bversion[0:2])) + "." + str(int(bversion[2:4])) + "." + str(int(bversion[4:6]))
                      beim Datenschuft findet sich:
                      Code:
                      version=str(int(bversion[0:2],16))+"."+str(int(bversion[2:4],16))+"."+str(int(bversion[4:6],16))
                      Vielleicht probierste das untere mal aus. Also das ,16 ist wohl dazugekommen...

                      Kommentar


                        #12
                        bmx kann seit meinem letzten pull von dort sich geändert haben. am besten probiert es Giase mal aus, dann kann ichs übernehmen

                        Kommentar


                          #13
                          ich teste das mal. bmx hast du alles gegengecheckt ? bzw nen diff gemacht? oder sollte ich das smaem projekt nochmal anschauen?

                          Kommentar


                            #14
                            Ich habe da nicht alles gegengeprüft, mir war nur aufgefallen, das weiter oben die Binärdaten in Hex konvertiert wurde und das sich daher eigentlich ein reines integer auf Basis 10 verbieten müßte. Das kann mit Zahlen von 0-9 funktionieren und daher tritt es bei Dir zum Beispiel nicht auf.
                            Da ich aber den Rest des Codes mangels Hardware nicht prüfen kann, wäre das sinniger wenn Du Dich der Sache annehmen könntest...

                            Kommentar


                              #15
                              ok ich schaue am abend mal!

                              Kommentar

                              Lädt...
                              X