Alexa Echo Sprachausgabe via Raspberry Pi und openHAB 2

Wie kann man eine Sprachausgabe über Alexa Echo machen wenn die Tür aufgeht? Bei mir kommt z.B. eine Ansage von Alexa „Die Haustür ist geöffnet worden“ oder „Die Haustür wurde geschlossen„. Das läuft bei mir analog auch für die Fenster, alles mit Kontakten von Homematic und einem CUL im USB des Pi.

Wenn openHAB 2 läuft, braucht man nur eine Rules Datei: /etc/openhab2/rules/Alexa.rules mit folgenden Regeln kopieren: „Alexa Echo Sprachausgabe via Raspberry Pi und openHAB 2“ weiterlesen

Raspberry Pi: Neue Version von Fhem 5.6 veröffentlicht

Am 9.11.2014 wurde nach einem Jahre, eine neue Version von Fhem veröffentlicht. Die Änderungsliste ist umfangreich.

FHEM wird kontinuierlich weiterentwickelt, und die neue Version ist nur als Startpunkt für den update Prozess gedacht. Wer also FHEM laufen hat, braucht nur das update und restart Kommando ausfuehren, um den aktuellen Stand herunterzuladen.

Wer Fhem noch nicht installiert hat, kann es wie hier beschrieben tun.

Klingel-Signal-Erkennung FS20 KSE an Sprechanlage für Pushover Benachrichtigung an iPhone auf dem Raspberry Pi via Fhem und CUL erstellen

Wollte schon immer auf meinem Handy benachrichtigt werden, wenn jemand an der Haustür klingelt. Bekomme nun immer eine Pushover-Benachrichtigung an alle iPhones und iPads. So kann man in den Keller oder in den Garten mit Handy gehen, und man erfährt, wenn der Postbote oder Besuch klingelt und der Raspberry Pi hat auch etwas zu tun.

Mit dem FS20 KSE geht das in nur 15 Minuten. Also die (alte) Sprechanlage 20140412-162749.jpg geöffnet. Von innen sieht sie so aus, voller Hightech: 20140412-162802.jpg

20140412-162817.jpg

Nun die zwei Drähte von der KSE an die passenden Kontakte geschraubt (parallel zum Summer), der andere Kanal bleibt leer. Spannungversorgung ist nicht nötig.20140412-162833.jpg
Alles wieder zuschrauben. In der fhem.cfg noch folgende Einträge machen und restarten:

# XXXX durch Hauscode ersetzen
define fl_klingel_1 FS20 XXXX 00
attr fl_klingel_1 IODev myCUL
attr fl_klingel_1 room Flur
attr fl_klingel_1 group Klingel

define FileLog_fl_klingel_1 FileLog ./log/fl_klingel_1-%Y.log fl_klingel_1
attr FileLog_fl_klingel_1 logtype text
attr FileLog_fl_klingel_1 room Flur
attr FileLog_fl_klingel_1 group Klingel

# XXXX durch Hauscode ersetzen
define fl_klingel_2 FS20 XXXX 01
attr fl_klingel_2 IODev myCUL
attr fl_klingel_2 room Flur
attr fl_klingel_2 group Klingel

define FileLog_fl_klingel_2 FileLog ./log/fl_klingel_2-%Y.log fl_klingel_2
attr FileLog_fl_klingel_2 logtype text
attr FileLog_fl_klingel_2 room Flur
attr FileLog_fl_klingel_2 group Klingel
#
# Benachrichtigung wenn es an der Haustür klingelt
# Folgende log Einträge werden geschrieben:
#
# 2014-04-12 12:09:21 FS20 fl_klingel_1 on
# 2014-04-12 12:09:21 FS20 fl_klingel_2 on
# 2014-04-12 12:09:22 FS20 fl_klingel_1 off
# 2014-04-12 12:09:22 FS20 fl_klingel_2 off

# -token- und -user- durch passende token und user ersetzen
define klingenOnPush notify fl_klingel_1:on* {\
my $zeit=EventZeit();;\
system ("curl -s -F 'token=-token-' -F 'user=-user-' -F 'message=Es klingelt an der Haustür um $zeit' -F 'title=Haustür: Klingel an' https://api.pushover.net/1/messages.json");;\
}
attr klingenOnPush group Klingel
attr klingenOnPush room Flur

# -token- und -user- durch passende token und user ersetzen
define klingenOffPush notify fl_klingel_1:off* {\
my $zeit=EventZeit();;\
system ("curl -s -F 'token=-token-' -F 'user=-user-' -F 'message=Es klingelt an der Haustür um $zeit' -F 'title=Haustür: Klingel aus' -F 'sound=siren' https://api.pushover.net/1/messages.json");;\
}
attr klingenOffPush group Klingel
attr klingenOffPush room Flur

Nach einem Restart sieht es in Fhem so aus:
Bildschirmfoto 2014-04-12 um 16.54.17

Für die Empfänger-Seite wird noch ein CUL USB-Stick benötigt
20140415-174204.jpgder wie folgt für den Empfang in Fhem eingebunden werden muss.

Wenn nun jemand an der Tür klingelt, wird innerhalb von ein paar Sekunden die Pushover-Benachrichtigung an das Handy versendet. Eine wenn der Klingeltaster gedrückt wird und eine wenn der Klingelschalter losgelassen wird. So sieht es auf dem iPhone aus:20140412-170739.jpgCool.

Jetzt fehlt noch der Rückkanal, das wenn jemand klingelt, der Summer betätigt werden kann. Dazu fehlt mir aber der drahtlose Empfänger mit Relais. Was könnte ich da nehmen?
20140415-174218.jpg

