FS20 – Hausautomatisierung – Teil 2
Beim Thema Hausautomatisierung gibt es immer etwas zu tun, deshalb gibt es hier nun die nächsten Denkanstöße für meine Leser 🙂
Text2speach im Client / Server Betrieb
Bei mir ist es so, das sich der Raspi nicht im Wohnzimmer (wo man sich am meisten aufhält) befindet, sondern in der ersten Etage. So ist die Reichweite zu allen Geräten am besten.
Einziger Nachteil: Die Sprachausgabe mit so wichtigen Information wie „Draußen sind es 12 Grad, drinnen 19,5 – Ich mache die Heizung an“ oder „Du willst aus dem Haus gehen, hast aber vergessen die Fenster zu schließen“ ist leider nicht zu hören.
Lösung: Auf meinem Wohnzimmer VDR läuft ebenfalls Fhem und wird durch den Raspi zur Sprachausgabe genutzt.
Auf beiden Geräten:
{code lang:bash hidden:false}
apt-get install mplayer
apt-get install mp3wrap
{/code}
Dann noch die Datei /usr/sbin/visudo auf beiden Geräten anpassen (nano oder vim).
Einfach als letzte Zeile anhängen.
{code lang:bash hidden:false}
ALL ALL = NOPASSWD: /usr/bin/mplayer
{/code}
Auf dem Raspi in der fhem.cgf anpassen:
{code lang:bash hidden:false}
define MyTTS Text2Speech 192.168.0.31:7072
attr Text2Speech room Text2Speech;
{/code}
192.168.0.31 ist hierbei die IP meines Clients (VDR).
Auf dem Client (192.168.0.31) in der fhem.cgf anpassen:
{code lang:bash hidden:false}
attr global globalpassword fhempasswd;
define MyTTS Text2Speech hw=0.0;
attr MyTTS room Text2Speech;
attr MyTTS TTS_UseMP3Wrap 1;
attr MyTTS verbose 4;
set MyTTS tts „Fhem gestartet“
{/code}
Mit aplay -l erhält man eine Liste der möglichen Audio Ausgabegeräte. hw=0.0 entsprechend anpassen.
Auf dem Raspi kann nun ein erster Test erfolgen:
{code lang:bash hidden:false}
set MyTTS tts Ab jetzt kann ich reden
{/code}
In der Praxis kann dann so eine Ausgabe wie folgt auf dem Raspi eingebaut werden.
Hier ist mal die Batteriewarnung zu sehen:
{code lang:bash hidden:false}
define batterie_check notify .*:[Bb]attery.* { if(„%“ !~ m/ok/) {\
system(„/bin/batterie_mail.sh“);;\
system(„/bin/wake_yavdr.sh“);;\
fhem(’set MyTTS tts Batterie an‘);;\
Log 3, „@: Batteriewarnung %“;;\
}\
}
{/code}
Bei der zweiten und dritten Zeile handelt es sich um Shellscripte die eine Mail auslösen und den eventuell nicht eingeschalteten VDR per WakeOnLan wecken. Wenn er wach ist ließt er dann die Meldung vor.
Das Wecken mache ich allerdings nur bei dieser wichtigen Warnung.
Etwas unwichtiger, aber trotzdem lustig:
{code lang:bash hidden:false}
define Schalter_Flur_Licht notify FS20_e24b02 {\
if (Value(„Lampe_Flur“) eq „off“) {\
fhem(„set Lampe_Flur on“);;\
fhem(’set MyTTS tts Lampe im Flur an‘);;\
} else {\
fhem(„set Lampe_Flur off“);;\
fhem(’set MyTTS tts Lampe im Flur aus‘);;\
}\
}
{/code}
Diese Bücher kann ich dir noch empfehlen:
Zu dem Modul ist hier auch noch weiteres zu finden.
Den Witz des Tages vorgelesen bekommen? Hier zeige ich dir wie das geht!
Hier geht es weiter zu Teil 3.
Dir hat das Projekt gefallen? Dann Unterstütze mich, damit ich weiterhin solche Projekte vorstellen kann!