Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere)

    This topic has been deleted. Only users with topic management privileges can see it.
    • sigi234
      sigi234 Forum Testing Most Active @Mic last edited by sigi234

      @Mic 👍

      21:29:49.350	info	javascript.0 (14980) Stop script script.js.Sigi.Mic_Bewegungsmelder
      21:29:49.356	info	javascript.0 (14980) Start javascript script.js.Sigi.Mic_Bewegungsmelder
      21:29:49.358	info	javascript.0 (14980) script.js.Sigi.Mic_Bewegungsmelder: *** Bewegungsmelder-Script gestartet *** Folgende Bewegungsmelder werden überwacht: Vorraum
      21:29:49.358	info	javascript.0 (14980) script.js.Sigi.Mic_Bewegungsmelder: registered 1 subscription and 0 schedules
      

      Ok, wenn ich eine dauernde Überwachung will ohne Lux stimmt das so :

      period_1:               {start:'00:01', end:'23:59',    sec:60,   luxAlways:false},
      
      Mic 1 Reply Last reply Reply Quote 0
      • Mic
        Mic Developer @sigi234 last edited by

        @sigi234 sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

        Ok, wenn ich eine dauernde Überwachung will ohne Lux stimmt das so :

        Kannst auch einfach so schreiben und das Lux-Zeug weglassen:

        period_1: {start:'00:01', end:'23:59', sec:60},
        
        sigi234 1 Reply Last reply Reply Quote 0
        • sigi234
          sigi234 Forum Testing Most Active @Mic last edited by sigi234

          @Mic sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

          @sigi234 sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

          Ok, geht auch eine Ausgabe in einen DP für :

          BW ausgelöst im Raum am/um von Skript Name

          Mic 1 Reply Last reply Reply Quote 0
          • Mic
            Mic Developer @sigi234 last edited by

            Ach ja, um alle Zeiten (0-24 Uhr) abzudecken, schreibst du:

            period_1: {start:'00:00', end:'24:00', sec:60},
            

            @sigi234 sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

            @Mic sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):
            Ok, geht auch eine Ausgabe in einen DP für :
            BW ausgelöst im Raum am/um von Skript Name

            Wird ja schon ins Log geschrieben, Beispiel:

            script.js.Licht.Bewegungsmelder-Script: Bewegungsmelder Flur: Ausgelöst und alle Kriterien erfüllt, daher wird eingeschaltet.
            

            Rest kannst du bei Bedarf im Log-Script filtern.

            sigi234 1 Reply Last reply Reply Quote 0
            • sigi234
              sigi234 Forum Testing Most Active @Mic last edited by

              @Mic sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

              Rest kannst du bei Bedarf im Log-Script filtern.

              Ja, bin ich später auch drauf gekommen. 😀

              Mic 1 Reply Last reply Reply Quote 0
              • Mic
                Mic Developer @sigi234 last edited by

                @sigi234
                Funktioniert denn dein Test mit dem Homematic-Bewegungsmelder? Wäre interessant, da ich nur Xiaomi zum testen hab

                sigi234 1 Reply Last reply Reply Quote 0
                • sigi234
                  sigi234 Forum Testing Most Active @Mic last edited by sigi234

                  @Mic sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

                  @sigi234
                  Funktioniert denn dein Test mit dem Homematic-Bewegungsmelder? Wäre interessant, da ich nur Xiaomi zum testen hab

                  Warte teste erst, habe ein Programm dafür in der CCU3 . Muss ich mal deaktivieren.
                  Interessant wäre ja eine Art Universalskript, wo ich auch Licht, Steckdosen usw. einbinden könnte. Sollte damit gehen.
                  Da kann ich mir die CCU Programme schenken.

                  Test: 👍

                  javascript.0	2020-03-15 22:09:36.588	info	(14980) script.js.Sigi.Mic_Bewegungsmelder: Bewegungsmelder Vorraum: Ausgelöst und alle Kriterien erfüllt, daher wird eingeschaltet.
                  
                  javascript.0	2020-03-15 22:10:36.589	info	(14980) script.js.Sigi.Mic_Bewegungsmelder: Bewegungsmelder Vorraum: Timer (60s) abgelaufen und alle Kriterien erfüllt, daher wird ausgeschaltet.
                  
                  Mic 1 Reply Last reply Reply Quote 0
                  • Mic
                    Mic Developer @sigi234 last edited by

                    👍

                    @sigi234 sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

                    Interessant wäre ja eine Art Universalskript, wo ich auch Licht, Steckdosen usw. einbinden könnte. Sollte damit gehen.

                    Das überlege ich auch, da das Gerüst hierfür jetzt vollständig vorhanden ist.

                    1 Reply Last reply Reply Quote 0
                    • crunchip
                      crunchip Forum Testing Most Active last edited by

                      funktioniert prima, 👏 da kommen bestimmt ein paar neue Ideen auf😊
                      Test mit 2 BWM steht allerdings noch aus

                      1 Reply Last reply Reply Quote 1
                      • T
                        Tirador last edited by Tirador

                        Hallo Mic,

                        ein tolles Skript von Dir! 🙂

                        Ich nutze deconz. Dort ist es so, dass es mehrere Datenpunkte gibt für einen Bewegungsmelder (Hue Philipps).

                        Das führt dazu, dass die Eigenschaft Bewegung "presence" und "lux" in verschiedenen Ordnern liegen:

                        2020-03-24 20_21_08-objects - ioBroker.png

                        So wie ich das Skript nun interpretiere werden aktuell alle Eigenschaften unter einem Ordner erwartet oder habe ich dies falsch interpretiert?

                        Was mir auch aufgefallen ist: Erwägst du es noch auch die Helligkeit der zu steuernden Lampen mit vorgeben zu können.
                        Bei mir ist es so, dass ich Nachts im Flur eher gedimmtes Licht möchte 😉

                        mein Vorschlag für die Implementierung im Skript wäre es die Bewegungsmelder einzeln mit Datenpunkten für presence und lux als Array vorgeben zu können.

                        Beispiel:

                        const BWM = {
                                flur: {sensorState: 'deconz.0.Sensors.36.presence', stateLux: 'deconz.0.Sensors.40.lux' },
                               bad: {sensorState: 'deconz.0.Sensors.45.presence', stateLux: 'deconz.0.Sensors.47.lux' },
                        };
                        
                        1 Reply Last reply Reply Quote 0
                        • tugsi
                          tugsi last edited by

                          N´Abend,
                          erstmal Danke für das Script.
                          Nur irgendwie will das bei mir nicht so richtig klappen.

                          Habe mein Aqara BWM eingebunden und der soll mir ein Datenpunkt setzen, dies passiert auch, aber wenn ich unter Objekte schaue, wird der Datenpunkt hinten mit einem roten "true" gesetzt, nicht mit einem grünen.

                          Das ist mein Datenpunkt:

                          {
                            "common": {
                              "type": "boolean",
                              "read": true,
                              "write": true,
                              "name": "Flurbeleuchtung",
                              "role": "switch",
                              "unit": "",
                              "smartName": {
                                "de": "Flurbeleuchtung",
                                "smartType": "SWITCH"
                              }
                            },
                            "native": {
                              "name": "Flurbeleuchtung",
                              "role": "switch",
                              "type": "boolean",
                              "unit": "",
                              "read": true,
                              "write": true,
                              "smartName": {
                                "de": "Flurbeleuchtung",
                                "smartType": "SWITCH"
                              }
                            },
                            "type": "state",
                            "from": "system.adapter.javascript.0",
                            "user": "system.user.admin",
                            "ts": 1579636502610,
                            "_id": "javascript.0.S7.s7-0.Flurbeleuchtung",
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            }
                          }
                          

                          Klicke ich unter Objekte den manuell an auf true, funzt alles wie gehabt.
                          Der Datenpunkt wird auch von meiner Alexa angesteuert, auf Zuruf, da klappt es auch.

                          Jemand eine Erklärung?
                          Gruß Thomas

                          1 Reply Last reply Reply Quote 0
                          • Michael Sauer
                            Michael Sauer last edited by

                            Hallo Mic,

                            tolles Script. Praktisch wäre auch mehrere Targets gleichzeitig zu schalten.

                            Mfg

                            1 Reply Last reply Reply Quote 0
                            • Mic
                              Mic Developer last edited by

                              Hi zusammen,
                              danke für eure Rückmeldungen. Ich entwickle gerade 2 neue ioBroker-Adapter, daher komme ich momentan nicht dazu, das Script zu erweitern.
                              Aber ich plane einen Adapter hierfür, also für die Steuerung von Bereichen (z.B. Flur, Wohnzimmer, xyz, im Verbund mit Bewegungsmeldern und Schalter/Lichter). Aber erst mal muss ich die beiden jetzt zu entwickelnden Adapter fertigstellen 😉

                              1 Reply Last reply Reply Quote 3
                              • W
                                wannabe last edited by wannabe

                                Sehr schönes, praktisches Projekt. Das Reinarbeiten in die Config hat ein bisschen gedauert, aber wenns dann einmal läuft ...
                                Will ich nicht mehr missen, schön zentral alles zusammen, nicht x verschiedene Skripte.
                                Ein Backup davon kommt auf jeden Fall in meinen Ordner für schlechte Zeiten.
                                Danke fürs veröffentlichen.

                                1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User last edited by

                                  Einen Dank an den Entwickler des Scripts. Funktioniert soweit sehr gut und hat bei mir eine Menge anderer Blocklys abgelöst 🙂
                                  Ein kleines Problem habe ich dann doch noch gefunden. Mein Hausflur hat zwei BW plus einen Türkontakt der die Beleuchtung einschaltet wenn man ins Haus kommt. Aber erst wenn es Dunkel ist bzw die entsprechenden LUX unterschritten sind. Und genau das bekomme ich mit deinem Script nicht umgesetzt. Ich habe bei mir den deconz Adapter im Einsatz. Als Sensoren habe ich zum größten Teil Xiaomi Geräte.

                                  const ADAPTER_STATES = {
                                  mihome: {stateMotion: 'state', stateLux: 'lux'},
                                  zigbee: {stateMotion: 'occupancy', stateLux: 'illuminance'},
                                  deconz: {stateMotion: 'presence', stateMotion: 'open'},
                                  sonoff: {stateLux: 'BH1750_Illuminance'},
                                  };

                                  Das war mein Versuch den Türkontakt mit einzubinden. Der schaltet zwar das Licht ein wenn ich die Tür öffne aber auch wenn es taghell ist. Die eingetragenen LUX Werte werden ignoriert. Die zwei BM hingegen funktionieren wie gewünscht.

                                  1 Reply Last reply Reply Quote 0
                                  • F
                                    FabianHM @Mic last edited by

                                    Hallo @Mic
                                    neben Deinen anderen tollen Scripten (Logparser) bin ich gerade bei meinem aktuellen use case zum Thema Bewegungsmelder auf dieses Script gestoßen.
                                    Bevor ich mich tiefer einarbeite kurz die Frage, ob folgender use case bereits out of the box enthalten ist, bzw nutzbar ist:

                                    Ich habe mehrere Bewegungsmelder im Einsatz und möchte den identifizieren, wo zuletzt Bewegung und zu welchem Zeitpunkt erkannt wurde?
                                    Ist das bereits on Board?
                                    Danke und Grüße
                                    Fabian

                                    Mic 1 Reply Last reply Reply Quote 0
                                    • Mic
                                      Mic Developer @FabianHM last edited by Mic

                                      Hi,

                                      @FabianHM sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

                                      Bevor ich mich tiefer einarbeite kurz die Frage, ob folgender use case bereits out of the box enthalten ist, bzw nutzbar ist:
                                      Ich habe mehrere Bewegungsmelder im Einsatz und möchte den identifizieren, wo zuletzt Bewegung und zu welchem Zeitpunkt erkannt wurde?
                                      Ist das bereits on Board?

                                      Nein, das bietet dieses Bewegungsmelder-Script nicht bzw. nicht für diesen Einsatzzweck.

                                      @FabianHM sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

                                      neben Deinen anderen tollen Scripten (Logparser)

                                      Das Logparser-Script wurde mittlerweile durch einen Adapter ersetzt, ich empfehle, dass du daher den Adapter einsetzt: https://forum.iobroker.net/topic/31969/test-adapter-log-parser-v0-x-x-github

                                      Falls deine Bewegungsmelder Logs ausgeben bei Bewegung, kannst du das natürlich dann auch über den Logparser-Adapter parsen/filtern und zur Anzeige bringen. Geht auch über Blockly/JavaScript.

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        FabianHM @Mic last edited by

                                        @Mic said in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

                                        Hi,

                                        @FabianHM sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

                                        Bevor ich mich tiefer einarbeite kurz die Frage, ob folgender use case bereits out of the box enthalten ist, bzw nutzbar ist:
                                        Ich habe mehrere Bewegungsmelder im Einsatz und möchte den identifizieren, wo zuletzt Bewegung und zu welchem Zeitpunkt erkannt wurde?
                                        Ist das bereits on Board?

                                        Nein, das bietet dieses Bewegungsmelder-Script nicht bzw. nicht für diesen Einsatzzweck.

                                        @FabianHM sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

                                        neben Deinen anderen tollen Scripten (Logparser)

                                        Das Script wurde mittlerweile durch einen Adapter ersetzt, ich empfehle, dass du daher den Adapter einsetzt: https://forum.iobroker.net/topic/31969/test-adapter-log-parser-v0-x-x-github

                                        Falls deine Bewegungsmelder Logs ausgeben bei Bewegung, kannst du das natürlich dann auch über den Logparser-Adapter parsen/filtern und zur Anzeige bringen. Geht auch über Blockly/JavaScript.

                                        Das ist eine gute Idee! Schaue es mir mal an, denn über das Log bzw den Filter den Bewegungsmelder zu identifizieren sollte einfach realisierbar sein.
                                        Dankeschön!

                                        1 Reply Last reply Reply Quote 0
                                        • H
                                          heinzie last edited by heinzie

                                          Hallo,

                                          versuche mich gerade auch an dem Script, aber irgendwie läuft es nicht.
                                          Verwende den zigbee Adapter und habe dort eine Xiaomi Bewegungsmelder und ien OSRAM Steckdose dran.
                                          Das hat bisher mit mit einem Blocky soweit funktioniert. Da ich aber mehrere habe wollte ich gerne auf das Script umstellen.

                                          Für den Test habe ich nur dieses eingebunden:

                                          /////////////////////
                                          // Hier die einzelnen Bewegungssensoren anlegen und einstellen.
                                          // Im ersten Beispiel ist alles im Detail beschrieben.
                                          /////////////////////
                                          const MOTION_SENSORS = [
                                              
                                             {
                                              name:                   'Bad',
                                              sensorState:            'zigbee.0.00158d00023d8e9a.occupancy',
                                              period_1:               {start:'6:00', end:'23:00',    sec:240 },
                                              //period_2:               {start:'9:00', end:'23:00',    sec:120 },
                                              //neverPeriod_1:          {start:'12:00', end:{astro:'goldenHour', offset: -30} },
                                              //neverState_1:           {state:'0_userdata.0.Anwesenheit.Status.anyonePresent', val:false},
                                              target:                 'zigbee.0.7cb03eaa00a3ca47.state',
                                            },
                                          ];
                                          

                                          müsste doch eigentlich passen (von der Syntax) , oder?

                                          Im Log steht nur folgendes

                                          javascript.0	2020-05-16 18:50:33.548	info	(522) script.js.common.Bewegungsmelder: registered 1 subscription and 0 schedules
                                          javascript.0	2020-05-16 18:50:33.547	info	(522) script.js.common.Bewegungsmelder: *** Bewegungsmelder-Script gestartet *** Folgende Bewegungsmelder werden überwacht: Bad
                                          javascript.0	2020-05-16 18:50:33.547	info	(522) script.js.common.Bewegungsmelder: [DEBUG] VALIDIERUNG *** ENDE: Prüfung der Script-Konfiguration, Ergebnis: keine Fehler ***
                                          javascript.0	2020-05-16 18:50:33.546	info	(522) script.js.common.Bewegungsmelder: [DEBUG] VALIDIERUNG Bad: Adapter/Datenpunkt [zigbee] ist korrekt konfiguriert.
                                          javascript.0	2020-05-16 18:50:33.546	info	(522) script.js.common.Bewegungsmelder: [DEBUG] VALIDIERUNG *** START: Prüfung der Script-Konfiguration ***
                                          javascript.0	2020-05-16 18:50:33.532	info	(522) Start javascript script.js.common.Bewegungsmelder
                                          

                                          hängt es ggf. mit "and 0 schedules" zusammen?

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            heinzie last edited by

                                            @heinzie sagte in [Vorlage] Bewegungsmelder-Script (Xiaomi Aqara und andere):

                                            sensorState: 'zigbee.0.00158d00023d8e9a.occupancy',

                                            Habe das Problem gefunden, die Angabe bei sensorState war falsch:

                                            falsch -> sensorState: 'zigbee.0.00158d00023d8e9a.occupancy'
                                            richtig -> sensorState: 'zigbee.0.00158d00023d8e9a'

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            691
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            19
                                            50
                                            10428
                                            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