Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. [gelöst] Lampe nur einschalten wenn...

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Lampe nur einschalten wenn...

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Matt77CHE last edited by mickym

      @matt77che Einfach die Zustände im Flow Kontext speichern und die beiden Zustände über Switch Nodes filtern (2 in serie) oder alternativ über iobroker-get Nodes in das Nachrichtenobjekt mit aufnehmen und dann über Switch Nodes die entsprechende Eigenschaften (also 2 in Serie) oder über JSONATA in einer Switch Node abfragen.
      Ich würde wahrscheinlich letzteres machen. Kommt drauf an, ob die beiden Zustände (dunkel und Licht aus) bereits in einem Datenpunkt gespeichert sind oder erst ermittelt werden müssen.
      Wenn man Dunkelheit im Flow selbst ermitteln will - bietet sich der Lightscheduler an - für noch mehr Funktionalität die cronplus Node.

      M 1 Reply Last reply Reply Quote 0
      • M
        Matt77CHE @mickym last edited by

        @mickym

        Vielen Dank für deine Erklärung - Da ich aber ein Neuling in Node-Red bin und nicht gerade der ultimative Programmierer stehe ich noch immer wie der Esel vor dem Berg....🤷‍♂️

        Die beiden abgefragten States sind boolean Datenpunkte in den Objekten.

        Ich glaube letzteres würde ich auch versuchen wollen;
        In das Nachrichtenobjekt mit aufnehmen? - Wie mache ich das?

        Soory - mein Kopf glüht und ist verwirrt...

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Matt77CHE last edited by

          @matt77che Gut - dann nähern wir uns also der Lösung.

          Du hast also 2 Datenpunkte - die einmal den Status dunkel=true und einem Licht aus= dunkel beinhalten?

          Dann soll, wenn es entweder dunkel wird (also getriggert wird) - geprüft werden ob das Licht aus ist und das Nachtlicht eingeschaltet bzw. ausgeschaltet werden?

          Desweiteren, soll wenn das Licht ausgeschaltet wird (also getriggert wird) geprüft werden, ob es das dunkel ist und das Licht eingeschaltet werden?

          Ich gehe mal davon aus, dass beide Datenpunkte in 0_userdata.0 sind? - Ich erstelle Dir mal einen Flow.

          M 1 Reply Last reply Reply Quote 0
          • M
            Matt77CHE @mickym last edited by Matt77CHE

            @mickym
            Genau ich habe die Datenpunkte:
            Ist dunkel > true/fale (datenpunkt wird über eine Astro-Funktion gesteuert)
            Licht im Wohnzimmer an > true/false

            Ja, die Datenpunkte liegen im 0_userdata.0

            Das Nachtlicht soll brennen, wenn der Datenpunkt ist dunkel = true und Licht imWZ an =false
            Sonst jedoch nicht - Das Nachtlicht ist jedoch nicht der Datenpunkt "Licht im Wohnzimmer", sondern ein anderes.

            mickym 2 Replies Last reply Reply Quote 0
            • mickym
              mickym Most Active @Matt77CHE last edited by

              @matt77che Ok dann mach ich Dir mal einen Flow mit diesen Datenpunkten

              ec1e755c-7462-4347-9ee7-b58ebcd12ff1-image.png

              M 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Matt77CHE last edited by

                @matt77che

                @matt77che sagte in Lampe nur einschalten wenn...:

                Sonst jedoch nicht - Das Nachtlicht ist jedoch nicht der Datenpunkt "Licht im Wohnzimmer", sondern ein anderes.

                Das spielt keine Rolle - es kommt true für Einschalten und false für Ausschalten aus dem Flow und das schickst Du dann in den Datenpunkt der das Nachtlicht ein-/ausschaltet.

                1 Reply Last reply Reply Quote 0
                • M
                  Matt77CHE @mickym last edited by

                  @mickym

                  Es sind insgesamt drei Objekte

                  Ist dunkel?
                  Licht im Wohnzimmer
                  Nachtlicht > soll brennen wenn es dunkel ist und im Wohnzimmer kein Licht brennt

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Matt77CHE last edited by mickym

                    @matt77che Ja schon verstanden.

                    45715aee-c043-4a5f-8031-82a60ab635f7-image.png

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Matt77CHE @mickym last edited by

                      @mickym
                      genau

                      1 Reply Last reply Reply Quote 0
                      • M
                        Matt77CHE last edited by

                        @mickym
                        für einen solchen Flow wäre ich dir dankbar

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Matt77CHE last edited by mickym

                          @matt77che

                          e1c9764d-0e7d-46fd-a517-c71e3a01b710-image.png

                          Hier zum Import - die Debug Nodes kannst natürlich wieder löschen - dienen nur zur Illustration. Ich habs mit einer Change Node direkt ohne switch Node gemacht.

                          Hier zum Import:

                          [
                             {
                                 "id": "c6ef0f95e6107c9d",
                                 "type": "ioBroker in",
                                 "z": "289f539dcc33814e",
                                 "name": "Licht Wohnzimmer",
                                 "topic": "0_userdata.0.Test.Licht.an",
                                 "payloadType": "value",
                                 "onlyack": "",
                                 "func": "all",
                                 "gap": "",
                                 "fireOnStart": "true",
                                 "outFormat": "MQTT",
                                 "x": 3210,
                                 "y": 4380,
                                 "wires": [
                                     [
                                         "ce013750d76f19f2"
                                     ]
                                 ]
                             },
                             {
                                 "id": "02af5d243f1cdff2",
                                 "type": "ioBroker in",
                                 "z": "289f539dcc33814e",
                                 "name": "Ist es dunkel?",
                                 "topic": "0_userdata.0.Test.Licht.dunkel",
                                 "payloadType": "value",
                                 "onlyack": "",
                                 "func": "all",
                                 "gap": "",
                                 "fireOnStart": "true",
                                 "outFormat": "MQTT",
                                 "x": 3230,
                                 "y": 4440,
                                 "wires": [
                                     [
                                         "5441cb4d36c6c103"
                                     ]
                                 ]
                             },
                             {
                                 "id": "ce013750d76f19f2",
                                 "type": "change",
                                 "z": "289f539dcc33814e",
                                 "name": "verschiebe payload nach licht",
                                 "rules": [
                                     {
                                         "t": "move",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "licht",
                                         "tot": "msg"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 3470,
                                 "y": 4380,
                                 "wires": [
                                     [
                                         "435677eebedefdda"
                                     ]
                                 ]
                             },
                             {
                                 "id": "5441cb4d36c6c103",
                                 "type": "change",
                                 "z": "289f539dcc33814e",
                                 "name": "verschiebe payload nach dunkel",
                                 "rules": [
                                     {
                                         "t": "move",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "dunkel",
                                         "tot": "msg"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 3470,
                                 "y": 4440,
                                 "wires": [
                                     [
                                         "e4d5d47dbdc5a358"
                                     ]
                                 ]
                             },
                             {
                                 "id": "435677eebedefdda",
                                 "type": "ioBroker get",
                                 "z": "289f539dcc33814e",
                                 "name": "schaue, ob es dunkel ist",
                                 "topic": "0_userdata.0.Test.Licht.dunkel",
                                 "attrname": "dunkel",
                                 "payloadType": "value",
                                 "errOnInvalidState": "nothing",
                                 "x": 3750,
                                 "y": 4380,
                                 "wires": [
                                     [
                                         "44a0b5a56e945fe6"
                                     ]
                                 ]
                             },
                             {
                                 "id": "e4d5d47dbdc5a358",
                                 "type": "ioBroker get",
                                 "z": "289f539dcc33814e",
                                 "name": "schaue, ob Licht brennt",
                                 "topic": "0_userdata.0.Test.Licht.an",
                                 "attrname": "licht",
                                 "payloadType": "value",
                                 "errOnInvalidState": "nothing",
                                 "x": 3750,
                                 "y": 4440,
                                 "wires": [
                                     [
                                         "44a0b5a56e945fe6"
                                     ]
                                 ]
                             },
                             {
                                 "id": "8f61b42771a996bb",
                                 "type": "debug",
                                 "z": "289f539dcc33814e",
                                 "name": "Status der beiden Eigenschaften",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "{\t   \"Licht an\": licht,\t   \"Es ist dunkel\": dunkel\t}",
                                 "targetType": "jsonata",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 4130,
                                 "y": 4340,
                                 "wires": []
                             },
                             {
                                 "id": "99f4d1cd12809cc2",
                                 "type": "change",
                                 "z": "289f539dcc33814e",
                                 "name": "Setze payload wenn dunkel und kein Licht",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "$not(licht) and dunkel",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 4140,
                                 "y": 4400,
                                 "wires": [
                                     [
                                         "f4bca42f9cbc2173",
                                         "c93a76d68ed1e296"
                                     ]
                                 ]
                             },
                             {
                                 "id": "f4bca42f9cbc2173",
                                 "type": "ioBroker out",
                                 "z": "289f539dcc33814e",
                                 "name": "Nachtlicht",
                                 "topic": "0_userdata.0.Test.Licht.Nachtlicht",
                                 "ack": "false",
                                 "autoCreate": "false",
                                 "stateName": "",
                                 "role": "",
                                 "payloadType": "",
                                 "readonly": "",
                                 "stateUnit": "",
                                 "stateMin": "",
                                 "stateMax": "",
                                 "x": 4400,
                                 "y": 4400,
                                 "wires": []
                             },
                             {
                                 "id": "c93a76d68ed1e296",
                                 "type": "debug",
                                 "z": "289f539dcc33814e",
                                 "name": "payload = Nachtlicht",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 4440,
                                 "y": 4480,
                                 "wires": []
                             },
                             {
                                 "id": "44a0b5a56e945fe6",
                                 "type": "junction",
                                 "z": "289f539dcc33814e",
                                 "x": 3917,
                                 "y": 4403.5,
                                 "wires": [
                                     [
                                         "8f61b42771a996bb",
                                         "99f4d1cd12809cc2"
                                     ]
                                 ]
                             }
                          ]
                          

                          Ausserdem habe ich versucht die Nodes entsprechend aussagekräftig zu benennen.

                          Die payload zum Schalten des Nachtlichts wird also direkt über die Verknüpfung der beiden Nachrichteneigenschaften dunkel und licht erstellt (die dann wenn licht aus und dunkel ist, true ist - sonst false).

                          Wenn Du kein JSONATA verwenden willst - sondern nur über die Logik der Nodes steuern willst dann musst Du halt in einzelne Nodes auflösen - nur zur Demo.

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            Matt77CHE @mickym last edited by

                            @mickym
                            super - vielen Dank dafür, funktioniert genau so wie es soll.

                            Schaue mir die einzelnen nodes noch an, wie du es gemacht hast & vielen Dank für deine Erklärungen!
                            👍 👍 👍

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @Matt77CHE last edited by mickym

                              @matt77che So falls Du kein JSONATA nutzen willst - hier mal eine Version - in der die Logik rein mit setzen der payload und filtern der verschiedenen Fälle über switch Nodes realisiert ist:

                              cec7cf4a-f396-47f1-9650-5a7d447b45ae-image.png

                              Auch hier habe ich versucht über die Namen, das einigermassen verständlich zu erklären
                              hier der Import:

                              [
                                 {
                                     "id": "c6ef0f95e6107c9d",
                                     "type": "ioBroker in",
                                     "z": "289f539dcc33814e",
                                     "name": "Licht Wohnzimmer",
                                     "topic": "0_userdata.0.Test.Licht.an",
                                     "payloadType": "value",
                                     "onlyack": "",
                                     "func": "all",
                                     "gap": "",
                                     "fireOnStart": "true",
                                     "outFormat": "MQTT",
                                     "x": 2950,
                                     "y": 4360,
                                     "wires": [
                                         [
                                             "ce013750d76f19f2"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "02af5d243f1cdff2",
                                     "type": "ioBroker in",
                                     "z": "289f539dcc33814e",
                                     "name": "Ist es dunkel?",
                                     "topic": "0_userdata.0.Test.Licht.dunkel",
                                     "payloadType": "value",
                                     "onlyack": "",
                                     "func": "all",
                                     "gap": "",
                                     "fireOnStart": "true",
                                     "outFormat": "MQTT",
                                     "x": 2970,
                                     "y": 4440,
                                     "wires": [
                                         [
                                             "5441cb4d36c6c103"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "ce013750d76f19f2",
                                     "type": "change",
                                     "z": "289f539dcc33814e",
                                     "name": "verschiebe payload nach licht",
                                     "rules": [
                                         {
                                             "t": "move",
                                             "p": "payload",
                                             "pt": "msg",
                                             "to": "licht",
                                             "tot": "msg"
                                         }
                                     ],
                                     "action": "",
                                     "property": "",
                                     "from": "",
                                     "to": "",
                                     "reg": false,
                                     "x": 3210,
                                     "y": 4360,
                                     "wires": [
                                         [
                                             "435677eebedefdda"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "5441cb4d36c6c103",
                                     "type": "change",
                                     "z": "289f539dcc33814e",
                                     "name": "verschiebe payload nach dunkel",
                                     "rules": [
                                         {
                                             "t": "move",
                                             "p": "payload",
                                             "pt": "msg",
                                             "to": "dunkel",
                                             "tot": "msg"
                                         }
                                     ],
                                     "action": "",
                                     "property": "",
                                     "from": "",
                                     "to": "",
                                     "reg": false,
                                     "x": 3210,
                                     "y": 4440,
                                     "wires": [
                                         [
                                             "e4d5d47dbdc5a358"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "435677eebedefdda",
                                     "type": "ioBroker get",
                                     "z": "289f539dcc33814e",
                                     "name": "schaue, ob es dunkel ist",
                                     "topic": "0_userdata.0.Test.Licht.dunkel",
                                     "attrname": "dunkel",
                                     "payloadType": "value",
                                     "errOnInvalidState": "nothing",
                                     "x": 3490,
                                     "y": 4360,
                                     "wires": [
                                         [
                                             "44a0b5a56e945fe6"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "e4d5d47dbdc5a358",
                                     "type": "ioBroker get",
                                     "z": "289f539dcc33814e",
                                     "name": "schaue, ob Licht brennt",
                                     "topic": "0_userdata.0.Test.Licht.an",
                                     "attrname": "licht",
                                     "payloadType": "value",
                                     "errOnInvalidState": "nothing",
                                     "x": 3490,
                                     "y": 4440,
                                     "wires": [
                                         [
                                             "44a0b5a56e945fe6"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "f4bca42f9cbc2173",
                                     "type": "ioBroker out",
                                     "z": "289f539dcc33814e",
                                     "name": "Nachtlicht",
                                     "topic": "0_userdata.0.Test.Licht.Nachtlicht",
                                     "ack": "false",
                                     "autoCreate": "false",
                                     "stateName": "",
                                     "role": "",
                                     "payloadType": "",
                                     "readonly": "",
                                     "stateUnit": "",
                                     "stateMin": "",
                                     "stateMax": "",
                                     "x": 4760,
                                     "y": 4380,
                                     "wires": []
                                 },
                                 {
                                     "id": "c93a76d68ed1e296",
                                     "type": "debug",
                                     "z": "289f539dcc33814e",
                                     "name": "payload = Nachtlicht",
                                     "active": true,
                                     "tosidebar": true,
                                     "console": false,
                                     "tostatus": false,
                                     "complete": "payload",
                                     "targetType": "msg",
                                     "statusVal": "",
                                     "statusType": "auto",
                                     "x": 4800,
                                     "y": 4440,
                                     "wires": []
                                 },
                                 {
                                     "id": "cbb5a412bcf60ab0",
                                     "type": "switch",
                                     "z": "289f539dcc33814e",
                                     "name": "Ist Licht an/aus?",
                                     "property": "licht",
                                     "propertyType": "msg",
                                     "rules": [
                                         {
                                             "t": "false"
                                         },
                                         {
                                             "t": "true"
                                         }
                                     ],
                                     "checkall": "true",
                                     "repair": false,
                                     "outputs": 2,
                                     "x": 3740,
                                     "y": 4400,
                                     "wires": [
                                         [
                                             "a501f770071798a7"
                                         ],
                                         [
                                             "9d5467df431a8fec"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "9d5467df431a8fec",
                                     "type": "change",
                                     "z": "289f539dcc33814e",
                                     "name": "Wenn Licht an - dann payload false",
                                     "rules": [
                                         {
                                             "t": "set",
                                             "p": "payload",
                                             "pt": "msg",
                                             "to": "false",
                                             "tot": "bool"
                                         }
                                     ],
                                     "action": "",
                                     "property": "",
                                     "from": "",
                                     "to": "",
                                     "reg": false,
                                     "x": 4480,
                                     "y": 4440,
                                     "wires": [
                                         [
                                             "f92109c326f3e098"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "a501f770071798a7",
                                     "type": "switch",
                                     "z": "289f539dcc33814e",
                                     "name": "Wenn Licht aus - dann prüfe ob dunkel ist?",
                                     "property": "dunkel",
                                     "propertyType": "msg",
                                     "rules": [
                                         {
                                             "t": "true"
                                         },
                                         {
                                             "t": "false"
                                         }
                                     ],
                                     "checkall": "true",
                                     "repair": false,
                                     "outputs": 2,
                                     "x": 4030,
                                     "y": 4360,
                                     "wires": [
                                         [
                                             "c4bbadd7a7b95d8d"
                                         ],
                                         [
                                             "0277bbdf129cf5ae"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "c4bbadd7a7b95d8d",
                                     "type": "change",
                                     "z": "289f539dcc33814e",
                                     "name": "Es ist dunkel und Licht ist aus, also payload = true",
                                     "rules": [
                                         {
                                             "t": "set",
                                             "p": "payload",
                                             "pt": "msg",
                                             "to": "true",
                                             "tot": "bool"
                                         }
                                     ],
                                     "action": "",
                                     "property": "",
                                     "from": "",
                                     "to": "",
                                     "reg": false,
                                     "x": 4430,
                                     "y": 4320,
                                     "wires": [
                                         [
                                             "f92109c326f3e098"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "0277bbdf129cf5ae",
                                     "type": "change",
                                     "z": "289f539dcc33814e",
                                     "name": "Es ist hell und Licht ist aus, also payload = false",
                                     "rules": [
                                         {
                                             "t": "set",
                                             "p": "payload",
                                             "pt": "msg",
                                             "to": "false",
                                             "tot": "bool"
                                         }
                                     ],
                                     "action": "",
                                     "property": "",
                                     "from": "",
                                     "to": "",
                                     "reg": false,
                                     "x": 4420,
                                     "y": 4380,
                                     "wires": [
                                         [
                                             "f92109c326f3e098"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "44a0b5a56e945fe6",
                                     "type": "junction",
                                     "z": "289f539dcc33814e",
                                     "x": 3640,
                                     "y": 4400,
                                     "wires": [
                                         [
                                             "cbb5a412bcf60ab0"
                                         ]
                                     ]
                                 },
                                 {
                                     "id": "f92109c326f3e098",
                                     "type": "junction",
                                     "z": "289f539dcc33814e",
                                     "x": 4660,
                                     "y": 4380,
                                     "wires": [
                                         [
                                             "c93a76d68ed1e296",
                                             "f4bca42f9cbc2173"
                                         ]
                                     ]
                                 }
                              ]
                              

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                Matt77CHE @mickym last edited by

                                @mickym

                                Vielen Dank - ist doch irgendwie ganz was anderes als die Blockly im Java-Scripte adapter 😊

                                Danke dass du dir die Zeit genommen hast um mir weiterzuhelfen!

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @Matt77CHE last edited by

                                  @matt77che Na ich hoffe Du bist positiv überzeugt. 😉 - Ich verstehe ja auch nicht, warum gerade Anfänger immer alle zum Puzzeln überredet werden.

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  1.0k
                                  Online

                                  31.7k
                                  Users

                                  79.7k
                                  Topics

                                  1.3m
                                  Posts

                                  2
                                  16
                                  639
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo