Smart Home: Bewegungsmelder-Lichtsteuerung mit FHEM

Logobild_Bewegungsmeldersteuerung

IM EINSATZ?

Dann schau dir UNSEREN LOXKURS an und profitiere von unserem Wissen!

Nachdem wir hier schon über einige eher ausgefallene Smart-Home-Szenarien mit dem Open-Source-Hausautomation-Server FHEM geschrieben hatten, soll zur Abwechslung auch einmal wieder eine einfache Konfiguration präsentiert werden, die in keinem Smart Home fehlen darf: die Bewegungsmelder-Lichtsteuerung. Diese bietet sich vor allem in Nicht-Aufenthaltsräumen wie Hausfluren besonders gut an und birgt einerseits große Energiesparpotenziale und andererseits hohe Komfortzugewinne in sich.


Basis einer derartigen Steuerung sind einerseits Bewegungsmelder, die eine erkannte Bewegung in ein Steuersignal umwandeln, auf dessen Basis weitere Aktionen ausgelöst werden können und andererseits Schaltaktoren zur Steuerung der Beleuchtung. Als Bewegungsmelder eignet sich der HomeMatic Funk-Bewegungsmelder (Affiliate-Link) sehr gut.

HomeMatic Bewegungsmelder

Als Aktoren kommen beispielsweise der HomeMatic Unterputz-Schaltaktor für Markenschalter (Affiliate-Link), der Unterputz-Schaltaktor 1fach (Affiliate-Link) sowie die Funk-Steckdose mit Leistungsmessung (Affiliate-Link) in Frage, je nachdem, welche Art von Lichtquelle mit dem Bewegungsmelder geschaltet werden soll.

Einrichten der Hardware in FHEM

Vorab ein wichtiger Sicherheitshinweis:

Es ist darauf zu achten, dass die Installation von Komponenten, für die ein Eingriff in die Elektro-Installation vorgenommen werden muss, ausschließlich von zertifiziertem Fachpersonal unter Berücksichtigung der vom Hersteller beigelegten Einbau- und Bedienungsanleitung ausgeführt werden darf.

Unabhängig der verwendeten Aktor-Hardware wird nun zunächst der HomeMatic-LAN-Adapter des FHEM-Servers in den Pairing-Modus versetzt, um den Anlern-Vorgang einzuleiten.

set HMLAN hmPairForSec 60

Nun wird die Hardware ebenfalls in den Anlern-Modus gebracht:

Die Geräte quittieren den erfolgreichen Anlernvorgang über die jeweilige LED. Nach dem Anlernen sollte das jeweils neue Gerät (z.B. CUL_HM_HM_LC_Sw1PBU_FM_12345) in ein lesbares Format überführt werden.

rename CUL_HM_HM_LC_Sw1PBU_FM_123456 FL.Licht

Ferner muss der Bewegungsmelder in FHEM angelernt werden. Hierfür wird der LAN-Adapter erneut in den Anlernmodus versetzt.

set HMLAN1 hmPairForSec 60

Am HomeMatic Funk-Bewegungsmelder (Affiliate-Link) wird die kleine Taste am Batteriefach für das Pairing gedrückt, wie in der Bedienungsanleitung beschrieben. Nach einem Rename erhält auch der Melder einen lesbaren Namen.

HomeMatic Bewegungsmelder

rename CUL_HM_HM_SEC_MDIR_12345 Bewegungsmelder

Des Weiteren kann die interne Firmware des Bewegungsmelders mit Hilfe von FHEM an gewisse Gegebenheiten angepasst werden. Es ist beispielsweise möglich, dessen Sensitivität oder Sendeintervall neu einzustellen. Dazu sind Änderungen an den Registereinstellungen nötig. Um zunächst die bisher eingestellten Werte auszulesen, wird in FHEM der folgende Befehl abgesetzt.

set Bewegungsmelder getConfig

