Weil es heute so heiß ist, wollt ich die Temperaturen die auf der Terrasse gemessen und drahtlos zum Fhem Server gesendt werden, mal hier veröffentlichen.
Hier könnt ihr nun die aktuellen, von mir mit einem Raspberry Pi empfangenen Flugzeugtransponder-Daten in Echtzeit sehen. Alle 5 Minuten werden die Daten automatisch aktualisiert. Der Tacho, zeigt die letzte aktuelle Messung an:
Hier die History, wenn man mit der Maus über die Messpunkte fährt, werden noch Details angezeigt:
Das ganze läuft über DUMP1090 und eine neue Version von TWFlug, die ich bei Gelegenheit mal bereitstellen werde.
Hier die letzte Stunde (letzten 12 Messungen) im Detail:
Und hier der letzte Tag (letzten 288 Messungen) im Detail:
Habe nun mal in den Fhem Hausautomatisations-Server, der auf einen Raspberry Pi läuft, eine Telefon-Anrufliste eingebaut. So können alle Anrufe übersichtlich angezeigt werden. Mit dem Modul FB_CALLLIST geht das einfach. Es muss nur vorher das Modul FB_CALLMONITOR eingerichtet werden. Also diese Konfiguration in die fhem.cfg und restart:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Fritzbox Anrufmonitor
#
define Fritz_Box_Monitor FB_CALLMONITOR<hier IP Adresse vom Pi eintragen>
Wie hier im Blog beschrieben, messe ich mit einem Raspberry Pi und einem HM-ES-PMS-w1-PI via Fhem den Stromverbrauch und Einschaltzeiten meines TVs. Nun wollte ich mal wissen, wieviel Strom mein Farblaserdrucker braucht. Hier die Grafik beim Ausdruck von 4 Farbseiten:
Deutlich kann man die Leistungsaufnahme im Standby/Ruhezustand von ca. 13 Watt erkennen. Das geht auch aus dem Log hervor:
Der Spitzenverbrauch der angezeigen 300 Watt Messung, ist wohl nur ein Peek. Wenn länger gedruckt wird, liegt der sicherlich (hoffentlich) weiter unten, da der Hersteller folgendes angibt:
Somit liegt selbst im Energiesparmodus der Verbrauch des Farblaser bei 4 Raspberry Pis!
Wenn ich mal mehr auszudrucken habe, werde ich die 190 Watt des Herstellers noch mal validieren. Obwol die Chip diesen Wert auch angibt. Evl. haben die das auch nur aus den Herstellerdaten übernommen und nicht gemessen.
Habe gerade eine fix für TWFlug hochgeladen, der auch eine neue Funktion hat.
Es kann jetzt in Fhem die Summe aller Flugzeuge pro Tag angezeigt werden. Wird ein Flugzeug zwei oder mehrmals am Tag empfangen, wird es nur einmal in der Summe pro Tag berücksichtigt.
Es wird einmal am Tag kurz vor Mitternacht ein Eintrag in folgender Form geschrieben:
1
2015-01-05_23:59:41flugdaten summe-pro-tag:1296
Fix in Time Funktion, jetzt mit neuer 1.8 Time Api, LocalDateTime …
7700 Alarm Ausgabe in Konsole
In Fhem kann dann diese Grafik ausgegeben werden:
Hier der nötige Eintrag in der twflug.cfg Datei:
1
2
3
# die Grafik mit der Logdatei verbinden für die Anzahl Flugzeuge pro Tag
Es gibt auch eine Kommandozeilen API. Cool mit der Api, man kann auch alles über das Terminal abfragen und evl. scripten. Da kommt mir doch gleich eine Idee zum Fhem Server.
Aber die Gui ist auch schön.
Aufruf im Browser: http://pi-adresse dann eingabe des Users: pi und Passwort.
Schon erscheint der Dialog:
Wie kann man schnell eine mp3 Datei aufnehmen bzw. mit dem Mac erstellen?
Für die Hausautomatisation mit Fhem auf dem Raspberry Pi benötigte ich eine mp3 Datei, die dann über OpenKarotz bei jedem klingeln an der Haustür abgespielt wird.
Auf dem Mac geht das mit dem schon installierten QuickTime Player und iTunes.
Mit OpenKarotz lebe er nun wieder. Danke. Echt cool das Projekt. Die Anleitung ist auch super. Man braucht nur
1. den Karotz reseten
2. die neue Firmware 2.0 flashen
3. das update auf 2.1 machen und den Patch 222 einspielen
schon hat man einen über einen WEB-Browser (URL = Karotz-IP) erreichbaren Karotz. Das ist alles schön mit Fotos auf der Homepage von OpenKarotz beschrieben. Auf deutsch oder englisch kann man die Google Übersetzung unten rechts auf der Seite aktivieren.
Bei klick auf das Logo, erscheint:
Der About Reiter zeigt die aktuellen Versionen an:
Auch über Telnet kann man den Karotz erreichen mit login: openkarotz
1
telnet Karotz-ip
Auch die Integration über den Homeserver Fhem, der auf einem Raspberry Pi läuft, klappt auf Anhieb. Hier gibt es eine Anleitung dazu. Einfach in der /opt/fhem/FHEM/99_myUtils.pm die folgende Methode einfügen:
1
2
3
4
5
6
sub karotz(@){
my($ip,$cmd)=@_;
my$url="http://"."$ip"."/cgi-bin/".$cmd;
my$ret=GetFileFromURL($url,3,undef,1,1);
return$ret;
}
oder wenn man einen nicht blockenden Aufruf für Fhem haben möchte, oben in der Perl Datei
Habe soeben die 1. Version von dem DUMP1090 Client TWFlug kostenlos
veröffentlicht.
TWFlug liest die Daten von einem DUMP1090 Server und zeigt sie (optional) in einem Tacho an oder/und schreibt die Daten in eine Logdatei für die Auswertung mit z.B. Fhem. Es kann die Logdatei auch per sFTP an einen entfernten Rechner kopieren.
Das TWFlug Programm ist ein Java Programm und läuft somit auf allen Betriebssystem. Es können mit Fhem dann solche schönen Grafiken in Echtzeit angezeigt werden:
Installation:
Download der twflug-0.1.0.zip.
Dann das Archive auspacken.
Für das Starten gibt es zwei Möglichkeiten mit oder ohne GUI.
Ohne GUI mit Eingabe in der Konsole in dem TWFlug Verzeichnis mit:
1
java-jar twflug.jar-n--ip IP-VOM-DUMP1090-Server
also z.B. java -jar twflug.jar -n --ip 192.198.1.2
oder mit GUI
1
java-jar twflug.jar--ip IP-VOM-DUMP1090-Server
also z.B. java -jar twflug.jar --ip 192.198.1.2
Dann startet nach einigen Sekunden, die folgenden Anzeige von TWFlug:
Weiter Infos zu den Parametern erhält man durch Eingabe von
Wer Homematic Geräte hat und diese mit dem Homeserver Fhem betreibt, will hin und wieder mal wissen wie es um den Status der Geräte bestellt ist. Die Anleitung zu HMinfo gibt den Überblick.
Da bei mir ein Fhem Home-Server läuft, hatte ich die Idee, dort doch gleich die Flugdaten die von den Flugzeugtranspondern ausgesendet werden schön graphisch in Echtzeit anzuzeigen.
Also wie kann eine Grafik in Fhem erstellt werden, die die aktuelle Anzahl der gerade empfangenen Flugzeuge anzeigt.
Hier das Ergebniss, wo man deutlich sehen kann, das heute bis ca. 6 Uhr nur ca. 10 Flugzeuge flogen. Dann steigt der Flugverkehr rapide an:
Wie kann nun so eine Grafik, die sich automatisch aktualisiert erstellt werden.
Zuerst einmal die Architektur als BPMN 2.0 Diagramm:
Es werden zwei Raspberry Pi benötigt. Auf dem einen läuft der DUMP1090 Server mit der TWFlug Anwendung unter Java 1.8. Die TWFlug Anwendung läuft ohne Gui, und schreibt alle 5 Minuten die Anzahl der empfangenen Flugzeuge in eine Datei. Diese Datei wird dann jede halbe Stunde per sFTP an den anderen Raspberry Pi gesendet und von Fhem eingelesen und als Grafik ausgegeben.
TWFlug kann auch mit Gui auf einen Rechner gestartet werden und gibt dann als Tacho die Anzahl der Flugzeuge aus.
Das nötige GPlot Script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
myFlug.gplot Version 1.0 vom 17.12.2014
Dieses GNU-Plot Script zeigt die Flugdaten von den empfangenen Transpondern an.
Copyright (C) 2014 Thomas Wenzlaff http://www.wenzlaff.de
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}.
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.
Es währe doch toll, wenn man bei eintreffender E-Mail benachrichtigt würde oder?
So braucht man nicht immer die 148 Mails checken, und kann die Welt retten.
In diesem Projekt, beschreibe ich wie das Betreff jeder eintreffende E-Mail per Sprachausgabe ausgegeben wird. Dazu wird der Karotz benutzt, der nicht nur für Sprachausgabe nützlich ist.
Zuerst das System aktuallisieren und die nötigen cpan Packages installieren:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo apt-get update
sudo apt-get upgrade
sudo cpan install Mail::IMAPClient
# bei Nachfrage mit ja antworten:
# yes
# bei der nächsten Nachfage mit return bestätigen
# local::lib
# ... Stunden später ...
sudo cpan install IO::Socket::SSL
sudo cpan install IO::Socket::INET
# und optional damit Umlaute auch dargestellt werden
sudo cpan install MIME::Parser
# und optional GnuPG wenn nur signierte E-Mails gelesen werden sollen
Nach einem restart von Fhem steht die letzte Betreffzeilen der E-Mails als Reading bereit. So sieht es dann in Fhem aus:
Jetzt fehlt noch den Subject als userReadings zu setze und eine notify Funktion in der fhem.cfg die das Subject liest und an eine Funktion übergibt. Diese Funktion macht die Sprachausgabe des Karotz und wurde an anderer stelle hier im Blog beschrieben.
Shell
1
2
3
4
5
6
7
8
# Folgende events werden generiert
#
# 2014-10-11 19:13:02 mailcheck mailcheck Subject: Ohne Umlaute
BEGIN failed--compilation aborted at./FHEM/32_mailcheck.pmline11,<>line85.
2. Wenn der MIME::Parser nicht installiert ist, wird aus diesem Betreff:
mit üüüüääää dann
Wenn der MIME Parser aber installiert wurde, und Fhem restartet wurde, klappt es auch mit den Umlauten:
3. Fhem aktualisieren.
Habe festgestellt, das Fhem mit einem update nicht mehr die Scripte autom. aktualisiert. Mit einem update force hat es nach ein paar Fehlermeldungen wieder geklappt. Es waren an einigen Dateien nicht mehr die nötigen Userrechte gesetzt.
Wie kann eine Benachrichtigung mit dem Namen und der Telefonnummer an ein iPhone mit Fhem versendet werden. So weiss man immer wer zu Hause anruft und wann. So kann man evl. gleich zurückrufen.
In der Fritzbox 7490 gibt es jetzt keine Funktion mehr um das Telefonbuch in XML zu exportieren, wenn die Kontakte mit Google syncronisiert werden.
Wie kommt man nun an das passende XML Telefonbuch?
In diesem Blog Beitrag habe ich beschrieben, wie OpenHab auf den rPi eingerichtet wird. Nun wollen wir analog zur Demo-Anwendung eine eigene Haus-Anwendung schreiben bzw. erstellen und sie nach und nach erweitern.
Wie kann OpenHab und eine Demo-Anwendung auf einem Raspberry Pi (Debian) installiert werden?
OpenHab läuft auch auf einem Raspberry Pi. Auf Wikipedia gibt es einen kurzen Überblick zu OpenHab.
Um erste Erfahrungen mit OpenHab zu machen, kann man die Demo Anwendung von OpenHab installieren. Als Basis dient die aktuelle Debian 7.6 Version, auf der schon Java installiert ist.
1. Zuerst checken ob Java installiert ist und läuft mit:
Die Wetterstation Square Plus TFA 35.1121.IT besteht aus einem Hauptgerät (Betriebsanleitung): und einem Aussensensor für Temperatur und Luftfeuchte, so sieht er von vorne aus: und so von hinten:
Diese Wetterstation tauscht die Daten von dem Aussensensor zum Innensensor nach dem La Crosse Protokoll auf 868 MHz aus. Diese Daten können auch von einem JeeLink empfangen werden und in Fhem dargestellt werden.
Wie hier schon ausführlich beschrieben, denn LaCrosselTPlusReader10.ino Sketch auf den JeeLink laden.
Automatisch wird dann folgendes erkannt. Dazu vom Aussensensor die Batterien entfernen und in Fhem, für 120 Sekunden den Empfang anschalten mit klick auf set und dann die Batterien wieder einsetzen. Wenn alles erfolgreich gelaufen ist, sind folgende Einträge in der fhem.cfg Datei zu finden:
# Aussensensor Temp und Feuchte Sensor über JeeLink
define LaCrosse_08 LaCrosse 08
attr LaCrosse_08 IODev myJeeLink
attr LaCrosse_08 room Terrasse
define FileLog_LaCrosse_08 FileLog ./log/LaCrosse_08-%Y.log LaCrosse_08
attr FileLog_LaCrosse_08 logtype text
attr FileLog_LaCrosse_08 room Terrasse
In Fhem:
Ein passendes Diagramm, das schön den Verlauf der Temperatur und der Luftfeuchte zeigt, könnte so aussehen:
Leider werden die Daten dieser Innenstation nicht versendet und können somit auch nicht von Fhem empfangen werden. Das währe das Optimum, so hätte man dann alle Werte auch in Fhem. Das währe dann die Eierlegende Wollmilchsau.
Als ich diesen Beitrag gelesen hatte, hatte ich Lust, auch mal was mit Firmata zu machen. Mit dem Firmata Protokoll kann man einfach auf alle Ein und Ausgänge zugreifen ohne ein eigenes Protokoll zu entwickeln.
Also einen Arduino Nano aus der Bastelkiste geholt und ihn mit dem Firmata Standard Sketch geflasht. Das wird ja ganz gut in dieser Anleitung beschrieben.
Arduino flashen
Also über die Arduino IDE den Standard Firmata flashen:
Evl. noch einen Jabber Client installieren um den Account zu testen. Für Mac z.B. adium.im verwenden. Dann auf der Kommandozeile im rPi ein paar Module installieren:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libnet-jabber-perl libnet-xmpp-perl libxml-stream-perl libauthen-sasl-perl libnet-ssleay-perl libnet-jabber-bot-perl libdigest-sha-perl
In der fhem.cfg folgende Zeile eintragen:
(Achtung, den Username in der define Zeile ohne @jabber.de angeben)
define Jabber_Client Jabber jabber.de 5222 JABBERUSER PASSWORT 1 0
attr Jabber_Client OnlineStatus available
attr Jabber_Client PollTimer 2
attr Jabber_Client RecvWhitelist JABBERUSER@jabber.de
attr Jabber_Client ResourceName FHEM
attr Jabber_Client userReadings 1
attr Jabber_Client room Jabber
Details zu den Parametern sind in der Fhem commandref zu finden.
Speichern und restart von FHEM. Im Raum Jabber schauen:
Dann in der Kommandozeile von Fhem z.B.:
set Jabber_Client msg JABBERUSER@jabber.de Hallo Fhem Welt!
Seit langem habe ich einen Karotz und schon einige Beiträge darüber hier veröffentlicht. Nun wollte ich ihn mal in Fhem für die Hausautomatisation einsetzen.
Habe nun eine generelle Lösung über die kostenlose PushingBox realisiert.
Es können jegliche Textausgaben auf den Karotz gemacht werden. Bei mir läuft eine Ansage, wenn es an der Haustür klingelt. Es könnte auch jede Stunde die Temperatur von Karotz angesagt werden oder … (weitere Ideen als Kommentar).
Was ist also nötig?
1. Die kostenlose App PushingBox auf den Karotz über die Karotz Seite installieren. Es ist diese App, die auch über die Suchefunktion im englischen Store gefunden werden kann. Klickt man dann auf die installierte App, findet man dort die Install id die wird für weiter installation benötigt.
2. Einen kostenlosen Account bei PushingBox mit dem Google-Account einrichten.
3. Im Menü auf My Services klicken und auf Add a Service Button klicken:
Dann den Karotz Service auswählen mit klick auf den Button „Select this Service“.
4. Im folgenden Dialog den „Namen der Karotz configuration“ eingeben, der kann frei gewählt werden und der InstallID eintragen. Die kann wie unter 1. beschrieben ermittelt werden. Die Sprache auswählen, damit Karotz auch deutsch spricht einstellen und klick auf „Submit“.
5. Dann unter „My Scenarios“ über den Button „Add an Action“ hinzufügen. Bei dem Parameter folgenden Text eingeben: $nachricht$
Der Service Name ist frei wählbar. Nach dem speichern erscheint in der Tabelle die DeviceId die später noch verwendet wird.
Jetzt einmal auf den „Test“ Button klicken. Karotz muss nun „Nachricht“ sagen. Wenn das alles läuft, kann es an die Einrichtung in Fhem gehen.
6. In der 99_Utils.pm (oder besser eine neue anlegen 99_myUtils.pm analog zu 99_Utils.pm) folgende Funktion ergänzen und abspeichern. Neueste Version kann auch von GitHub geladen werden.
#
# Sendet eine Nachricht an Karotz.
#
# Aufruf z.B.: {Set_Karotz_Nachricht('Device ID','Hallo herzlich Willkommen zu Hause')}
#
sub
Set_Karotz_Nachricht
{
my ($devid, $text) = @_;
return "OK, sende die Nachricht:\"$text\" an Karotz.";
}
7. Fhem restarten und in der Kommandline die Funktion testen mit (?? durch DeviceID ersetzen):
{Set_Karotz_Nachricht(‚v??????????‘,’Hallo herzlich Willkommen zu Hause‘)}
und return. Schon spricht Karotz!
8. Jetzt kann diese Zeile in die gewünschten Abläufe in Fhem integriert werden.
Z.b. wenn es klingelt: define klingenOffPush notify fl_klingel_1:on* {\
Set_Karotz_Nachricht('v???????','Hallo, es hat an der Haustür geklingelt.');;\
}
wird nun die Meldung: „Hallo, es hat an der Haustür geklingelt.“ von Karotz ausgegeben.
Hast Du noch weitere Anwendungsfälle, dann hinterlasse einen Kommentar?
Damit ich benachrichtigt werde, wenn die NSA oder jemand anders per SSH auf meinen Server einbricht, kann dieses Script dienen, welches eine Pushover Nachricht an das Handy oder iPad sendet wenn jeman sich per SSH auf den Raspberry Pi einloggt. Als Basis diente diese sehr ausführliche Seite die sowas mit Pushbullet realisiert hat.
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 geöffnet. Von innen sieht sie so aus, voller Hightech:
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.
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
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:
Für die Empfänger-Seite wird noch ein CUL USB-Stick benötigt der 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:Cool.
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?
Diese Website benutzt Cookies. Wenn du die Website weiter nutzt, gehen wir von deinem Einverständnis aus.OK