Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS: Abfrage von Modbus TCP via Homeserver

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

    Nicht gründlich genug, danke

    Kommentar


      Ich beschäftige mich gerade zum aller ersten mal mit Modbus und immerhin mit dem Baustein erhalte ich zumindest schon mal Werte.
      Aber ich habe leider keinen Plan mit den ganzen Datentypen.
      Könnte mir jemand sagen, was ich einstellen muss um an diesen Wert (Float32 MSW-LSW) heran zu kommen? (Siehe Anhang)
      Hintergrund: Ich möchte einfach nur von einem Shelly Pro EM den aktuellen Stromverbrauch sehen und da es momentan noch keinen Baustein für IOBroker gibt, versuche ich es jetzt über Modbus HS.
      Den Wert INT16 17364 erhalte ich über den Modbus Baustein. Benötigt wird der float32 MWS LSW Wert

      Vielen Dank!! Modbus1.png




      HAT SICH ERLEDIGT. Ich musste die Adresse 32009 abfragen und dementsprechend umwandeln!!
      Zuletzt geändert von Opelpower; 17.04.2024, 09:27.

      Kommentar


        Victron Cerbo lesen, die Einstellungen sind 1:1 wie in der Victron Doku zu finden zu machen, keine extra Anpassungen nötig!
        grafik.png
        Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

        Kommentar


          Hallo!
          Ich arbeite daran, meine Keba P30c Wallbox per Homeserver (4.12) zu steuern. Aus diesem Thread entnehme ich, dass dies auch schon andere (erfolgreich?) versucht haben. Die beiden Bausteine, um die es in dem Thread geht, sind wirklich toll! Jeder für sich funktioniert. Beide zusammen in einem Projekt funktionieren jedoch nicht - zumindest bei mir.​
          Was mache ich falsch?

          grafik.png

          Special Options hier sind: Sleep500ms, NoKeepAlive

          grafik.png

          Manchmal schon beim Hochfahren, spätestens wenn ich eine Schreibaktion setze, so wird diese problemlos ausgeführt, aber der Reader Baustein liest nicht mehr und liefert nur noch (diverse) Fehler. Auch die Webseite der Wallbox öffnet sich dann manchmal nicht mehr.

          Hat vielleicht jemand von Euch dazu Ideen?

          Danke & schöne Grüße,
          Thomas

          Kommentar


            Hallo Thomas,

            ich habe beide Bausteine mit einer Mennekes Wallbox problemlos im Einsatz, nach mir liegt der Fehler in der "modbus slave id" Einstellung. Diese ist bei dir bei beiden Bausteinen identisch, entsprechend wird es zwischen den Verbindungen Konflikte geben. Versuche mal ein Baustein auf 254 zu setzen. Alles andere sieht nach mir OK aus.

            Viel Glück

            Kommentar


              Hallo,

              Danke für Deine Rückmeldung. Leider klappt das nicht. Die Wallbox braucht explizit 255 (laut Doku).


              grafik.png

              Ich habe den writer Baustein testweise auf 254 gesetzt. Am Reader Baustein kommen aber weiterhin Fehlermeldungen.

              grafik.png

              Kommen sich die Bausteine intern irgendwie in die Quere? Oder lässt sich irgendwie sicherstellen, dass immer nur genau einer mit der Wallbox spricht?

              Danke für Eure Ideen,
              Thomas

              Kommentar


                Broken Pipe ist, wenn die TCP-Verbindung ohne FIN abgebaut wurde.
                Viele Modbus-Implementierungen machen die Verbindung je IP fest. Benutzt man zwei Verbindungen, dann muss man immer neu aufbauen - ein Baustein killt die Andere. Das liegt aber am Gerät und nicht am Baustein. NoKeepAlive ist richtig. Aber da darf kein Leerzeichen drin sein!

                Sleep500ms ist zudem recht lange. Muss das? Würde mal versuchen nur nokeepalive zu setzen.

                Kommentar


                  Hallo Sven,
                  ich habe die Modbus_TCP reader (v1.2) und writer (v1.1) in Einsatz. In Summe laufen die Logikmodule 10 mal in meinem Homeserver. Leider muss ich immer wieder feststellen, dass das Eine oder Andere Modul nichts mehr tut. Nach Neustart des Homeservers wechseln sich die Logikmodule ab, die nicht mehr arbeiten wollen. Hast du einen Hinweis, wie ich das lösen könnte? Der Debug-Modus ist an. In hslist erhalte ich folgende Meldungen:

                  08.10.2024 20:44:53 (1)
                  File "<Hs_modbusTCP_reader14184>", line 500, in __thread_queue_consumer
                  File "<Hs_modbusTCP_reader14184>", line 801, in on_input_value
                  AttributeError: 'NoneType' object has no attribute 'stop'
                  hs_modbusTCP_reader14184
                  Error values: 1/41/42/15
                  Raw value 7 of type uint32 0
                  Raw value 1 of type uint32 0
                  Conn IP:Port (UnitID) 192.168.2.45:502 (2)
                  Raw value 6 of type uint32 3
                  Raw value 3 of type uint32 196741
                  Last exception msg logged Message: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.2.45:502)]
                  Raw value 4 of type uint32 142279805
                  Raw value 2 of type uint32 0
                  Raw value 5 of type uint32 1

                  Die 191.168.2.45 ist der SMA-HomeManager​ und der ist online.

                  LG
                  Sylvio​

                  Kommentar


                    Warum nutzt du nicht die letzten Versionen?
                    Hast du HS 4.12?

                    Kommentar


                      Hallo,
                      ja, das hatte ich dann auch bemerkt und auch schon aktualisiert. Beide stehen nun auf V1.3 Nun werden die Error-Meldungen jedoch noch verrückter:

                      hs_modbusTCP_reader14184
                      Raw value 2 of type uint32 0
                      Output value 5 with address 1010 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                      Output value 1 with address 1040 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                      Output value 2 with address 1042 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                      Raw value 1 of type uint32 0
                      Conn IP:Port (UnitID) 192.168.2.13:502 (255)
                      Output value 7 with address 1006 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                      Raw value 4 of type uint32 0
                      Raw value 6 of type uint32 0
                      Raw value 3 of type uint32 0
                      Output value 1 with address 1100 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                      Last exception msg logged Message: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.2.45:502)]
                      Output value 6 with address 1012 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                      Output value 6 with address 1004 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                      Raw value 7 of type uint32 0
                      Error values: 1/41/42/15
                      Output value 5 with address 1000 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                      Raw value 5 of type uint32 0
                      Output value 3 with address 1044 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe

                      hs_modbusTCP_writer14185
                      Write type uint16 in register 5014 True
                      Conn IP:Port (UnitID) 192.168.2.14:502 (255)
                      Response: WriteRegisterResponse 5014 => 1
                      Last exception msg logged Message: Modbus Error: [Input/Output] [Errno 32] Broken pipe

                      Was bedeutet "[Errno 32] Broken pipe"?

                      LG
                      Sylvio

                      Kommentar


                        Ok, danke.
                        Kannst du bitte mal ein Screenshot deiner Settings zeigen?

                        Ich denke du musst KeepAlive abschalten und mit etwas Wartezeit arbeiten. Siehe Antwort in https://knx-user-forum.de/forum/öffe...60#post1976460

                        Kommentar


                          Hallo Sven,
                          gerne:
                          image.png
                          image.png​​
                          ​Sorry, die Bilder überschneiden sich beide. Die folgenden Fehler kommen vom zweiten Reader: hs_modbusTCP_reader14184
                          Raw value 7 of type uint32 0
                          Output value 1 with address 1040 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                          Raw value 1 of type uint32 156
                          Conn IP:Port (UnitID) 192.168.2.46:502 (3)
                          Raw value 6 of type uint32 2293
                          Raw value 3 of type uint32 69
                          Output value 1 with address 1100 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                          Raw value 4 of type uint32 86
                          Output value 3 with address 1502 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                          Raw value 2 of type uint32 446
                          Raw value 5 of type uint32 473
                          Output value 3 with address 1044 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                          ​Die beiden Module starten 10s versetzt und die Verbindungen werden auch getrennt (ReconnectAfterEachRead). Das Selbe mache ich zeitgleich mit meiner zweiten Wallbox (KEBA P30x und c). Zusätzlich wird der Sollte ich die Zeiten noch weiter vergrößern?
                          Angehängte Dateien
                          Zuletzt geändert von melodoi; 09.10.2024, 16:42.

                          Kommentar


                            Ich glaube du musst einmal differenzieren. Also das die LBS zu unterschiedlichen Zeiten starten ist unerheblich. Hier haben auch mehrere im Thread bereits SMA-Wechselrichter angebunden. Geht das nicht und muss es der SMA Home Manager sein? Du kannst oben über dem Thread (nicht oben rechts) einfach mal nach "SMA" suchen.

                            Wenn du ein Gerät abfragst und dafür wegen der Ausgänge mehrere LBS brauchst, dann nimm bitte den A1 vom ersten Baustein und verbinde ihn mit E3 vom nächsten Baustein. Bei dem lässt du dann aber E1 auf 0. Das verketten geht bis der Arzt kommt. Das verhindert, dass mehrere Bausteine gleichzeitig abfragen. Natürlich ist am ersten Baustein eine Zeit zu wählen, dass er es durch alle verketteten Bausteine schafft.
                            Ich würde hier auch erstmal keine Optionen am E7 setzen, da in der Regel die Modbus-Implementierungen kein Problem haben mit Keep-Alive, wenn es nur einer macht. Dann fragt er alle Eingänge in einem Rutsch ab. Wenn es nicht geht, experimentiere mit Sleep100/500ms.
                            Siehe https://github.com/SvenBunge/hs_modb...oc/log14184.md

                            Ich werde das Chaining mal genauer beschreiben.

                            Vom SMA Home-Ding finde ich keine Modbus-Doku leider, um hier genauer reinzuschauen. Kannst du nicht den WR direkt abfragen?

                            Zur Wallbox: Die Keka hat mit dem SMA ja nichts zu tun. Die kannst du dann auch einfach abfragen und hier - wenn nötig - chaining verwenden. Glaub die wurde hier im Thread auch schon angebunden.

                            Achtung: Fragst du parallel noch mit anderen Geräten ab, wie EVCC, dann kann es je nach Modbus-Implementierung dazu kommen, dass die Verbindungen deshalb weg fliegen.
                            Der Baustein selbst recovered sich meines Wissens selber. Hatte da mal was eingebaut. - Außer er läuft im Debug. Dann will man ja die Fehler haben und er loggt diese und legt sich hin.
                            Zuletzt geändert von SvenB; 09.10.2024, 21:07.

                            Kommentar


                              Hallo Sven,
                              das mit dem Chaining war super. Es läuft nun. Den SMA Home-Manager versuche ich nicht mehr auszulesen. Der antwortet eh nicht. Was cool ist, die SMA-Werte, die man sonst nur über ein Tool auf dem Raspberry Pi (ließt den Datenstrom an SMA mit) bekommt, werden auf neuere SMA Wechselrichter (bei mit ein STP10) gespiegelt. Aber dazu antworte ich mal in einem anderen Chat (https://www.photovoltaikforum.com/th...en-via-modbus/).

                              Ja mit meinen SMA Wechselrichtern und den KEBA Wallboxen hatte ich hier was durcheinander gebracht. Mit EVCC mache ich nix.

                              Was könnte die Ursache für folgende Fehler sein? Diese kommen alle von den KEBA Wallboxen. Zumindest haben diese nur die 4-Stelligen Adressen. Bei SMA sind sie immer 5-Stellig Bei SMA läuft nun scheinbar alles sauber.

                              hs_modbusTCP_reader14184
                              Raw value 8 of type uint32 2
                              Output value 5 with address 1010 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                              Output value 2 with address 1042 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                              Conn IP:Port (UnitID) 192.168.2.47:502 (3)
                              Output value 7 with address 1006 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                              Raw value 4 of type uint32 0
                              Raw value 6 of type uint32 2293
                              Raw value 3 of type uint32 5254
                              Output value 4 with address 1008 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                              Output value 6 with address 1012 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                              Raw value 7 of type uint32 0
                              Raw value 2 of type uint32 75
                              Raw value 1 of type uint32 310
                              Raw value 5 of type uint32 1621
                              Output value 3 with address 1044 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
                              hs_modbusTCP_writer14185
                              Write type uint16 in register 5014 True
                              Conn IP:Port (UnitID) 192.168.2.13:502 (255)
                              Response: WriteRegisterResponse 5014 => 1
                              Last exception msg logged Message: Modbus Error: [Input/Output] [Errno 32] Broken pipe

                              LG
                              Sylvio

                              Kommentar


                                Klingt doch gut mit den WR. Kannst du bitte die beiden Bausteine einmal screenshotten?
                                hast du hier im thread mal nach Keba gesucht? Irgendwo hatten wir die auch schon.

                                Kommentar

                                Lädt...
                                X