Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Node-Red TCP-Request Timeout

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Node-Red TCP-Request Timeout

    This topic has been deleted. Only users with topic management privileges can see it.
    • Werde45
      Werde45 last edited by

      Hallo,

      ich habe folgendes Thema: Ich frage per Node-Red per TCP-Request einen RS485-WLAN Adapter bzw. das Geräte am RS485 ab. Ist kein Modbus.

      Das klappt alles prima.

      Ich möchte aber eine Fehlerbehandlung einbauen.

      1. Der WLAN Adapter ist nicht erreichbar (WLAN aus, Abgestützt, kein Strom)
      2. Das Geräte an RS485 ist nicht da (Kabel raus, defekt)

      Im erste Fall kriege ich eine passende Meldung vom Request.
      Aber im 2. Fall bleibt der Request einfach stehen. Hab eingestellt, das er nach 1 Sekunden trennen soll. Hilft nix. Hab also gesucht und hier im Forum gefunden:

      https://discourse.nodered.org/t/change-the-amount-of-time-before-tcp-node-throws-error/13729
      und
      https://forum.iobroker.net/topic/17294/node-red-persistence-funktion-einschalten
      Aber auch bei einem TCPSocket Timeout von 60 Sekunden bleibt es dauerhaft stehen.
      Ich würde gerne die beiden Fehler adäquat abhandeln. Kann mir jemand helfen.
      Mein iobroker und alle Instanzen sind stable und auf dem Stand von heute.

      Danke und schönen Sonntag.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Werde45 last edited by

        @werde45 Also, das eleganteste ist sicher das mit dem socket timeout, wie in dem 1. Link beschrieben. Die persistence Funktion, wie in dem 2. Link beschrieben hilft Dir hier gar nichts.

        Das Problem ist, wenn man an der settings.js etwas ändert - das an der richtigen Stelle machen muss, da der iobroker die Konfigurationsdatei vor dem Über schreiben schützt.

        Also 1. Frage hast Du auch die richtige settings.js modifiziert und kommt der timeout oder kommt er nicht. Wenn der timeout kommt, dann kannst Du es wahrscheinlich mit einer catch Node abfangen und die Meldung triggern.

        Die einfachste Möglichkeit ist aber grundsätzlich mit Hilfe der Trigger Node - selbst so einen Timeout zu produzieren.

        Werde45 1 Reply Last reply Reply Quote 0
        • Werde45
          Werde45 @mickym last edited by

          @mickym
          Hi.

          Ich habe den Wert des Timeout hier eingetragen:

          /opt/iobroker/node_modules/iobroker.node-red/settings.js

          Und nach dem Neustart von Node-Red auch übertragen.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Werde45 last edited by

            @werde45 OK - und in der Request Node ist doch auch ein timer drin - wirft denn der keine Fehler wenn keine Antwort kommt?

            bbfd2e5f-9a83-404c-9531-ab44f4bbcc1a-image.png

            Werde45 1 Reply Last reply Reply Quote 0
            • Werde45
              Werde45 @mickym last edited by

              @mickym
              Nö.. Nix. Bleibt auf Verbunden....Stundenlang...

              c0e4918c-bbee-4979-a8eb-4ede64bb72a3-image.png
              28d52727-e8c0-42fe-ba71-8d719d0df7f9-image.png

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Werde45 last edited by

                @werde45 Nun es ändert sich nichts am Status auch wenn die Verbindung nicht mehr möglich ist?

                Werde45 1 Reply Last reply Reply Quote 0
                • Werde45
                  Werde45 @mickym last edited by

                  @mickym
                  Genau. Solange der RS485 WLAN Adapter da ist, aber keine Leitung zum Gerät per RS485 passiert nix. Er sendet die Anfrage und es kommt keine Antwort. Und das wollte ich eben abfangen.

                  Habe im Node-Red Forum gefunden, das andere Leute dies als Bug bezeichnen.

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Werde45 last edited by mickym

                    @werde45 Du kannst selbst so eine Art timeout basteln - ich zeig Dir gleich einen Flow.

                    361a79ac-88b4-4c34-a7bd-08d26a050991-image.png

                    Schick parallel zu dem Request die Nachricht in eine Trigger Node. Lass diese triggern, wenn keine Nachricht aus der Request Node rauskommt.

                    [
                       {
                           "id": "4f742ec06e5870ba",
                           "type": "trigger",
                           "z": "85aa83ba62a06a44",
                           "name": "",
                           "op1": "",
                           "op2": "0",
                           "op1type": "nul",
                           "op2type": "str",
                           "duration": "1",
                           "extend": false,
                           "overrideDelay": false,
                           "units": "s",
                           "reset": "",
                           "bytopic": "all",
                           "topic": "topic",
                           "outputs": 1,
                           "x": 400,
                           "y": 360,
                           "wires": [
                               [
                                   "e051dcbe6e16dd14"
                               ]
                           ]
                       },
                       {
                           "id": "47387879fb1a3eaf",
                           "type": "change",
                           "z": "85aa83ba62a06a44",
                           "name": "",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "reset",
                                   "pt": "msg",
                                   "to": "",
                                   "tot": "str"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 420,
                           "y": 280,
                           "wires": [
                               [
                                   "4f742ec06e5870ba"
                               ]
                           ]
                       },
                       {
                           "id": "e051dcbe6e16dd14",
                           "type": "debug",
                           "z": "85aa83ba62a06a44",
                           "name": "Timeout",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 600,
                           "y": 360,
                           "wires": []
                       }
                    ]
                    

                    Werde45 1 Reply Last reply Reply Quote 0
                    • Werde45
                      Werde45 @mickym last edited by

                      @mickym
                      Okay.. Gute Idee. Werde ich testen. Schade, das es so umständlich sein muss.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      1.1k
                      Online

                      31.7k
                      Users

                      79.7k
                      Topics

                      1.3m
                      Posts

                      2
                      9
                      654
                      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