Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. (gelöst)Abfragen Lichter an bzw. aus

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    774

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

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

(gelöst)Abfragen Lichter an bzw. aus

Scheduled Pinned Locked Moved Node-Red
7 Posts 2 Posters 738 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    frankyboy73
    wrote on last edited by frankyboy73
    #1

    Hi, ich würde gern nen Status bekommen ob noch ein Licht bzw. Gerät an ist.
    Als Beispiel, ich habe 20 Lampen und möchte wissen ob noch eine oder mehrere an sind bzw. alle aus.
    Wie löse ich das am einfachsten.
    Was mir bis jetzt eingefallen ist, alle Lampen (20 ) als Trigger zu nutzen und dann durch 20 Get Nodes mit allen Lampen zu jagen und mit mit Switches abzufragen, das finde ich allerdings sehr umständlich.
    Vielleicht kennt ja jemand ne einfachere Lösung.

    Schöne Grüße Frank

    mickymM 1 Reply Last reply
    0
    • F frankyboy73

      Hi, ich würde gern nen Status bekommen ob noch ein Licht bzw. Gerät an ist.
      Als Beispiel, ich habe 20 Lampen und möchte wissen ob noch eine oder mehrere an sind bzw. alle aus.
      Wie löse ich das am einfachsten.
      Was mir bis jetzt eingefallen ist, alle Lampen (20 ) als Trigger zu nutzen und dann durch 20 Get Nodes mit allen Lampen zu jagen und mit mit Switches abzufragen, das finde ich allerdings sehr umständlich.
      Vielleicht kennt ja jemand ne einfachere Lösung.

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

      @frankyboy73 Im Prinzip brauchst Du zumindest die Lampen als Trigger um den aktuellen Zustand zu erfahren. Was bei mir zwar nicht ganz geht - aber mit * am Ende gehts, dass Du über die In-Nodes dann alle Zustände subscriben kannst.
      Dann schreibe ich alles mit einer Join Node in einen Datenpunkt als JSON String. Den werte ich dann aus und ermittle ein Gesamtergebnis.

      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.

      F 2 Replies Last reply
      0
      • mickymM mickym

        @frankyboy73 Im Prinzip brauchst Du zumindest die Lampen als Trigger um den aktuellen Zustand zu erfahren. Was bei mir zwar nicht ganz geht - aber mit * am Ende gehts, dass Du über die In-Nodes dann alle Zustände subscriben kannst.
        Dann schreibe ich alles mit einer Join Node in einen Datenpunkt als JSON String. Den werte ich dann aus und ermittle ein Gesamtergebnis.

        F Offline
        F Offline
        frankyboy73
        wrote on last edited by frankyboy73
        #3

        @mickym Sorry, aber ich glaube das verstehe ich nicht.
        Ich brauche für jede Lampe eine In Node, ist klar.
        Muss ich jetzt bei den In Nodes am Ende des Topics "Stern" dahinter setzen, oder wie soll ich das deuten oder".Stern" oder noch ne zusätzliche Node?
        Dann mein zweites Problem, ich weiß überhaupt nicht wie ich mit der Join Node umgehen muss. Ich habe da schon mit mehreren InjektNodes Nachrichten draufgefeuert und verschiedene Einstellungen probiert, aber aus dem Ding werde ich einfach nicht schlau. Ich bekomme es auch nicht hin das mehrere Nachrichten kombiniert werden. Ich wüsste auch nicht wie, ich muss ja nach jeder Statusänderung einer Lampe das Gesamtpaket da raus kriegen, bei meinen Tests kriege ich aber bis jetzt immer nur einzelne Zustände ausgegeben. Gibts da irgendwo ne gute Erklärung oder einen Beispielflow wie man diese Node anwendet. Aus dem Hilfe Text werde ich leider auch nicht richtig schlau.
        Edit: Wieso werden in meinem Post die Sterne in Anführungszeichen nicht angezeigt?
        Ich habe da als ersatz jetzt mal "Stern" reingeschrieben

        Schöne Grüße Frank

        1 Reply Last reply
        0
        • mickymM mickym

          @frankyboy73 Im Prinzip brauchst Du zumindest die Lampen als Trigger um den aktuellen Zustand zu erfahren. Was bei mir zwar nicht ganz geht - aber mit * am Ende gehts, dass Du über die In-Nodes dann alle Zustände subscriben kannst.
          Dann schreibe ich alles mit einer Join Node in einen Datenpunkt als JSON String. Den werte ich dann aus und ermittle ein Gesamtergebnis.

          F Offline
          F Offline
          frankyboy73
          wrote on last edited by frankyboy73
          #4

          @mickym Oh, es geht voran.
          Mit der Einstellung manuell ein Schlüssel Wert Objekt erstellen nach Anzahl von Nachrichten und jede folgende Nachricht, kriege ich jetzt doch kombinierte Nachrichten raus.
          Danke, dann probiere ich mal weiter.
          Edit:
          Habe es hinbekommen, hinter den Join habe ich jetzt nen Switch mit 2 Ausgängen, Abfrage ob im JSon Ausdruck (payload.*) true enthalten ist, dann ist noch mindestens ein Licht an, im Switch Andernfalls, dann ist alles aus. Scheint nach meinen ersten Test zu klappen.
          Vielen Dank noch mal an @mickym für den Tipp.
          Edit2:
          Wow, klappt für meine Fenster auch so, vielen Dank, das macht alles sehr viel einfacher und übersichtlicher.

          Schöne Grüße Frank

          mickymM 1 Reply Last reply
          0
          • F frankyboy73

            @mickym Oh, es geht voran.
            Mit der Einstellung manuell ein Schlüssel Wert Objekt erstellen nach Anzahl von Nachrichten und jede folgende Nachricht, kriege ich jetzt doch kombinierte Nachrichten raus.
            Danke, dann probiere ich mal weiter.
            Edit:
            Habe es hinbekommen, hinter den Join habe ich jetzt nen Switch mit 2 Ausgängen, Abfrage ob im JSon Ausdruck (payload.*) true enthalten ist, dann ist noch mindestens ein Licht an, im Switch Andernfalls, dann ist alles aus. Scheint nach meinen ersten Test zu klappen.
            Vielen Dank noch mal an @mickym für den Tipp.
            Edit2:
            Wow, klappt für meine Fenster auch so, vielen Dank, das macht alles sehr viel einfacher und übersichtlicher.

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

            @frankyboy73 Ja ich schreib dann das ganze als JSON in einen DP. Oder falls man das Objekt direkt auswerten will, habe ich mir 2 Function Nodes ;) - als UND und ODER in meine Bibliothek genommen. Ich wandle alles in true oder false um. Damit kann man Fenster, Alarmzustände jeder Art etc. über wachen.

            d44b5ca2-c948-4769-b4f4-e74786230e76-image.png

            Die Funktion in der Oder- Node sieht dann so aus:

            var x;
            var obj = msg.payload;
            var bIsBoolean=false;
            
            for (x in obj) {
              bIsBoolean = bIsBoolean || obj[x];
              
            }
            
            msg.payload=bIsBoolean;
            return msg;
            

            in der UND Node so:

            var x;
            var obj = msg.payload;
            var bIsBoolean=true;
            
            for (x in obj) {
              bIsBoolean = bIsBoolean && obj[x];
              
            }
            
            msg.payload=bIsBoolean;
            return msg;
            
            

            So sieht dann zum Beispiel Batterieüberprüfung meiner zigbees aus:

            {"Präsenz Büro":true,"Präsenz Diele":true,"Präsenz Flur":true,"Präsenz Wohnzimmer":true,"Präsenz Küche":true,"Thermometer Küche":true,"Würfel Schlafzimmer":true,"Präsenz Wohnzimmer Essbereich":true,"Präsenz Bad":true,"Thermometer Bad":true,"Würfel Wohnzimmer":true,"Präsenz Schlafzimmer":true}
            

            Da hängt dann so eine AND Node dahinter - wenn man das mit einer JSON wieder als Objekt wandelt und alles muss "true" sein. Also ist Alarm falsch und umgekehrt. Damit kann man alles super easy überwachen: Ob Licht an, ob Fenster auf, Batterie leer, Bewegung erkannt usw.

            Ach und obwohl Du nun ja alles mit der JOIN Node rausbekommen hast, hier mal das Video von Steve: https://www.youtube.com/watch?v=LIEKDOzeEdI

            Das ist zwar alles in Englisch - aber ich hab da auch viel gelernt . Diese Videos sind echt gut gemacht, wenn man wirklich die Fähigkeiten von Node Red nutzen will. ;)

            EDIT: Hier hatte ich das auch schon mal mit ein paar weiteren Links empfohlen, falls Du interessiert bist.

            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.

            F 1 Reply Last reply
            0
            • mickymM mickym

              @frankyboy73 Ja ich schreib dann das ganze als JSON in einen DP. Oder falls man das Objekt direkt auswerten will, habe ich mir 2 Function Nodes ;) - als UND und ODER in meine Bibliothek genommen. Ich wandle alles in true oder false um. Damit kann man Fenster, Alarmzustände jeder Art etc. über wachen.

              d44b5ca2-c948-4769-b4f4-e74786230e76-image.png

              Die Funktion in der Oder- Node sieht dann so aus:

              var x;
              var obj = msg.payload;
              var bIsBoolean=false;
              
              for (x in obj) {
                bIsBoolean = bIsBoolean || obj[x];
                
              }
              
              msg.payload=bIsBoolean;
              return msg;
              

              in der UND Node so:

              var x;
              var obj = msg.payload;
              var bIsBoolean=true;
              
              for (x in obj) {
                bIsBoolean = bIsBoolean && obj[x];
                
              }
              
              msg.payload=bIsBoolean;
              return msg;
              
              

              So sieht dann zum Beispiel Batterieüberprüfung meiner zigbees aus:

              {"Präsenz Büro":true,"Präsenz Diele":true,"Präsenz Flur":true,"Präsenz Wohnzimmer":true,"Präsenz Küche":true,"Thermometer Küche":true,"Würfel Schlafzimmer":true,"Präsenz Wohnzimmer Essbereich":true,"Präsenz Bad":true,"Thermometer Bad":true,"Würfel Wohnzimmer":true,"Präsenz Schlafzimmer":true}
              

              Da hängt dann so eine AND Node dahinter - wenn man das mit einer JSON wieder als Objekt wandelt und alles muss "true" sein. Also ist Alarm falsch und umgekehrt. Damit kann man alles super easy überwachen: Ob Licht an, ob Fenster auf, Batterie leer, Bewegung erkannt usw.

              Ach und obwohl Du nun ja alles mit der JOIN Node rausbekommen hast, hier mal das Video von Steve: https://www.youtube.com/watch?v=LIEKDOzeEdI

              Das ist zwar alles in Englisch - aber ich hab da auch viel gelernt . Diese Videos sind echt gut gemacht, wenn man wirklich die Fähigkeiten von Node Red nutzen will. ;)

              EDIT: Hier hatte ich das auch schon mal mit ein paar weiteren Links empfohlen, falls Du interessiert bist.

              F Offline
              F Offline
              frankyboy73
              wrote on last edited by
              #6

              @mickym Hi, danke, das schaue ich mir auf jeden Fall an. Was ich bis jetzt geschafft habe ware eher durch rumprobieren entstanden. Was die Node wirklich kann was ich wohl noch nicht alles.
              Bei meiner Lösung bin ich mit nem Switch ausgekommen.
              Join1.jpg
              Wenn in einen der Unterobjekte true vorhanden ist gehts auf den einen Ausgang wenn nicht dann auf den anderen Ausgang.
              Heißt falls ein oder mehrere Objekte true sind, Ausgang Eins, falls keins true bzw. alle false Ausgang 2. Falls ich das umgekehrt brauche schaue ich im Switch ob false enthalten ist, falls nicht sind alle true.

              Schöne Grüße Frank

              mickymM 1 Reply Last reply
              0
              • F frankyboy73

                @mickym Hi, danke, das schaue ich mir auf jeden Fall an. Was ich bis jetzt geschafft habe ware eher durch rumprobieren entstanden. Was die Node wirklich kann was ich wohl noch nicht alles.
                Bei meiner Lösung bin ich mit nem Switch ausgekommen.
                Join1.jpg
                Wenn in einen der Unterobjekte true vorhanden ist gehts auf den einen Ausgang wenn nicht dann auf den anderen Ausgang.
                Heißt falls ein oder mehrere Objekte true sind, Ausgang Eins, falls keins true bzw. alle false Ausgang 2. Falls ich das umgekehrt brauche schaue ich im Switch ob false enthalten ist, falls nicht sind alle true.

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

                @frankyboy73 Ja diese JOIN Node ist wirklich ein essentieller Bestandteil, der am Anfang nicht so ganz klar ist, wofür man ihn brauchen kann. Die Methode hier zum Überwachen ist deshalb so praktisch, da sich die Objekte langsam aufbauen können.

                Wenn Du hier bei den Nachrichtenteilen eine 1 nimmst und bei jeder weiteren Nachricht eine neue Nachricht erzeugen lässt, sortiert dieser Node diese nämlich automatisch ein. Gabs den Topic schon mal, wird der Wert in dem gesamten Objekt aktualisiert, anderenfalls eine neue Eigenschaft dem Objekt hinzugefügt.

                1f8fc6d2-17dd-4b7c-81e6-6e0935ce4f71-image.png

                Praktisch habe ich es auch nochmal hier angewandt:

                https://forum.iobroker.net/topic/42585/function-node-erstellen/7?_=1614235928279

                Hier ging es darum aus 3 Einzelwerten im iobroker wieder einen JSON String zu erstellen. Hier war es jedoch wichtig, dass erst alle 3 Eigenschaften gefüllt sind, bevor der JSON String rausgeht. Deshalb ist diese Version eleganter als über eine Flowvariable. Die JOIN-Node ist hier tatsächlich so intelligent programmiert worden, dass die Nachricht nicht rausgeschickt wird, wenn 3 mal das gleiche Topic ankommt, sondern wirklich erst wenn alle Eigenschaften vorliegen. Dann wird allerdings jedesmal eine Nachricht erzeugt, sobald ein Wert aktualisiert wird. Hier wird einem ganz schön viel Programmieraufwand abgenommen. :)

                Ergänzung:
                Zum Thema Überwachung. Nachdem man via Node Red ja leider nicht mehr die Systemadapter direkt überwachen kann - habe ich nun überall Aliases angelegt und kann somit auch bestimmen welche Eigenschaft ich im Adapter als OK nehme oder nicht (also ist NICHT OK bei gelb oder rot).

                Im Moment sieht das noch so aus:

                b1eac2b2-a824-4ca1-8ff6-8550313968b2-image.png

                aber nachdem zumindest am Ende Wildcards (mit * ) am Ende bei mir zumindest auch bei den In-Nodes funktionieren, werde ich das wohl auch vereinfachen. ;)

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                1 Reply Last reply
                0

                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                With your input, this post could be even better 💗

                Register Login
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                633

                Online

                32.8k

                Users

                82.7k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe