Schlagwort-Archive: smart home

[openhab] mail bei Bewegung

Neben dem Licht einschalten bei Bewegungserkennung kann mit entsprechender Regel auch eine E-Mail versendet werden.

Zunächst muss das Modul org.openhab.action.mail-*.jar in dem addons Verzeichnis abgelegt und openhab neu gestartet werden.
Zusätzlich müssen in der openhab.cfg der smtp Server und die entsprechenden Zugangsdaten hinterlegt werden.

Damit die Benachrichtigung deaktiviert werden können, wurde folgender Schalter in einer items Datei angelegt.
Switch BewegungInfoAbwesenheit "Bewegung Info Abwesenheit" (maschine) {OFF,ON}

Die Regel aus dem Artikel zur Bewegungserkennung wurde um folgende Zeilen erweitert:

if(BewegungInfoAbwesenheit.state == ON && Presence.state == OFF){
sendMail("E-Mail Adresse", "Betreff", "Nachricht")
}

[openhab] FS20 Bewegungsmelder

Manchmal ist es nicht nur hilfreich das Licht einzuschalten wenn es dunkel wird und jemand zu Hause ist, sondern wenn es dunkel ist und eine Bewegung erkannt wird.

Da ich bereits FS20 Geräte im Einsatz habe, habe ich mir für die Bewegungserkennung den FS20 Funk-Bewegungsmelder zugelegt. Für das einbinden neuer Geräte hatte ich im Vorfeld den Artikel https://www.itbasic.de/openhab-fs20-fernbedienung-und-switch-status-aktualisierung/ geschrieben.

Registriert der Bewegungsmelder eine Bewegung soll ein Aktor, in diesem Fall eine FS20 Steckdose, geschaltet werden.
In der entsprechenden items Datei wurde nun der Aktor, der Bewegungsmelder und ein weiterer Schalter angelegt

items Datei
Switch LampeOb "Flur Stehlampe" (flur) {fs20="010101"}
Switch Beweg1 "Bewegungssensor 1" (fs) {fs20="000000"}
Switch FlurBewegung1 "Bewegungsmelder auto" (flur) {ON,OFF}

Der Schalter FlurBewegung1 dient dazu das Automatische schalten zu deaktivieren, so das der Aktor dauerhaft geschaltet werden kann.

rules Datei
rule Bewegung1
when
Item Beweg1 received update
then
if(FlurBewegung1.state == ON && LampeOb.state == OFF){
sendCommand(LampeOb, ON)
}
end

Wurde die LampeOb eingeschaltet und der Schalter FlurBewegung1 steht auf ON, wird die Lampe nach 360 Sekunden wieder ausgeschaltet.

rule LampeObBewegung
when
Item LampeOb received command ON
then
if(FlurBewegung1.state == ON){
timer = createTimer(now.plusSeconds(360)) [
sendCommand(LampeOb, OFF)
]
}
end

[Raspberry Pi] erster Schritt zur Hausautomation

Genial was alles mit dem Raspberry Pi möglich ist. Ursprünglich wollte ich mit dem FHEM Steckdosen aus der FS20 Reihe schalten, es geht jedoch auch einfacher bzw günstiger.

Hierfür kauft man sich einen kleinen 433 MHz Sender, der kann hier bestellt werden.

Um den Sender mit dem Raspberry Pi zu verbinden, habe ich Kabel aus einem altem PC Gehäuse genommen. Die Stecker die normalerweise z.B. den Resetschalter mit dem Mainboard verbinden, passen ebenfalls auf die Pins des Raspberry Pi. Ansonsten kann auch ein Floppykabel verwendet werden und als letzte Möglichkeit könnte man die Kabel direkt anlöten.

Die Anschlüsse des Senders sind ANT, VCC, DATA, GND. Als Antenne habe ich ein Kabel von 17 cm länge verwendet. An die anderen Anschlüsse habe ich die zuvor erwähnten Kabel aus dem PC Gehäuse gelötet.

Der Sender wird mit folgenden Pins verbunden:
ANT 17cm langes Kabel (grün)
VCC => Pin 2 5 V (rot)
DATA => Pin 11 GPIO 17 (weiß)
GND => Pin 6 GND (schwarz)

433 MHz Sender

433 MHz Sender


Eine Übersicht der Ports gibt es hier:http://wiki.laub-home.de/wiki/Raspberry_Pi_Sensoren_auslesen

Bevor alles weitere per git heruntergeladen und kompiliert werden kann, müssen ein Programme nachinstalliert werden.
apt-get update
apt-get install git gcc python-dev python-setuptools

Unter Raspbmc musste ich zusätzlich noch make installieren.

Dann müssen folgende Kommandos unter dem Benutzer root ausgeführt werden:

cd /usr/local/src
apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

git clone https://github.com/WiringPi/WiringPi-Python.git
cd WiringPi-Python
git submodule update --init
python setup.py install

Beim clone unter raspbmc von https://github.com habe ich folgende Fehlermeldung erhalten:

Cloning into 'WiringPi-Python'...
error: Problem with the SSL CA cert (path? access rights?) while accessing https://github.com/WiringPi/WiringPi-Python.git/info/refs
fatal: HTTP request failed

Das Problem konnte ich mit Hilfe von git config --global http.sslVerify false lösen.

Damit der pi Benutzer auf die GPIO17 zugreifen darf, müssen noch Rechte in der /etc/rc.local angepasst werden. Vor der Zeile exit 0 habe ich sudo -u pi /usr/local/bin/gpio export 17 out hinzugefügt und den Raspberry Pi neugestartet.

Als nächstes habe ich den Code für elro_wiringpi.py hier kopiert und in einer Datei gespeichert. Seinen Hauscode gibt man in der Zeile 96 an.

Dann ein chmod 755 elro_wiringpi.py und mit elro_wiringpi.py nummer ein/aus können die Funksteckdosen geschaltet werden.
Nummer = A=1 B=2 C=4 D=8 E=16
ein = 1
aus = 0

Ausprobiert habe ich es bislang mit den Funksteckdosen von Elro und Brennenstuhl.

Als ich das Script das erste Mal ausführen wollten, brach das Script mit einem Fehler ab.
./elro_writing.py 1 0
File "./elro_writing.py", line 36
import time
^
IndentationError: unexpected indent

Das Problem war, das beim kopieren des Codes in eine mit vi geöffnete Datei sich Leerzeichen und Tabs eingeschlichen hatten. Python ist an dieser Stelle sehr empfindlich.

Ich hatte das ganze ursprünglich unter Raspbmc ausprobiert. Als ich mit dem „rumspielen“ fertig war startete das xbmc nicht mehr, ob es einen Zusammenhang gibt kann ich nicht sagen. Jetzt habe mir jetzt eine zweite SD Karte zugelegt und auf dieser wheezy installiert und darüber schalte ich nun die Funksteckdosen. Als nächstes werde ich das ganze unter FHEM einbinden.