Homematic & Hekatron Rauchmelder

Auch wenn man hofft es nie zu brauchen – Brandmelder gehören einfach in jeden Haushalt. Bei uns in Tirol gibt es bereits seit 2008 eine Rauchmelderpflicht für Neu- und Umbauten, nach meiner Meinung ein sinnvolles Gesetz. Natürlich habe ich auch bei uns Rauchmelder installiert – diese waren aber bis dato noch nicht vernetzt.

Genius-Hx_Hekatron_2009_weiss

Am letzten Wochenende kam ich nun endlich dazu, unsere Rauchmeldeanlage zu komplettieren. Als Basis dienen mir die Rauchmelder der Firma Hekatron, welche in diversen Tests hervorragend abgeschnitten haben. Diese habe ich nun mit einem optional erhältlichen Funkmodul ausgestattet und untereinander vernetzt. So wird also überall gleichzeitig Alarm ausgelöst – das ist bei größeren Distanzen (Keller – Obergeschoss) sinnvoll, wo man einen Rauchmelder leicht überhören kann.

Zusätzlich habe ich unsere Rauchmelder in unser Homematic-System integriert. Es hätte zwar auch Rauchmelder direkt von Homematic gegeben (was die Installation wesentlich leichter gemacht hätte), die erste Generation ist aber lt. diversen Internet-Berichten ziemlich Fehleranfällig. Seit neustem gibt es nun die 2. Generation mit 10-Jahres-Batterie und anscheinend ohne Fehler, ob das stimmt muss erst die Zeit zeigen. Für mich kamen sie aber zu spät, deswegen habe ich mich nach einer Alternative umgesehen und wurde fündig:

Zusätzlich zu den Rauchmeldern von Hekatron gibt es noch einen Funkhandtaster. Dieser kann ins bestehende Funknetz eingebunden werden und besitzt – und das ist der entscheidende Punkt – Relaisausgänge für Alarm- und Statusmeldungen.

Ich habe also einen Funk-Schließerkontakt von Homematic an diese Relaisausgänge angeschlossen. Wird nun Alarm ausgelöst (oder die Spannungsversorgung fällt aus) erkennt das die Homematic-Zentrale.

20160829_Homematic_Rauchmelder

Aber was bringt mir das nun? Im Alarmfall wird mir nun eine Push-Benachrichtigung auf mein Smartphone geschickt. Weiters werden alle Raffstores/Rollos hochgefahren und so die Fluchtwege freigemacht.
Im Fall eines Spannungsausfalls bekomme ich ebenfalls eine Push-Nachricht und weiß so Bescheid – die Zentrale im Keller prüft man ja nicht alle Tage…

Fazit: Ich hoffe zwar dass ich diese Funktion niemals brauche – aber es ist doch ein gutes Gefühl vorgesorgt zu haben.

Ein abschließender Hinweis noch für für Homematic-User: Leider gibt es (Stand 08/2016) einen Bug in der CCU-Firmware: Beim Neustart der Zentrale merkt sich diese den Zustand des Schließerkontakts nicht, sondern nimmt bis zur nächsten Status-Übertragung (normal nach ca. 24 Stunden) den Zustand „geschlossen“ an. In meinem Fall würde geschlossen aber „Alarm“ bedeuten – ihr könnt euch denken was dann passiert.
Um diesen Bug zu umgehen muss der Umweg über Variablen gegangen werden, denn diese merkt sich die CCU auch bei einem Neustart. Ein Tutorial dazu findet ihr hier.

Vorstellung (m)einer Backuplösung

Datensicherung ist ein wichtiges Thema. In Zeiten von Festplatten mit mehreren Terrabyte an Speicherplatz verschwenden leider die wenigsten ihre Gedanken an eine vernünftige Datensicherung. Falls dann doch einmal Daten verloren gehen ist das Geschrei groß – vor allem wenn es sich um wichtige Daten wie zb. Bachelorarbeit oder die Familienfotos der letzten 20 Jahre handelt.

Ich habe schon einige Wege ausprobiert und bin nun bei folgender Lösung gelandet:

Diagramm_Backup

Fotos werden direkt auf meinem NAS gespeichert. Durch das Raid5-Verfahren sind sie hier vor dem Ausfall einer Festplatte geschützt. Weiters werden wichtige Dokumente & Unterlagen mit der kostenlosen Software „Backup Service Home“ ebenfalls auf dem NAS gesichert. Besagte Software erstellt vollautomatisch Backups von ausgewählten Ordnern & Dateien. Der Vorteil ist die Versionsverwaltung. Dateien werden die ersten 24 Stunden stündlich gesichert, anschließend Täglich und schließlich Wöchentlich.
Bilder von meinem Smartphone werden in die Dropbox synchronisiert – und diese dann ebenfalls mit BSH auf das NAS gesichert.

