Ankündigung

Einklappen
Keine Ankündigung bisher.

Beitrag: Plugin zum Lesen von SMA-Wechselrichtern (Sunnyboy 5000TL-21 getestet)

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

    #91
    Hallo Wil,

    ich habe die aktuelle Version vom Raspbian installiert. Beide Bluetooth Sticks wurde da sofort erkannt und waren ansprechbar. Die Abfrage "uname -a" liefert: "Linux raspberrypi 4.1.7-v7+ #817 SMP PREEMPT Sat Sep 19 15:32:00 BST 2015 armv7l GNU/Linux".

    Der funktionierende Stick ist ein Logilink BT0015.

    Bei mir kommen alle Daten, bis auf die Stromwerte der Strings. Dort wird dauerhaft ein 0 gesendet. Bin aber noch nicht dazu gekommen weiter zu testen. Für die fehlenden Daten bei Dir kann ich Dir leider keine Hilfestellung geben, da ich das auch nur mit Hilfe des Forums und der Suche im Netz hinbekommen habe.

    Deine Logberichte könnten aber darauf hinweisen, dass Dein WR andere Daten / ein anderes Datenformat liefert, als vom Plugin erwartet, oder das Plugin nur Datensalat vom Repeater (ich nehme an ein Bluetooth-Repeater) liest.

    By Eiko

    Kommentar


      #92
      Hallo Eiko,

      mein Stick ist ein Belkin F8T017 der mit SBFspot unter Linux wohl nicht funktioniert, deshalb habe ich mir einen neuen bestellt.
      https://sbfspot.codeplex.com/wikipag...=Documentation
      allerdings bekommt er einige Daten mit.
      es liegt höchstwahrscheinlich nicht am Repeater, weil ich das ganz bei meinem Sohn mit zwei unterschiedlichen SMA Wechselrichtern getestet habe, dort sehe ich das gleiche Verhalten und die gleichen Fehlermeldungen; jetzt warte ich erst mal auf den neuen stick und die nächsten Testergebnisse.

      Gruß Wil

      Kommentar


        #93
        hat alles nichts gebracht.
        hier nochmal ein aktuelles log ( als Anlage komplett ); kann denn wirklich niemand helfen ?
        Code:
         2015-12-18 13:54:44,021 INFO sma sma: via bluetooth connected to 00:80:25:2B:E3:82 -- __init__.py:run:245
          2015-12-18 13:54:44,168 INFO sma sma: own bluetooth address: 00:80:25:1d:2a:0e -- __init__.py:_inv_connect:553
          2015-12-18 13:54:44,231 WARNING sma sma: rx: wrong dst addr -- __init__.py:_recv_smanet1_msg:430
          2015-12-18 13:54:44,236 WARNING sma sma: no SMANET2 msg -- __init__.py:_recv_smanet2_msg:466
          2015-12-18 13:54:44,242 WARNING sma sma: recv: len=30 / data=[0x00 0x00 0x00 0x00 0x00 0x00 0x0e 0x2a 0x1d 0x25 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00] -- __init__.py:_recv_smanet2_msg:467
          2015-12-18 13:54:44,357 WARNING sma sma: rx: wrong dst addr -- __init__.py:_recv_smanet1_msg:430
          2015-12-18 13:54:44,363 WARNING sma sma: no SMANET2 msg -- __init__.py:_recv_smanet2_msg:466
          2015-12-18 13:54:44,368 WARNING sma sma: recv: len=0 / data=[] -- __init__.py:_recv_smanet2_msg:467
          2015-12-18 13:54:44,374 ERROR sma sma: establishing connection to inverter failed - 'NoneType' object is not subscriptable -- __init__.py:run:260
        und wenn ich die Prüfung aus-sterne, sieht es so aus:
        Code:
         2015-12-18 14:25:52,200 INFO sma sma: via bluetooth connected to 00:80:25:2B:E3:82 -- __init__.py:run:245
          2015-12-18 14:25:52,276 INFO sma sma: own bluetooth address: 00:80:25:1d:2a:0e -- __init__.py:_inv_connect:553
          2015-12-18 14:25:52,451 WARNING sma sma: no SMANET2 msg -- __init__.py:_recv_smanet2_msg:466
          2015-12-18 14:25:52,459 WARNING sma sma: recv: len=115 / data=[0x00 0x00 0x00 0x00 0x00 0x00 0x0e 0x2a 0x1d 0x25 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x7e 0xff 0x03 0x60 0x65 0x7d 0x33 0x80 0x82 0xe3 0x2b 0x25 0x80 0x00 0x00 0x00 0x66 0x00 0xc7 0x1e 0x22 0x0a 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x80 0x01 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xff 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x66 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x28 0x00 0x0a 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xae 0xbe 0x7e] -- __init__.py:_recv_smanet2_msg:467
          2015-12-18 14:25:52,603 INFO sma sma: inverter serial = 170008263 -- __init__.py:_inv_login:626
          2015-12-18 14:25:52,609 DEBUG sma Item Wechselrichter.MAC_Adresse = 00:80:25:2B:E3:82 via SMA 170008263 None -- item.py:__update:363
          2015-12-18 14:25:52,616 DEBUG sma Item Wechselrichter.Seriennummer = 170008263 via SMA 170008263 None -- item.py:__update:363
          2015-12-18 14:25:52,622 DEBUG sma sma: requesting 0x214800-0x2148ff... -- __init__.py:_inv_send_request:649
          2015-12-18 14:25:52,729 INFO sma sma: inverter timestamp = 1450445152s / host timestamp = 1450445152s / diff = 0s -- __init__.py:run:275
          2015-12-18 14:25:52,735 DEBUG sma SMA next time: 2015-12-18 14:26:04+01:00 -- scheduler.py:_next_time:289
          2015-12-18 14:25:54,743 DEBUG sma sma: no msg... -- __init__.py:run:314
          2015-12-18 14:25:55,311 INFO hello Hello World! -- hello.py:<module>:3
          2015-12-18 14:25:55,318 DEBUG env_init Item env.core.version = 1.0-45-g02cf972+ via Logic None None -- item.py:__update:363
          2015-12-18 14:25:55,314 DEBUG sh.gc Garbage collector: collected 0 objects. -- smarthome.py:_garbage_collection:498
          2015-12-18 14:25:55,324 DEBUG env_loc Item env.location.sunrise = 2015-12-19 08:35:06.932290+01:00 via Logic None None -- item.py:__update:363
          2015-12-18 14:25:55,355 DEBUG env_init Item env.core.start = 2015-12-18 14:25:55.333300+01:00 via Logic None None -- item.py:__update:363
          2015-12-18 14:25:55,409 DEBUG env_init Item env.system.name = smarthome.local via Logic None None -- item.py:__update:363
          2015-12-18 14:25:55,417 DEBUG env_loc Item env.location.sunset = 2015-12-18 16:30:53.170653+01:00 via Logic None None -- item.py:__update:363
          2015-12-18 14:25:55,461 DEBUG env_init Item env.system.start = 2015-12-18 11:46:09.456664+01:00 via Logic None None -- item.py:__update:363
          2015-12-18 14:25:55,498 WARNING sma sma: rx: unknown src addr -- __init__.py:_recv_smanet1_msg:427
          2015-12-18 14:25:55,527 DEBUG sma sma: no msg... -- __init__.py:run:314
        Gruß Wil
        Angehängte Dateien

        Kommentar


          #94
          Hi,

          ich denk Du musst auf Robert warten, oder jemand anderen mit einer SMA der sich da reinversetzt.

          Bis bald

          Marcus

          Kommentar


            #95
            Hi!

            Ich habe zugegebenermaßen etwas den Überblick verloren:
            merkelnando : Läuft bis auf Strom-Werte? Ok - liefert SBFspot Stromwerte?
            whe : Bitte noch mal ganz klar die Setups schildern:
            1. eigenes Setup, Setup beim Sohn!?
              1. wie viele und welche Inverter jeweils?
              2. jeweils der SMA-Repeater involviert?
              1. funktioniert es mit SBFspot (https://sbfspot.codeplex.com/)
              2. Stand oben ist jetzt mit auskommentierter Adress-Prüfung? (https://github.com/robert-budde/smar..._.py#L426-L431)
            2. dein Log zeigt leider Daten, die ich auch manuell nicht dekodieren kann - scheinbar hat der Repeater noch ein paar Spzialitäten außer der Adresse... - siehe 2.0...

            Ich befürchte ohne die Kombination Python-Programmierer + Repeater wird das ein Ding der Unmöglichkeit... Was noch denkbar wäre - evtl. kann der Wechselrichter mehrere Verbindungen gleichzeitig verwalten - dann halt ein Beaglebone/was anderes + BT-Stick direkt daneben und DIREKT VERBINDEN und den Repeater eben für Sunny-Explorer etc.

            Grüße
            Robert

            Kommentar


              #96
              Hallo Robert,

              die Stromwerte kriege ich auch. Ich hatte nur Probleme mit den DPT's in meiner Visu. Bei mir läuft quasi jetzt alles.

              Dankeschön für die Hilfsbereitschaft.

              BY

              Kommentar


                #97
                O.K. Robert,

                dann machen wir es step by step und fangen mit der einfachen Implementierung bei meinem Sohn an:
                dort hängen die Wechselrichter direkt neben dem Zählerschrank mit dem Raspberry.
                den anhängenden Test habe ich mit dem 8000 TL 10 gemacht.
                die Verbindung wird aufgebaut ( nachdem ich Plugin_active auf true setze ).
                Seriennummer und MAC Adresse werden geliefert, jedoch keine Werte.
                beide Prüfungen habe ich auskommentiert.
                was kann ich denn sonst noch unternehmen, um Dich bei der Problemlösung zu unterstützen.
                ein paar Python Kenntnisse habe ich schon.

                Gruß Wil

                PS: hier noch mal ein anderes log, das ich tagsüber produziert habe, wenn auch Strom produziert wird.
                Angehängte Dateien

                Kommentar


                  #98
                  Hallo Robert,

                  dies betrifft jetzt meine Umgebung mit dem Repeater.

                  jetzt habe ich mir mal SBFspot installiert ( ganz schön aufwendig ) und siehe da, ich bekomme alle Daten.
                  allerdings muss ich in SBFspot.cfg MIS_Enabled=1 setzen.
                  kann man das irgendwie Deinem Plugin beibringen ?

                  Die Ergebnisse vom SBFspot findest Du in der Anlage: 1 mit MIS_Enabled=0 2 mit MIS_Enabled=1

                  Gruß Wil

                  Hoffe, dass wir jetzt die Kuh vom Eis kriegen.
                  Angehängte Dateien

                  Kommentar


                    #99
                    Hallo Robert,

                    vorhin habe ich mal mit SBFspot die Umgebung bei meinem Sohn ausgelesen.

                    dies betrifft jetzt die Anlage meines Sohnes ohne Repeater.

                    offensichtlich funktioniert der SMA Plugin nur, wenn er über Bluetooth nur ein Gerät erkennt.
                    in der Anlage findest Du das SBFspot.log meines Sohnes.
                    zu seinem SMA Environment gehören 2 SMA-Wechselrichter und 2 SMA-Steckdosen.
                    die Steckdosen kann ich rausnehmen, dann belieben aber immer noch zwei Geräte (die beiden WR).
                    die MAC-Adresse nutz in der Kommunikation sehr wenig, egal, welche ich angebe ( es muss eine vorhandene sein ) der Plugin bekommt offensichtlich immer die Daten von allen Bluetooth teilnehmen.
                    Ich gehe mal davon aus, dass deshalb der Plugin aus den Schienen springt.
                    Am Abend werden wir auch mal einen WR ausschalten, um die Vermutung zu bestätigen.

                    Als nächstes werde ich jetzt mal mit einem Sniffer den Datenstrom analysieren.
                    vielleicht kann ich unser Problem auch alleine lösen.

                    Gruß Wil
                    Angehängte Dateien

                    Kommentar


                      whe Ok, ich denke deine Diagnose, dass das Plugin nur mit einem Wechselrichter klar kommt, wird leider zutreffend sein. Scheinbar hat SBFspot das ganze ab Version 2.0.6 auch erkannt und entsprechende Erweiterungen (eben dein MIS_enabled) eingebaut. Ein Blick in den Sourcecode (https://sbfspot.codeplex.com/downloads/get/1488527), Datei SBFspot.cpp, Zeilen 1063ff zeigt auch, dass dort anhand weiterer Parameter mehrere Inverter "gleichzeitig" behandelt werden müssen.

                      Das Setup mit mehreren Invertern kann ich hier natürlich unmöglich nachstellen - daher kann ich an dieser Stelle nicht helfen. Ich würde dir empfehlen, dich mit dem Plugin/Python vertraut zu machen und zu versuchen, das Handling wie es SBFspot in dem oben von mir referenzierten Code nachzuahmen. Evtl. können wir/kannst du dann das Plugin entsprechend für mehrere Inverter erweitern. Der SBFspot Code sieht nicht zu komplex aus, trotzdem muss man es vor Ort testen.

                      Die Doku werde ich vorläufig um einen Hinweis, dass das Plugin nur mit einem einzelnen Inverter klar kommt, ergänzen.

                      Viele Grüße
                      Robert

                      Kommentar


                        Hallo Robert

                        vielen Dank für die schnelle Bestätigung, ich werde trotzdem noch ein paar Tests durchführen, schließlich kann ich den Repeater ausschalten, sodass ich auch eine Umgebung mit einem SMA Gerät bei mir testen kann. Vielleicht kann ich den Plugin auch überlisten und ein paar IDs hart setzen ( zum Testen ).
                        Meine Programmierkenntnissen sind leider bescheiden; ich beherrsche werde C++ noch Python; da wird dann wohl viel Zeit vergehen; es sei denn Du hast ein paar Code-Beispiele für mich; testen kann ich das natürlich.
                        müssen wir die Diskussion hier fortsetzen ? sollen wir das offline machen, bis wir erste Ergebnisse haben, oder soll ich einen neuen Thread aufmachen ?

                        Gruß Wil

                        Kommentar


                          Hallo Robert

                          sorry, aber das ist ein unmögliches Unterfangen sich als Laie in Deinen Code einzuarbeiten.
                          ich weiß noch nicht einmal, wie ein PlugIn in Smarthome aufgebaut ist und wie es integriert ist.
                          und wie gesagt, ich kenne weder C++ noch Python. Auch die Codes die SMA da hin und her sendet, kann ich nicht interpretieren.
                          Ich habe zwei logs erstellt, die eigentlich alles enthalten müssten, was da so an Trafik hin und her geht.

                          ich kann nur auf eine Art zu einem Ergebnis kommen, wenn Du mir ein paar Code Anpassungen machst und ich das dann teste.
                          Du müsstest mir bitte erklären was an welcher Stelle in Deinem Code passieren soll und ich teste es mittels debug.

                          Gruß Wil
                          Angehängte Dateien

                          Kommentar


                            Hallo,

                            ich kriege bei Verwendung des Plugins einen OSError: [Errno 93] Protocol not supported. Es tritt hier auf:
                            self._btsocket = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)

                            Ideen?

                            Das Ganze läuft aktuell auf einem raspi3. Bluetooth auf higher Level geht mit Python, bspw um Xiaomi Pflanzensensoren auszulesen.

                            VG,

                            René

                            Kommentar


                              Problem nun gelöst.. das o.g. war lokales Problem auf dem Raspi..

                              Ich hatte dann auch den Effekt aus Post #80 und habe die drei Zeilen auskommentiert. Nun läuft alles wunderbar.

                              Update: naja nicht ganz, das log flutet mit sma: rx: unknown src addr... evtl weil ab und an die Verbindung weg ist, da der Raspi oben, und der WR im Keller stehen. Updates kommen aber trotzdem rein..
                              Zuletzt geändert von psilo; 26.12.2016, 10:47.

                              Kommentar


                                deshalb habe ich den Repeater dazwischen, aber dann funktioniert das Ganze nicht mehr, weil der Plugin nicht mehrere Geräte unterscheiden kann.
                                deshalb geht das Ganze auch nicht, wenn man mehrere Wechselrichter hat oder SMA-Steckdosen benutzt.
                                Hat noch niemand versucht den Plugin auf MIS_Enabled=1 umzubauen ?

                                Kommentar

                                Lädt...
                                X