Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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

Geplant Angeheftet Gesperrt Verschoben Node-Red
9 Beiträge 2 Kommentatoren 891 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Werde45W Offline
    Werde45W Offline
    Werde45
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #9

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

                    https://bulletproof-admin.de

                    1 Antwort Letzte Antwort
                    0
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    424

                    Online

                    32.4k

                    Benutzer

                    81.4k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe