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

    #31
    Liebe Alle,

    Version 0.4.1 ist fertig. ab 9 neue Eingänge:
    • 1xOffset für alle Register
    • 8xFunction / Typ des Registers - Yes: Er liest nun auch Coil, Discrete und Input-Register und nicht nur Holding-Register!
      • (Man kann sich auf die Modicon Notation nicht allein verlassen. Allein Sunspec spricht die Register 4xxxx wirklich an und ist kein (reiner) Indikator für Holding-Register %40000 - Daher muss der Typ manuell gewählt werden.)
    Ansonsten:
    • Besseres Fehlerhandling
    • NULL-Bytes werden aus Strings gefiltert
    • Modbus-Library aktualisiert
    Freue mich über Feedback / Verbesserungen etc. - und über Geschenkten Kram von meiner Amazon Wishlist 🥰
    Dank auch an r85x für das Vorab-Testing der neuen Register-Typen (konkret: Input)

    Denke Baustein ist morgen im Download-Bereich freigeschaltet
    Zuletzt geändert von SvenB; 09.08.2021, 23:20.

    Kommentar


      #32
      Hallo zusammen,

      zuerst einmal an dieser Stelle herzlichen Dank SvenB für den ganzen Aufwand und die Bereitstellung des Tools.
      Die Abfrage funktioniert soweit, ich habe nur ein Problem:
      Ich frage mit dem System mein FEMS Batteriesystem inkl. Notstromfunktion ab. Wenn ich bei den Parametern den "Type Holding" und "Data Type uint32" nehme bekomme ich im Busmonitor Werte, die genau zu den Daten im FEMS System passen. Es gibt aber einen Wert "aktueller Netzbezug", der - wenn ich einen Solarüberschuss erziele - negativ wird. Sobald der Wert negativ ist zeigt der Busmonitor keine plausiblen Werte an, mit einem Modbus Reader direkt ausgelesen stimmen die Werte aber, es sind halt entsprechend negative Zahlen.
      Hat jemand eine Idee, was ich ändern kann? In der ETS hab ich Datentyp 14.056 Leistung (W) parametriert.

      Beste Grüße
      Nils

      Kommentar


        #33
        Hi Nils, meine Vermutung ist, das 14.056 ein float ist. Google zu "14.056 dpt" liefert https://knx-user-forum.de/forum/proj...mit-dpt-14-056 als ersten Eintrag Versuch mal, ob "float64" funktioniert.

        Kommentar


          #34
          Es klingt komisch. Du hast einen uint32 für den Netzbezug und dieser wird negativ, bei Einspeisung. uint kann nicht negativ werden. Das kleinste bei dem Datentyp ist 0.

          wenn ich es richtig im Kopf habe werden die Bits von rechts gefüllt. Daher ist uint32 und int32 bis zum 31. bit gleich. Darüber wird int32 negativ.
          ==> probiere bitte mal int32 abzufragen.

          Falscher Datentyp im Experten kann es auch sein. Hier solltest du beim Experten 4.11 dir die Ausgänge direkt ansehen können oder auch gern auf der Debugseite ansehen. Wenn du nicht mehrere Modbus-Module am Laufen hast, zeigt er es an dort raw auch an.

          Kommentar


            #35
            Danke für die Hinweise. Dann warte ich mal auf die Sonne und schaue, ob es mit der Umstellung geht. Das mit den Vorzeichen hatte ich übersehen. Beim FEMS System ist sogar bei allen Datentyp Float32 angegeben, wenn ich das aber nehme kommt bei allen Werten nur Unsinn an.

            Gruß Nils

            Kommentar


              #36
              Hallo Sven,
              Ich finde den Baustein überaus hilfreich (Wishlist wird in Kürze bedient ) - ich frage seit ein paar Tagen erfolgreich eine Nibe Wärmepumpe ab.
              Wo ich allerdings noch hänge: Wenn die Wärmepumpe neu gestartet wird (noch Baustelle) bekomme ich vom Baustein keine Daten mehr - erst nach Neustart vom Homeserver funktioniert es wieder (Interval Timer switch habe ich fix auf 1 eingestellt und Interval Time 10 sec)...

              Any Idea?

              Hab mir jetzt einen Watchdog hinzugefügt der zumindest meldet, wenn keine Daten mehr kommen - kann es helfen, den Interval timer switch für einige Zeit (wie lange) auszuschalten und dann wieder zu aktivieren?

              Viele Grüße,
              Markus

              Kommentar


                #37
                Hi Markus,
                Guck mal bitte auf dem HomeServer in der debug-view. Da wird die exception sicher auftauchen. schickst mir bitte das und die Plugin und HS Version via PN. Dann fixe ich das fix.
                Bg. Sven

                Kommentar


                  #38
                  Hallo Sven,

                  ich betreibe damit eine Wärmepumpe von Nilan und
                  kann mich Markus nur anschließen, hab das gleiche Problem. PN folgt 😉

                  Kommentar


                    #39
                    Hallo zusammen,

                    ich habe das gleiche Verhalten auch bei anderen Geräten festgestellt, der interne Timer Intervall im Baustein liefert nach einem kurzzeitigen Verbindungsunterbruch keine Daten mehr, der manuelle Trigger läuft aber weiter. Deswegen habe ich den Timer Intervall in der Logik deaktiviert und einen externen Telegrammgenerator der dann Manuell triggert, funktioniert wunderbar (siehe Anhang).

                    Angehängte Dateien

                    Kommentar


                      #40
                      Zitat von r85x Beitrag anzeigen
                      Hallo zusammen,

                      ich habe das gleiche Verhalten auch bei anderen Geräten festgestellt, der interne Timer Intervall im Baustein liefert nach einem kurzzeitigen Verbindungsunterbruch keine Daten mehr, der manuelle Trigger läuft aber weiter. Deswegen habe ich den Timer Intervall in der Logik deaktiviert und einen externen Telegrammgenerator der dann Manuell triggert, funktioniert wunderbar (siehe Anhang).
                      Hallo r85x,

                      guter Ansatz, probiere ich gleich mal aus

                      Kommentar


                        #41
                        Ich arbeite gerade zusammen mit zomteck an einer neuen Version. Das Verhalten sollte schon besser sein.
                        Euer Workaround funktioniert, weil der Zyklus dann von außen kommt. Bei der Version hier im Download ist es so, dass die Exception die fliegt weitergeworfen wird. Das hat Vorteile beim Debugging und das schwerer Fehler nicht so oft wiederholt werden - aber bei solchen einfachen Dingen wie Connection-Problemen ist es doof. Ich habe es daher extra behandelt.

                        Mit zomtecks WP gibts noch ein paar Timing-Probleme und ich baue gerade ein paar Dinge ein, die das (hoffentlich) verbessern. Dann gibt es eine neue Version. 👍

                        Kommentar


                          #42
                          Hallo, bin zwar auch nicht der Profi, aber an diesem Thema hab ich mir echt die Zähne ausgebissen und benötige mittlerweile schon eine Zahnspange😂😂😂
                          Wenn man mir noch erklärt, wie das mit der Wishlist bei Amazon funktioniert, würde ich dir gerne was zukommen lassen. Danke nochmals.
                          Andere Frage noch: Kann man KNX Werte (2 Temperaturen) eigentlich auch per Modbus an ein Gerät senden. Frage nun, weil ich glaube hier an Experten gestoßen zu sein. Müsste 2 Isttemperaturen an einen Brenner senden, damit ich nicht eigens 2 normale PT Fühler verkabeln müsste. Danke erneut

                          Kommentar


                            #43
                            Jo, Modbus nervt weil die Geräte teilweise etwas zicken, manche kein Multibyte schreiben etc. Kämpfe hier auch gerade wieder.

                            Schreiben / Senden geht mit folgendem Baustein: https://service.knx-user-forum.de/?c...nload&id=14185 - Gibt hier auch einen eigenen Forum-Thread zu.

                            Amazon-Wishlist ist einfach: Im Original-Thread ansehen, Artikel als Geschenk auswählen und kaufen. Der kommt dann bei mir an und nicht bei dir - Hoffentlich ;-)

                            Kommentar


                              #44
                              etwas für die Kleinen und etwas für die Großen ist auf dem Weg zu dir. 😀 Danke nochmals...
                              Ps.: die Wasserwaage geht nicht zu kaufen. kann man nicht an deine Adresse senden. nur als Info

                              Kommentar


                                #45
                                Nochmal ein dickes Danke an alle Spender und speziell an zomteck, der mit mir in zahlreichen Iterationen seine WP angebunden bekommen hat und wir es unermüdlich durchgestanden haben 😀
                                Was war das Problem: Ich versuche die TCP-Verbindung offen zu halten, da er sonst bei jedem Abruf eine Neue aufbauen muss. Das kostet dan dem HS aber auch dem Pair (hier die Wärmepumpe) Ressourcen und verzögert die Werte-Übermittlung. Bei sauberen Implementierungen bleibt die Verbindung immer offen und man fragt einfach und erhält eine Antwort.

                                Scheinbar gibt es Geräte die nicht nur IP-Limits haben, sondern auch nicht nachvollziehbar mitten drin die Verbindung schließen, wenn es nicht der erste Request ist. Das kann beim 2. aber auch beim 20. Request passieren.

                                Daher gibt es eine neue Version im Download-Bereich: v0.5.5 - Änderungen:
                                • Ein neuer Name: Fetcher finde ich mittlerweile unglücklich. Nun Reader. Gibt eine Warnung und Frage beim Überschreiben in Experten (beim Neustart!). Einfach das neue Plugin wählen.
                                • Verbessertes Fehlerhandling seitens pyModbus. Es wird bei leeren oder falschen Results nochmal gefragt. Timeouts auch etwas verlängert.
                                • Vorher konnte man schon mit "NoKeepAlive" erzwingen, dass nach allen Abfragen die TCP-Verbindung geschlossen wird. Neue Parameter zusätzlich:
                                  • "Sleep100ms": Wartet zwischen jedem Request 100ms
                                  • "ReconnectAfterEachRead": Baut immer die Verbindung auf, macht einen Request und schließt die Verbindung wieder.
                                • Update von pyModbus 2.5.0 auf 2.5.3
                                • Update von Six 1.15.0 auf 1.16.0
                                • Anpassungen / Optimierungen der Doku
                                • Kleinere Aufräumarbeiten.
                                Die Parameter nimmt der Eingang 7. Dieser nimmt auch mehrere wie "NoKeepAlive,Sleep100ms". (- NoKeepAlive und ReconnectAfterEachRead zu kombinieren macht eigentlich keinen Sinn.)
                                Bitte Doku beachten bevor hier fragen kommen.

                                Freue mich auf euer Feedback sowie natürlich Dinge von meiner Wishlist. Die Motivieren wirklich! Hoffe es läuft alles, sonst gerne melden.
                                Weiterhin kein Gewähr, dass alles läuft. Alte Versionen findet ihr auf Github unter Releases, falls ich hier was kaputt gemacht haben sollte in eurem Setup.

                                Kommentar

                                Lädt...
                                X