HM-Sen-MDIR-O Funk-IR-Bewegungsmelder außen
HM-Sen-MDIR-O Funk-IR-Bewegungsmelder außen | |
---|---|
Allgemein | |
Protokoll | HomeMatic |
Typ | motionDetector |
Kategorie | HomeMatic |
Technische Details | |
Kommunikation | 868,3 MHz |
Kanäle | 1 |
Betriebsspannung | 4,5 V |
Leistungsaufnahme | unbekannt |
Versorgung | Batterie, 3x LR06 (Mignon) |
Abmessungen | 76 x 74 x 90 mm |
Sonstiges | |
Modulname | CUL_HM |
Hersteller | eQ-3 |
HM-Sen-MDIR-O
HomeMatic Funk-IR-Bewegungsmelder außen
Features
PIR-Bewegungsmelder mit Helligkeitssensor zur Tag-/Nachtumschaltung.
Neu: ca. 45 € (Oktober 2018)
Technische Daten:
- Erfassungswinkel: ca. 90°
- Erfassungsbereich: ca. 9 m
- Drehbar: 360°
- Neigbar: 45°
- Schutzart: IP 44
Hinweise zur Inbetriebnahme und Installation
<Bitte ergänzen>
Betrieb mit FHEM
Das Pairing sollte wie in HomeMatic Devices pairen beschrieben durchgeführt werden. Die Anlerntaste am Bewegungsmelder sollte hierzu nur kurz betätigt werden. Bei einer Betätigung von vier Sekunden wird der Melder nur bei Unterschreiten einer festgelegten Helligkeitsschwelle auslösen (weitere Informationen siehe Abschnitt Anlernen der Herstellerdokumentation).
Hinweis: sobald einmal ein motion-Status erkannt wurde, verbleibt das Gerät in diesem Modus. Alle Konfigurationsbeispiele setzen also einen zusätzlichen watchdog voraus:
define WD_Reset_EG.Scheune.MotionDetect watchdog EG.Scheune.MotionDetect:motion 00:04:05 SAME setreading EG.Scheune.MotionDetect state nomotion
Dieser Umweg mit einem Watchdog läßt sich auch mit einer DOIF-Lösung verheiraten, siehe Beispiel Außenbeleuchtung zeitgesteuert und bei Bewegung schalten. Als Alternative kann auch auf die Uhrzeit der letzten Erkennung geprüft werden:
define di_lamp DOIF ([BM:state:sec] < 5)(set lamp on-for-timer 300) attr di_lamp do always
Event-Monitor
In regelmäßigen Abständen werden die folgenden Daten vom Bewegungsmelder (hier: HM-Sen-MDIR-O-2) übermittelt:
2014-11-19 16:31:24 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer brightness: 120 2014-11-19 16:31:24 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer cover: closed 2014-11-19 16:31:24 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer battery: ok
Wird Bewegung erkannt, wird Folgendes vom Gerät (hier: HM-Sen-MDIR-O-2) übermittelt:
2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer trigDst_2573FB: noConfig 2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer motion 2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer motion: on (to MyHMLAN) 2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer motionCount: 235_next:116s 2014-11-19 16:27:55 CUL_HM HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer brightness: 120
Log-Auszug
<Bitte ergänzen>
Konfiguration
Bei eingeschaltetem Autocreate werden die erforderlichen Definitionen beim Pairen selbstständig erstellt (Beispiel: HM-Sen-MDIR-O-2).
define HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer CUL_HM 2B033A attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer IODev MyHMLAN attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer actCycle 000:10 attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer actStatus alive attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer autoReadReg 4_reqStatus attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer expert 2_full attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer firmware 1.6 attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer model HM-Sen-MDIR-O-2 attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer peerIDs 00000000, attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer room CUL_HM attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer serialNr LEQ0xxxxxx attr HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer subType motionDetector
Konfiguration über Register
Anzeige aller dekodierten Register
get <name> regList
zeigt alle moeglichen 'dekodierten' Register an. Fuer mdir sind dies alle, sollte also komplett sein. Hier findet man sowohl den Wertebereich alsauch eine (sehr) kleine Beschreibung. Ausgabe:
list: register | range | peer | description 0: pairCentral | 0 to 16777215 | | pairing to central 1: brightFilter | 0 to 7 | | brightness filter - ignore light at night 1: captInInterval | literal | | capture within interval options:on,off 1: evtFltrNum | 1 to 15 | | sensitivity - read each n-th puls 1: evtFltrPeriod | 0.5 to 7.5s | | event filter period 1: ledOnTime | 0 to 1.275s | | LED ontime 1: minInterval | literal | | minimum interval in sec options:240,60,120,30,15 4: peerNeedsBurst | literal | required | peer expects burst options:on,off
- minInterval
- Minimales Intervall in Sekunden vor dem Senden einer neuen Funknachricht. Der Standard ist 240. D.h. nach einer Bewegungs-Meldung werden erst nach min. 4 Minuten weitere Meldungen gesendet. Ob dafür neue Bewegungen nötig sind oder Bewegungen innerhalb des Intervalls ausreichen, regelt das Register captInInterval.
- captInInterval
- Sendet am Ende der "Sendepause" (minInterval) eine Funkmeldung, wenn Bewegungen innerhalb der Pause gemäss Filtereinstellungen eine Meldung ausgelöst hätten.
- brightFilter
- Gibt als
brightness
das Minimum der letztenbrightFilter+1
Messungen aus. Damit werden kurze Erhöhungen der Beleuchtung ignoriert. Bei einer Messung alle 6 Minuten führt z.B. der Wert 5 dazu, dassbrightness
dem kleinsten Wert der letztzen 30 bis 36 Minuten entspricht. Bei 0 wird entsprechend der ungefilterte letzte Messwert verwendet. Damit kann bei motion-Meldungen an einen Aktor verhindern werden, dass kurzzeitige Beleuchtung zu fehlerhaften Helligkeitswerten führt (siehe [1]). - evtFltrNum
- Filtert Bewegungen aus. Steht dieser Wert z.B. auf 5 so wird erst bei der fünften Bewegung die Meldung gesendet.
- evtFltrPeriod
- Gibt an wie viel Zeit zwischen zwei Bewegungen vergehen muss um für den evtFltrNum Filter gezählt zu werden. Steht dieser Wert auf 1 und evtFltrNum auf 5 so muss der Sensor 5 Sekunden Bewegungen registrieren um eine Meldung zu senden.
- ledOnTime
- Legt die Aufleuchtdauer der internen LED zur optischen Rückmeldung fest. Die LED leuchtet jedoch nur bei einer Funkübertragung auf. D.h. ist auch von minInterval abhängig.
Einsatzbeispiele (per Notify)
Gerät bei Bewegung schalten
Mit dem folgenden Notify kann z. B ein Unterputz-Schaltaktor für die angegebene Zeit (in Sekunden) eingeschaltet werden - ein Peeren ist dazu vorher nicht erforderlich. Das Einschalten passiert in diesem Beispiel unabhängig von der Helligkeit.
define Notify_Bewegungsmelder_Haustuer notify HM_Sen_MDIR_O_2_2B033A_BewegMelderHaustuer:motion set HM_LC_SW1_FM_298FB2_HaustuerLicht on-for-timer 300
Außenbeleuchtung zeitgesteuert und bei Bewegung schalten
Das fortgeschrittene Beispiel steuert die Beleuchtung in Abhängigkeit von Uhrzeiten und zwei Bewegungsmeldern.
Dazu wird das Twilight-Modul verwendet:
define MyTwilight Twilight 54.2539407 9.0650127 1 12833034
wobei die Koordinaten und die Stadt-ID (letzte Zahl) angepaßt werden müßen.
Zeitgesteuerte Außenbeleuchtung
Ein Dummy namens D_TimerAussenlicht speichert, ob das Außenlicht über die Uhrzeitregelung aktiviert wurde:
define D_TimerAussenlicht dummy attr D_TimerAussenlicht room Aussen define AussenlichtONOFF DOIF (( [05:30-07:40|8] or [06:30-08:00|7] or [15:30-22:30] or ([15:30-01:00] and [PresTVWintergarten:state] eq "present")) and [MyTwilight:twilight_weather] < 40) \ (set D_TimerAussenlicht on, set Aussenlicht on) \ DOELSE \ (set D_TimerAussenlicht off, set Aussenlicht off)
Dies aktiviert die Außenbeleuchtung zwischen 05:30-07:40 an Werktagen oder zwischen 06:30-08:00 an Wochenenden oder Ferientagen oder zwischen 15:30-22:30 oder zwischen 15:30-01:00 sofern der Fernseher (PresTVWintergarten) mit Hilfe des PRESENCE-Moduls erkannt wurde - aber nur, wenn es dunkel ist. Für die Erkennung der Dunkelheit wurde des Twilight-Modul verwendet und der Schwellwert auf 40 definiert. Wie in der Dokumentation ersichtlich, sind die angegebenen Uhrzeiten die möglichen START- und END-Zeiten - sollte die Dunkelheit (AND-Verknüpfung des Twilight-Modules) nicht ausreichen, wird das Licht später ein- oder früher ausgeschaltet.
Bewegungsmelder
Diese Lösung basiert auf der vorgeschlagenen Bewegungsmelder-Lösung mit DOIF, integriert jedoch das löschen des motion-Zustandes in den Bewegungsmeldern:
define D_MotionDetectHinten dummy define DI_MotionHintenScheune DOIF ([EG.Scheune.MotionDetect] eq "motion" ) (set D_MotionDetectHinten on, set D_MotionDetectHinten off, setreading EG.Scheune.MotionDetect state nomotion) attr DI_MotionHintenScheune do always define DI_MotionHintenDurchgang DOIF ([EG.Durchgang.MotionDetect] eq "motion" ) (set D_MotionDetectHinten on, set D_MotionDetectHinten off, setreading EG.Durchgang.MotionDetect state nomotion) attr DI_MotionHintenDurchgang do always define DI_MotionLichtHinten DOIF ([D_MotionDetectHinten] eq "on" and [D_TimerAussenlicht] eq "off" and [MyTwilight:twilight_weather] < 40) \ (set LichtStruc.Aussen.Hinten on) \ DOELSE \ (set LichtStruc.Aussen.Hinten off) attr DI_MotionLichtHinten wait 0:240
Der Dummy D_MotionDetectHinten wird von beiden Bewegungsmeldern (EG.Durchgang.MotionDetect und EG.Scheune.MotionDetect) getriggert. Sobald diese eine Bewegung erkennen, werden diese auf das Muster on gefolgt von off gesetzt. Direkt danach wird der motion-Status des auslösenden Bewegungsmelders gelöscht.
Das dritte DOIF reagiert auf einen Wechsel des Dummys (D_MotionDetectHinten) und prüft, ob das Außenlicht bereits zeitgesteuert (D_TimerAussenlicht, siehe Abschnitt oben) aktiviert wurde. Ist dies nicht der Fall und dunkel (Twilight-Modul und Abfrage) genug, wird die structure (LichtStruc.Aussen.Hinten) ohne Verzögerung für 240 Sekunden aktiviert.
Die Bewegungsmelder können dann ebenfalls auf eine 240-Sekunden-Verzögerung konfiguriert werden - die Lichter brennen ja bereits für diese Zeitdauer.
Gerät bei Bewegung in Abhängigkeit der Helligkeit schalten
Mit der nachfolgenden Notify-Definition werden zwei Log-Einträge erzeugt, eine Meldung auf der Dreambox angezeigt, falls diese angeschaltet ist, und ein Unterputz-Schaltaktor für die angegebene Zeit (in Sekunden) eingeschaltet, falls die gemessene Helligkeit am Bewegungsmelder kleiner oder gleich 90 ist.
Der Code ist hier so angegeben, wie er in der Weboberfläche nach einem Klick auf das DEF-Feld übernommen werden kann.
HM_BewegMelder_Carport:motion { Log 1, "Trigger-Notify von BewegMelderCarport: @"; Log 1, ReadingsVal( "HM_BewegMelder_Carport", "brightness", ""); fhem( "set E2_Dreambox showText Bewegung am Carport" ) if ReadingsVal("E2_Dreambox","state","") eq "on"; if ( ReadingsVal( "HM_BewegMelder_Carport", "brightness", "") <= 90 ) { fhem( "set HM_Sw1_GarageLED on-for-timer 300" ); } }
Einsatzbeispiele (per DOIF)
Aktor in Abhängigkeit der Helligkeit und innerhalb eines Zeitraums schalten
Voraussetzung: Twilight-Modul Die Twilight-Abfragen könnten natürlich auch entfernt werden.
define di_lampe DOIF ( ( [sensor:brightness] < 120 and [?[twilight:ss_indoor]-23:59] ) (set lampe on) DOELSEIF ( [sensor:brightness] > 80 and [?04:00-[twilight:sr_indoor]] ) (set lampe off)
Aktor bei Bewegung einschalten (inkl. weiterer Gimmicks)
Benötigte Module: Twilight und Residents
Die Zeilen zum Residents und Twilight-Modul könnten natürlich auch entfernt werden.
define di_lampe2 DOIF ( ( ( ## Bewegungsmelder löst aus [sensor:?motion] and ## nur wenn Lampe nicht zuvor manuell eingeschaltet wurde [lampe:state] ne "on" and ## und wenn es nicht sowieso hell genug ist. [?sensor:brightness] < 50 ) and ( ## entweder immer nachts [?00:00-[twilight:sr_civil]] or ## oder wenn niemand daheim [?rgr_Residents] ne "home" ) ) (set lampe2 on-for-timer 180)
Einsatzbeispiele (BM und Aktor direkt peeren)
Man kann den Bewegungsmelder direkt mit einem Schaltaktor von Homematic peeren. Für die Übertragung der Befehle zum Bewegungsmelder muss dieser jeweils ausgelöst werden, drücken des Konfigtasters ist nicht notwendig!
- LichtKeAussen ist ein Kanal eines 4-fach Aktors.
- PIRWg ist der Bewegungsmelder.
set PIRWg peerChan 0 LichtKeAussen single set
Auslösen und dann die Funktion überprüfen mit
get hm configCheck
Nach dem Peeren wird der BM den Aktor bei jeder Bewegung toggeln.
Soll das Schaltverhalten des Aktors verändert werden sind die entsprechenden Short (sh) Register zu setzen. Für eine Zeitabhängige Schaltung müssen zwei Register im Schaltaktor gesetzt werden:
set LichtKeAussen regSet shOnTime 300 PIRWg set LichtKeAussen regSet shSwJtOn on PIRWg
Jetzt wird der BM (minInterval=240) den Aktor für 5 min anschalten und auch innerhalb der Spanne 240-300 Sekunden nachtriggern. Will man diese Zeit verkürzen müssen OnTime im Aktor und minInterval im BM passend gesetzt werden:
- minInterval nur feste Intervalle in sec 120,60,240,30,15
- minInterval < OnTime-10
Die Schaltschwelle für die Helligkeit ist per default => 50 (CtOff=geLo und CtValLo=50)
Diese Betriebsart normalerweise keinen Sinn. Mit zwei Registern kann die Schaltschwelle auf Unterschreiten (ltLo) der Helligkeit < 10 gesetzt werden:
set LichtKeAussen regSet shCtOff ltLo PIRWg set LichtKeAussen regSet shCtValLo 10 PIRWg
Achtung! per default ist Hi=100 und Lo=50 , der Wert für Lo muss kleiner als Hi sein!
Für größer Helligkeitswerte kann man alternativ shCtOff auch auf ltHi setzen. Die Bedeutung (aus get regList):
shCtOff - Jmp on condition from off options:geHi,outside,geLo,ltHi,ltLo,between
Peeren per peerSmart und setzen der Register per Template ist derzeit (August 2019) nicht funktional.
Sonstiges
Anzeige der Uhrzeit der letzten Bewegung
Möchte man den Zeitpunkt der letzten erfassten Bewegung in der GUI sehen, so muss hierzu folgendes Attribut gesetzt werden.
attr Sensor showtime 1
Bekannte Probleme
Geräte verfügen über keinen Sabotage-Kontakt.