Im Anschluss muss die kleine Taste am Batteriefach des Bewegungsmelder erneut gedrückt werden. Kurz darauf werden die aktuellen Register-Einstellungen an FHEM übertragen und sind im Bereich “Readings” mit dem vorangestellten “R” zu erkennen. Wie im nachfolgenden Screenshot ersichtlich ist, ist beispielsweise der Wert für das Sendeintervall (“R-minInterval“) auf 15 Sekunden eingestellt sowie der Eintrag für die Sensitivität der Bewegungserkennung (“R-evtFltrNum“) auf 1 geregelt, was die Erkennung auf die empfindlichste Stufe einstellt.

Bewegungsmelder in Fhem

Diese Werte können nun entsprechend abgeändert werden. Beispielsweise kann das Sendeintervall von 15 auf 60 Sekunden erhöht werden, um die Batterielebensdauer zu verlängern. Dazu in FHEM den folgenden Befehl absetzen.

set Bewegungsmelder regSet minInterval 60

Im Anschluss wieder die kleine Taste am Batteriefach drücken und anschließend mit einem erneuten

set Bewegungsmelder getConfig

und einem letztmaligen Drücken des Knopfes die neue Konfiguration auslesen und überprüfen. Für das Intervall sind die Werte 15, 30, 60, 120, 240 zulässig; für die Sensitivität die Einträge von 1 bis 7.

Bewegungsmelder-Programmlogik in FHEM umsetzen

Um nun nach dem erfolgreichen Anlernen und Einstellen von Bewegungsmelder und Schaltaktor die Logik der Bewegungsmeldersteuerung in FHEM zu bauen und damit Lichtschalter/Funk-Steckdose und Bewegungsmelder miteinander zu verbinden, wird ein “notify” angelegt.

######## Bewegungsmelder schaltet Licht
define not_LichtAn notify Bewegungsmelder:motion {fhem ("set FL.Licht on-for-timer 40") if (ReadingsVal("Bewegungsmelder","brightness",0) < 34)}

Dieser Code verursacht ein Einschalten des Unterputzaktors (FL.Licht) für 40 Sekunden im Falle einer erkannten Bewegung und berücksichtigt zusätzlich die ebenfalls durch den Bewegungsmelder gemessenen Helligkeitsverhältnisse. So wird im vorliegenden Code-Snippet die Lichtschaltung erst ab einem Helligkeitswert von unter 34 ausgelöst, der sich nach zahlreichen Versuchen als sinnvoller Schwellwert herausgestellt hatte.

HomeMatic Unterputzlichtschalter

Um zusätzlich Energie zu sparen, wenn das Licht einmal manuell per Schalter aktiviert wurde, kann eine Art Auto-Abschaltung festgelegt werden, die nach 3 Minuten das Licht deaktiviert.

######## Auto-Aus im Flur nach 3 Minuten
define not_FLLichtAutoAus notify FL.Licht:on define spaeter_aus at +00:03:00 set FL.Licht off

Die Auto-Abschaltung muss zwangsläufig über irgendeine Art Mechanismus umgesetzt werden, da der Nutzer einer Bewegungsmelder-Lichtschaltung bei eingeschaltetem Licht nicht automatisch erkennen kann, ob dieses manuell oder automatisch aktiviert wurde. So kann es zu Situationen kommen, in denen ein Licht manuell angeschaltet wurde, jedoch aus Gewohnheit der Bewegungssteuerung das Ausschalten bewusst nicht gemacht wird. Verlässt ein Nutzer nun das Haus, würde das angeschaltete Licht vermeidbare Kosten verursachen.

Aus meinem täglichen Leben

Die Bewegungsmeldersteuerung erhöht bei mir den Komfort im Hausflur enorm. Gerade nach dem Einkaufen mit vollen Händen ist es immer wieder derart komfortabel, mit einem angehenden Licht begrüßt zu werden. Ich nutze die oben vorgestellte Schaltung erfolgreich seit über einem Jahr in der Kombination mit einem HomeMatic Unterputz-Schaltaktor für Markenschalter (Affiliate-Link) und einem HomeMatic Funk-Bewegungsmelder (Affiliate-Link), was astrein funktioniert.

