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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Node-Red Programmabschnitte aktivieren/deaktivieren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    875

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Node-Red Programmabschnitte aktivieren/deaktivieren

Geplant Angeheftet Gesperrt Verschoben Node-Red
4 Beiträge 2 Kommentatoren 3.6k Aufrufe 1 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.
  • H Offline
    H Offline
    Huffaaa
    schrieb am zuletzt editiert von
    #1

    Hallo, liebe Community!
    Normalerweise programmiere ich Websites mit PHP und JavaScript und programmiere Arduinos. Aber bei NodeRed komme ich mit mit der function-Node nicht so richtig klar, um das damit umzusetzen.
    Das Problem ist, dass ich im Node-Red-Dashboard einen Schalter habe, mit dem ich steuern möchte, ob Alexa mich warnt oder nicht warnt, wenn meine Pflanze Wasser braucht. Funktioniert aber nicht.

    Ich habe das so gemacht, dass das Signal von dem Schalter in eine join-Node geht, welche den Schalter eigentlich nur als Trigger benutzen soll. Gleichzeitg geht in die join-Node ein Signal vom Pflanzensensor.
    Hab aber ein Screenshot von meinem Programm angefügt.

    Das Skript arbeitet aber natürlich nur, wenn man gerade erst den Schalter aktiviert hat, oder 2 mal ein Signal vom Pflanzensensor kommt.
    Warum das so ist, ist mir klar: weil der Schalter vom Node-Red-Dashboard seinen Status nur dann ausgibt, wenn er betätigt wird.
    Gibt es irgendeine andere Lösung, um den Programmabschnitt, in dem Alexa angesprochen wird zu deaktivieren?

    Danke für alle Antworten!

    Mein Programm

    R 1 Antwort Letzte Antwort
    0
    • H Huffaaa

      Hallo, liebe Community!
      Normalerweise programmiere ich Websites mit PHP und JavaScript und programmiere Arduinos. Aber bei NodeRed komme ich mit mit der function-Node nicht so richtig klar, um das damit umzusetzen.
      Das Problem ist, dass ich im Node-Red-Dashboard einen Schalter habe, mit dem ich steuern möchte, ob Alexa mich warnt oder nicht warnt, wenn meine Pflanze Wasser braucht. Funktioniert aber nicht.

      Ich habe das so gemacht, dass das Signal von dem Schalter in eine join-Node geht, welche den Schalter eigentlich nur als Trigger benutzen soll. Gleichzeitg geht in die join-Node ein Signal vom Pflanzensensor.
      Hab aber ein Screenshot von meinem Programm angefügt.

      Das Skript arbeitet aber natürlich nur, wenn man gerade erst den Schalter aktiviert hat, oder 2 mal ein Signal vom Pflanzensensor kommt.
      Warum das so ist, ist mir klar: weil der Schalter vom Node-Red-Dashboard seinen Status nur dann ausgibt, wenn er betätigt wird.
      Gibt es irgendeine andere Lösung, um den Programmabschnitt, in dem Alexa angesprochen wird zu deaktivieren?

      Danke für alle Antworten!

      Mein Programm

      R Offline
      R Offline
      rewenode
      schrieb am zuletzt editiert von
      #2

      @Huffaaa
      Bin mir nicht sicher, ob ich dein Problem komplett verstanden habe.
      Du willst also, dass das Signal vom Pflanzensensor nur weitergereicht wird, wenn der Schalter "Alexa warnen lassen" gesetzt ist?
      In dem Fall ist der Join-node sicher nicht die beste Wahl. Da solltest du

      1. mit dem Schalter eine Context-Variable Setzen
      2. mit dieser dann filtern z.B. mit einem function-node

      Beispiel flow


      [
      {
      "id": "3fba4b65.667e1c",
      "type": "ui_switch",
      "z": "6a5f248f.c43fe4",
      "name": "",
      "label": "Alexa warnen lassen",
      "tooltip": "",
      "group": "e5a09358.c99e4",
      "order": 4,
      "width": 0,
      "height": 0,
      "passthru": true,
      "decouple": "false",
      "topic": "AlexaWarnSwitch",
      "style": "",
      "onvalue": "true",
      "onvalueType": "bool",
      "onicon": "",
      "oncolor": "",
      "offvalue": "false",
      "offvalueType": "bool",
      "officon": "",
      "offcolor": "",
      "x": 280,
      "y": 700,
      "wires": [
      [
      "5161df40.dd73"
      ]
      ]
      },
      {
      "id": "5161df40.dd73",
      "type": "function",
      "z": "6a5f248f.c43fe4",
      "name": "Gate für Sensor",
      "func": "// init/set context variable\nif (typeof context.get("AlexaWarnSwitch") === "undefined") context.set("AlexaWarnSwitch","0");\n\n//if Switch, set context variable \nif (msg.topic == "AlexaWarnSwitch") {\n context.set("AlexaWarnSwitch", msg.payload);\n node.status({fill: (msg.payload === true) ? "green" : "red",\n shape:"dot", \n text: (msg.payload === true) ? "Warnung erlaubt" : "keine Warnung"\n })\n} else { // msg comes from sensor\n if (context.get("AlexaWarnSwitch")) node.send(msg); \n}\n",
      "outputs": 1,
      "noerr": 0,
      "x": 540,
      "y": 600,
      "wires": [
      [
      "b425223f.3fa538"
      ]
      ]
      },
      {
      "id": "48111ed4.b07f",
      "type": "comment",
      "z": "6a5f248f.c43fe4",
      "name": "topic="AlexaWarnSwitch"",
      "info": "",
      "x": 290,
      "y": 660,
      "wires": []
      },
      {
      "id": "b425223f.3fa538",
      "type": "debug",
      "z": "6a5f248f.c43fe4",
      "name": "",
      "active": true,
      "tosidebar": true,
      "console": false,
      "tostatus": false,
      "complete": "true",
      "targetType": "full",
      "x": 740,
      "y": 600,
      "wires": []
      },
      {
      "id": "39119b95.d05fbc",
      "type": "inject",
      "z": "6a5f248f.c43fe4",
      "name": "",
      "topic": "",
      "payload": "Sensorwert",
      "payloadType": "str",
      "repeat": "",
      "crontab": "",
      "once": false,
      "onceDelay": 0.1,
      "x": 250,
      "y": 580,
      "wires": [
      [
      "5161df40.dd73"
      ]
      ]
      },
      {
      "id": "25b5104b.2bddf",
      "type": "comment",
      "z": "6a5f248f.c43fe4",
      "name": "Simuliert den Sensorwert",
      "info": "",
      "x": 290,
      "y": 540,
      "wires": []
      },
      {
      "id": "e5a09358.c99e4",
      "type": "ui_group",
      "z": "6a5f248f.c43fe4",
      "name": "Click",
      "tab": "7341130f.164e84",
      "order": 1,
      "disp": true,
      "width": "5"
      },
      {
      "id": "7341130f.164e84",
      "type": "ui_tab",
      "z": "6a5f248f.c43fe4",
      "name": "Home",
      "icon": "link",
      "order": 1
      }
      ]

      Voila_Capture 2019-06-11_01-41-03_AM.png

      Falls du das Schaltersignal innerhalb des Flow noch in anderen nodes benötigst, kannst du statt der context- eine flow Variable benutzen. Die Context Variable ist nur in dem function-node sichtbar, in dem sie angelegt wurde.
      Das ist natürlich nur eine von vielen Möglichkeiten

      Gruß

      R 1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        Huffaaa
        schrieb am zuletzt editiert von
        #3

        Vielen Dank für die Hilfe, das ist genau das, was ich gebraucht habe.
        Da werde ich jetzt aber auch erstmal das Skript studieren, um zu verstehen, wie es funktioniert.

        MfG

        1 Antwort Letzte Antwort
        0
        • R rewenode

          @Huffaaa
          Bin mir nicht sicher, ob ich dein Problem komplett verstanden habe.
          Du willst also, dass das Signal vom Pflanzensensor nur weitergereicht wird, wenn der Schalter "Alexa warnen lassen" gesetzt ist?
          In dem Fall ist der Join-node sicher nicht die beste Wahl. Da solltest du

          1. mit dem Schalter eine Context-Variable Setzen
          2. mit dieser dann filtern z.B. mit einem function-node

          Beispiel flow


          [
          {
          "id": "3fba4b65.667e1c",
          "type": "ui_switch",
          "z": "6a5f248f.c43fe4",
          "name": "",
          "label": "Alexa warnen lassen",
          "tooltip": "",
          "group": "e5a09358.c99e4",
          "order": 4,
          "width": 0,
          "height": 0,
          "passthru": true,
          "decouple": "false",
          "topic": "AlexaWarnSwitch",
          "style": "",
          "onvalue": "true",
          "onvalueType": "bool",
          "onicon": "",
          "oncolor": "",
          "offvalue": "false",
          "offvalueType": "bool",
          "officon": "",
          "offcolor": "",
          "x": 280,
          "y": 700,
          "wires": [
          [
          "5161df40.dd73"
          ]
          ]
          },
          {
          "id": "5161df40.dd73",
          "type": "function",
          "z": "6a5f248f.c43fe4",
          "name": "Gate für Sensor",
          "func": "// init/set context variable\nif (typeof context.get("AlexaWarnSwitch") === "undefined") context.set("AlexaWarnSwitch","0");\n\n//if Switch, set context variable \nif (msg.topic == "AlexaWarnSwitch") {\n context.set("AlexaWarnSwitch", msg.payload);\n node.status({fill: (msg.payload === true) ? "green" : "red",\n shape:"dot", \n text: (msg.payload === true) ? "Warnung erlaubt" : "keine Warnung"\n })\n} else { // msg comes from sensor\n if (context.get("AlexaWarnSwitch")) node.send(msg); \n}\n",
          "outputs": 1,
          "noerr": 0,
          "x": 540,
          "y": 600,
          "wires": [
          [
          "b425223f.3fa538"
          ]
          ]
          },
          {
          "id": "48111ed4.b07f",
          "type": "comment",
          "z": "6a5f248f.c43fe4",
          "name": "topic="AlexaWarnSwitch"",
          "info": "",
          "x": 290,
          "y": 660,
          "wires": []
          },
          {
          "id": "b425223f.3fa538",
          "type": "debug",
          "z": "6a5f248f.c43fe4",
          "name": "",
          "active": true,
          "tosidebar": true,
          "console": false,
          "tostatus": false,
          "complete": "true",
          "targetType": "full",
          "x": 740,
          "y": 600,
          "wires": []
          },
          {
          "id": "39119b95.d05fbc",
          "type": "inject",
          "z": "6a5f248f.c43fe4",
          "name": "",
          "topic": "",
          "payload": "Sensorwert",
          "payloadType": "str",
          "repeat": "",
          "crontab": "",
          "once": false,
          "onceDelay": 0.1,
          "x": 250,
          "y": 580,
          "wires": [
          [
          "5161df40.dd73"
          ]
          ]
          },
          {
          "id": "25b5104b.2bddf",
          "type": "comment",
          "z": "6a5f248f.c43fe4",
          "name": "Simuliert den Sensorwert",
          "info": "",
          "x": 290,
          "y": 540,
          "wires": []
          },
          {
          "id": "e5a09358.c99e4",
          "type": "ui_group",
          "z": "6a5f248f.c43fe4",
          "name": "Click",
          "tab": "7341130f.164e84",
          "order": 1,
          "disp": true,
          "width": "5"
          },
          {
          "id": "7341130f.164e84",
          "type": "ui_tab",
          "z": "6a5f248f.c43fe4",
          "name": "Home",
          "icon": "link",
          "order": 1
          }
          ]

          Voila_Capture 2019-06-11_01-41-03_AM.png

          Falls du das Schaltersignal innerhalb des Flow noch in anderen nodes benötigst, kannst du statt der context- eine flow Variable benutzen. Die Context Variable ist nur in dem function-node sichtbar, in dem sie angelegt wurde.
          Das ist natürlich nur eine von vielen Möglichkeiten

          Gruß

          R Offline
          R Offline
          rewenode
          schrieb am zuletzt editiert von
          #4

          @rewenode sagte in Node-Red Programmabschnitte aktivieren/deaktivieren:

          Beispiel flow

          Was immer da schief lief, der Export läßt sich nicht importieren.
          Nun sollte es gehen.

          [
              {
                  "id": "3fba4b65.667e1c",
                  "type": "ui_switch",
                  "z": "6a5f248f.c43fe4",
                  "name": "",
                  "label": "Alexa warnen lassen",
                  "tooltip": "",
                  "group": "e5a09358.c99e4",
                  "order": 4,
                  "width": 0,
                  "height": 0,
                  "passthru": true,
                  "decouple": "false",
                  "topic": "AlexaWarnSwitch",
                  "style": "",
                  "onvalue": "true",
                  "onvalueType": "bool",
                  "onicon": "",
                  "oncolor": "",
                  "offvalue": "false",
                  "offvalueType": "bool",
                  "officon": "",
                  "offcolor": "",
                  "x": 280,
                  "y": 700,
                  "wires": [
                      [
                          "5161df40.dd73"
                      ]
                  ]
              },
              {
                  "id": "5161df40.dd73",
                  "type": "function",
                  "z": "6a5f248f.c43fe4",
                  "name": "Gate für Sensor",
                  "func": "// init/set context variable\nif (typeof context.get(\"AlexaWarnSwitch\") === \"undefined\") context.set(\"AlexaWarnSwitch\",\"0\");\n\n//if Switch, set context variable \nif (msg.topic == \"AlexaWarnSwitch\") {\n    context.set(\"AlexaWarnSwitch\", msg.payload);\n    node.status({fill: (msg.payload === true) ? \"green\" : \"red\",\n                shape:\"dot\", \n                text: (msg.payload === true) ? \"Warnung erlaubt\" : \"keine Warnung\"\n                })\n} else {  // msg comes from sensor\n    if (context.get(\"AlexaWarnSwitch\")) node.send(msg); \n}\n",
                  "outputs": 1,
                  "noerr": 0,
                  "x": 540,
                  "y": 600,
                  "wires": [
                      [
                          "b425223f.3fa538"
                      ]
                  ]
              },
              {
                  "id": "48111ed4.b07f",
                  "type": "comment",
                  "z": "6a5f248f.c43fe4",
                  "name": "topic=\"AlexaWarnSwitch\"",
                  "info": "",
                  "x": 290,
                  "y": 660,
                  "wires": []
              },
              {
                  "id": "b425223f.3fa538",
                  "type": "debug",
                  "z": "6a5f248f.c43fe4",
                  "name": "",
                  "active": true,
                  "tosidebar": true,
                  "console": false,
                  "tostatus": false,
                  "complete": "true",
                  "targetType": "full",
                  "x": 740,
                  "y": 600,
                  "wires": []
              },
              {
                  "id": "39119b95.d05fbc",
                  "type": "inject",
                  "z": "6a5f248f.c43fe4",
                  "name": "",
                  "topic": "",
                  "payload": "Sensorwert",
                  "payloadType": "str",
                  "repeat": "",
                  "crontab": "",
                  "once": false,
                  "onceDelay": 0.1,
                  "x": 250,
                  "y": 580,
                  "wires": [
                      [
                          "5161df40.dd73"
                      ]
                  ]
              },
              {
                  "id": "25b5104b.2bddf",
                  "type": "comment",
                  "z": "6a5f248f.c43fe4",
                  "name": "Simuliert den Sensorwert",
                  "info": "",
                  "x": 290,
                  "y": 540,
                  "wires": []
              },
              {
                  "id": "e5a09358.c99e4",
                  "type": "ui_group",
                  "z": "6a5f248f.c43fe4",
                  "name": "Click",
                  "tab": "7341130f.164e84",
                  "order": 1,
                  "disp": true,
                  "width": "5"
              },
              {
                  "id": "7341130f.164e84",
                  "type": "ui_tab",
                  "z": "6a5f248f.c43fe4",
                  "name": "Home",
                  "icon": "link",
                  "order": 1
              }
          ]
          

          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

          768

          Online

          32.6k

          Benutzer

          82.1k

          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