Schlagwort-Archive: fhem

[Fhem] wenn sunset zu spät ist

Wie ich hier bereits geschrieben habe, kann man die Funksteckdosen nach Sonnenaufgang (sunrise) und Sonnenuntergang(sunset) schalten.

Nur leider ist es bereits dunkel, wenn die Steckdose und die damit verbundene Lampe eingeschaltet wird. Bis dahin bin ich entweder über einen der Hunde, Kinderspielzeug oder die eigenen Füße gefallen. Obwohl ich glaube, das bei den eigenen Füßen auch nicht das Licht hilft.

Auf jeden Fall ist es ganz einfach, die Steckdose vor dem Sonnenuntergang zu schalten.

define LampeFlurAn at *{sunset(-3600,"17:00","22:00")} set LampeFlur on

Mit der Angabe -3600 (Zeitangabe in Sekunden) wird die Steckdose, in diesem Fall eine Stunde, vor dem Sonnenuntergang eingeschaltet.

[Raspberry Pi] CUL in Fhem einbinden

Endlich habe ich es geschafft die Stehlampen im Garten an den FS20 Umschalter anzuschließen. Über die Fernbedienung konnte ich die einzelnen Ausgänge bereits schalten, nun sollte es auch über Fhem möglich sein.

In der Dokumentation hatte ich gelesen das es reicht die CUL anzuschließen und den Fhem neu zu starten. Kurz nach dem Neustart kam folgende Meldung auf der Kommandozeile:

Use of uninitialized value in string ne at ./FHEM/99_CULflash.pm line 63.

Die Meldung tritt auf wenn man beim einstecken den kleinen Taster nicht eingedrückt hat. Also nochmal raus, Taster drücken, einstecken und Fhem neu starten.

Jedoch blinkte die CUL nicht und In den fhem logs kam folgende Meldungen
Can't open /dev/ttyAMA0: Keine Berechtigung

Ich änderte die Rechte auf /dev/ttAMA0 und startete Fhem neu, diesmal erhielt ich folgende Meldung:
usb create starting
Opening CUL device /dev/ttyAMA0
Setting CUL baudrate to 38400
CUL device opened
usb create end

Was mich jedoch wunderte ist, das in den Dokumentationen von /dev/ttyACM0 die Rede ist und die CUL auch nicht blinkte. In einem Forum stieß ich auf die Lösung, wenn Fhem auf dem Rasbperry Pi läuft gibt es Probleme beim einspielen der Firmware.

Also lud ich mich mir FLIP für Windows von Atmel herunter und die benötigte Firmware. Nach der Installation der Software ließ sich die Firmware ohne Probleme aufspielen und die CUL blinkte.
Nun gab es unter Linux auch das Device /dev/ttyACM0 und in der fhem.cfg fügte ich folgende Zeile hinzu:
define CUL1 CUL /dev/ttyACM0@9600 1234

Einbinden in Fhem

Ich hatte erst am nächsten Tag Zeit den FS20 Aktor in Fhem einzubinden. Als ich Fhem im Browser aufrief gab es bereits den Raum FS20, darunter befanden sich vier Schalter.
Ich klickte den ersten Schalter an und siehe da, die Lampen gingen an. Anscheinend erkennt die CUL alle FS20 Vorgänge und leitet sie an den Fhem weiter, dieser erstellt den passenden Schalter.
Nun musste ich nur noch in der fhem.cfg die angelegten Schalter nach meinen Wünschen umbenennen.

fhem fs20

Automatisch angelegte Schalter

Fhem registriert es wenn ich die Lampen per Fernbedienung schalte und ändert den Status im Webfrontend.

cul

CUL gekauft www.busware.de

[fhem] Steckdosen zeitgesteuert schalten

Was wäre eine Automation ohne das Zeitgesteuerte Schalten von Aktoren?

Eine Vorraussetzung für das Zeigesteuerte Schalten ist die richtige Uhrzeit. Um zu prüfen ob die Uhrzeit stimmt, reicht ein einfaches date auf der Kommandozeile aus. Bei der Installation von wheezy auf meinem Raspberry Pi hatte ich versehentlich die Zeitzone falsch gesetzt, dies konnte ich über dpkg-reconfigure tzdata korrigieren.

