Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. function-node aktivieren/deaktivieren

NEWS

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

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

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

function-node aktivieren/deaktivieren

Geplant Angeheftet Gesperrt Verschoben Node-Red
10 Beiträge 3 Kommentatoren 376 Aufrufe 3 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.
  • M Offline
    M Offline
    mark_in dark
    schrieb am zuletzt editiert von
    #1

    Hallo,
    bin neu in Node-Red.
    Ich will eine Anwesenheitssimulation machen. Letztendlich gehn die "Daten" an KNX-Geräte. Das funktioniert schon mal.

    Meine "Hauptproblem" boolsche Logiken/Nodes vermisse ich in Node-Red im Vergleich zu andern Systemen.
    Ich will, dass der Funktionsnode nur dann ausgeführt wird, wenn eine externe boolsche Bedingung erfüllt ist. z.B. ein Schalter oder bestimmte Uhrzeiten um die Anwesenheitssimulation zu aktivieren.

    Mein Code funktioniert ja nicht, weil am Eingang der Funktion der Payload zyklisch durch den Taktgeber wieder überschrieben wird. Chat GPT hat zwar Vorschläge, die funktionieren aber nicht oder ich verstehe sie nicht.

    Danke schon mal.... 😊

    [
        {
            "id": "db744027d9c55da8",
            "type": "tab",
            "label": "Anwesenheitssimulation",
            "disabled": false,
            "info": ""
        },
        {
            "id": "6e26b231fd24ccf9",
            "type": "inject",
            "z": "db744027d9c55da8",
            "name": "Taktgeber",
            "props": [],
            "repeat": "1",
            "crontab": "",
            "once": true,
            "onceDelay": "0.1",
            "topic": "",
            "x": 330,
            "y": 260,
            "wires": [
                [
                    "cddee6fc22707fa6",
                    "9571faaa2cace06b"
                ]
            ]
        },
        {
            "id": "cddee6fc22707fa6",
            "type": "function",
            "z": "db744027d9c55da8",
            "name": "Zufällige Lampe",
            "func": "// Überprüfen, ob die Anwesenheitssimulation aktiv ist\nif (msg.payload) { // msg.payload ist true, wenn aktiv\n    // Zufällige Lampe auswählen\n    let randomLamp = Math.floor(Math.random() * 3); // Zufällige Lampe (0, 1 oder 2)\n\n    // Zufällige Lampe und Zustand initialisieren\n    let lampStates = [\"OFF\", \"OFF\", \"OFF\"]; // Standardmäßig sind alle Lampen aus\n\n    // Eine zufällige Lampe auf \"ON\" setzen\n    lampStates[randomLamp] = \"ON\";\n\n    // Sicherstellen, dass mindestens eine Lampe \"ON\" ist\n    if (Math.random() < 0.5) { // 50% Chance, eine andere Lampe ebenfalls \"ON\" zu setzen\n        let secondLamp = (randomLamp + 1) % 3; // Eine andere Lampe auswählen\n        lampStates[secondLamp] = \"ON\"; // Diese Lampe auf \"ON\" setzen\n    }\n\n    // Die Lampenstatus in die Payload einfügen\n    msg.payload = [\n        { lamp: 0, state: lampStates[0] },\n        { lamp: 1, state: lampStates[1] },\n        { lamp: 2, state: lampStates[2] }\n    ];\n\n    return msg; // Nachricht zurückgeben, wenn aktiv\n} else {\n    // Wenn nicht aktiv, keine Veränderung an den Lampen\n    return null; // Nachricht nicht zurückgeben\n}\n",
            "outputs": 1,
            "timeout": "",
            "noerr": 0,
            "initialize": "",
            "finalize": "",
            "libs": [],
            "x": 620,
            "y": 260,
            "wires": [
                [
                    "f1c40d8b.b6d9e"
                ]
            ]
        },
        {
            "id": "c1d9777a0b7e722d",
            "type": "switch",
            "z": "db744027d9c55da8",
            "name": "Lampensteuerung",
            "property": "payload.lamp",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "eq",
                    "v": "0",
                    "vt": "num"
                },
                {
                    "t": "eq",
                    "v": "1",
                    "vt": "num"
                },
                {
                    "t": "eq",
                    "v": "2",
                    "vt": "num"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 3,
            "x": 1210,
            "y": 260,
            "wires": [
                [
                    "acd34ee251bf299d"
                ],
                [
                    "1a1e642005d4f084"
                ],
                [
                    "d56321d052bed130"
                ]
            ]
        },
        {
            "id": "acd34ee251bf299d",
            "type": "change",
            "z": "db744027d9c55da8",
            "name": "Status für Lampe 1",
            "rules": [
                {
                    "t": "set",
                    "p": "payload",
                    "pt": "msg",
                    "to": "payload.state",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "x": 1570,
            "y": 260,
            "wires": [
                [
                    "97f2e503ce554a63"
                ]
            ]
        },
        {
            "id": "97f2e503ce554a63",
            "type": "ui-led",
            "z": "db744027d9c55da8",
            "name": "Lampe 11",
            "group": "eae2e6e4e2b30e79",
            "order": 3,
            "width": 0,
            "height": 0,
            "label": "Lampe 11",
            "labelPlacement": "left",
            "labelAlignment": "flex-end",
            "states": [
                {
                    "value": "ON",
                    "valueType": "str",
                    "color": "#ffff00"
                },
                {
                    "value": "OFF",
                    "valueType": "str",
                    "color": "#808000"
                }
            ],
            "shape": "square",
            "showBorder": true,
            "showGlow": true,
            "x": 1960,
            "y": 260,
            "wires": []
        },
        {
            "id": "1a1e642005d4f084",
            "type": "change",
            "z": "db744027d9c55da8",
            "name": "Status für Lampe 2",
            "rules": [
                {
                    "t": "set",
                    "p": "payload",
                    "pt": "msg",
                    "to": "payload.state",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "x": 1570,
            "y": 320,
            "wires": [
                [
                    "9f4c1f52e7edc3cc"
                ]
            ]
        },
        {
            "id": "d56321d052bed130",
            "type": "change",
            "z": "db744027d9c55da8",
            "name": "Status für Lampe 3",
            "rules": [
                {
                    "t": "set",
                    "p": "payload",
                    "pt": "msg",
                    "to": "payload.state",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "x": 1570,
            "y": 380,
            "wires": [
                [
                    "3412a2106c836d52"
                ]
            ]
        },
        {
            "id": "9f4c1f52e7edc3cc",
            "type": "ui-led",
            "z": "db744027d9c55da8",
            "name": "Lampe 12",
            "group": "eae2e6e4e2b30e79",
            "order": 4,
            "width": 0,
            "height": 0,
            "label": "Lampe 12",
            "labelPlacement": "left",
            "labelAlignment": "flex-end",
            "states": [
                {
                    "value": "ON",
                    "valueType": "str",
                    "color": "#ffff00"
                },
                {
                    "value": "OFF",
                    "valueType": "str",
                    "color": "#808000"
                }
            ],
            "shape": "square",
            "showBorder": true,
            "showGlow": true,
            "x": 1960,
            "y": 320,
            "wires": []
        },
        {
            "id": "3412a2106c836d52",
            "type": "ui-led",
            "z": "db744027d9c55da8",
            "name": "Lampe 13",
            "group": "eae2e6e4e2b30e79",
            "order": 5,
            "width": 0,
            "height": 0,
            "label": "Lampe 13",
            "labelPlacement": "left",
            "labelAlignment": "flex-end",
            "states": [
                {
                    "value": "ON",
                    "valueType": "str",
                    "color": "#ffff00"
                },
                {
                    "value": "OFF",
                    "valueType": "str",
                    "color": "#808000"
                }
            ],
            "shape": "square",
            "showBorder": true,
            "showGlow": true,
            "x": 1960,
            "y": 380,
            "wires": []
        },
        {
            "id": "f1c40d8b.b6d9e",
            "type": "split",
            "z": "db744027d9c55da8",
            "name": "Split Lampenstatus",
            "splt": "\\n",
            "spltType": "auto",
            "arraySplt": "1",
            "arraySpltType": "len",
            "stream": false,
            "addname": "",
            "property": "payload",
            "x": 890,
            "y": 260,
            "wires": [
                [
                    "c1d9777a0b7e722d"
                ]
            ]
        },
        {
            "id": "9571faaa2cace06b",
            "type": "function",
            "z": "db744027d9c55da8",
            "name": "Uhrzeit prüfen",
            "func": "const currentTime = new Date();\nconst hours = currentTime.getHours();\n\nif (hours >= 18 && hours < 23) {\n    // Zwischen 18 und 23 Uhr\n    msg.payload = \"Lampen einschalten\"; // oder eine spezifische Steuerung für die Lampen\n} else {\n    // Außerhalb der erlaubten Zeiten\n    msg.payload = \"Lampen ausschalten\"; // oder eine spezifische Steuerung für die Lampen\n}\n\nreturn msg;\n",
            "outputs": 1,
            "timeout": 0,
            "noerr": 0,
            "initialize": "",
            "finalize": "",
            "libs": [],
            "x": 620,
            "y": 360,
            "wires": [
                []
            ]
        },
        {
            "id": "cc2b6675dc1a6ce3",
            "type": "ui-switch",
            "z": "db744027d9c55da8",
            "name": "",
            "label": "switch",
            "group": "eae2e6e4e2b30e79",
            "order": 0,
            "width": 0,
            "height": 0,
            "passthru": false,
            "decouple": false,
            "topic": "payload",
            "topicType": "msg",
            "style": "",
            "className": "",
            "layout": "row-spread",
            "clickableArea": "switch",
            "onvalue": "{\"simulation\": true}",
            "onvalueType": "json",
            "onicon": "",
            "oncolor": "",
            "offvalue": "{\"simulation\": false}",
            "offvalueType": "json",
            "officon": "",
            "offcolor": "",
            "x": 310,
            "y": 160,
            "wires": [
                [
                    "cddee6fc22707fa6"
                ]
            ]
        },
        {
            "id": "eae2e6e4e2b30e79",
            "type": "ui-group",
            "name": "Group 1",
            "page": "a3e6081f6177718a",
            "width": "2",
            "height": 1,
            "order": 1,
            "showTitle": true,
            "className": "",
            "visible": "true",
            "disabled": "false",
            "groupType": "default"
        },
        {
            "id": "a3e6081f6177718a",
            "type": "ui-page",
            "name": "Page 1",
            "ui": "e0f1fa3c5c6ad564",
            "path": "/page1",
            "icon": "home",
            "layout": "grid",
            "theme": "8077bd265499d558",
            "breakpoints": [
                {
                    "name": "Default",
                    "px": "0",
                    "cols": "3"
                },
                {
                    "name": "Tablet",
                    "px": "576",
                    "cols": "6"
                },
                {
                    "name": "Small Desktop",
                    "px": "768",
                    "cols": "9"
                },
                {
                    "name": "Desktop",
                    "px": "1024",
                    "cols": "12"
                }
            ],
            "order": 1,
            "className": "",
            "visible": "true",
            "disabled": "false"
        },
        {
            "id": "e0f1fa3c5c6ad564",
            "type": "ui-base",
            "name": "My Dashboard",
            "path": "/dashboard",
            "appIcon": "",
            "includeClientData": true,
            "acceptsClientConfig": [
                "ui-notification",
                "ui-control"
            ],
            "showPathInSidebar": false,
            "headerContent": "page",
            "navigationStyle": "default",
            "titleBarStyle": "default",
            "showReconnectNotification": true,
            "notificationDisplayTime": 1,
            "showDisconnectNotification": true,
            "allowInstall": true
        },
        {
            "id": "8077bd265499d558",
            "type": "ui-theme",
            "name": "Default Theme",
            "colors": {
                "surface": "#ffffff",
                "primary": "#0094CE",
                "bgPage": "#eeeeee",
                "groupBg": "#ffffff",
                "groupOutline": "#cccccc"
            },
            "sizes": {
                "density": "default",
                "pagePadding": "12px",
                "groupGap": "12px",
                "groupBorderRadius": "4px",
                "widgetGap": "12px"
            }
        },
        {
            "id": "1bc863875cde0fe8",
            "type": "global-config",
            "env": [],
            "modules": {
                "@flowfuse/node-red-dashboard-2-ui-led": "1.1.0",
                "@flowfuse/node-red-dashboard": "1.26.0"
            }
        }
    ]
    
    mickymM 1 Antwort Letzte Antwort
    0
    • OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #2

      @mark_in-dark

      hier hat @mickym mal AND und OR beschrieben
      https://forum.iobroker.net/topic/51180/boolean-logic-problem/5?_=1756650577534

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      1 Antwort Letzte Antwort
      0
      • M mark_in dark

        Hallo,
        bin neu in Node-Red.
        Ich will eine Anwesenheitssimulation machen. Letztendlich gehn die "Daten" an KNX-Geräte. Das funktioniert schon mal.

        Meine "Hauptproblem" boolsche Logiken/Nodes vermisse ich in Node-Red im Vergleich zu andern Systemen.
        Ich will, dass der Funktionsnode nur dann ausgeführt wird, wenn eine externe boolsche Bedingung erfüllt ist. z.B. ein Schalter oder bestimmte Uhrzeiten um die Anwesenheitssimulation zu aktivieren.

        Mein Code funktioniert ja nicht, weil am Eingang der Funktion der Payload zyklisch durch den Taktgeber wieder überschrieben wird. Chat GPT hat zwar Vorschläge, die funktionieren aber nicht oder ich verstehe sie nicht.

        Danke schon mal.... 😊

        [
            {
                "id": "db744027d9c55da8",
                "type": "tab",
                "label": "Anwesenheitssimulation",
                "disabled": false,
                "info": ""
            },
            {
                "id": "6e26b231fd24ccf9",
                "type": "inject",
                "z": "db744027d9c55da8",
                "name": "Taktgeber",
                "props": [],
                "repeat": "1",
                "crontab": "",
                "once": true,
                "onceDelay": "0.1",
                "topic": "",
                "x": 330,
                "y": 260,
                "wires": [
                    [
                        "cddee6fc22707fa6",
                        "9571faaa2cace06b"
                    ]
                ]
            },
            {
                "id": "cddee6fc22707fa6",
                "type": "function",
                "z": "db744027d9c55da8",
                "name": "Zufällige Lampe",
                "func": "// Überprüfen, ob die Anwesenheitssimulation aktiv ist\nif (msg.payload) { // msg.payload ist true, wenn aktiv\n    // Zufällige Lampe auswählen\n    let randomLamp = Math.floor(Math.random() * 3); // Zufällige Lampe (0, 1 oder 2)\n\n    // Zufällige Lampe und Zustand initialisieren\n    let lampStates = [\"OFF\", \"OFF\", \"OFF\"]; // Standardmäßig sind alle Lampen aus\n\n    // Eine zufällige Lampe auf \"ON\" setzen\n    lampStates[randomLamp] = \"ON\";\n\n    // Sicherstellen, dass mindestens eine Lampe \"ON\" ist\n    if (Math.random() < 0.5) { // 50% Chance, eine andere Lampe ebenfalls \"ON\" zu setzen\n        let secondLamp = (randomLamp + 1) % 3; // Eine andere Lampe auswählen\n        lampStates[secondLamp] = \"ON\"; // Diese Lampe auf \"ON\" setzen\n    }\n\n    // Die Lampenstatus in die Payload einfügen\n    msg.payload = [\n        { lamp: 0, state: lampStates[0] },\n        { lamp: 1, state: lampStates[1] },\n        { lamp: 2, state: lampStates[2] }\n    ];\n\n    return msg; // Nachricht zurückgeben, wenn aktiv\n} else {\n    // Wenn nicht aktiv, keine Veränderung an den Lampen\n    return null; // Nachricht nicht zurückgeben\n}\n",
                "outputs": 1,
                "timeout": "",
                "noerr": 0,
                "initialize": "",
                "finalize": "",
                "libs": [],
                "x": 620,
                "y": 260,
                "wires": [
                    [
                        "f1c40d8b.b6d9e"
                    ]
                ]
            },
            {
                "id": "c1d9777a0b7e722d",
                "type": "switch",
                "z": "db744027d9c55da8",
                "name": "Lampensteuerung",
                "property": "payload.lamp",
                "propertyType": "msg",
                "rules": [
                    {
                        "t": "eq",
                        "v": "0",
                        "vt": "num"
                    },
                    {
                        "t": "eq",
                        "v": "1",
                        "vt": "num"
                    },
                    {
                        "t": "eq",
                        "v": "2",
                        "vt": "num"
                    }
                ],
                "checkall": "true",
                "repair": false,
                "outputs": 3,
                "x": 1210,
                "y": 260,
                "wires": [
                    [
                        "acd34ee251bf299d"
                    ],
                    [
                        "1a1e642005d4f084"
                    ],
                    [
                        "d56321d052bed130"
                    ]
                ]
            },
            {
                "id": "acd34ee251bf299d",
                "type": "change",
                "z": "db744027d9c55da8",
                "name": "Status für Lampe 1",
                "rules": [
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "payload.state",
                        "tot": "msg"
                    }
                ],
                "action": "",
                "property": "",
                "x": 1570,
                "y": 260,
                "wires": [
                    [
                        "97f2e503ce554a63"
                    ]
                ]
            },
            {
                "id": "97f2e503ce554a63",
                "type": "ui-led",
                "z": "db744027d9c55da8",
                "name": "Lampe 11",
                "group": "eae2e6e4e2b30e79",
                "order": 3,
                "width": 0,
                "height": 0,
                "label": "Lampe 11",
                "labelPlacement": "left",
                "labelAlignment": "flex-end",
                "states": [
                    {
                        "value": "ON",
                        "valueType": "str",
                        "color": "#ffff00"
                    },
                    {
                        "value": "OFF",
                        "valueType": "str",
                        "color": "#808000"
                    }
                ],
                "shape": "square",
                "showBorder": true,
                "showGlow": true,
                "x": 1960,
                "y": 260,
                "wires": []
            },
            {
                "id": "1a1e642005d4f084",
                "type": "change",
                "z": "db744027d9c55da8",
                "name": "Status für Lampe 2",
                "rules": [
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "payload.state",
                        "tot": "msg"
                    }
                ],
                "action": "",
                "property": "",
                "x": 1570,
                "y": 320,
                "wires": [
                    [
                        "9f4c1f52e7edc3cc"
                    ]
                ]
            },
            {
                "id": "d56321d052bed130",
                "type": "change",
                "z": "db744027d9c55da8",
                "name": "Status für Lampe 3",
                "rules": [
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "payload.state",
                        "tot": "msg"
                    }
                ],
                "action": "",
                "property": "",
                "x": 1570,
                "y": 380,
                "wires": [
                    [
                        "3412a2106c836d52"
                    ]
                ]
            },
            {
                "id": "9f4c1f52e7edc3cc",
                "type": "ui-led",
                "z": "db744027d9c55da8",
                "name": "Lampe 12",
                "group": "eae2e6e4e2b30e79",
                "order": 4,
                "width": 0,
                "height": 0,
                "label": "Lampe 12",
                "labelPlacement": "left",
                "labelAlignment": "flex-end",
                "states": [
                    {
                        "value": "ON",
                        "valueType": "str",
                        "color": "#ffff00"
                    },
                    {
                        "value": "OFF",
                        "valueType": "str",
                        "color": "#808000"
                    }
                ],
                "shape": "square",
                "showBorder": true,
                "showGlow": true,
                "x": 1960,
                "y": 320,
                "wires": []
            },
            {
                "id": "3412a2106c836d52",
                "type": "ui-led",
                "z": "db744027d9c55da8",
                "name": "Lampe 13",
                "group": "eae2e6e4e2b30e79",
                "order": 5,
                "width": 0,
                "height": 0,
                "label": "Lampe 13",
                "labelPlacement": "left",
                "labelAlignment": "flex-end",
                "states": [
                    {
                        "value": "ON",
                        "valueType": "str",
                        "color": "#ffff00"
                    },
                    {
                        "value": "OFF",
                        "valueType": "str",
                        "color": "#808000"
                    }
                ],
                "shape": "square",
                "showBorder": true,
                "showGlow": true,
                "x": 1960,
                "y": 380,
                "wires": []
            },
            {
                "id": "f1c40d8b.b6d9e",
                "type": "split",
                "z": "db744027d9c55da8",
                "name": "Split Lampenstatus",
                "splt": "\\n",
                "spltType": "auto",
                "arraySplt": "1",
                "arraySpltType": "len",
                "stream": false,
                "addname": "",
                "property": "payload",
                "x": 890,
                "y": 260,
                "wires": [
                    [
                        "c1d9777a0b7e722d"
                    ]
                ]
            },
            {
                "id": "9571faaa2cace06b",
                "type": "function",
                "z": "db744027d9c55da8",
                "name": "Uhrzeit prüfen",
                "func": "const currentTime = new Date();\nconst hours = currentTime.getHours();\n\nif (hours >= 18 && hours < 23) {\n    // Zwischen 18 und 23 Uhr\n    msg.payload = \"Lampen einschalten\"; // oder eine spezifische Steuerung für die Lampen\n} else {\n    // Außerhalb der erlaubten Zeiten\n    msg.payload = \"Lampen ausschalten\"; // oder eine spezifische Steuerung für die Lampen\n}\n\nreturn msg;\n",
                "outputs": 1,
                "timeout": 0,
                "noerr": 0,
                "initialize": "",
                "finalize": "",
                "libs": [],
                "x": 620,
                "y": 360,
                "wires": [
                    []
                ]
            },
            {
                "id": "cc2b6675dc1a6ce3",
                "type": "ui-switch",
                "z": "db744027d9c55da8",
                "name": "",
                "label": "switch",
                "group": "eae2e6e4e2b30e79",
                "order": 0,
                "width": 0,
                "height": 0,
                "passthru": false,
                "decouple": false,
                "topic": "payload",
                "topicType": "msg",
                "style": "",
                "className": "",
                "layout": "row-spread",
                "clickableArea": "switch",
                "onvalue": "{\"simulation\": true}",
                "onvalueType": "json",
                "onicon": "",
                "oncolor": "",
                "offvalue": "{\"simulation\": false}",
                "offvalueType": "json",
                "officon": "",
                "offcolor": "",
                "x": 310,
                "y": 160,
                "wires": [
                    [
                        "cddee6fc22707fa6"
                    ]
                ]
            },
            {
                "id": "eae2e6e4e2b30e79",
                "type": "ui-group",
                "name": "Group 1",
                "page": "a3e6081f6177718a",
                "width": "2",
                "height": 1,
                "order": 1,
                "showTitle": true,
                "className": "",
                "visible": "true",
                "disabled": "false",
                "groupType": "default"
            },
            {
                "id": "a3e6081f6177718a",
                "type": "ui-page",
                "name": "Page 1",
                "ui": "e0f1fa3c5c6ad564",
                "path": "/page1",
                "icon": "home",
                "layout": "grid",
                "theme": "8077bd265499d558",
                "breakpoints": [
                    {
                        "name": "Default",
                        "px": "0",
                        "cols": "3"
                    },
                    {
                        "name": "Tablet",
                        "px": "576",
                        "cols": "6"
                    },
                    {
                        "name": "Small Desktop",
                        "px": "768",
                        "cols": "9"
                    },
                    {
                        "name": "Desktop",
                        "px": "1024",
                        "cols": "12"
                    }
                ],
                "order": 1,
                "className": "",
                "visible": "true",
                "disabled": "false"
            },
            {
                "id": "e0f1fa3c5c6ad564",
                "type": "ui-base",
                "name": "My Dashboard",
                "path": "/dashboard",
                "appIcon": "",
                "includeClientData": true,
                "acceptsClientConfig": [
                    "ui-notification",
                    "ui-control"
                ],
                "showPathInSidebar": false,
                "headerContent": "page",
                "navigationStyle": "default",
                "titleBarStyle": "default",
                "showReconnectNotification": true,
                "notificationDisplayTime": 1,
                "showDisconnectNotification": true,
                "allowInstall": true
            },
            {
                "id": "8077bd265499d558",
                "type": "ui-theme",
                "name": "Default Theme",
                "colors": {
                    "surface": "#ffffff",
                    "primary": "#0094CE",
                    "bgPage": "#eeeeee",
                    "groupBg": "#ffffff",
                    "groupOutline": "#cccccc"
                },
                "sizes": {
                    "density": "default",
                    "pagePadding": "12px",
                    "groupGap": "12px",
                    "groupBorderRadius": "4px",
                    "widgetGap": "12px"
                }
            },
            {
                "id": "1bc863875cde0fe8",
                "type": "global-config",
                "env": [],
                "modules": {
                    "@flowfuse/node-red-dashboard-2-ui-led": "1.1.0",
                    "@flowfuse/node-red-dashboard": "1.26.0"
                }
            }
        ]
        
        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #3

        @mark_in-dark Also entweder Du prüfst diverse Eigenschaften eines Nachrichtenobjektes ab, dann kannst Du Change oder function Nodes machen oder wenn Du externe Bedingungen nehmen willst, wie Uhrzeit nimmst, dann prüfst du die innerhalb des Flows ab. Wenn Du bestimmte Schalter zusätzlich abprüfen willst, machst Du das auch in dem Flow oder speicherst den Status im Kontext.

        f2b13b50-94c7-47e5-8473-884746ba4115-image.png

        Wenn Du also die Uhrzeit abprüfen willst, dann musst Du es halt in den Flow hängen - wenn Du die Nodes parallel machst dann ist es wie eine ODER Bedingung. Ich würde generell keine function Nodes verwenden, wenn möglich.

        Oder mit anderen Worten auf die Überschrift angewandt: Du musst halt vor die function Node eine Node setzen, die den Flow blockiert, sodass die function Node gar nicht mehr angesteuert wird.

        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.

        M 1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @mark_in-dark Also entweder Du prüfst diverse Eigenschaften eines Nachrichtenobjektes ab, dann kannst Du Change oder function Nodes machen oder wenn Du externe Bedingungen nehmen willst, wie Uhrzeit nimmst, dann prüfst du die innerhalb des Flows ab. Wenn Du bestimmte Schalter zusätzlich abprüfen willst, machst Du das auch in dem Flow oder speicherst den Status im Kontext.

          f2b13b50-94c7-47e5-8473-884746ba4115-image.png

          Wenn Du also die Uhrzeit abprüfen willst, dann musst Du es halt in den Flow hängen - wenn Du die Nodes parallel machst dann ist es wie eine ODER Bedingung. Ich würde generell keine function Nodes verwenden, wenn möglich.

          Oder mit anderen Worten auf die Überschrift angewandt: Du musst halt vor die function Node eine Node setzen, die den Flow blockiert, sodass die function Node gar nicht mehr angesteuert wird.

          M Offline
          M Offline
          mark_in dark
          schrieb am zuletzt editiert von
          #4

          @mickym
          Danke für die Antwort.
          Auch wenn ich gerade noch nicht konkret duchblicke, muss ich wohl noch etwas Grundlagenforschung machen, obwohl ich eher ein einmaliges Projekt habe und darum nicht zu viel Zeit in die Einarbeitung in Node-Red stecken möchte.

          function-Node finde ich eigentlich praktisch, denn da hätte ich in den einen noch mehr hineingepackt, eben auch die Uhrzeitabfrage. Warum man functions-nodes nicht unbedingt verwenden soll, verstehe ich gerade nicht.

          OliverIOO 1 Antwort Letzte Antwort
          0
          • M mark_in dark

            @mickym
            Danke für die Antwort.
            Auch wenn ich gerade noch nicht konkret duchblicke, muss ich wohl noch etwas Grundlagenforschung machen, obwohl ich eher ein einmaliges Projekt habe und darum nicht zu viel Zeit in die Einarbeitung in Node-Red stecken möchte.

            function-Node finde ich eigentlich praktisch, denn da hätte ich in den einen noch mehr hineingepackt, eben auch die Uhrzeitabfrage. Warum man functions-nodes nicht unbedingt verwenden soll, verstehe ich gerade nicht.

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von
            #5

            @mark_in-dark

            weil du dann node-red nicht benötigst, sondern einfach nur javascript schreibst und das dann direkt im javascript adapter ausführen könntest.

            node-red ist ja eher eine no-code (evtl low-code) Umgebung.
            die function node ist eher die notlösung um lücken zu füllen, die node-red nicht unterstützt oder es keine nodes zum nachinstallieren gibt.

            die grafische nachvollziehbarkeit von abläufen geht dann auch verloren.

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            M 1 Antwort Letzte Antwort
            1
            • OliverIOO OliverIO

              @mark_in-dark

              weil du dann node-red nicht benötigst, sondern einfach nur javascript schreibst und das dann direkt im javascript adapter ausführen könntest.

              node-red ist ja eher eine no-code (evtl low-code) Umgebung.
              die function node ist eher die notlösung um lücken zu füllen, die node-red nicht unterstützt oder es keine nodes zum nachinstallieren gibt.

              die grafische nachvollziehbarkeit von abläufen geht dann auch verloren.

              M Offline
              M Offline
              mark_in dark
              schrieb am zuletzt editiert von
              #6

              @oliverio
              ja da hast du auch wieder recht. Sehe aber in Node-Red den Vorteil, dass ich ein Lauzeitplattform, eine Webseite habe und meine KNX-Anbindung fertig funktionsfähig ist.
              Kann meine Gewünschte Anwesenheitssimulation gerne mit grafischen Nodes machen. Bin froh im irgendwelche Tipps. Vielleicht wäre eine andere Lösung als Node-Red besser geeignet für mein Vorhaben?

              OliverIOO 1 Antwort Letzte Antwort
              0
              • M mark_in dark

                @oliverio
                ja da hast du auch wieder recht. Sehe aber in Node-Red den Vorteil, dass ich ein Lauzeitplattform, eine Webseite habe und meine KNX-Anbindung fertig funktionsfähig ist.
                Kann meine Gewünschte Anwesenheitssimulation gerne mit grafischen Nodes machen. Bin froh im irgendwelche Tipps. Vielleicht wäre eine andere Lösung als Node-Red besser geeignet für mein Vorhaben?

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #7

                @mark_in-dark

                daher solltest.
                KNX funktioniert ja im iobroker grundsätzlich auch, aber halt mit entsprechenden Lizenzbeschränkungen.
                Keine node-red Polizei wird dir das verbieten 😉

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                M 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @mark_in-dark

                  daher solltest.
                  KNX funktioniert ja im iobroker grundsätzlich auch, aber halt mit entsprechenden Lizenzbeschränkungen.
                  Keine node-red Polizei wird dir das verbieten 😉

                  M Offline
                  M Offline
                  mark_in dark
                  schrieb am zuletzt editiert von
                  #8

                  @oliverio
                  Danke, iobroker kenne ich noch weniger, Du meinst damit wäre es einfacher meine Wünsch zu erfüllen, darf ruhige etwas kosten...

                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • M mark_in dark

                    @oliverio
                    Danke, iobroker kenne ich noch weniger, Du meinst damit wäre es einfacher meine Wünsch zu erfüllen, darf ruhige etwas kosten...

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von
                    #9

                    @mark_in-dark

                    du kannst ja mal probeweise installieren
                    https://github.com/ioBroker/ioBroker.knx?tab=readme-ov-file#license-requirements

                    bis zu einer grenze ist er kostenlos

                    dann noch den javascript adapter dazu
                    https://github.com/ioBroker/ioBroker.javascript

                    ich selbst habe kein knx. daher weiß ich nicht was wirklich einfacher ist

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    M 1 Antwort Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @mark_in-dark

                      du kannst ja mal probeweise installieren
                      https://github.com/ioBroker/ioBroker.knx?tab=readme-ov-file#license-requirements

                      bis zu einer grenze ist er kostenlos

                      dann noch den javascript adapter dazu
                      https://github.com/ioBroker/ioBroker.javascript

                      ich selbst habe kein knx. daher weiß ich nicht was wirklich einfacher ist

                      M Offline
                      M Offline
                      mark_in dark
                      schrieb am zuletzt editiert von
                      #10

                      @OliverIO

                      Super! Herzlichen Dank, ich schaue es mir mal an.
                      Schönen Abend!

                      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

                      489

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

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

                      • Du hast noch kein Konto? Registrieren

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