openHAB :: Einbinden von Bewegungssensoren

openhabpirIn diesem Beitrag habe ich gezeigt, wie wir einen Bewegungssensor Typ PIR am Raspberry anschließen und betreiben. Nun wollen wir diesen Sensor in openHAB einbinden, damit wir die letzte Bewegung in einem Item hinterlegen und auf Bewegungen mit bestimmten Regeln reagieren können. Beispielsweise lassen wir uns in diesem Beitrag eine E-Mail mit dem Bild einer IP-Cam senden, wenn der passive Infrarot-Empfänger im Haus eine Bewegung erkannt hat.

 

 

 

Verfügbare Artikel zu openHAB

little_blue_dot Einleitunglittle_blue_dot Einbinden der Internetgeschwindigkeitlittle_blue_dot RFID-Lesegerät einbinden
little_blue_dot Installationlittle_blue_dot Präsenzerkennung via Bluetooth und Pinglittle_blue_dot Einbinden von DS18B20-Sensoren
little_blue_dot Konfigurationlittle_blue_dot Kleines Netzwerkmonitoringlittle_blue_dot ical-Abfallkalender einbinden
little_blue_dot Reverse-Proxy für OpenHABlittle_blue_dot Einbinden von LG-Fernsehern [Update]little_blue_dot openHAB als Wecker
little_blue_dot Datenspeicherung und Statistikenlittle_blue_dot Einbinden Schaltern und Kontaktenlittle_blue_dot Einbinden von Bewegungssensoren
little_blue_dot Regeln planen und konfigurierenlittle_blue_dot Einbinden von Funksteckdosen (433 MHz)little_blue_dot Einbinden einer FritzBox
little_blue_dot Einbinden von USB-Steckdosenleisten (SIS-PMS)little_blue_dot Infrarotgesteuerte Geräte einbindenlittle_blue_dot Sprachausgabe auf einem Raspberry
little_blue_dot Einbinden von Temperatursensorenlittle_blue_dot Steuerung mit NFC-Tagslittle_blue_dot Schaltbare Steckdosenleiste mit Relais
little_blue_dot Externer Zugriff mit my.openhab

 

 

 

Wie im letzten Beitrag gezeigt, liest nicht openHAB die Stati der Bewegungsmelder ein sondern die Zustände werden vom Python-Script, dass auf dem Raspberry läuft, mit der folgenden Zeile gesetzt:

os.system("/usr/bin/curl --header "Content-Type: text/plain" --request POST --data "ON" http://IP_DES_OPENHAB_SERVERS:PORT/rest/items/ITEMNAME")

 

Dabei ist natürlich die IP des eigenen openHAB-Servers zu verwenden sowie der passende Item-Name, den wir im nächsten Schritt definieren. Wir setzten in unserem Beispiel zwei PIR-Sensoren ein und wollen die Stati zum einem Gesamtstatus zusammenfassen, der uns die Uhrzeit der letzten erkannten Bewegung anzeigt. Dazu benötigen wir drei Dummy-Items, die wir wie folgt definieren:
//Dummys
Switch PIR_WZ "Bewegungsmelder Wohnzimmer"
Switch PIR_SZ "Bewegungsmelder Schlafzimmer"
DateTime PRAESENZ_PIR "Bewegung (PIR) [%1$tA, %1$td.%1$tm.%1$tY %1$tT]" <calendar>

 

Die Items „PIR_WZ“ und „PIR_EZ“ werden von extern aktiviert und deaktiviert, daher brauchen diese lediglich in den „default.items“ oder einer eigenen .item-Datei vorhanden sein. Das Item „PRAESENZ_PIR“ wird in einer Regel mit Werten versehen:

 

import org.openhab.core.library.types.*
import java.util.Calendar
import java.util.Date
import java.util.TimeZone

rule "PIR - Bewegung im Haus wurde erkannt"
when
    Item PIR_WZ changed to ON or
    Item PIR_SZ changed to ON
then
    var local_time = java::util::Calendar::getInstance(TimeZone::getTimeZone("Europe/Berlin"))
    postUpdate(PRAESENZ_PIR, new DateTimeType(local_time))
end

Diese Regel ist beinahe selbsterklärend. Wenn ein PIR-Item aktiv wird, werden das aktuelle Datum sowie die Uhrzeit in eine Variable gesetzt und der Status des Items „PRAESENZ_PIR“ mit dem Wert dieser Variablen gesetzt.

 

In der Sitemap binden wir unser Item wie folgt ein:

Text item=PRAESENZ_PIR icon="calendar"

 

15

 

 

Vorstellbar wäre nun eine Regel, die eine E-Mail mit dem Bild einer IP-Cam bei einer erkannten Bewegung sendet, wenn niemand zuhause ist:

rule "Raumueberwachung"
when
    Item PIR_WZ changed to ON or
    Item PIR_SZ changed to ON
then
    if(JEMANDZUHAUSE.state == OFF ) {
        executeCommandLine("/scripts/vorlesen.sh@@236@@Bitte verlassen Sie meine Wohnung.@@100@@dog", 2000)
        sendMail("deinemail@adresse.de", "Bewegung in der Wohnung", "Es wurde eine Bewegung in der Wohnung festgestellt", "http://IP_DER_WEBCAM/jpg/image.jpg")
    }
end

 

Schreibt gerne in den Kommentaren, welche Projekte und Ideen ihr mit euren PIR-Sensoren umgesetzt habt.