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 … „Windwächter: Erweiterte Programierung“ weiterlesen

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, … „Windwächter mit externem Windsensor realisieren“ weiterlesen

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: Wichtig hierbei … „Homematic und CMI verbinden“ weiterlesen

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://XXXXX:XXXXX@XX.XX.XX.XXX/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_kwh: \n|Waermemenge_mwh: \n|Puffer_Oben: \n|Puffer_Oben_Mitte: \n|Puffer_Unten_Mitte: \n|Puffer_Unten: \n|Kollektor_Fassade: \n|Kollektor_Dach: \n|Heizkreis-RL: \n|Heizkreis-VL: \n|Heizkreis-VL-Soll: \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, 6).StrValueByIndex(posValueEnd, 0) ;
    if (stmp.Find("- ")== 0 ) { stmp = "-"#stmp.Substr(2, stmp.Length());}
    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.

Update 13.12.2016: Ein Fehler im Script hatte dazu geführt, dass negative Werte immer als 0 angezeigt wurden. Das habe ich erst jetzt im Winter bemerkt, alchy war so freundlich und hat mir das Script nochmal überarbeitet, jetzt sollte alles funktionieren! Auch habe ich in der Zwischenzeit ein paar Werte hinzugefügt (Puffer-Temperaturen usw…), die Screenshots oben stimmen deshalb nicht mehr mit dem Script überein!

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 … „An-/Abwesenheit durch Homematic überprüfen lassen“ weiterlesen

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…

Raspberry Pi als VPN-Server

Die Technik in unserem Haus ist sehr komplex, neben einer eigenen Heizungssteuerung verrichtet auch noch eine Homematic ihren Dienst. Die Homematic (zb. zum Öffnen der Raffstores) und die Heizungssteuerung (zum Ablesen der aktuellen Werte) ist in unserem LAN eingebunden, ich wollte das Ganze aber auch über das Internet erreichbar machen. Gelöst wurde das durch einen Raspberry Pi, … „Raspberry Pi als VPN-Server“ weiterlesen

Die Technik in unserem Haus ist sehr komplex, neben einer eigenen Heizungssteuerung verrichtet auch noch eine Homematic ihren Dienst.

EDV-Schrank

Die Homematic (zb. zum Öffnen der Raffstores) und die Heizungssteuerung (zum Ablesen der aktuellen Werte) ist in unserem LAN eingebunden, ich wollte das Ganze aber auch über das Internet erreichbar machen. Gelöst wurde das durch einen Raspberry Pi, der von nun an als VPN-Server dient.

Dazu bin ich nach einer wirklich guten Anleitung im Internet vorgegangen, welche auch recht Problemlos geklappt hat. Entgegen der Anleitung muss aber easy-rsa mit „sudo apt-get install easy-rsa“ am Anfang installiert werden, da es nicht mehr automatisch mit openvpn mitinstalliert wird.

Jetzt können wir unsere Heizungswerte weltweit ablesen:

Schema

Das Ende

Nun ist es also so weit – nach 4 Jahren der gemeinsamen Freuden muss ich mich von meinem Audi verabschieden. Da ich nun mit einem Firmenwagen unterwegs bin und 2 Autos einfach zu viel Platz & Geld verbrauchen trenne ich mich schweren Herzens von ihm. Es war (und ist) ein tolles Auto und ich hoffe … „Das Ende“ weiterlesen

Nun ist es also so weit – nach 4 Jahren der gemeinsamen Freuden muss ich mich von meinem Audi verabschieden.
Da ich nun mit einem Firmenwagen unterwegs bin und 2 Autos einfach zu viel Platz & Geld verbrauchen trenne ich mich schweren Herzens von ihm. Es war (und ist) ein tolles Auto und ich hoffe dass der neue Besitzer genau soviel Freude damit hat wie ich!

 

2014-03-26 09.34.34 HDR

 

 

Neues Equipment

Bisher nutze ich als Stativ für meine Kamera ein billiges Noname-Teil. Dieses hatte den entscheidenden Nachteil, dass es mehr als wacklig konstruiert war. Vorallem bei Teleaufnamen und Langzeitbelichtungen fiel das negativ auf. Deswegen habe ich mich nach einem neuen Stativ umgeschaut und bin schließlich fündig geworden: Ich habe mich für ein Manfrotto 190xPro entschieden, weil … „Neues Equipment“ weiterlesen

Bisher nutze ich als Stativ für meine Kamera ein billiges Noname-Teil. Dieses hatte den entscheidenden Nachteil, dass es mehr als wacklig konstruiert war. Vorallem bei Teleaufnamen und Langzeitbelichtungen fiel das negativ auf.

Deswegen habe ich mich nach einem neuen Stativ umgeschaut und bin schließlich fündig geworden:
2013-06-03 18.44.16

Ich habe mich für ein Manfrotto 190xPro entschieden, weil es in diversen Foren und Portalen sehr gute Bewertungen erhält. Als passenden Stativkopf habe ich mir den Triopo B2 ausgesucht. Dieser ist ein Kopf der Mittelklasse, für meine Zwecke aber vollkommen ausreichend und trotzdem sehr gut bewertet.

Natürlich habe ich das ganze gleich getestet, hier mal eine Teleaufname von Tobadill auf der anderen Talseite:
20130603-Dax-002