Wie wird ein Fensterkontakt HM-SEC-SC-2 von Homematic mit einem Heizungsthermostat HM-CC-RT-DN mit Fhem auf Raspberry Pi gekoppelt

Wie hier sehr gut beschrieben vorgehen.

1. Den Fensterschalter mit dem Heizungsventil HM-CC-RT-DN peeren. Das läuft über Kanal 03 WindowRec mit:
set peerChan 0 single
z.B.:
set az_Fenster_Schalter peerChan 0 az_Heizungsthermostat_WindowRec single

dann und das ist Wichtig, am Fenster-Schalter den Kontakt mit dem Kugelschreiber drücken, sonst wird es nicht ausgeführt.

Kontrolle unter Attributes, bei der peerIds muss die ID vom Schalter stehen:
Bildschirmfoto 2014-02-22 um 17.50.01

2. Wenn das Fenster aufgeht, soll die Temperatur autom. abgesengt werden. Dazu wird der im Heizungsthermostat integrierte Schalter über Kanal 4 ClimRT_tr ausgeschaltet mit:
set regSet winOpnMode off
z.B.:
set az_Heizungsthermostat_Klima regSet winOpnMode off

Kontrolle in den Readings unter R-winOpnMode, muss dann auf off gesetzt sein.

3. Dann soll noch die Temperatur auf 5 Grad (mögliche Werte von 5-30 Grad) eingestellt werden (Kanal 3), die autom. beim öffnen des Fensters eingestellt werden soll mit
set regSet winOpnTemp 5
z.B.:
set az_Heizungsthermostat_WindowRec regSet winOpnTemp 5 az_Fenster_Schalter

Für den älteren Thermostat HM-CC-TC ist die Syntax etwas anders (6-30 Grad, anderer Variablenname)
set regSet tempWinOpen 6
z.B.
set wz_Wandthermostat_WindowRec regSet tempWinOpen 6 wz_Terrassentuer_Schalter

Kontrolle:
Bildschirmfoto 2014-02-22 um 17.58.35

4. Dann noch ein save und rereadcfg.

Wenn alles ok ist, wird nun beim öffnen des Fensters auf 5 Grad geregelt und wenn das Fenster wieder geschlossen wird, auf die eingangs eingestellte Temperatur zurück gestellt.
Diese Regelung kann man gut am folgenden Diagramm erkennen. Das Ventil (blau) wird jeweils geschlossen wenn das Fenster geöffnet wird. Die Ziel Temperatur (grün) geht auf 5 Grad:
Bildschirmfoto 2014-02-22 um 18.32.17

Wie wird unter Fhem der Sysmon (Systemmonitor) auf einem WR703N unter OpenWrt installiert?

Wer sein Fhem Server heute updated bekommt den Sysmon mitgeliefert (FHEM/42_SYSMON.pm). Installation wie in der Beschreibung von
Sysmon angegeben. Wenn man das Beispiel in die fhem.cfg kopiert erhält man folgende Ausgaben:
Bildschirmfoto 2014-01-14 um 17.52.10

Folgende Dinge fallen auf wenn man den Beispielcode 1:1 unter OpenWrt attitude_adjustment/12.09 verwendet:

1. Die Überschrift RPi stimmt in meinem Fall nicht, da es ein WR703N ist. Evl. muss da nur die Gruppe geändert werden.

2. Die Temperatur wird nicht angezeigt. Das liegt wohl daran, das der WR703N kein eingebauten Temp.-Sensor hat. Dann sollte die Zeile nicht vorhanden sein oder aber NN stehen. Oder hat der 703N ein Temp.-Sensor?

3. Die Frequenz in Mhz wird nicht angezeigt.

4. Wifi zeigt not available an, wohl weil es ausgeschaltet ist. Gut wäre auch, wenn alles in wahlweise in Deutsch angezeigt würde.

5. USB-Stick wird auch noch nicht richtig angezeigt.

6. Die 6 Plot Dateien werden noch nicht gefunden (Cannot read ./www/gplot/mySMNetworkEth0.gplot). Habe in das www/gplot Verzeichnis geschaut. Da sind die Dateien auch nicht vorhanden. Wo bekomme ich die? Hier steht, das die von GitHub geladen werden könne. Die könnten doch auch in Fhem eingescheckt werden?

Heute noch mal ein Fhem Update, aber die plott Dateien waren noch nicht eingescheckt, ok dann eben aus dem Git holen. Ab heute sind die Dateien nun auch eingescheckt. Der folgende Schritt kann also entfallen.

[Optional]
Ein neues Verzeichnis erstellt und die Dateien aus dem Git Repository geholt und in das Fhem/www/gplot Verzeichnis kopiert mit:

mkdir plott-dateien
cd plott-dateien
git clone git://github.com/hexenmeister/MyFHEM
cp SM* ~/fhem/www/gplot/

Nach reread der Config sind die Plotts auch da, Super!
Bildschirmfoto 2014-01-15 um 18.33.11

Die CPU-Speed kann auf OpenWrt wie folgt angezeigt werden, hier meine getestete Perl Funktion:
sub
CPUSpeed
{
my $CPUSpeed = qx(cat /proc/cpuinfo | grep "BogoMIPS" | sed 's/[^0-9\.]//g');
return $CPUSpeed;
}

Die könnte in Fhem integriert werden, dann würde auch die Frequenz (CPU-Speed) unter OpenWrt attitude_adjustment/12.09 angezeigt werden.

Der Entwickler hat die Funktion nun eingebaut, und der BogoMips wird nun auch angezeigt. Vielen Dank für das schnelle update. Das liebe ich an Open-Source-Projekten.

Habe die Config nun etwas angepasst, so sieht es super aus und kann bleiben:
Bildschirmfoto 2014-01-16 um 17.47.26