Jetzt liegen die Daten also auf dem NAS und sind soweit gesichert – aber was passiert im (hoffentlich nie eintretenden) Fall eines Brandes, Blitzschlags oder Diebstahls?

Die Lösung nennt sich Synology Cloud Sync. Damit können die NAS-Dateien mit einem Cloud-Dienst synchronisiert werden. Bei Google Drive gibt es zB. 17 GB gratis, seit neuestem gibt es bei Amazon unbegrenzten Speicher für 70 Euro/Jahr.
Die Synchronisierung erfolgt bei mir unidirektional, also nur in eine Richtung (von NAS in die Cloud). Gelöschte Dateien werden in der Cloud nicht gelöscht – sind also immer noch Vorhanden. Zusätzlich werden die Dateien clientseitig verschlüsselt und sind so in der Cloud vor fremden Blicken geschützt.

Mattscheibe einer Eos 450D wechseln

Leider habe ich beim Versuch, die Mattscheibe meiner Canon Eos 450D zu reinigen, eben diese zerkratzt. Sie kann aber mit etwas Fingerspitzengefühl selbst getauscht werden. Um dem ein oder anderen die Suche zu ersparen hier die wichtigsten Links:

Die neue Mattscheibe (oder Englisch „focusing screen“) kann im Internet für kleines Geld bestellt werden, ich möchte hier die Firma Schuhmann Service in Linz empfehlen, bei der ihr schon öfters Ersatzteile bestellt habe.

Eine Anleitung für die verschiedensten Kameramodelle findet ihr hier.

Wichtig beim Tausch: Unbedingt Handschuhe tragen und eine Kunststoff-Pinzette verwenden, sonst ist die neue Scheibe gleich wieder hinüber…

Rollos & TV koppeln – ja es geht!

Hausautomation – ein nicht Enden wollendes Thema. Die Hausautomation soll ja – wie der Name schon sagt – Abläufe im Haus automatisieren. Man lässt also alltägliche Tätigkeiten vom Computer erledigen.

Ein solcher Vorgang ist mir vor kurzem aufgefallen: Jeden Abend schalte ich den Fernseher aus, gehe ins Schlafzimmer und lasse dort unsere Rollos herunter. Das sollte sich doch automatisieren lassen? Ja tut es!

Als erstes muss erwähnt werden dass ich schon lange den Lightmanager von jbmedia nutze. Dieses kleine Gerät verbindet Infrarot-Fernbedienungen mit Funk-Steckdosen. So kann ich mit meiner Harmony One bequem die Stromzufuhr der Hifi-Geräte unterbrechen. Seit kurzem beherrscht der Lightmanager auch das versenden von Netzwerkbefehlen über http get. Und da alle Homematic-Geräte auch über direkte Netzwerkbefehle gesteuert werden können passt das perfekt!

Zuerst habe ich einen neue Systemvariable „TV“ angelegt und dieser die Parameter „ein“ und „aus“ gegeben. Über die App HomeDroid habe ich diese Variable einmal an- und ausgeschaltet – danach können die entsprechenden Netzwerkbefehle unter Konfiguration – Automatisierung abgelesen werden:

20160725_homematic_TV_3

Diese Links nun habe ich als neue Befehle im Lightmanager hinterlegt und so eingestellt, dass beim Einschalten des TV die Variable auf „ein“ und beim Ausschalten auf „aus“ gesetzt wird. Jetzt weiß die Homematic schon mal ob der Fernseher ein oder aus ist.

20160725_homematic_TV

Zum Schluss habe ich noch ein Programm erstellt, welches beim Wechsel der Variable auf „aus“ die beiden Rollos herunter fährt. Damit das natürlich nur Nachts passiert habe ich als zusätzliche Voraussetzung die Zeit von 22:00 – 06.00 definiert.

20160725_homematic_TV_2

So schließen sich jetzt die Rollos im Schlafzimmer automatisch, sobald Abends der Fernseher ausgeschaltet wird.

Synology NAS als Datenspeicher & VPN-Server

Bisher wurden meine wichtigen Daten (vor allem Fotos & Dokumente) in einem externen Raid5-Gehäuse (Lian Li EX-50) an meinem PC gespeichert und zusätzlich online gesichert. Durch das Raid5 mit 5x1TB Festplatten besteht ein gewisser Ausfallschutz, aber leider ist das besagte Gehäuse nicht Netzwerkfähig und die Software ist auch schon etwas veraltet.
Deshalb habe ich das Gehäuse vor kurzem durch ein Synology DS1511+ NAS ersetzt, welches ich sehr günstig gebraucht erwerben konnte. Die Vorteile liegen auf der Hand:
– Netzwerkfähig, dh. ich konnte das NAS nun in meinem Serverschrank unterbringen
– Leistungsfähiger
– Up-to-Date (Synology bring regelmäßig neue Versionen für das Betriebssystem DSM heraus)

Der Umzug verlief problemlos, einzig das Zwischenspeichern der ca. 2 TB Daten (ich habe die alten 5x1TB Festplatten weiterverwendet, musste sie aber wegen dem neuen Raid5 formatieren) war eine kleine Herausforderung.

20160603_155302

VPN-Server

Bis jetzt habe ich einen Rasperry Pi als VPN-Server genutzt, um von unterwegs auf mein Heimnetzwerk (und damit auf die Haussteuerung) zugreifen zu können. Da das neue NAS eine VPN-Funktion integriert hat verwende ich nun dieses stattdessen. So habe ich ein Gerät weniger in Betrieb und der Rapsberry Pi kann bei Bedarf für andere Zwecke genutzt werden.
Zum Verwenden als VPN muss einfach im Packetzentrum der „VPN Server“ installiert und anschließend OpenVPN aktiviert werden. Der Rest ist eigentlich selbsterklärend – ich verlinke hier einfach mal auf ein externes Wiki. 

Windwächter: Erweiterte Programierung

Wie schon beschrieben habe ich einen externen Windsensor in mein Homematic-System eingebunden. In der Zwischenzeit habe ich die Programierung massiv erweitert und möchte sie hier vorstellen:

Vorher kurz zur gewünschten Situation:
Unsere Raffstores sind in der Nacht geschlossen und kippen sich am Tag automatisch auf. Wenn jetzt zu starker Wind auftritt (bei uns 10,5m/s) sollen die Raffstores automatisch hochfahren, und nach 15 Minuten (falls der Wind inzwischen die 10,5m/s nicht mehr überschritten hat) wieder herunterfahren. Passiert das am Tag sollen sich die Raffstores wieder aufkippen, in der Nacht natürlich nicht.

Voraussetzung für mein Programm ist ein Script, welches den Sonnenstand (Azimute und Elevation) berechnet. Hierzu verlinke ich einfach mal auf die Seite von der ich das Script habe.

Als nächstes legt man für jeden Raffstore ein neues Programm an. Hier als beispiel ein Raffstore in unserem Wohnzimmer.

20160604_homematic_Raffstore

Was macht das Programm? Wird die Behanghöhe von 1% erreicht, stellt sich der Raffstore auf 2% ein. Das ist genug um unsere Raffstores korrekt aufzukippen. Die passenden Werte hängen vom jeweiligen Raffstore-Modell ab und müssen ausprobiert werden.

Ist das für alle Raffstores erledigt kommt nun der eigentliche Windwächter:

20160604_homematic_Raffstore_2

Der erste Teil des Programms macht nun folgendes:

WENN die Windgeschwindigkeit (SV_Windspeed) größergleich 10,5m/s ist UND der Sonnenstand (SV_sonne_elevation) größer 1,5° beträgt (also Tag) DANN werden alle Raffstores geöffnet (100%) und nach 15 Minuten das Programm EG_Raff_Rueckstellung ausgelöst. Dieses stellt die Raffstores auf die zuvor ermittelten Werte (zb. Wohnzimmer auf 1%) und das Folgeprogramm oben stellt sie im Anschluss wieder auf 2% (sie kippen auf).

Der zweite Teil löst aus, WENN die Windgeschwindigkeit (SV_Windspeed) größergleich 10,5m/s ist UND der Sonnenstand (SV_sonne_elevation) kleinergleich 1,5° beträgt (also Nacht). Hier werden die Beschattungen nach 15 Minuten wieder heruntergefahren aber nicht mehr aufgekippt.
Fazit: Wie man sieht können mit Homematic auch sehr komplexe Programme realisiert werden. In unserem Fall hat der Windwächter bereits einwandfrei funktioniert und bei drohenden Sturmschäden die Raffstores geschützt.

Windwächter mit externem Windsensor realisieren

Ich möchte euch heute Vorstellen wie ich einen externen Windsensor in mein Homematic-System eingebunden habe. Kurz zur Vorgeschichte:
Bei unserem Neubau sind teilweise ziemlich große Raffstores verbaut (bis zu 2,50×3,00m). Um diese vor zu starkem Wind zu schützen war ich auf der Suche nach einem Windsensor. Natürlich habe ich mir zuerst den bekannten OC3-Kombi-Sensor angeschaut, mich aber aus folgenden Gründen dagegen entschieden:
– Viele negative Berichte im Internet, vor allem über die Messqualität des Windsensors
– Funkbetrieb (meine CCU steht im Keller, der Sensor soll aufs Dach)
– Batteriebetrieb (zum Batteriewechsel immer aufs Dach klettern…)

Nach langer Suche bin ich im Internet auf die tschechische Firma Papouch (http://www.papouch.com) gestoßen, welche diverse Sensoren für die Industrie herstellt und vertreibt. Unter anderem auch ein Anemometer mit Netzwerkanschluss und Webinterface. Da in meinem Homematic-System bereits die Heizungswerte von einem Webinterface ausgelesen werden wusste ich: Das kann funktionieren. Also hab ich den Sensor TX20ETH (mittlerweile wurde der Nachfolger WindETH vorgestellt) bestellt und eine Woche später am Dach montiert:

tx20eth-anemometer   20160430_150645 (Large)

Der Windsensor selbst ist wird per RJ11-Buchse angeschlossen, da ich bereits Leerrohre vom Technikraum aufs Dach habe war es kein Problem die Leitung dort zu verlegen, sie musste nur verlängert werden da am Sensor „nur“ 10 Meter Kabel vorhanden sind..
Nachdem noch die IP-Adresse an meine Netzwerkkonfiguration angepasst war zeigt sich folgendes Bild im Webinterface:

Screenshot_20160502-091339

Jetzt kam der schwierige Teil – die Einbindung ins Homematic-System. An dieser Stelle möchte ich mich gleich nochmal bei alchy aus dem Homematic-Forum bedanken. Er hat mir bereits bei meinen Heizungswerten geholfen und auch jetzt hat er es wieder geschafft, die Werte des Windsensors über ein Script in Homematic-Variablen zu speichern:

! Website xml auslesen Windmesser – for dax by Alchy v0.4
var url = „http://10.0.0.200/fresh.xml“;
dom.GetObject(„CUxD.CUX2801001:1.CMD_SETS“).State(„wget -q -O – ‚“#url#“‚“);
dom.GetObject(„CUxD.CUX2801001:1.CMD_QUERY_RET“).State(1);
string srueck = dom.GetObject(„CUxD.CUX2801001:1.CMD_RETS“).State();
string slist = „“;
var posValueStart = „vals=\““;
var posValueEnd = „\“ „;
var posValue = srueck.Find(posValueStart) + posValueStart.Length();
var s1tmp = srueck.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0);
! was ist da los?
var s2tmp = srueck.StrValueByIndex(“ „,23);
var s3tmp = s2tmp.StrValueByIndex(„=“,1);
var s4tmp = 0.1*(s3tmp.Substr(1, 6).ToInteger());
! slist = „Der Wind kommt aus: „#s1tmp # “ mit “ #s4tmp.ToString(2) #“ m/s“ ;
! WriteLine(slist);
dom.GetObject(„SV_Windspeed“).State(s4tmp);
dom.GetObject(„SV_Windrichtung“).State(s1tmp);

 

Und was soll ich sagen außer: Es funktioniert! Über einen CUXD-Timer werden alle 10 Sekunden (muss noch testen, ev. wird das noch verkürzt) die Werte abgelesen und gespeichert. Ab 7,5m/s werden die großen Raffstores hochgefahren, ab 10,5m/s noch die kleinen. Zusätzlich wird in einer zweiten Variable die aktuelle Windrichtung gespeichert, und kann so zb. In DashUI angezeigt werden.

Fazit:
Klar ist es keine günstige Variante (kostet ca. gleich viel wie der OC-3 Sensor, kann aber eben nur Wind), aber die Vorteile (kein Batterie- und Funkbetrieb) haben mich voll überzeugt!

Homematic und CMI verbinden

Unsere Heizung wird von einer UVR1611 (Universalregelung) von Technische Alternative gesteuert bzw. hängt über ein C.M.I. (Control and Monitoring Interface) im Netzwerk. Mit Hilfe eines Scriptes können die Sensorwerte der Heizungssteuerung in Homematic übernommen & weiterverarbeitet werden:

Als erstes muss eine Seite im Online-Schema der Steuerung erstellt werden, welche die zu übernehmenden Werte beinhaltet:

Schema

Wichtig hierbei ist, dass in den Bezeichnungen keine Umlaute und Sonderzeichen vorkommen. Leerzeichen am Besten durch einen _ ersetzen. Bei mir ist das die Seite 3 des Schemas.
Anschließend werden in der Homematic-CCU die betreffenden Variablen als Zahlenwert angelegt, und zwar genau so wie sie im Online-Schema beschriftet sind:

Variable

Nun zum Script, welches die Werte vom Online-Schema abgreift und in die Variablen speichert. Damit das Script funktioniert muss CUXD und CUXD.exec installiert sein:

var url = „http://USER:PASSWORT@CMI-IP-ADRESSE/schematic_files/3.cgi“;
dom.GetObject(„CUxD.CUX2801001:1.CMD_SETS“).State(„wget -q –auth-no-challenge -O – ‚“#url#“‚“);
dom.GetObject(„CUxD.CUX2801001:1.CMD_QUERY_RET“).State(1);
string srueck = dom.GetObject(„CUxD.CUX2801001:1.CMD_RETS“).State();
string liste = „Aussentemperatur: \n|Raumtemperatur: \n|Sole-Vorlauf: \n|Solar-VL: \n|Solar-RL: \n|Puffer-VL: \n|Puffer-RL: \n|Strahlungssensor: \n|Aktuelle_Leistung: \n|Waermemenge: \n“;
string slist =““;
string i;
foreach(i, liste.Split(„|“))
{
var posValueStart = i;
var posValueEnd = „°C“;
var posValue = srueck.Find(posValueStart) + posValueStart.Length();
var stmp = srueck.Substr(posValue, 5).StrValueByIndex(posValueEnd, 0) ;
integer ikomma = stmp.Find(„,“);
string saus1 = stmp.Substr(0, ikomma);
string saus2 = saus1 + „.“ + stmp.Substr(ikomma + 1, 5);
var zaus = saus2.ToFloat();
var name = i.Substr(0, i.Length()-3);
dom.GetObject(„“#name#““).State(zaus);
! slist = slist #name #“ = “ #zaus #“\n“;
}
! WriteLine(slist);

Hier muss natürlich der Benutzer, das Login-Passwort sowie die IP-Adresse des CMI eingesetzt werden. Weiters muss die richtige *.cgi-Datei angegeben werden, in meinem Fall 3.cgi da es bei mir die 3. Seite war.

Schlussendlich muss das Script noch in ein Timer-Programm eingebaut werden, welches zb. alle 60 Sekunden ausgeführt wird. Von nun an können die Variablen weiterverwendet werden und zb. Aktoren abhängig von Raumtemperatur oder Sonnenstrahlung geschalten werden!

Mein besonderer Dank gilt dem User alchy von homematic-forum.de, der mir dieses Script erstellt hat.

An-/Abwesenheit durch Homematic überprüfen lassen

Um der Homematic-Zentrale mitzuteilen, ob man an- oder abwesend ist muss man eine Systemvariable anlegen und diese entsprechend setzen. Das kann zb. durch Bewegungsmelder automatisiert werden – es gibt aber auch einen eleganteren Weg:

Man kann die CCU regelmäßig prüfen lassen ob ein Netzwerkgerät (unser Smartphone) im Wlan angemeldet ist. Da wir das Smartphone immer dabei haben kann so relativ einfach die Anwesenheit im Haus geschaltet werden.

Als erstes muss dazu dem Smartphone eine feste IP-Adresse zugewiesen werden. Anschließend wird auf der CCU das Programm CUx-Deamon installiert, mit dem man virtuelle Geräte anlegen kann. Wie das funktioniert ist hier sehr gut beschrieben.

Wenn das Programm installiert und eingerichtet wurde muss noch ein Systemprogramm angelegt werden um die Systemvariable An-/Abwesend entsprechend zu schalten. Bei mir sieht das ganze so aus:

homematic_anwesend

Und wozu das ganze? Die Variable kann nun in weiteren Programmen verwendet werden und zb. das Licht bei Anwesenheit eingeschaltet werden.
Einen Haken hat das ganze aber: Sollte der Akku des Smartphones einmal leer sein wird die Variable natürlich auf Abwesend geschaltet…