Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Modbus hängt sich komplett auf wenn ein Gerät Probleme hat

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Modbus hängt sich komplett auf wenn ein Gerät Probleme hat

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      Hallo zusammen, oder

      to whom it concerns!

      ich nutze relativ gerne und intensiv den Modbus Adapter u.a. zum auslesen von mehreren Stromzählern.
      Heute merkte ich, dass etwas nicht stimmte, als im Energiefluss die Werte nicht mehr aktualisiert wurden.

      Im Zählerschrank sah ich dass ein Zähler Probleme hatte.
      Da der Modbus Adapter auf dem Slave im Keller läuft, war mitür im Log des Masters natürlich nichts aufgefallen.

      Das log des Slaves zeigte über Stunden

      2023-10-08 15:22:27.694 - info: modbus.0 (27167) Connected to slave
      2023-10-08 15:22:33.043 - warn: modbus.0 (27167) Error: undefined
      2023-10-08 15:22:33.044 - error: modbus.0 (27167) Request timed out.
      2023-10-08 15:22:33.044 - warn: modbus.0 (27167) Poll error count: 1 code: {"err":"timeout","timeout":5000}
      2023-10-08 15:22:34.045 - info: modbus.0 (27167) Disconnected from slave
      2023-10-08 15:23:34.048 - info: modbus.0 (27167) Connected to slave
      2023-10-08 15:23:39.427 - warn: modbus.0 (27167) Error: undefined
      2023-10-08 15:23:39.427 - error: modbus.0 (27167) Request timed out.
      2023-10-08 15:23:39.428 - warn: modbus.0 (27167) Poll error count: 1 code: {"err":"timeout","timeout":5000}
      2023-10-08 15:23:40.428 - info: modbus.0 (27167) Disconnected from slave
      2023-10-08 15:24:40.430 - info: modbus.0 (27167) Connected to slave
      2023-10-08 15:24:45.798 - warn: modbus.0 (27167) Error: undefined
      2023-10-08 15:24:45.799 - error: modbus.0 (27167) Request timed out.
      2023-10-08 15:24:45.799 - warn: modbus.0 (27167) Poll error count: 1 code: {"err":"timeout","timeout":5000}
      2023-10-08 15:24:46.800 - info: modbus.0 (27167) Disconnected from slave
      2023-10-08 15:25:46.802 - info: modbus.0 (27167) Connected to slave
      2023-10-08 15:25:52.156 - warn: modbus.0 (27167) Error: undefined
      2023-10-08 15:25:52.157 - error: modbus.0 (27167) Request timed out.
      2023-10-08 15:25:52.157 - warn: modbus.0 (27167) Poll error count: 1 code: {"err":"timeout","timeout":5000}
      2023-10-08 15:25:53.158 - info: modbus.0 (27167) Disconnected from slave
      2023-10-08 15:26:53.161 - info: modbus.0 (27167) Connected to slave
      2023-10-08 15:26:58.519 - warn: modbus.0 (27167) Error: undefined
      2023-10-08 15:26:58.519 - error: modbus.0 (27167) Request timed out.
      2023-10-08 15:26:58.520 - warn: modbus.0 (27167) Poll error count: 1 code: {"err":"timeout","timeout":5000}
      2023-10-08 15:26:59.520 - info: modbus.0 (27167) Disconnected from slave
      2023-10-08 15:27:59.524 - info: modbus.0 (27167) Connected to slave
      2023-10-08 15:28:04.879 - warn: modbus.0 (27167) Error: undefined
      2023-10-08 15:28:04.879 - error: modbus.0 (27167) Request timed out.
      2023-10-08 15:28:04.880 - warn: modbus.0 (27167) Poll error count: 1 code: {"err":"timeout","timeout":5000}
      2023-10-08 15:28:05.879 - info: modbus.0 (27167) Disconnected from slave
      2023-10-08 15:29:05.883 - info: modbus.0 (27167) Connected to slave
      2023-10-08 15:29:11.254 - warn: modbus.0 (27167) Error: undefined
      2023-10-08 15:29:11.254 - error: modbus.0 (27167) Request timed out.
      2023-10-08 15:29:11.255 - warn: modbus.0 (27167) Poll error count: 1 code: {"err":"timeout","timeout":5000}
      2023-10-08 15:29:12.255 - info: modbus.0 (27167) Disconnected from slave
      2023-10-08 15:30:12.259 - info: modbus.0 (27167) Connected to slave
      2023-10-08 15:30:17.631 - warn: modbus.0 (27167) Error: undefined
      2023-10-08 15:30:17.631 - error: modbus.0 (27167) Request timed out.
      2023-10-08 15:30:17.632 - warn: modbus.0 (27167) Poll error count: 1 code: {"err":"timeout","timeout":5000}
      2023-10-08 15:30:18.632 - info: modbus.0 (27167) Disconnected from slave
      2023-10-08 15:31:18.635 - info: modbus.0 (27167) Connected to slave
      2023-10-08 15:31:23.985 - warn: modbus.0 (27167) Error: undefined
      2023-10-08 15:31:23.986 - error: modbus.0 (27167) Request timed out.
      2023-10-08 15:31:23.986 - warn: modbus.0 (27167) Poll error count: 1 code: {"err":"timeout","timeout":5000}
      2023-10-08 15:31:24.987 - info: modbus.0 (27167) Disconnected from slave
      

      Dabei wird die Instanz andauernd gestartet und angehalten, so dass auch die anderen DeviceIDs keine Werte liefern.

      Der Spuk hört erst auf, wenn sämtliche Register des betreffenden Zählers gelöscht wurden und kein Poll mehran dessen ID geschickt wird.

      Hier wäre es geschickter, wenn man jede ID per checkbox (de)aktivieren könnte.

      noch besser wäre es natürlich, wenn dues automatisch erfolgen würde

      Great SUN apollon77 3 Replies Last reply Reply Quote 0
      • Great SUN
        Great SUN @Homoran last edited by

        Ich hab schon mal kurz in den Code geschaut.
        Wenn es nur darum geht, dass der Adapter nicht mehr durchstartet und dass man im Log auch sieht, welche deviceID betroffen ist, wären folgende Stellen im Code aus meiner Sicht relevant:

        function pollResult <-- hier wird der Adapter neu gestartet und ein Fehler (ohne DeviceID) gemeldet
        https://github.com/ioBroker/ioBroker.modbus/blob/5c072dd9f92947179cb15f343b5bae7331e99ead/lib/master.js#L407

        function pollDevice <-- von hier aus wird (indirekt) pollResult aufgerufen und es ist auch die deviceID bekannt
        https://github.com/ioBroker/ioBroker.modbus/blob/5c072dd9f92947179cb15f343b5bae7331e99ead/lib/master.js#L444C14-L444C24

        Homoran 1 Reply Last reply Reply Quote 1
        • Homoran
          Homoran Global Moderator Administrators @Great SUN last edited by

          @great-sun sagte in Modbus hängt sich komplett auf wenn ein Gerät Probleme hat:

          Wenn es nur darum geht, dass der Adapter nicht mehr durchstartet und dass man im Log auch sieht, welche deviceID betroffen ist,

          Das wäre schon ein großer Schritt!

          Das "Kapseln" von Geräten (per (De)Aktivierungs-Checkbox) wäre aber z.B. auch für Wartung an Geräten hilfreich.

          Great SUN 1 Reply Last reply Reply Quote 0
          • Great SUN
            Great SUN @Homoran last edited by

            @homoran Naja, wenn man möchte, dass der Adapter hängen bleibt, weil man es sonst nicht sieht/mitbekommt, wäre das sicher der beste Weg. Aber wenn Du sonst eine Wartung durchführst, würde das betroffene Device nur im Log gemeldet werden, aber die anderen weiter abgefragt. Ganz ohne zusätzliche Arbeit 😉

            1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 @Homoran last edited by

              @homoran ich sehe im log nichts von instanz anhalten oder neu starten

              1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 @Homoran last edited by

                @homoran ALso für mich sieht es eher so aus das in dem Fehlerfall irgendwie die Netzwerk connection offen bleibt und nicht neu aufgebaut wird.

                Great SUN 1 Reply Last reply Reply Quote 0
                • Great SUN
                  Great SUN @apollon77 last edited by

                  @apollon77

                  in der pollResult ist dieser Code:

                  if (errorCount > 12 * deviceIds.length) { // 2 reconnects did not help, restart adapter
                                  adapter.log.error('Reconnect did not help, restart adapter');
                                  typeof adapter.terminate === 'function' ? adapter.terminate(156) : process.exit(156);
                  

                  Wenn ich mich nicht ganz irre, schießt er da den Adapter ab 😉

                  1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators last edited by

                    Weil ihr so lieb bittet!

                    ich hab gerade wieder ein Register für den defekten Zähler eingegeben und die Fehlermeldungen kommen wieder.

                    Ich warte jetzt ein paar Minuten, damit genug automatische retrys vorhanden sind und starte die Instanz neu.

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators last edited by Homoran

                      @apollon77
                      @great-SUN

                      das log

                      2023-10-08 22:17:10.800 - info: host.tinkerboard instance system.adapter.modbus.0 started with pid 2689
                      2023-10-08 22:17:12.924 - info: modbus.0 (2689) starting. Version 5.0.11 in /opt/iobroker/node_modules/iobroker.modbus, node: v14.21.1, js-controller: 3.3.22
                      2023-10-08 22:17:13.810 - info: modbus.0 (2689) Connected to slave
                      2023-10-08 22:17:19.226 - warn: modbus.0 (2689) Error: undefined
                      2023-10-08 22:17:19.228 - error: modbus.0 (2689) Request timed out.
                      2023-10-08 22:17:19.230 - warn: modbus.0 (2689) Poll error count: 1 code: {"err":"timeout","timeout":5000}
                      2023-10-08 22:17:20.230 - info: modbus.0 (2689) Disconnected from slave
                      2023-10-08 22:18:20.236 - info: modbus.0 (2689) Connected to slave
                      2023-10-08 22:18:25.631 - warn: modbus.0 (2689) Error: undefined
                      2023-10-08 22:18:25.632 - error: modbus.0 (2689) Request timed out.
                      2023-10-08 22:18:25.633 - warn: modbus.0 (2689) Poll error count: 1 code: {"err":"timeout","timeout":5000}
                      2023-10-08 22:18:26.633 - info: modbus.0 (2689) Disconnected from slave
                      2023-10-08 22:19:26.640 - info: modbus.0 (2689) Connected to slave
                      2023-10-08 22:19:32.039 - warn: modbus.0 (2689) Error: undefined
                      2023-10-08 22:19:32.042 - error: modbus.0 (2689) Request timed out.
                      2023-10-08 22:19:32.043 - warn: modbus.0 (2689) Poll error count: 1 code: {"err":"timeout","timeout":5000}
                      2023-10-08 22:19:33.042 - info: modbus.0 (2689) Disconnected from slave
                      2023-10-08 22:20:33.046 - info: modbus.0 (2689) Connected to slave
                      2023-10-08 22:20:38.432 - warn: modbus.0 (2689) Error: undefined
                      2023-10-08 22:20:38.432 - error: modbus.0 (2689) Request timed out.
                      2023-10-08 22:20:38.433 - warn: modbus.0 (2689) Poll error count: 1 code: {"err":"timeout","timeout":5000}
                      2023-10-08 22:20:39.433 - info: modbus.0 (2689) Disconnected from slave
                      2023-10-08 22:21:39.437 - info: modbus.0 (2689) Connected to slave
                      2023-10-08 22:21:44.837 - warn: modbus.0 (2689) Error: undefined
                      2023-10-08 22:21:44.838 - error: modbus.0 (2689) Request timed out.
                      2023-10-08 22:21:44.839 - warn: modbus.0 (2689) Poll error count: 1 code: {"err":"timeout","timeout":5000}
                      2023-10-08 22:21:45.839 - info: modbus.0 (2689) Disconnected from slave
                      2023-10-08 22:22:45.843 - info: modbus.0 (2689) Connected to slave
                      2023-10-08 22:22:51.216 - warn: modbus.0 (2689) Error: undefined
                      2023-10-08 22:22:51.216 - error: modbus.0 (2689) Request timed out.
                      2023-10-08 22:22:51.217 - warn: modbus.0 (2689) Poll error count: 1 code: {"err":"timeout","timeout":5000}
                      2023-10-08 22:22:52.218 - info: modbus.0 (2689) Disconnected from slave
                      2023-10-08 22:23:07.753 - info: host.tinkerboard stopInstance system.adapter.modbus.0 (force=false, process=true)
                      2023-10-08 22:23:07.780 - info: modbus.0 (2689) Got terminate signal TERMINATE_YOURSELF
                      2023-10-08 22:23:07.784 - info: modbus.0 (2689) terminating
                      2023-10-08 22:23:07.788 - info: modbus.0 (2689) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                      2023-10-08 22:23:07.836 - info: host.tinkerboard stopInstance system.adapter.modbus.0 send kill signal
                      2023-10-08 22:23:08.572 - info: host.tinkerboard instance system.adapter.modbus.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
                      2023-10-08 22:23:11.193 - info: host.tinkerboard instance system.adapter.modbus.0 started with pid 2887
                      2023-10-08 22:23:13.698 - info: modbus.0 (2887) starting. Version 5.0.11 in /opt/iobroker/node_modules/iobroker.modbus, node: v14.21.1, js-controller: 3.3.22
                      2023-10-08 22:23:14.515 - info: modbus.0 (2887) Connected to slave
                      2023-10-08 22:23:19.925 - warn: modbus.0 (2887) Error: undefined
                      2023-10-08 22:23:19.926 - error: modbus.0 (2887) Request timed out.
                      2023-10-08 22:23:19.927 - warn: modbus.0 (2887) Poll error count: 1 code: {"err":"timeout","timeout":5000}
                      2023-10-08 22:23:20.929 - info: modbus.0 (2887) Disconnected from slave
                      

                      zwischendurch war die Instanz gelb
                      Screenshot_20231008-222240_Firefox.jpg

                      und für ganz ganz kurze Zeit grün
                      Screenshot_20231008-222303_Firefox.jpg

                      das hatte ich irrtümlich für einen Neustart gehalten.

                      Nach dem manuellen Neustart geht es mit den Fehlermeldungen wie gewohnt weiter

                      EDIT:
                      was mir auffällt ist dass er mit dem error count bei 1 stehen bleibt

                      EDIT2:
                      erst nach löschen des Registers ist wieder Ruhe

                      R 1 Reply Last reply Reply Quote 0
                      • R
                        Radi @Homoran last edited by

                        @homoran Hast du mal probiert, nur den Haken für die Abfrage des Registers rauszunehmen?

                        98f72db4-2afb-4fb6-9245-53ef0e5d6b87-grafik.png

                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Radi last edited by Homoran

                          @radi sagte in Modbus hängt sich komplett auf wenn ein Gerät Probleme hat:

                          @homoran Hast du mal probiert, nur den Haken für die Abfrage des Registers rauszunehmen?

                          98f72db4-2afb-4fb6-9245-53ef0e5d6b87-grafik.png

                          😱 Nein 😱
                          gibt es die etwa auch bei Eingangsregistern? 😳
                          ich hab die bisher bewusst nur bei Holdingregistern gesehen.

                          R 1 Reply Last reply Reply Quote 0
                          • R
                            Radi @Homoran last edited by Radi

                            @homoran Okay, bei den Eingangsregistern gibt es diesen Punkt wohl nicht. 1:0 für dich. Da ich überall nur Holdingregister abfrage, hatte ich das gar nicht in Betracht gezogen.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate
                            FAQ Cloud / IOT
                            HowTo: Node.js-Update
                            HowTo: Backup/Restore
                            Downloads
                            BLOG

                            882
                            Online

                            32.0k
                            Users

                            80.6k
                            Topics

                            1.3m
                            Posts

                            4
                            12
                            417
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo