Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Node-Red TCP-Request Timeout

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.4k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.5k

Node-Red TCP-Request Timeout

Scheduled Pinned Locked Moved Node-Red
9 Posts 2 Posters 890 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Werde45W Offline
    Werde45W Offline
    Werde45
    wrote on last edited by
    #1

    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.

    https://bulletproof-admin.de

    mickymM 1 Reply Last reply
    0
    • Werde45W Werde45

      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.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      wrote on last edited by
      #2

      @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.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      Werde45W 1 Reply Last reply
      0
      • mickymM mickym

        @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.

        Werde45W Offline
        Werde45W Offline
        Werde45
        wrote on last edited by
        #3

        @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.

        https://bulletproof-admin.de

        mickymM 1 Reply Last reply
        0
        • Werde45W Werde45

          @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.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by
          #4

          @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

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          Werde45W 1 Reply Last reply
          0
          • mickymM mickym

            @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

            Werde45W Offline
            Werde45W Offline
            Werde45
            wrote on last edited by
            #5

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

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

            https://bulletproof-admin.de

            mickymM 1 Reply Last reply
            0
            • Werde45W Werde45

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

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

              mickymM Online
              mickymM Online
              mickym
              Most Active
              wrote on last edited by
              #6

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

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              Werde45W 1 Reply Last reply
              0
              • mickymM mickym

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

                Werde45W Offline
                Werde45W Offline
                Werde45
                wrote on last edited by
                #7

                @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.

                https://bulletproof-admin.de

                mickymM 1 Reply Last reply
                0
                • Werde45W Werde45

                  @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.

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  wrote on last edited by mickym
                  #8

                  @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": []
                     }
                  ]
                  

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  Werde45W 1 Reply Last reply
                  0
                  • mickymM 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": []
                       }
                    ]
                    

                    Werde45W Offline
                    Werde45W Offline
                    Werde45
                    wrote on last edited by
                    #9

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

                    https://bulletproof-admin.de

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    513

                    Online

                    32.4k

                    Users

                    81.4k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe