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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. Nodered Problem mit Websocket

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Nodered Problem mit Websocket

Scheduled Pinned Locked Moved Error/Bug
31 Posts 3 Posters 2.7k 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.
  • mickymM mickym

    @speedyblade Das ist aber keine Websocket Verbindung - und dazu braucht man das auch nicht. Das ist eine normale HTTP-Get Kommunikation. Dafür brauchst Du wie gesagt die websocket Nodes nicht.. Wenn Du im HS entsprechende URLs zu bestimmten Aktien festlegen kannst, ist das somit kein Problem.

    S Offline
    S Offline
    SpeedyBlade
    wrote on last edited by
    #21

    @mickym

    hier ein Beispiel, wie Daten von NR an den HS via WS gesendet werden.
    ws.png

    Wenn das kein WS ist, dann kenne ich mich nicht mehr aus ;)

    mickymM 1 Reply Last reply
    0
    • S SpeedyBlade

      @mickym

      hier ein Beispiel, wie Daten von NR an den HS via WS gesendet werden.
      ws.png

      Wenn das kein WS ist, dann kenne ich mich nicht mehr aus ;)

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

      @speedyblade Das hat doch mit WS nichts zu tun.

      Das ist eine Template Node - die Du zwischen einen HTTP-IN und HTTP-Out Node klemmen kannst.

      Das bekommst auch so hin, indem Du in die payload einfach ein JS Objekt packst und zwischen ein HTTP-In und Out Node packst:

      bd3b2ebe-135d-4780-9e83-febd369ffdb7-image.png

      4bccf1cf-7704-4e69-99a1-14cd3933e610-image.png

      [
         {
             "id": "15c38fc6a4b43962",
             "type": "http in",
             "z": "c13d5a4f.b76118",
             "name": "",
             "url": "/leer",
             "method": "get",
             "upload": false,
             "swaggerDoc": "",
             "x": 1940,
             "y": 60,
             "wires": [
                 [
                     "967e274410ef8a66"
                 ]
             ]
         },
         {
             "id": "8c859ee6446c9636",
             "type": "http response",
             "z": "c13d5a4f.b76118",
             "name": "",
             "statusCode": "",
             "headers": {},
             "x": 2470,
             "y": 60,
             "wires": []
         },
         {
             "id": "c34592399c62bc79",
             "type": "change",
             "z": "c13d5a4f.b76118",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "template",
                     "pt": "msg",
                     "to": "{\"type\":\"call\",\"param\":{\"key\":\"CO@shellytoogle\",\"method\":\"set\"}}",
                     "tot": "json"
                 },
                 {
                     "t": "move",
                     "p": "payload",
                     "pt": "msg",
                     "to": "template.param.value",
                     "tot": "msg"
                 },
                 {
                     "t": "move",
                     "p": "template",
                     "pt": "msg",
                     "to": "payload",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 2270,
             "y": 60,
             "wires": [
                 [
                     "8c859ee6446c9636",
                     "22c988eb3de6f79d"
                 ]
             ]
         },
         {
             "id": "967e274410ef8a66",
             "type": "change",
             "z": "c13d5a4f.b76118",
             "name": "=1",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "1",
                     "tot": "num"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 2100,
             "y": 60,
             "wires": [
                 [
                     "c34592399c62bc79"
                 ]
             ]
         },
         {
             "id": "22c988eb3de6f79d",
             "type": "debug",
             "z": "c13d5a4f.b76118",
             "name": "",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "false",
             "statusVal": "",
             "statusType": "auto",
             "x": 2480,
             "y": 120,
             "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.

      S 1 Reply Last reply
      0
      • mickymM mickym

        @speedyblade Das hat doch mit WS nichts zu tun.

        Das ist eine Template Node - die Du zwischen einen HTTP-IN und HTTP-Out Node klemmen kannst.

        Das bekommst auch so hin, indem Du in die payload einfach ein JS Objekt packst und zwischen ein HTTP-In und Out Node packst:

        bd3b2ebe-135d-4780-9e83-febd369ffdb7-image.png

        4bccf1cf-7704-4e69-99a1-14cd3933e610-image.png

        [
           {
               "id": "15c38fc6a4b43962",
               "type": "http in",
               "z": "c13d5a4f.b76118",
               "name": "",
               "url": "/leer",
               "method": "get",
               "upload": false,
               "swaggerDoc": "",
               "x": 1940,
               "y": 60,
               "wires": [
                   [
                       "967e274410ef8a66"
                   ]
               ]
           },
           {
               "id": "8c859ee6446c9636",
               "type": "http response",
               "z": "c13d5a4f.b76118",
               "name": "",
               "statusCode": "",
               "headers": {},
               "x": 2470,
               "y": 60,
               "wires": []
           },
           {
               "id": "c34592399c62bc79",
               "type": "change",
               "z": "c13d5a4f.b76118",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "template",
                       "pt": "msg",
                       "to": "{\"type\":\"call\",\"param\":{\"key\":\"CO@shellytoogle\",\"method\":\"set\"}}",
                       "tot": "json"
                   },
                   {
                       "t": "move",
                       "p": "payload",
                       "pt": "msg",
                       "to": "template.param.value",
                       "tot": "msg"
                   },
                   {
                       "t": "move",
                       "p": "template",
                       "pt": "msg",
                       "to": "payload",
                       "tot": "msg"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 2270,
               "y": 60,
               "wires": [
                   [
                       "8c859ee6446c9636",
                       "22c988eb3de6f79d"
                   ]
               ]
           },
           {
               "id": "967e274410ef8a66",
               "type": "change",
               "z": "c13d5a4f.b76118",
               "name": "=1",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "1",
                       "tot": "num"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 2100,
               "y": 60,
               "wires": [
                   [
                       "c34592399c62bc79"
                   ]
               ]
           },
           {
               "id": "22c988eb3de6f79d",
               "type": "debug",
               "z": "c13d5a4f.b76118",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "false",
               "statusVal": "",
               "statusType": "auto",
               "x": 2480,
               "y": 120,
               "wires": []
           }
        ]
        

        S Offline
        S Offline
        SpeedyBlade
        wrote on last edited by
        #23

        @mickym
        hilft mir leider auch nicht weiter ;)

        lauschen.png

        selbst wenn ich direkt am WS Out v. HS einen msg.payload setze und über den HS den Befehl sende, kommt da nix an.

        mickymM 1 Reply Last reply
        0
        • S SpeedyBlade

          @mickym
          hilft mir leider auch nicht weiter ;)

          lauschen.png

          selbst wenn ich direkt am WS Out v. HS einen msg.payload setze und über den HS den Befehl sende, kommt da nix an.

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

          @speedyblade Nochmal Du brauchst kein Websocket. Wenn Du über eine URL am HS absetzt nimm einfach eine normale HTTP In node - Wie unten mit dem /leer gezeigt.

          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.

          mickymM 1 Reply Last reply
          0
          • mickymM mickym

            @speedyblade Nochmal Du brauchst kein Websocket. Wenn Du über eine URL am HS absetzt nimm einfach eine normale HTTP In node - Wie unten mit dem /leer gezeigt.

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

            @mickym Wenn Du JSONs aus dem Homeserver verschicken willst dann nimmst besser die POST Methode.

            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.

            S 1 Reply Last reply
            0
            • mickymM mickym

              @mickym Wenn Du JSONs aus dem Homeserver verschicken willst dann nimmst besser die POST Methode.

              S Offline
              S Offline
              SpeedyBlade
              wrote on last edited by
              #26

              @mickym
              da blicke ich nun nimmer durch :white_frowning_face:

              hab mal die Beschreibung v. HS mit dran gehängt
              hs.png

              mickymM 1 Reply Last reply
              0
              • S SpeedyBlade

                @mickym
                da blicke ich nun nimmer durch :white_frowning_face:

                hab mal die Beschreibung v. HS mit dran gehängt
                hs.png

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

                @speedyblade Das ist was ganz anderes. Das ist weder Websocket noch eine Kommunikation mit NodeRed direkt.

                Gib mal die URL im Browser ein, die Du an den Homeserver schickst.

                Also irgendwas wie http://<ip-Adresse HS>/endpoints/call?key= usw.

                dann sollte im Browser ein JSON Objekt vom HS angezeigt werden.

                Wenn das funktioniert - schmeißt Du Deine ganzen bisherigen Nodes weg und nimmst eine HTTP Request Node - und da kommt dann das JSON Objekt fix und fertig raus.

                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.

                S 1 Reply Last reply
                0
                • mickymM mickym

                  @speedyblade Das ist was ganz anderes. Das ist weder Websocket noch eine Kommunikation mit NodeRed direkt.

                  Gib mal die URL im Browser ein, die Du an den Homeserver schickst.

                  Also irgendwas wie http://<ip-Adresse HS>/endpoints/call?key= usw.

                  dann sollte im Browser ein JSON Objekt vom HS angezeigt werden.

                  Wenn das funktioniert - schmeißt Du Deine ganzen bisherigen Nodes weg und nimmst eine HTTP Request Node - und da kommt dann das JSON Objekt fix und fertig raus.

                  S Offline
                  S Offline
                  SpeedyBlade
                  wrote on last edited by
                  #28

                  @mickym

                  vom NR zum HS funktioniert dies ja schon, da wird das JSON an den WS HS gesendet.

                  Der umgekehrte Weg ist nicht greifbar für mich.

                  Wenn ich den Befehl im Browser eingebe, wird die "Lampe" am HS auch geschalten.
                  https://192.168.0.11/endpoints/call?key=CO@TEST_EIN_AUS&method=toggle&value=1&user=XXXXX&pw=XXXX

                  Und das ist dann das Ergebnis des Befehls.
                  {"request": {"method": "toggle", "key": "CO@TEST_EIN_AUS"}, "code": 0, "type": "call"}

                  Nicht falsch verstehen, aber NR ist halt noch ziemlich Neuland für mich

                  Was verlangt der http request am Eingang, damit der Befehlt auch raus geht?
                  fehler.png

                  mickymM 1 Reply Last reply
                  0
                  • S SpeedyBlade

                    @mickym

                    vom NR zum HS funktioniert dies ja schon, da wird das JSON an den WS HS gesendet.

                    Der umgekehrte Weg ist nicht greifbar für mich.

                    Wenn ich den Befehl im Browser eingebe, wird die "Lampe" am HS auch geschalten.
                    https://192.168.0.11/endpoints/call?key=CO@TEST_EIN_AUS&method=toggle&value=1&user=XXXXX&pw=XXXX

                    Und das ist dann das Ergebnis des Befehls.
                    {"request": {"method": "toggle", "key": "CO@TEST_EIN_AUS"}, "code": 0, "type": "call"}

                    Nicht falsch verstehen, aber NR ist halt noch ziemlich Neuland für mich

                    Was verlangt der http request am Eingang, damit der Befehlt auch raus geht?
                    fehler.png

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

                    @speedyblade sagte in Nodered Problem mit Websocket:

                    Was verlangt der http request am Eingang, damit der Befehlt auch raus geht?

                    Gar nichts und ist auch ein GET und kein POST:

                    e9ed46ab-4626-41ef-b005-4eb5645ddbce-image.png

                    dc5c985a-6dc0-4369-ab64-bd1a665ec104-image.png

                    Einfach die URL wie im Browser eingeben, dann mit einer Inject Node triggern - egal was da drin steht und das Ergebnis kommt hinten raus.

                    Falls Du später die URL variabel gestalten willst - machst Du das indem Du eine msg.url die URL definierst in der HTTP Request Node die URL leer lässt.

                    ggf. kannst Du auch noch Basisauthentifizierung in der Node eingeben, dann brauchst Du das nicht mehr in der URL machen.
                    Im Grunde stellst Du nur eine Anfrage an Deinen HS und der antwortet Dir direkt mit einem JSON Objekt. Das hat nichts mit Websockets oder einem NodeRed Webserver zu tun, sondern ist eine stinknormale HTTP Anfrage.

                    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.

                    S 1 Reply Last reply
                    0
                    • mickymM mickym

                      @speedyblade sagte in Nodered Problem mit Websocket:

                      Was verlangt der http request am Eingang, damit der Befehlt auch raus geht?

                      Gar nichts und ist auch ein GET und kein POST:

                      e9ed46ab-4626-41ef-b005-4eb5645ddbce-image.png

                      dc5c985a-6dc0-4369-ab64-bd1a665ec104-image.png

                      Einfach die URL wie im Browser eingeben, dann mit einer Inject Node triggern - egal was da drin steht und das Ergebnis kommt hinten raus.

                      Falls Du später die URL variabel gestalten willst - machst Du das indem Du eine msg.url die URL definierst in der HTTP Request Node die URL leer lässt.

                      ggf. kannst Du auch noch Basisauthentifizierung in der Node eingeben, dann brauchst Du das nicht mehr in der URL machen.
                      Im Grunde stellst Du nur eine Anfrage an Deinen HS und der antwortet Dir direkt mit einem JSON Objekt. Das hat nichts mit Websockets oder einem NodeRed Webserver zu tun, sondern ist eine stinknormale HTTP Anfrage.

                      S Offline
                      S Offline
                      SpeedyBlade
                      wrote on last edited by
                      #30

                      @mickym
                      fehler.png

                      "Falls Du später die URL variabel gestalten willst - machst Du das indem Du eine msg.url die URL definierst in der HTTP Request Node die URL leer lässt." => nicht verstanden, wie du das meinst, bzw. das gehen soll

                      "ggf. kannst Du auch noch Basisauthentifizierung in der Node eingeben, dann brauchst Du das nicht mehr in der URL machen." => ist umgesetzt, hat funktioniert

                      was mir aber noch nicht aufgeht, wenn ich nun am HS auf den Button drücke, ändert der Status, jedoch bekomme ich beim http request GET bzw. an dem msg.payload keine Daten. Nur wenn ich auf den Taster in NR drücke, werden die Daten am PayLoad ausgegeben.

                      mickymM 1 Reply Last reply
                      0
                      • S SpeedyBlade

                        @mickym
                        fehler.png

                        "Falls Du später die URL variabel gestalten willst - machst Du das indem Du eine msg.url die URL definierst in der HTTP Request Node die URL leer lässt." => nicht verstanden, wie du das meinst, bzw. das gehen soll

                        "ggf. kannst Du auch noch Basisauthentifizierung in der Node eingeben, dann brauchst Du das nicht mehr in der URL machen." => ist umgesetzt, hat funktioniert

                        was mir aber noch nicht aufgeht, wenn ich nun am HS auf den Button drücke, ändert der Status, jedoch bekomme ich beim http request GET bzw. an dem msg.payload keine Daten. Nur wenn ich auf den Taster in NR drücke, werden die Daten am PayLoad ausgegeben.

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

                        @speedyblade Also die POST Methode kannst Du gleich wieder vergessen - davon stand ja nichts in der Beschreibung.

                        Wenn Du unterschiedliche URLs benötigst um, was abzufragen, dann musst Du die URL als String vorher definieren, eben als msg.url und dafür die URL in der Request Node leer lassen:

                        1. URL aus der Node löschen
                          2687c5d8-a5f0-4fa0-a643-f21645d00e6a-image.png

                        2. Als msg.url einspeisen - hier über die Inject Node - kann man dann natürlich auch über einen Flow über einen Change Node später machen:

                        c981b7fb-fa89-4a21-8871-4423cb4920ae-image.png

                        Diesen String - kannst Du dann halt später dynamisch zusammensetzen.

                        was mir aber noch nicht aufgeht, wenn ich nun am HS auf den Button drücke, ändert der Status, jedoch bekomme ich beim http request GET bzw. an dem msg.payload keine Daten. Nur wenn ich auf den Taster in NR drücke, werden die Daten am PayLoad ausgegeben.

                        Nochmal die Daten holst Du Dir immer ab. Entweder gibt es im HS noch einen anderen Mechanismus in dem Du auch eine URL eintragen kannst, wenn Du eine bestimmte Aktion am HS vornimmst. Ansonsten kannst Du nur über NR den Status abfragen, aber wirst nicht aktiv informiert. Das nennt man dann "Pollen" im Fachjargon. Also musst Du halt recherchieren, ob der HS von sich aus beim Tastendrücken Aktionen starten kann.

                        Über NodeRed kannst Du über die Get Methode entweder was schalten oder einen Status abfragen. Wenn der HS aber von sich aus aktiv werden soll, dann musst Du das im HS konfigurieren, das kann NR nicht übernehmen,

                        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.

                        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

                        753

                        Online

                        32.5k

                        Users

                        81.7k

                        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