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. JavaScript
  5. Lampe an der Haustüre und Abwesenheit

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    123

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    163

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

Lampe an der Haustüre und Abwesenheit

Scheduled Pinned Locked Moved JavaScript
13 Posts 5 Posters 442 Views 4 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.
  • paul53P paul53

    @mickym sagte: XOR Verknüpfung:

    Einfacher:

    if(Christian != Kerstin)
    
    mickymM Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by
    #4

    @paul53 sagte in Lampe an der Haustüre und Abwesenheit:

    @mickym sagte: XOR Verknüpfung:

    Einfacher:

    if(Christian != Kerstin)
    

    OK - überzeugt. ;)

    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 Reply Last reply
    1
    • mickymM Online
      mickymM Online
      mickym
      Most Active
      wrote on last edited by mickym
      #5

      Im Prinzip geht es darum, dass Du bei komplexeren Aktionen die Trigger streng trennst.

      In den ersten beiden Triggern (also Anwesenheitstriggern) kommen Aktionen, die grundsätzlich für jede einzelne Person gelten.
      In den Schedule Triggern nur die Aktionen, wenn dieser wahr ist. Also Aktion wenn es Dunkel ist aber unabhängig von anderen Dingen.

      Dann kann man sauber verschiedene Szenarien trennen, mit den Kombinationen.

      Statt lampeHaus, könnte die Funktion auch lauten:

      nurEinerdaUndDunkel()
      

      Und da hinein packt man dann alle Aktionen für dieses Szenario.

      Damit verknotet sich das Hirn nicht so leicht. ;)

      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.

      O M 2 Replies Last reply
      1
      • mickymM mickym

        Im Prinzip geht es darum, dass Du bei komplexeren Aktionen die Trigger streng trennst.

        In den ersten beiden Triggern (also Anwesenheitstriggern) kommen Aktionen, die grundsätzlich für jede einzelne Person gelten.
        In den Schedule Triggern nur die Aktionen, wenn dieser wahr ist. Also Aktion wenn es Dunkel ist aber unabhängig von anderen Dingen.

        Dann kann man sauber verschiedene Szenarien trennen, mit den Kombinationen.

        Statt lampeHaus, könnte die Funktion auch lauten:

        nurEinerdaUndDunkel()
        

        Und da hinein packt man dann alle Aktionen für dieses Szenario.

        Damit verknotet sich das Hirn nicht so leicht. ;)

        O Offline
        O Offline
        ostseeskipper
        wrote on last edited by
        #6

        Sorry das ich hier so reinplatze.
        heisst man kann in einem JS Script mehrere Trigger so wie hier vorgeschlagen 4 an der Zahl nutzen?

        mickymM 1 Reply Last reply
        0
        • O ostseeskipper

          Sorry das ich hier so reinplatze.
          heisst man kann in einem JS Script mehrere Trigger so wie hier vorgeschlagen 4 an der Zahl nutzen?

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

          @ostseeskipper

          Und grundsätzlich kannst du so viele Trigger in einem JS Modul nutzen, wie du willst. Bei jedem Trigger springt das Teil in den jeweiligen Code.

          Zusätzlich kannst in einem Trigger kannst Du auch mehrere IDs angeben (als Regex oder array).

          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.

          O 1 Reply Last reply
          1
          • mickymM mickym

            @ostseeskipper

            Und grundsätzlich kannst du so viele Trigger in einem JS Modul nutzen, wie du willst. Bei jedem Trigger springt das Teil in den jeweiligen Code.

            Zusätzlich kannst in einem Trigger kannst Du auch mehrere IDs angeben (als Regex oder array).

            O Offline
            O Offline
            ostseeskipper
            wrote on last edited by
            #8

            @mickym 👍
            Danke, gut zu wissen dann kann ich ja ein paar Scripte zusammen packen.
            Regex ist für mich Hexenwerk da ich es seit Monaten nicht versteh. Ich geh lieber direkt auf Datenpunkte.

            Was ist eigentlich Ressourcenschonender. Hab grad aktuell Bewegungsmelder.
            Script mit nur einem Trigger auf Bewegung zum Sonnenuntergang einschalten, oder Trigger mit 2 Bedingungen(Bewegung und Tagzeit) ?

            mickymM 1 Reply Last reply
            0
            • O ostseeskipper

              @mickym 👍
              Danke, gut zu wissen dann kann ich ja ein paar Scripte zusammen packen.
              Regex ist für mich Hexenwerk da ich es seit Monaten nicht versteh. Ich geh lieber direkt auf Datenpunkte.

              Was ist eigentlich Ressourcenschonender. Hab grad aktuell Bewegungsmelder.
              Script mit nur einem Trigger auf Bewegung zum Sonnenuntergang einschalten, oder Trigger mit 2 Bedingungen(Bewegung und Tagzeit) ?

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

              @ostseeskipper Nochmal - nach meinem Verständnis richtet sich ein Trigger nicht nach Bedingungen und kann nicht dynamisch ein und ausgeschaltet werden. Man kann nach meinem Verständnis nur innerhalb der Funktion eines Triggers steuern, ob eine Aktion ausgeführt wird oder nicht.

              Aber wie gesagt ich bin nicht der JS Spezialist, da ich in NodeRed als Logikmaschine verwende. Vielleicht kann das ja einer der JS Gurus @paul53 oder @OliverIO beantworten - aber wie gesagt ein Trigger gehorcht keinen Bedingungen. Sprich wenn der Code einmal ausgeführt wurde mit dem on (....) , dann bleibt der aktiv. Aber wie gesagt, ich bin in dem Bereich eher auch unsicher, da ich üblicherweise kein JS für meine Logik verwende.

              Nach meinem Verständnis muss man bestehende Trigger unsubscriben, um diese zu löschen - das muss man dann in den Code drum rum einbauen - um die Trigger je nach anderen Bedingungen zu aktivieren oder deaktivieren: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#unsubscribe

              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.

              OliverIOO 1 Reply Last reply
              1
              • mickymM mickym

                @ostseeskipper Nochmal - nach meinem Verständnis richtet sich ein Trigger nicht nach Bedingungen und kann nicht dynamisch ein und ausgeschaltet werden. Man kann nach meinem Verständnis nur innerhalb der Funktion eines Triggers steuern, ob eine Aktion ausgeführt wird oder nicht.

                Aber wie gesagt ich bin nicht der JS Spezialist, da ich in NodeRed als Logikmaschine verwende. Vielleicht kann das ja einer der JS Gurus @paul53 oder @OliverIO beantworten - aber wie gesagt ein Trigger gehorcht keinen Bedingungen. Sprich wenn der Code einmal ausgeführt wurde mit dem on (....) , dann bleibt der aktiv. Aber wie gesagt, ich bin in dem Bereich eher auch unsicher, da ich üblicherweise kein JS für meine Logik verwende.

                Nach meinem Verständnis muss man bestehende Trigger unsubscriben, um diese zu löschen - das muss man dann in den Code drum rum einbauen - um die Trigger je nach anderen Bedingungen zu aktivieren oder deaktivieren: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#unsubscribe

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                wrote on last edited by
                #10

                @mickym

                Im Rahmen des pattern parameters als Objekt der on Funktion (trigger)
                Können schon viele bedingungen angegeben werden.
                Das bedeutet, das Iobroker für euch schon vorfiltert ob der callback mit eurer Logik überhaupt aufgerufen wird.
                Wenn diese bedingungen geändert werden sollen, dann muss der trigger mit unsubscribe wieder aufgehoben werden und ein neuer trigger eingerichtet werden.
                Meiner Meinung nach macht das aber nicht soviel Sinn, da es dann besser ist den trigger ohne bedingungen einzurichten und selbst die Logik zu programmieren, die dann zu einer dynamischen Entscheidung führt welche Aktion tatsächlich ausgeführt werden soll.
                Es könnten auch bspw 2 trigger eingerichtet werden die jeweils auf die gegensächlichen bedingungen horcht (einmal bspw ack=True und einmal ack=false)
                Die Entscheidung wie das umgesetzt wird würde ich anhand der Menge des Codes abhängig machen. Wir können davon ausgehen, das der Code in Iobroker vielfach bei vielen ausgeführt wird und daher Fehler frühzeitig entdeckt werden.
                Eigener Code kann Fehler enthalten die du selbst dann erst finden und beheben musst. Daher sowenig Code wie möglich selbst schreiben.
                Die wartbarkeit deines Codes sollte allerdings ebenfalls im Vordergrund stehen. Wenn das was am Ende rauskommt durch euch nicht mehr verstanden wird, dann macht das auch nicht soviel Sinn.

                Am besten du machst mal einen Vorschlag und wir schauen drüber und können dich auf verbesserungspotential hinweisen

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

                mickymM 1 Reply Last reply
                2
                • OliverIOO OliverIO

                  @mickym

                  Im Rahmen des pattern parameters als Objekt der on Funktion (trigger)
                  Können schon viele bedingungen angegeben werden.
                  Das bedeutet, das Iobroker für euch schon vorfiltert ob der callback mit eurer Logik überhaupt aufgerufen wird.
                  Wenn diese bedingungen geändert werden sollen, dann muss der trigger mit unsubscribe wieder aufgehoben werden und ein neuer trigger eingerichtet werden.
                  Meiner Meinung nach macht das aber nicht soviel Sinn, da es dann besser ist den trigger ohne bedingungen einzurichten und selbst die Logik zu programmieren, die dann zu einer dynamischen Entscheidung führt welche Aktion tatsächlich ausgeführt werden soll.
                  Es könnten auch bspw 2 trigger eingerichtet werden die jeweils auf die gegensächlichen bedingungen horcht (einmal bspw ack=True und einmal ack=false)
                  Die Entscheidung wie das umgesetzt wird würde ich anhand der Menge des Codes abhängig machen. Wir können davon ausgehen, das der Code in Iobroker vielfach bei vielen ausgeführt wird und daher Fehler frühzeitig entdeckt werden.
                  Eigener Code kann Fehler enthalten die du selbst dann erst finden und beheben musst. Daher sowenig Code wie möglich selbst schreiben.
                  Die wartbarkeit deines Codes sollte allerdings ebenfalls im Vordergrund stehen. Wenn das was am Ende rauskommt durch euch nicht mehr verstanden wird, dann macht das auch nicht soviel Sinn.

                  Am besten du machst mal einen Vorschlag und wir schauen drüber und können dich auf verbesserungspotential hinweisen

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

                  @oliverio Na ich denke, die Antwort war an den TE gerichtet. Ich dachte mir nur, dass Du als JS Spezialist qualifiziertere Antworten geben kannst als ich.

                  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
                  • mickymM mickym

                    @paul53 sagte in Lampe an der Haustüre und Abwesenheit:

                    @mickym sagte: XOR Verknüpfung:

                    Einfacher:

                    if(Christian != Kerstin)
                    

                    OK - überzeugt. ;)

                    M Offline
                    M Offline
                    mendikant
                    wrote on last edited by
                    #12

                    @mickym Das XOR Ist allerdings sehr überzeugend...

                    1 Reply Last reply
                    0
                    • mickymM mickym

                      Im Prinzip geht es darum, dass Du bei komplexeren Aktionen die Trigger streng trennst.

                      In den ersten beiden Triggern (also Anwesenheitstriggern) kommen Aktionen, die grundsätzlich für jede einzelne Person gelten.
                      In den Schedule Triggern nur die Aktionen, wenn dieser wahr ist. Also Aktion wenn es Dunkel ist aber unabhängig von anderen Dingen.

                      Dann kann man sauber verschiedene Szenarien trennen, mit den Kombinationen.

                      Statt lampeHaus, könnte die Funktion auch lauten:

                      nurEinerdaUndDunkel()
                      

                      Und da hinein packt man dann alle Aktionen für dieses Szenario.

                      Damit verknotet sich das Hirn nicht so leicht. ;)

                      M Offline
                      M Offline
                      mendikant
                      wrote on last edited by
                      #13

                      @mickym Danke, Du hast es auf das reduziert, was es ist: Ein Logikproblem...
                      Und ich habe jetzt mehrmals lesen müssen, bis ich es verstanden habe: Der Trigger ist meine Ankunft zuhause.
                      Das ist auch deswegen sinnvoll, weil ich vielleicht auch Dinge triggern will, wenn ich tagsüber ankomme...
                      Das lasse ich mal so sacken, und starte mein konzeptionelles Denken nochmal neu...

                      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

                      453

                      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