Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19001586 ModBus Read GENERIC

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

    #76
    saegefisch Kein Ding. Wir machen das alle ja nur zum Spass.....

    Kommentar


      #77
      Hallo saegefisch ,

      die aktuelle Version vom modbus-tcp-client im Repo (3.0.0) erfordert PHP8. Ist das empfehlenswert und läuft damit Edomi überhaupt noch oder sollte man lieber gezielt die 2.4.0 nehmen? Beim ersten Versuch PHP zu aktualisieren, habe ich mir natürlich erst mal CentOS zerschossen
      Drum will ich das nur noch 1x machen. Also PHP8.1 mit modbus-tcp-client 3.0.0 oder PHP7.x (welchen genau? 7.4?) mit modbus-tcp-client 2.4.0. Welche Kombination läuft bestätigt stabil mit Edomi?

      Und noch eine blöde Frage: Der LBS kann nur FC03 und FC04 also Read? Gibt es auch eine Lösung für Write? Es gibt nicht so viele Anwendungen, aber Datum/Uhrzeit setzen, Temperatur/CO2/VOC Messwerte an Heizung/KWL übergeben und mal die Intensivlüftung aktivieren bei vielen Gästen wäre schon ganz nett.

      Kommentar


        #78
        Als ich den LBS entwickelte, war es - passend zu edomi - PHP 7.x. Ich bin selbst nicht der php-Spezialist, würde aber nicht wagen wollen, auf 8 zu erhöhen. Mit so einer Situation habe ich - sicher verwerflich - nicht gerechnet/nach gedacht.

        bin dazu gerade auch erst mal ratlos (im Wortsinne) und müsste mich damit beschäftigen, habe aber gerade beruflich und privat überhaupt keine Reserven. Vielleicht Gibt es ja guten Rat hier oder zu Deiner Frage im anderen Thema und würde nur das nötigste tun wollen gerade.

        zu FC03/04: das Thema Write gab es hier schon mal. Ich könnte mir gut vorstellen, das mal zu ergänzen, die Lib gäbe es wohl her. Aber nur in einer Welt, in der ich dazu Zeit hätte. Das sehe ich gerade nicht und bedarf habe ich selber keinen. die Lösung für php 8 wäre da drängender.

        Kommentar


          #79
          Ich möchte in naher Zukunft eine 22kW-Wallbox installieren und die Ladegeschwindigkeit über EDOMI vorgeben. Ansteuerung erfolgt wohl über Modbus TCP? Dazu reicht dieser Baustein dann aber nicht, da nur lesend? Gibt es Alternativen?

          Kommentar


            #80
            Hallo saegefisch,
            danke, der LBS läuft jetzt mit PHP7.4. Vielleicht teste ich noch mal PHP8 in der VM, aber nicht mehr am Produktivsystem

            Beim Auslesen der Heizung (Nibe SMO S40) habe ich jetzt aber das Problem, dass bei der Aufteilung der Register auf mehrere Requests nur der letzte Request ausgeführt wird. Ich habe 2 Instanzen vom LBS, eine für FC03, die andere für FC04. Beide verhalten sich identisch:

            Code:
            2022-04-23 01:48:50 236318 4862 debug LBS19001586 [v0.6]: Modus Read GENERIC EXEC Daemon start initiated (300)
            2022-04-23 01:48:50 238821 4862 debug LBS19001586 [v0.6]: Modus Read GENERIC LBS ended (300)
            2022-04-23 01:48:51 096020 4901 debug EXE19001586 [v0.6]: FC3 = HOLDING-Methode wird verwendet (siehe ModBus-Doku, meist für 3xxxx) (300)
            2022-04-23 01:48:51 097968 4901 debug EXE19001586 [v0.6]: RegisterOffset: konstant = 0 | Typ-Automatik = (300)
            2022-04-23 01:48:51 099284 4901 debug EXE19001586 [v0.6]: Daten wurden als CSV geliefert (300)
            2022-04-23 01:48:51 100724 4901 debug EXE19001586 [v0.6]: data_array: (300)
            2022-04-23 01:48:51 100872 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================
            2022-04-23 01:48:51 100953 4901 debug EXE19001586 [v0.6]: ["18","Gradminuten","int16","20","Gradminuten K\u00fchlung","int16","22","Reset Alarm","uint16","237","Betriebsmodus","uint16"]
            2022-04-23 01:48:51 101011 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================
            2022-04-23 01:48:51 101950 4901 debug EXE19001586 [v0.6]: Register: (300)
            2022-04-23 01:48:51 102045 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================
            2022-04-23 01:48:51 102109 4901 debug EXE19001586 [v0.6]: [{"address":"18","name":"Gradminuten","type":"int16 ","uri":"192.168.2.10:502","unitId":1},{"address": "20","name":"Gradminuten K\u00fchlung","type":"int16","uri":"192.168.2.10:5 02","unitId":1},{"address":"22","name":"Reset Alarm","type":"uint16","uri":"192.168.2.10:502","u nitId":1},{"address":"237","name":"Betriebsmodus", "type":"uint16","uri":"192.168.2.10:502","unitId": 1}]
            2022-04-23 01:48:51 102173 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================
            2022-04-23 01:48:51 108887 4901 debug EXE19001586 [v0.6]: Anzahl Register gesamt angefragt: 4 (300)
            2022-04-23 01:48:51 111057 4901 debug EXE19001586 [v0.6]: Anzahl Requests ergeben sich gesamt: 2 (300)
            2022-04-23 01:48:51 112404 4901 debug EXE19001586 [v0.6]: Anzahl Requests in Chunk 1 : 2 (300)
            2022-04-23 01:48:51 787609 4901 debug EXE19001586 [v0.6]: Response Fehler: (300)
            2022-04-23 01:48:51 787839 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================
            2022-04-23 01:48:51 787941 4901 debug EXE19001586 [v0.6]: [{}]
            2022-04-23 01:48:51 788028 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================
            2022-04-23 01:48:51 789624 4901 debug EXE19001586 [v0.6]: Folgende unerwünschte Werte ausfiltern: (300)
            2022-04-23 01:48:51 789823 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================
            2022-04-23 01:48:51 789923 4901 debug EXE19001586 [v0.6]: ["-2147483648","2147483648","4026531840","4294967295"]
            2022-04-23 01:48:51 790020 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================
            2022-04-23 01:48:51 791676 4901 debug EXE19001586 [v0.6]: Gewählte(r) Ersatzwert(e): (300)
            2022-04-23 01:48:51 791827 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================
            2022-04-23 01:48:51 791929 4901 debug EXE19001586 [v0.6]: "0"
            2022-04-23 01:48:51 792021 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================
            2022-04-23 01:48:51 796524 4901 debug EXE19001586 [v0.6]: Ergebnis JSON: {"Betriebsmodus":"0"} (300)
            2022-04-23 01:48:56 802865 4901 debug EXE19001586 [v0.6]: Anzahl Requests in Chunk 1 : 2 (300)
            2022-04-23 01:48:57 578221 4901 debug EXE19001586 [v0.6]: Response Fehler: (300)
            2022-04-23 01:48:57 578588 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================
            2022-04-23 01:48:57 578818 4901 debug EXE19001586 [v0.6]: [{}]
            2022-04-23 01:48:57 579003 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================
            2022-04-23 01:48:57 581821 4901 debug EXE19001586 [v0.6]: Folgende unerwünschte Werte ausfiltern: (300)
            2022-04-23 01:48:57 582072 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================
            2022-04-23 01:48:57 582273 4901 debug EXE19001586 [v0.6]: ["-2147483648","2147483648","4026531840","4294967295"]
            2022-04-23 01:48:57 582464 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================
            2022-04-23 01:48:57 585338 4901 debug EXE19001586 [v0.6]: Gewählte(r) Ersatzwert(e): (300)
            2022-04-23 01:48:57 585617 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================
            2022-04-23 01:48:57 585812 4901 debug EXE19001586 [v0.6]: "0"
            2022-04-23 01:48:57 586026 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================
            2022-04-23 01:48:57 592875 4901 debug EXE19001586 [v0.6]: Ergebnis JSON: {"Betriebsmodus":"0"} (300)
            2022-04-23 01:49:02 602365 4901 debug EXE19001586 [v0.6]: Anzahl Requests in Chunk 1 : 2 (300)
            2022-04-23 01:49:03 344461 4901 debug EXE19001586 [v0.6]: Response Fehler: (300)

            Kommentar


              #81
              Hallo zusammen,

              ich bin in dem ganzen Thema ein absoluter Neuling also verzeiht mir Fehler
              Ich verwende Edomi 2.02 mit Cent OS 6.5 (aus der Edomi Anleitung)

              Ich würde gerne meinen Wechselrichter auslesen und ein User hier hat genau meinen Typ
              Wechselrichter (Sungrow SH10RT) mit deinem Baustein ausgelesen.
              Ich will nun diesen FB installieren aber scheitere bereits bei der ersten Zeile deiner Installanleitung.

              Wenn ich alles richtig verstehe mach ich meinen PuttY auf und verbinde mich mit meinem Edomi.
              Nun gebe ich den Befehl ein:

              [root@edomi ~]# yum install -y git wget php-mbstring

              dann kommt diese Meldung:

              loaded plugins: fastestmirror
              loading mirror speeds from cached hostfile
              yumrepo error: all mirror urls are not using ftp, http[s] or file
              eg. invalid release/repo/arch combination/
              removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
              error: cannot find a valid baseurl for repo:base

              ist das richtig soll ich einfach weitermachen oder stimmt schon was nicht?

              Vielen Dank schon mal
              Zuletzt geändert von Lukas 1989; 14.07.2022, 19:36.

              Kommentar


                #82
                Hallo Thome, hallo Lukas,

                ich kann derzeit aus beruflichen und privaten Gründen keine Zeit investieren für das Thema. Und das ist wohl möglich ein größerer Aufwand, weil die Bibliothek mittlerweile Fortgeschrittene Anforderungen stellt, die edomi wegen der definierten CentOS Basis nicht einfach erfüllen kann.

                Kurz: ich weiß es schlicht nicht, was derzeit richtig ist und kann Euch leider auch nicht helfen, das tut mir leid, aber kann es nicht ändern.
                ich hoffe, im Herbst Zeit dafür zu finden.

                Kommentar


                  #83
                  Vielen Dank für die Antwort,
                  will dich auf keinen Fall belasten ich verstehe das Sollte ich eine möglichkeit finden dann werde ich es hier im Forum
                  posten. Hab die betroffene Textdatei bereits gefunden ich habe nur noch keinen aktuell verfügbaren Link gefunden
                  über den man Treiber ziehen kann. Erst wenn der Feed dann richtig eingestellt ist kann man die nötigen Dateien ziehn.

                  Kommentar


                    #84
                    Hallo zusammen,

                    ich brauche mal ein paar Denkanstöße von euch zum LBS Modbus Read Generic... Bis gestern hat alles monatelang super funktioniert, unter anderem habe ich (fast) ohne Probleme meinen SMA-WR ausgelesen (fast weil ganz manchmal die Verbindung abgebrochen ist, hier habe ich dann den LBS einfach automatisch neu gestartet).

                    Gestern habe ich mich in geistiger Umnachtung dazu durchgerungen, mein Unifi-System auf den aktuellen Firmware-Stand upzudaten (von 1.11.xx auf 1.12.22). Wie gesagt, bis dahin alles super.

                    Nun habe ich seit des Updates das Problem, dass die Verbindung vom LBS zum WR ständig abbricht. Ich habe bereits E12 und E13 massiv hochgestellt, jedoch ohne Ergebnis. Ausserdem habe ich WR und NAS auf den Switch gelegt (vorher war WR auf der UDM pro).

                    Alle Geräte sind inzwischen auch neu gestartet (UDM pro + Switch, NAS mit Edomi-Docker, Wechselrichter).

                    Meine OpenWB Wallbox liest den WR über ModBus einwandfrei weiterhin aus. Das Problem ist also irgendwo Edomi-LBS -> Switch -> WR.

                    Mir ist klar, dass diese Konstellation vermutlich niemand hat und daher auch nicht mal eben nachvollziehen kann. Ich erhoffe mir aber dennoch, dass ihr mir den ein oder anderen Tipp geben könnt, wo ich mit der Suche ansetzen kann. Habt ihr ne Idee?

                    Ein Downgrade der UDM funktioniert leider nicht "mal eben".

                    Danke vorab!

                    Grüße
                    Sven

                    EDIT: Auch wenn es mir ein wenig unangenehm ist, möchte ich nur kurz das Thema auflösen: Das Problem hat weder mit Router, noch mit Edomi, LBS oder NAS zu tun. Ich hatte in der Zeit, in der das Problem auftrat, ebenfalls ein Update der OpenWB gemacht, auf Version 1.9.274 nightly. Inzwischen weiß ich, dass beim Sprung irgendwo zwischen 1.9.271 und 1.9.273 etwas bei der Abfrage des SMA-WR geändert wurde. Vermutlich wird der WR mit dermaßen vielen Anfragen konfrontiert, so dass er diese nicht mehr bedienen kann. Ergo: Der LBS bekommt nur ganz sporadisch eine Anfrage beantwortet und haut entsprechend viele Fehler raus, bis er aufgibt.

                    Nun auf 1.9.271 stable zurück funktioniert wieder alles einwandfrei. Dies habe ich dem Support bereits mitgeteilt, in der Hoffnung, dass sie das Problem fixen.
                    Zuletzt geändert von xsven80x; 25.08.2022, 14:57.

                    Kommentar


                      #85
                      Moin zusammen,
                      ich habe diesen klasse Baustein nun auch eingebunden und möchte damit mein Victron ESS auslesen. Also den Victron Cerbo GX. Das funktioniert, so lange ich in den abgefragten Adressen keine Adressen überspringe, die im Victron nicht existieren.

                      also das funktioniert an E8:

                      817|"AC Consumption L1"|uint16;
                      818|"AC Consumption L2"|uint16;
                      819|"AC Consumption L3"|uint16;
                      820|"Grid L1"|int16;
                      821|"Grid L2"|int16;
                      822|"Grid L3"|int16;​

                      das funktioniert nicht an E8:

                      817|"AC Consumption L1"|uint16;
                      818|"AC Consumption L2"|uint16;
                      819|"AC Consumption L3"|uint16;
                      820|"Grid L1"|int16;
                      821|"Grid L2"|int16;
                      822|"Grid L3"|int16;
                      842|"Battery Power (System)"|int16;
                      843|"Battery State of Charge (System)"|uint16;
                      844|"Battery state (System)"|uint16;​

                      Das Victron Modbus Gerät meldet dann den Fehler, dass es die Adresse 827 nicht gibt (womit er recht hat) und gibt keinen Wert zu keiner Adresse zurück. Warum bloss wird die 827 vom Baustein angefragt? Hat da einer eine Idee?

                      grafik.png

                      Hier die Fehlermeldung:
                      grafik.png

                      Grüße Stefan
                      Angehängte Dateien

                      Kommentar


                        #86
                        Servus, hilft vielleicht nicht, ich habs aber auch nicht geschafft. Bin dann den Weg über mqtt gegangen. Der lief problemlos.
                        Joe

                        Kommentar


                          #87
                          Zitat von Buntbarsch Beitrag anzeigen
                          Die Usleep Befehle haben leider nichts gebracht
                          Für alle, die eine Lösung für Huawei SUN2000 suchen: dieser LBS ist leider aufgrund der fehlenden Wartezeit zwischen connect und read nicht für Huawei geeignet. Ich habe das Thema mit dem 19001030​ ins Ziel gebracht, indem ich einen sleep() in die modbusmaster.php eingefügt habe. Siehe: https://knx-user-forum.de/forum/proj...34#post1864434

                          Kommentar


                            #88
                            Ich hatte immer das Problem das mir beim Neustart mit einer nachgeschalteten Division erst eine 0 auf die Ausgänge geschrieben wurde.
                            Das sieht natürlich blöd aus in der späteren Aufbereitung als Graph.
                            Hab jetzt zufällig auf dem ersten Post genauer hingesehen und gemerkt das es da mit Division/Konstante gelöst wurde.

                            Funktioniert so nun einwandfrei .

                            Was ich aber eigentlich Fragen wollte. Bei der Lösung des Problems bin ich in der Doku des LBS auf folgendes gestoßen:
                            fix.png

                            Gibt es eine Möglichkeit die Werte direkt im json umzurechnen, oder hat das eine andere Bedeutung?
                            Und wenn ja wie müsste das dann aussehen?
                            Gruß Ben

                            Kommentar


                              #89
                              Bin im Urlaub… Antwort dauert eine Weile…

                              Kommentar


                                #90
                                Danke für die Rückmeldung, erhol dich (euch?) gut 😉.
                                Lauft nicht davon.
                                Gruß Ben

                                Kommentar

                                Lädt...
                                X