31 Kommentare
  1. Hallo Christoph,

    hast Du schon Erfahrungen, wie lange die Batterien in den Bewegungsmeldern halten und ob diese auch mit Akkus betrieben werden können (1,5V vs. 1,2V)?

    Gruß,
    Reiner

    1. Hallo Reiner,

      ich habe die Bewegungsmelder jetzt seit knapp einem Jahr im Einsatz und zwar im Hausflur. Das Sendeintervall ist auf 15 Sekunden (also relativ viel Sendeimpulse) und sehr sensitiv eingestellt.
      Bisher haben die Batterien noch keine Schwäche-Anzeichen gehabt.

      Zum Betrieb mit Akkus würde ich generell sagen, das sollte kein Problem sein, ist aber nur meine subjektive Meinung ohne, dass ich es testen konnte.

      VG
      Christoph

  2. Zum Akkubetrieb ist folgendes zu sagen:
    Bitte Akkus mit einer niedrigen Selbstentladung verwenden. Z.B. Sanyo Eneloop.
    Die Art von Akkus verwende ich ausschließlich und kann das nur jeden ans Herz legen.

  3. Also ich habe es ein wenig anders umgesetzt. Ich habe den Bewegungsmelder direkt mit dem Schalter gepeert, was den Vorteil hat, dass mein FHEM-Server ruhig ausgeschaltet sein kann (optimalerweise natürlich nicht 😉 ) – die Schaltung funktioniert dann trotzdem.

    Dafür müssen dann halt die Register bearbeitet werden.

  4. Im ELV Journal 2/15 (dauert leider noch bis das kommt vermutlich Ende März), soll ein HM-Sen-MDIR-WM55 vorgestellt werden. Das klingt nach einem Bewegungsmelder für das Schalterprogramm. Ich hoffe ja das es HM-LC-Sw1PBU-FM und HM-Sec-MDIR-2 in einem ist und kompatibel zu Wechsel und Kreuzschaltungen. Es gibt übrigens im FHEM Forum für den HM-LC-Sw1PBU-FM eine alternative Firmware, so das man ihn in Kreuz und Wechselschaltungen einsetzten kann.

    1. Gibt weitere Infos sieht bisher ganz gut aus:
      http://www.elv.de/vorschau-journal-1.html
      “HomeMatic®-Funk-Bewegungsmelder mit Taster für Installationsrahmen

      Der neue Bewegungsmelder für 55-mm-Installationsrahmen kombiniert einen HomeMatic-2-Kanal-Wandtaster mit einem Bewegungsmelder. Damit kann z. B. im Flur ein normaler Taster ersetzt werden, so dass sich das Licht dann sowohl über den Bewegungsmelder ein-/ausschalten als auch manuell über die Tastwippe schalten lässt. Die Elektronik befindet sich komplett in der Tastwippe, dadurch ist es möglich, den Taster mit dem beiliegenden Installations-Rahmen oder aber in einen Mehrfachrahmen eines bestehenden Schalterprogramms mit 55er-Rahmen zu montieren.”

  5. Hallo Christoph,

    ich habe mir dein Projekt erfolgreich nach gebaut. Allerdings schaltet bei mir eine Funksteckdose, wo eine kleine LED Tischlampe dran hängt. Jetzt meine Frage dazu: Das Licht geht für eine bestimmte Zeit an, nur wenn ich mich weiter im Flur bewege und über diese Zeit komme, geht das Licht einfach aus. Kann man das irgendwie anpassen? Ich kenne mich mit der Programmierung leider nicht gut aus. Das meiste kopierte ich mir aus deinem Blog. 😉

    Gruß

    Sebastian

    1. Hallo Sebastian,

      das kann eigentlich nur daran liegen, dass die Zeit, in der dein Bewegungsmelder eine Bewegung meldet größer ist, als die Zeit, die du für dein Licht eingestellt hast.
      Erhöhe mal die Zeit, die das Licht anbleiben soll. Wie oft sendet dein Melder Daten? Alle 15, 30, 60 Sekunden?

      VG
      Christoph

  6. Hallo Christoph,

    ich habe noch eine Frage zu deinem Projekt. Wie verhält sich der Bewegungsmelder bei dir? Die Helligkeit wird bei mir immer so zwischen 33 und 35 angezeigt. Somit schaltet er auch dann, wenn ich mal das Licht an habe. Hm.. Okay dieses Problem wirst du mir deiner lampe wahrscheinlich nicht haben…. Wie verhält sich das ganze aber bei Tageslicht? Schaltet er dann auch das Licht? Wie schnell ändert sich bei dir die Helligkeit am Bewegungsmelder?

    Gruß

    Sebastian

    1. Hallo Sebastian,

      hier mal mein Helligkeitsverlauf Helligkeitsverlauf. Bei mir gibt es da keine Komplikationen. Ich hoffe, die Grafik hilft dir.

      Edit: Bau doch einfach noch eine If-Schleife ein: Nur dann wenn das Licht aus ist, soll die Helligkeit geprüft werden. Wenn das Licht bereits an ist, dann nicht mehr.

      VG
      Christoph

    2. Hallo Christoph,

      ich konnte das Problem gut lösen. Habe dazu verschiedene Dinge eingestellt. Ich habe z.B. den brightFilter auf “0” gesetzt. Damit ermittelt er die Helligkeit wesentlich schneller. minInterval habe ich auf 15 gesetzt, da die Steckdose nur 60 Minuten an ist. Das ganze habe ich dann noch mit “Twilight” verknüpft und jetzt läuft alles super! Wenn die Sonne abends unter geht und die Helligkeit sinkt, schaltet die Steckdose!

      Gruß

      Sebastian

    3. Hi Sebastian, könntest Du wie eventuell mal Dein config Eintrag schicken ? Bei mir bleibt die Lampe (nachdem Du PIR auf on gesetzt) nämlich nicht die set-on-timer (120 sek) Zeit an solange man sich im Bereich des PIR aufhällt und weitere motions auslöst

      Bei mir steht das im Log wenn ich die Config von Christoph weiter oben verwende:

      2015.03.02 10:26:15 3: GenShellSwitch command result: sending systemCode[11110] unitCode[2] command[1]
      2015.03.02 10:26:15 2: GenShellSwitch set Eingang on-for-timer 120
      2015.03.02 10:26:24 3: GenShellSwitch command result: sending systemCode[11110] unitCode[2] command[0]
      2015.03.02 10:26:24 2: GenShellSwitch set Eingang off

      Lampe bleibt also nur 9 sek anstatt der 120 sek an, wenn man sich im Aktionsradius des PIR befindet.

      Gruss
      Albrecht

  7. Hallo Christoph,

    ich würde gern Deinen Bewegungsmelder mit dem FS20-System realisieren, habe aber jeweils Wechselschaltungen. Dafür ist zunächst der FS20 WS-1 (Unterputz-Funk-Wechselschalter) gedacht (vergleichbar mit dem HomeMatik Unterputz-Schaltaktor 1fach), der dann im toggle Modus arbeitet, aber dann wohl nicht mehr vom Bewegungsmelder geschaltet werden kann. Bin ich da auf dem Holzweg oder gibts dafür einen Workaround?

    Viele Grüße, Dieter

    1. Ja Christoph, so ähnlich hab ichs dann auch gemacht.

      Hinter den Lampen hab ich je einen Unterputz-Funkaktor platziert.

      Den ersten WS hab ich durch den FS20 PIRU Bewegungsmelder ersetzt, sieht noch dazu recht chick aus das flache Teil …

      Dem zweiten WS hab ich einen Unterputz-Funksender spendiert und einen Taster zum Togglen daraus gemacht.

      Den dritten WS lasse ich unverändert, mit dem kann man bei Bedarf das ganze System stromlos machen.

      Das hat jetzt den Vorteil, dass man das Licht tags (wenn der Bewegungsmelder nicht reagiert) auch mal manuell schalten kann oder das Licht vor Ablauf der programmierten Zeit ausschalten kann ….

      So hat das ganze auch noch einen hohen WAF … 🙂

  8. Moin Christoph,

    wie sieht denn eigentlich der Erfassungswinkel des HomeMatic Funk-Bewegungsmelder? Ich bräuchte diesen Melder eigentlich in einer Deckenmontage-Variante, da ich einen Flur, der aus allen vier Richtungen begehbar ist, damit “abfragen” wollte. Ist dieser Melder deiner Meinung nach dafür überhaupt geeignet?

    Gruß,
    Tim

    1. Hallo Tim,

      hier würde ich ganz klar mit “Nein” antworten.
      Wenn du einen derartigen Bewegungsmelder benötigst, solltest du z.B. einen von EnOcean kaufen. Hierfür brauchst du als Gateway das etwa 40 Euro teure Gateway USB300 von BSC (Affiliate-Link) und dann den folgenden, etwas teureren, dafür aber professionellen Bewegungsmelder für Deckenmontage: ELTAKO Funk-Bewegungs-Helligkeitssensor FBH63AP (Affiliate-Link).

      Dazu wird es bald einen Artikel geben. Ich habe hier schon einige Enocean-Hardware getestet und für absolut überragend empfunden. Auch wenn der Preis etwas höher ist, kann ich die Geräte (gerade die Sensoren) absolut empfehlen.

      Ich hoffe, ich konnte dir helfen.
      Viele Grüße
      Christoph

  9. Hi Christoph,

    vielen Dank für Dein super Tutorial. Leider hat das Heruntersetzen des minInterval bei meinem jungfräulichen HM Setups (2-fach Schalter, HMLAN, PIR2) nicht gleicht geklappt. Der set befehl ging ewig (cmd pending). Nach einer schlaflosen Nacht, habe ich festgestellt, dass mein HMLAN beim initialen Setup die HMID 000000 (auf Seite PIR: paired to 0x00000). Erst als ich diese auf einen neuen Wert (ungleich 000000) gesetzt und die devices neu gepairt habe, hat Alles wunderbar funktioniert.

    Du weist zwar in Deinem Tutorial https://meintechblog.de/2013/05/hmlan-adapter-am-fhem-server-einrichten/ auf das Setzen der HMID hin, aber dass das essentiell für die Comm mit dem PIR und HMLAN ist, war mir nicht klar. Vielleicht kann man auch in diesem Tutorial kurz darauf hinweisen

    Grüsse
    Albrecht

  10. Hallo
    Ich bekommen das mit dem Bewegungsmelder nicht hin
    Wenn der bewegungsmelder sich meldet habe ich folgendes event
    “2015-05-14 09:49:27 FS20 FS20_445f11 on-old-for-timer 60”
    Habe dann mit folgenden notify eine Funkdose zu schalten
    “FS20_445f11: ?? set BW_Dose on”
    Statt den ?? habe ich schon “on” und auch “on-old-timer 60” oder “on.*” versucht aber es geht einfach nicht
    steh irgendwie auf der leitung
    was mache ich falsch

    1. Hallo Jürgen,

      woher kommt denn das “old” in deinem Befehl “on-old-for-timer”? Ich denke, hier liegt auch dein Problem.

      Viel Erfolg und viele Grüße
      Christoph

  11. Hi,
    ich hab deine Code Beispiele auf mich umgebaut, ich möchte mit dem Bewegungsmelder eine Steckdose an schalten, dazu hab ich dein notify so geändert:
    define LED_Bett notify Bewegungsmelder:motion {fhem (“set LED_Leiste_Bett on-for-timer 40”) if (ReadingsVal(“Bewegungsmelder”,”brightness”,0) < 34)}

    Allerdings schaltet die Dose nicht bei Bewegung, und im Log kommt diese Meldung:
    2015.11.03 20:55:49.867 3: LED_Bett return value: Unknown command {fhem, try help.
    Unknown command 34)}<, try help.

    Was hab ich falsch gemacht?

    Danke

    1. Hi Thomas,
      probiers mal so:

      define LED_Bett notify Bewegungsmelder:motion {if (ReadingsVal(“Bewegungsmelder”,”brightness”,0) < 34) {fhem ("set LED_Leiste_Bett on-for-timer 40")}} Grüße und viel Erfolg Jörg

  12. Hallo Jörg, danke für deine Antwort, ich hatte es in der zwischenzeit schon so abgeändert:
    Bewegungsmelder:motion { if ( ReadingsVal(“Bewegungsmelder”,”brightness”,0) < 34) { fhem ("set LED_Leiste_Bett on-for-timer 40") }}

    und damit funktioniert es auch super.

    Oben in der Beschreibung steht es aber anderes herum, vielleicht kann man das noch ändern

    MFG

  13. Hallo
    ich habe den Bewegungsmelder mal so wie hier beschrieben in fhem eingebunden,
    und einen gplot angelegt alles soweit gut.
    Der Bewegungsmelder ist über ein notify auf die Wegbeleuchtung geschaltet also über fhem zum Aktor.
    Es funktioniert soweit, einschalten und aus nach 40Sek. allerdings wird die brightness
    (Helligkeit) nicht berücksichtigt er schaltet auch am Tag bei voller Helligkeit ein.

    Hier meine Zeile:
    Radarmelder:motion {fhem (“set Terasse_Wegbeleuchtung on-for-timer 40”) if (ReadingsVal(“Bewegungsmelder”,”brightness”,0) < 60)}

    habe ich da einen Fehler?
    zwischen 0-50 zeigt mein gplot Dunkelheit an

  14. Möchte einen Led-Stripe (nur weiß) im Flur über Bewegungsmelder und per milight-controller über Fhem an- und ausschalten, geht das? Habe leider keine Möglichkeit mehr einen normalen Lichtschalter zu setzen.

  15. Hallo Jörg,

    eine Frage zum Unterputz-Schaltaktor – im FHEM-Wiki zu diesem Aktor steht, dass der Befehl on-for-timer gar nicht unterstützt wird, siehe http://www.fhemwiki.de/wiki/HM-LC-Sw1PBU-FM_Unterputz-Schaltaktor_1-fach.

    Dort steht “Der HM-LC-Sw1PBU-FM kennt kein set on-for-timer. Um den HM-LC-Sw1PBU-FM trotzdem für einige Zeit anschalten zu können (z. B. wenn ein Fensteröffner dranhängt und das Fenster nur für eine gewisse Zeit geöffnet werden soll), muss ein Button der vccu mit dem HM-LC-Sw1PBU-FM gepeered werden”

    Ist das Wiki an dieser Stelle falsch? Offenbar funktioniert es bei Dir ja. Oder nutzt Du eine alternative Firmware ?

    Eine kurze Info dazu wäre toll. Danke!

  16. Servus Christoph,

    habe versucht deine Schaltung nach zubauen,versuche mit dem Bewegungsmelder

    eine Steckdose mit Leistungsmessung zu schalten.

    Der Bewegungsmelder bemerkt die Bewegung aber an der Steckdose passiert nichts

    ######## BewegungsmelderGartenhomematic schaltet SchaltdoseGarage
    define not_SchaltdoseGarageAn notify BewegungsmelderGartenHomematic:motion {fhem (“set SchaltdoseGarage on-for-timer 40”) if (ReadingsVal(“BewegungsmelderGartenHomematic”,”brightness”,0) < 34)}

    ######## Auto-Aus im Flur nach 3 Minuten
    define not_SchaltdoseGarageAutoAus notify SchaltdoseGarage:on define spaeter_aus at +00:03:00 set SchaltdoseGarage off

    Wo steckt mein Fehler

    Gruß Olaf

  17. alles soweit o.k. ist da ein Schreibfehler genau prüfen,
    oder testen geht die Steckdose mauell über Fhem einzuschalten?

    hier ist mein File wobei Dimmer_3 mein Aktor ist
    ######## Bewegungsmelder schaltet Licht #############
    define Bewegung_Garten notify Radarmelder:motion {fhem (“set Dimmer_3 on-for-timer 40”) if (ReadingsVal(“Radarmelder”,”brightness”,0) < 60)}

    1. Hallo Fritz
      danke für die Mühe die du Dir gemacht hast.
      Manuell läßt sich die Steckdose einwandfrei schalten.
      Rechtschreibung muss ich dann mal am Wochenende checken.
      Gruß Olaf

Schreibe einen Kommentar zu Sebastian Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte dir auch gefallen