Einfaches Zeitgesteuert Schalten
In meiner fhem Konfiguration wurde die LampeFlur bereits definiert und konnte über Weboberfläche geschaltet werden.
Nun sollte Sie gegen 16 Uhr ein und um 22 Uhr ausgeschaltet werden, hierfür waren nur zwei Einträge in der fhem.cfg nötig:

Lampe einschalten
define LapmpeFlurAn at 16:00 set LampeFlur on;

Lampe ausschalten
define LapmpeFlurAus at 22:00 set LampeFlur off;

Laut der fhem Dokumentation soll es auch möglich mehrere Lampen gleichzeitig zu schalten, das hatte ich jedoch nicht ausprobiert. Das Schalten mehrerer Aktoren würde wie folgt aussehen:
define LapmpeFlurAn at 16:00 set LampeFlur on;;set LampeKueche on

Schalten über Sonnenaufgang / Sonnenuntergang
Da der Sonnenuntergang an jeden Tag zu einer anderen Uhrzeit stattfindet, ist es hilfreich die Lampe über den Sonnenaufgang bzw Sonnenuntergang zu schalten.

Der Sonnenuntergang / Sonnenaufgang findet nicht nur täglich zu einer zu einer anderen Zeit statt, sondern ist auch noch Ortsabhängig. Damit nun fhem die Aktoren entsprechend schalten kann, muss folgendes in der fhem.cfg folgendes hinterlegt werden.

attr global latitude 53.31698
attr global longitude 7.48216

Die latitude und longitude Informationen können über diverse Seiten im Internet ermittelt werden.

Um letztendlich die Lampe zu schalten reicht folgender Einzeiler.

define LampeFlurAn at *{sunset(0,"17:00","22:00")} set LampeFlur on
define LampeFlurAus at *{sunrise(0,"05:00","07:30")} set LampeFlur off

In der 1. Zeile wird die LampeFlur eingeschaltet, wenn der Sonnenuntergang zwischen 17 Uhr und 20 Uhr liegt. Ausgeschaltet wird LampeFlur wenn der Sonnenaufgang zwischen 05:00 Uhr und 07:30 Uhr liegt.

[Raspberry Pi] fhem installation und erste Steckdose

Da es ein wenig mühsam ist die Steckdosen immer per Script zu schalten, habe ich mir fhem installiert.
Als erstes die aktuelle Version herunterladen wget http://fhem.de/fhem-5.3.deb und installieren dpkg -i fhem-5.3.deb.
Zuvor musste ich noch ein paar Pakete installieren:
apt-get install perl libdevice-serialport-perl
apt-get install libio-socket-ssl-perl

Nach der Installation liegt das fhem unter /opt und läuft unter dem Benutzer fhem. Erreichbar ist die Weboberfläche über die URL http://ip adresse:8083/fhem für den normalen Rechner.
Für Smartphone gibt es eine angepasste Ansicht unter http://ip adresse:8084/fhem und die URL http://ip adresse:8085/fhem ist für Tablets.

Die erste Steckdose

In der /opt/fhem/fhem.cfg habe ich als erstes einen Schalter angelegt.

define Licht_Telefon dummy
legt den Schalter an
attr Licht_Telefon eventMap on:an off:aus
ändert die Beschriftung der Schaltfläche von on zu an
attr Licht_Telefon room Flur
weißt den Schalter dem Raum Flur zu

Das Python Script, welches die eigentliche Steckdose schaltet, wird über folgenden Codeschnipsel angesprochen:

define NLicht_Telefon notify Licht_Telefon { \
if ("%" ne "aus") {\
system "/fhem/flur.py 1 1&";;\
}\
else {\
system "/fhem/flur.py 1 0&";;\
}\
Log 1, "notify wird ausgeführt mit @ %";;\
}

Der Ordner und das Script gehören dem Benutzer fhem.

Damit der fhem Benutzer das Script ausführen kann, muss in der /etc/rc.local vor exit 0 folgendes hinterlegt werden:
sudo -u fhem /usr/local/bin/gpio export 17 out

Nach einem Server neustart kann die Steckdose über die Weboberfläche geschaltet werden.

fhem

Danke Henning für deine Konfiguration.