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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. BWM Lichtsteuerung mit Helligkeitserkennung

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

BWM Lichtsteuerung mit Helligkeitserkennung

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
blockly
14 Beiträge 5 Kommentatoren 531 Aufrufe 5 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.
  • C chrbo80

    Hallo,

    ich habe bei mir im Treppenhaus 2 BWM von Xiaomi - einen oben an der Treppe, einen unten.

    Folgendes Blockly soll mir das Licht schalten:

    Bildschirmfoto 2020-04-20 um 20.47.13.png

    Erklärung: Ich lasse bei Aktualisierung erstmal einen 100ms timeout laufen, um die Helligkeit zu aktualisieren.

    Wenn dann entweder oben Bewegung und oben der Helligkeitswert unterschritten ist oder das ganze unten, schaltet er das Licht ein und startet einen 20sek-timeout zum Ausschalten. Klappt soweit.

    Nun soll er ja, wenn noch einer (zb meine Tochter), durch einen BWM läuft, den 2. timeout stoppen und neu starten.

    Hier ist vermutlich mein Denkfehler. Ich verstehe, dass das daran liegt, dass er ja erneut die Helligkeit prüft und die größer als der Helligkeitswert der Bedinung (in dem Fall 20) ist. Klar - Licht ist ja an.

    ABER: Was mache ich hier schlauerweise, damit das wie gewollt funktioniert?

    Danke und VG

    J Offline
    J Offline
    Jan1
    schrieb am zuletzt editiert von Jan1
    #3

    @chrbo80
    Da fehlt ein stop timeout direkt vor dem ersten timeout, dann kannst Dir in der ODER dir erneute Abfrage der beiden Trigger sparen, wird ja bereits im Trigger erledigt.

    Den Timeout zur Erkennung dr Helligkeit kannst eigentlich komplett weglassen, da ich die Dinger auch habe und die Erkennung so schnell geht, dass es nicht wirklich nötig ist. Dann haben die Dinger auch eine Verzögerung von 10 Sekunden drin, in der sie keine neue Bewegung erkennen. Die erkannte Bewegung musst auch mit einer Angabe in den DPs wiedr nach einer gewissen Zeit zurück setzten, sonst bleibt das auf true und es funktioniert nur ein mal.

    Hier der DP in rot:
    56c3b68e-4d19-44ec-b095-a470ff8d8e40-grafik.png

    AsgothianA 1 Antwort Letzte Antwort
    1
    • J Jan1

      @chrbo80
      Da fehlt ein stop timeout direkt vor dem ersten timeout, dann kannst Dir in der ODER dir erneute Abfrage der beiden Trigger sparen, wird ja bereits im Trigger erledigt.

      Den Timeout zur Erkennung dr Helligkeit kannst eigentlich komplett weglassen, da ich die Dinger auch habe und die Erkennung so schnell geht, dass es nicht wirklich nötig ist. Dann haben die Dinger auch eine Verzögerung von 10 Sekunden drin, in der sie keine neue Bewegung erkennen. Die erkannte Bewegung musst auch mit einer Angabe in den DPs wiedr nach einer gewissen Zeit zurück setzten, sonst bleibt das auf true und es funktioniert nur ein mal.

      Hier der DP in rot:
      56c3b68e-4d19-44ec-b095-a470ff8d8e40-grafik.png

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #4

      @Jan1 sagte in BWM Lichtsteuerung mit Helligkeitserkennung:

      @chrbo80
      Da fehlt ein stop timeout direkt vor dem ersten timeout, dann kannst Dir in der ODER dir erneute Abfrage der beiden Trigger sparen, wird ja bereits im Trigger erledigt.

      Das stimmt so nicht. Die Abfrage der BWM im Falls kann nicht entfallen, da ja auf "ändern" des Datenpunktes getriggert wird, also auch wenn ein BWM von "occupied" auf "unoccupied" geht. Man kann das vereinfachen in dem direkt mit dem "wert" Baustein (Zu finden bei den Trigger Bausteinen, in der Auswahlliste steht meines Wissens "object ID" drin, denn kann man auf "wert" umstellen) der Wert des BWM genommen wird der ausgelöst hat - das ist aber weniger einfach erklärt.
      Ein "stop timeout" ist nicht unbedingt notwendig, da

      • ein einzelner BWM nicht 2 mal innerhalb von 100 ms auslösen kann
      • es unwahrscheinlich ist, das beide BWM innerhalb von 100 ms auslösen. Und selbst wenn das passiert wird schlimmstenfalls die Lampe doppelt eingeschaltet.

      Es ist allerdings guter Stil, grundsätzlich den Timeout zu löschen bevor man den startet.

      Den Timeout zur Erkennung dr Helligkeit kannst eigentlich komplett weglassen, da ich die Dinger auch habe und die Erkennung so schnell geht, dass es nicht wirklich nötig ist. Dann haben die Dinger auch eine Verzögerung von 10 Sekunden drin, in der sie keine neue Bewegung erkennen. Die erkannte Bewegung musst auch mit einer Angabe in den DPs wiedr nach einer gewissen Zeit zurück setzten, sonst bleibt das auf true und es funktioniert nur ein mal.

      Hier der DP in rot:
      56c3b68e-4d19-44ec-b095-a470ff8d8e40-grafik.png

      Das gilt so nur wenn die BWM am Zigbee-Stick hängen. Ist aber aus dem Script oben nicht zu ersehen. Sie können auch am Xiaomi Gateway oder Deconz Gateway hängen. Die Verzögerung bei der Erkennung ist je nach dem wie sie eingebunden sind unterschiedlich - aber immer vorhanden. Ob da die 20 Sekunden ausreichen damit das Licht an bleibt wenn jemand sich im Treppenhaus bewegt weiss ich nicht.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      J 1 Antwort Letzte Antwort
      0
      • AsgothianA Asgothian

        @Jan1 sagte in BWM Lichtsteuerung mit Helligkeitserkennung:

        @chrbo80
        Da fehlt ein stop timeout direkt vor dem ersten timeout, dann kannst Dir in der ODER dir erneute Abfrage der beiden Trigger sparen, wird ja bereits im Trigger erledigt.

        Das stimmt so nicht. Die Abfrage der BWM im Falls kann nicht entfallen, da ja auf "ändern" des Datenpunktes getriggert wird, also auch wenn ein BWM von "occupied" auf "unoccupied" geht. Man kann das vereinfachen in dem direkt mit dem "wert" Baustein (Zu finden bei den Trigger Bausteinen, in der Auswahlliste steht meines Wissens "object ID" drin, denn kann man auf "wert" umstellen) der Wert des BWM genommen wird der ausgelöst hat - das ist aber weniger einfach erklärt.
        Ein "stop timeout" ist nicht unbedingt notwendig, da

        • ein einzelner BWM nicht 2 mal innerhalb von 100 ms auslösen kann
        • es unwahrscheinlich ist, das beide BWM innerhalb von 100 ms auslösen. Und selbst wenn das passiert wird schlimmstenfalls die Lampe doppelt eingeschaltet.

        Es ist allerdings guter Stil, grundsätzlich den Timeout zu löschen bevor man den startet.

        Den Timeout zur Erkennung dr Helligkeit kannst eigentlich komplett weglassen, da ich die Dinger auch habe und die Erkennung so schnell geht, dass es nicht wirklich nötig ist. Dann haben die Dinger auch eine Verzögerung von 10 Sekunden drin, in der sie keine neue Bewegung erkennen. Die erkannte Bewegung musst auch mit einer Angabe in den DPs wiedr nach einer gewissen Zeit zurück setzten, sonst bleibt das auf true und es funktioniert nur ein mal.

        Hier der DP in rot:
        56c3b68e-4d19-44ec-b095-a470ff8d8e40-grafik.png

        Das gilt so nur wenn die BWM am Zigbee-Stick hängen. Ist aber aus dem Script oben nicht zu ersehen. Sie können auch am Xiaomi Gateway oder Deconz Gateway hängen. Die Verzögerung bei der Erkennung ist je nach dem wie sie eingebunden sind unterschiedlich - aber immer vorhanden. Ob da die 20 Sekunden ausreichen damit das Licht an bleibt wenn jemand sich im Treppenhaus bewegt weiss ich nicht.

        J Offline
        J Offline
        Jan1
        schrieb am zuletzt editiert von
        #5

        @Asgothian
        Das mit Wert aus dem Trigger funktioniert doch nur bei einem Trigger, der ein Objekt enthält, ober bezieht sich dann Wert auf jedes Objekt im Trigger? Wobei ich einige Scripte laufen habe, bei denen ich von dem ausgehe was ich oben schon geschrieben habe und der Trigger eben die ODER Auswertung übernimmt. Das läuft bei mir wie gewünscht.
        Der Einwand zum timeout ist gerechtfertigt, es ist sehr unwahrscheinlich, dass der doppelt läuft. Wobei Du ja auch gleich mein Hintergedanken mit in Deiner Antwort drin hast und man sich das am besten einfach so angewöhnt.

        Ja der TE schreibt nicht wie er eingebunden hat, da die verwendeten DP allerdings den entsprechen die ich über Zigbee habe, liegt der Verdacht nahe ;-)

        T 1 Antwort Letzte Antwort
        0
        • J Jan1

          @Asgothian
          Das mit Wert aus dem Trigger funktioniert doch nur bei einem Trigger, der ein Objekt enthält, ober bezieht sich dann Wert auf jedes Objekt im Trigger? Wobei ich einige Scripte laufen habe, bei denen ich von dem ausgehe was ich oben schon geschrieben habe und der Trigger eben die ODER Auswertung übernimmt. Das läuft bei mir wie gewünscht.
          Der Einwand zum timeout ist gerechtfertigt, es ist sehr unwahrscheinlich, dass der doppelt läuft. Wobei Du ja auch gleich mein Hintergedanken mit in Deiner Antwort drin hast und man sich das am besten einfach so angewöhnt.

          Ja der TE schreibt nicht wie er eingebunden hat, da die verwendeten DP allerdings den entsprechen die ich über Zigbee habe, liegt der Verdacht nahe ;-)

          T Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von ticaki
          #6

          @Jan1 sagte in BWM Lichtsteuerung mit Helligkeitserkennung:

          @Asgothian
          Das mit Wert aus dem Trigger funktioniert doch nur bei einem Trigger, der ein Objekt enthält, ober bezieht sich dann Wert auf jedes Objekt im Trigger?

          Der Trigger übergibt ein Objekt das zu einem Triggerereignisse die entsprechende ID und die ganzen restlichen Informationen enthält. Also Wert enthält immer den Wert des auslösenden Objektes.

          EDIT: Wert ist keine Verknüpfung der benannten Objekte.

          Zu der Aussage mit den 100ms sag ich nur Murphy :)

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          J 1 Antwort Letzte Antwort
          0
          • T ticaki

            @Jan1 sagte in BWM Lichtsteuerung mit Helligkeitserkennung:

            @Asgothian
            Das mit Wert aus dem Trigger funktioniert doch nur bei einem Trigger, der ein Objekt enthält, ober bezieht sich dann Wert auf jedes Objekt im Trigger?

            Der Trigger übergibt ein Objekt das zu einem Triggerereignisse die entsprechende ID und die ganzen restlichen Informationen enthält. Also Wert enthält immer den Wert des auslösenden Objektes.

            EDIT: Wert ist keine Verknüpfung der benannten Objekte.

            Zu der Aussage mit den 100ms sag ich nur Murphy :)

            J Offline
            J Offline
            Jan1
            schrieb am zuletzt editiert von
            #7

            @ticaki
            Sehr gute Erklärung und da kann ich doch glatt einige Scripte gleich mal optimieren. Da war ich mir nie sicher, auf welches Objekt (bei mehrfach Trigger), sich nun der Wert bezieht.

            dslraserD 1 Antwort Letzte Antwort
            0
            • J Jan1

              @ticaki
              Sehr gute Erklärung und da kann ich doch glatt einige Scripte gleich mal optimieren. Da war ich mir nie sicher, auf welches Objekt (bei mehrfach Trigger), sich nun der Wert bezieht.

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #8

              @Jan1 sagte in BWM Lichtsteuerung mit Helligkeitserkennung:

              Da war ich mir nie sicher, auf welches Objekt (bei mehrfach Trigger), sich nun der Wert bezieht.

              Ich dachte auch immer das bei mehreren Triggern "Wert" so nicht funktioniert, jedenfalls wurde das hier im Forum oft so geschrieben. Probiert und geht. Ich habe mal 3 Steckdosen als Trigger genommen und dann nur eine davon eingeschaltet. Wieder was gelernt....

              Bildschirmfoto 2020-04-21 um 10.52.00.png

              21.4.2020, 10:51:07.425	[info ]: javascript.0 (4218) Start javascript script.js.18_Test.Wert
              21.4.2020, 10:51:07.434	[info ]: javascript.0 (4218) script.js.18_Test.Wert: registered 1 subscription and 0 schedules
              21.4.2020, 10:51:23.956	[info ]: javascript.0 (4218) script.js.18_Test.Wert: Name: Tischdeko.STATE Wert: true
              
              J 1 Antwort Letzte Antwort
              0
              • dslraserD dslraser

                @Jan1 sagte in BWM Lichtsteuerung mit Helligkeitserkennung:

                Da war ich mir nie sicher, auf welches Objekt (bei mehrfach Trigger), sich nun der Wert bezieht.

                Ich dachte auch immer das bei mehreren Triggern "Wert" so nicht funktioniert, jedenfalls wurde das hier im Forum oft so geschrieben. Probiert und geht. Ich habe mal 3 Steckdosen als Trigger genommen und dann nur eine davon eingeschaltet. Wieder was gelernt....

                Bildschirmfoto 2020-04-21 um 10.52.00.png

                21.4.2020, 10:51:07.425	[info ]: javascript.0 (4218) Start javascript script.js.18_Test.Wert
                21.4.2020, 10:51:07.434	[info ]: javascript.0 (4218) script.js.18_Test.Wert: registered 1 subscription and 0 schedules
                21.4.2020, 10:51:23.956	[info ]: javascript.0 (4218) script.js.18_Test.Wert: Name: Tischdeko.STATE Wert: true
                
                J Offline
                J Offline
                Jan1
                schrieb am zuletzt editiert von
                #9

                @dslraser
                Bisschen aufpassen muss man aber schon, da wenn eine andere ausgeht, wird alles ausgeschaltet, da nur der geänderte Wert der Trigger ist und wenn die andern noch auf true stehen, wird eben trotzdem ausgeschaltet. Ist doch nicht ganz so einfach und wie oben schon geschrieben wurde, ist der Trigger an sich nicht wirklich eine ODER Funktion, da der Rest nicht berücksichtigt wird, sondern eben nur das Objekt welches sich ändert ;-)

                dslraserD 1 Antwort Letzte Antwort
                0
                • J Jan1

                  @dslraser
                  Bisschen aufpassen muss man aber schon, da wenn eine andere ausgeht, wird alles ausgeschaltet, da nur der geänderte Wert der Trigger ist und wenn die andern noch auf true stehen, wird eben trotzdem ausgeschaltet. Ist doch nicht ganz so einfach und wie oben schon geschrieben wurde, ist der Trigger an sich nicht wirklich eine ODER Funktion, da der Rest nicht berücksichtigt wird, sondern eben nur das Objekt welches sich ändert ;-)

                  dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #10

                  @Jan1
                  genau

                  J 1 Antwort Letzte Antwort
                  0
                  • dslraserD dslraser

                    @Jan1
                    genau

                    J Offline
                    J Offline
                    Jan1
                    schrieb am zuletzt editiert von
                    #11

                    @dslraser
                    Wenn das keine Rolle spielt und gewünscht ist, passt das :-)

                    T 1 Antwort Letzte Antwort
                    0
                    • J Jan1

                      @dslraser
                      Wenn das keine Rolle spielt und gewünscht ist, passt das :-)

                      T Nicht stören
                      T Nicht stören
                      ticaki
                      schrieb am zuletzt editiert von ticaki
                      #12

                      @Jan1
                      Eine ODER/UND Verknüpfung zu erzeugen ist relativ einfach möglich. Einen Zähler der beim Start initialisiert wird in dem jedes True eines Datenpunktes den Zähler erhöht und im Falls Block (geändert) wird dieser Zähler erhöht oder verringert wenn sie eine Objekt verändert.
                      Zähler > 0 -> ODER
                      Zähler == Anzahl Objekte -> UND

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      J 1 Antwort Letzte Antwort
                      0
                      • T ticaki

                        @Jan1
                        Eine ODER/UND Verknüpfung zu erzeugen ist relativ einfach möglich. Einen Zähler der beim Start initialisiert wird in dem jedes True eines Datenpunktes den Zähler erhöht und im Falls Block (geändert) wird dieser Zähler erhöht oder verringert wenn sie eine Objekt verändert.
                        Zähler > 0 -> ODER
                        Zähler == Anzahl Objekte -> UND

                        J Offline
                        J Offline
                        Jan1
                        schrieb am zuletzt editiert von
                        #13

                        @ticaki
                        Ja, aber noch einfacher ist es eben ein FALLS mit UND/ODER Block dran zu hängen. Es ging jetzt etwas OT um die genaue Funktionsweise des "multi" Trigger und das ist nun geklärt.

                        1 Antwort Letzte Antwort
                        0
                        • C Offline
                          C Offline
                          chrbo80
                          schrieb am zuletzt editiert von
                          #14

                          hi, Danke für Eure Hilfe. Ich komme klar :-) Zu Eurer Info: Ich habe die BWM über zigbee eingebunden, sie sind gelötet und stehen auf "occupancy timeout: 5 sek". Das klappt auch, heißt nach 5 Sekunden ist true wieder auf false...

                          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

                          641

                          Online

                          32.7k

                          Benutzer

                          82.3k

                          Themen

                          1.3m

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

                          • Du hast noch kein Konto? Registrieren

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