Heizungsverteiler

Heizung steuern mit Raspberry und DomoticZ

Nach einigen Versuchen mit der Relais Karte „5V 8-Kanäle Relais Modul-Brett für Arduino“ ergänzte ich unsere Heizungsanlage mit insgesamt 8 Stellantrieben. Für jeden Bereich der Fußbodenheizung ein Antrieb. Die Ideale Kombination.

Relais Karte 8 Port

Relais Karte für Arduino

Stellantrieb Fußbodenheizung KAMO

Um die Steuerung der Ventile so unabhängig wie möglich zu gestalten, musste ein weitere Raspberry Pi (192.168.0.3) diese Aufgabe übernehmen. Das Programm GPIO hat sich für die Steuerung der Ports bewehrt.

# Install GPIO
sudo apt-get update
sudo apt-get install gpio

#Anzeige der Anschlüsse
gpio readall
# Um den 4ten PIN auf dem RPi einzuschalten
sudo gpio export 4
# ausschalten
sudo gpio unexport 4

Ich verwende die Anschlüsse 4, 17, 18, 22, 23, 24, 25, 27

Um die Stellantriebe vom DomoticZ RPi (192.168.0.2) auf dem Heizungs RPi (192.168.0.3) auszuführen nutze ich folgendes Script:

#!/bin/sh
ping -c 1 192.168.0.3
if [ "$?" = "0" ]
 then 
 ssh root@192.168.0.3 'sudo gpio export 4 out'
 else 
 echo WARNING! HEAT CONTROL OFF!
fi

Im DomoticZ nutze ich die zuvor eingebundenen Temperatur und Feuchte Sensoren in den Räumen um die Stellantriebe zu schalten. Die Solltemperatur (im Bild „Buero actual“) wird mit einem virtuellen „SetPoint“ als Utility gesetzt.

DomoticZ Event für Heizung im Büro

Soll Temperatur setzen mit Utility

Um die Heizung komplett auszuschalten, habe ich noch einen virtuellen Schalter hinzugefügt „Heizung AUS“. Somit kann ich die Heizung komplett deaktivieren. Zusätzliche habe ich noch einen Türkontakt verwendet, der die Heizung in den Räumen mit offenen Fenstern deaktiviert.

 

ZWave RGBW Fibaro Controller in Lichtkuppel

Dachkuppelheizung

Wir haben im Bad eine schöne Lichtkuppel. Leider ist es öfter passiert, dass sich Kondenswasser gebildet hat und in der Mitte des Bads landete eine schöne Pfütze mit „Regenwasser“. Also machte ich mich auf die Suche nach einer Lösung.

Dank einer in Wien ansässigen Firma und der Empfehlung unseres Nachbarn, installierte ich ein TStripe Element in die Dachkuppel. https://www.t-stripe.com
Bei der Frage „Wann schalte ich das jetzt ein?“ dachte ich erst an einen Thermostat, aber der war zu dieser Zeit nicht so leicht zu finden. Also setzte ich mich mit dem Thema: „Wann kondensiert Wasser an der Lichtkuppel?“ auseinander.
Die Webseite https://www.wetterochs.de/wetter/feuchte.html liefert recht „einfach“ die Formel zur Berechnung. Also alles in ein Shellscript/Python gepackt, die Temperaturen und Feuchte von DomoticZ geholt und anschließend virtuelle Temperatursensoren mit den Werten gefüttert.

SETTEMPPVR.SH (Berechnet Kuppel Temperatur)

#!/bin/bash
 # Domoticz server
 SERVER="127.0.0.1"

# Get data
 TEMP="20.0"

str1=$(curl -s -i -H "Accept: application/json" "http://127.0.0.1/json.htm?type=devices&rid=49" | grep '"Temp"')
 sl=$((${#str1} - 18))
 export TEMPI=${str1:17:$sl}
 str1=$(curl -s -i -H "Accept: application/json" "http://127.0.0.1/json.htm?type=devices&rid=196" | grep '"Temp"')
 sl=$((${#str1} - 18))
 export TEMPA=${str1:17:$sl}
 echo $TEMPI $TEMPA

TEMP=$(python -c "import os; print float(0.58)*(float(os.environ.get('TEMPI'))-float(os.environ.get('TEMPA')))+float(os.environ.get('TEMPA'))")

# If TEMP/HUM contains value then send it to Domoticz
 if [ -z "$TEMP" ];
 then
 curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command&param=addlogmessage&message=TEMP%20PROBLEM%20DETECTED"
 else
 SVALUE="$TEMP"
 # Send data
 curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command&param=udevice&idx=176&svalue=$SVALUE"
 fi

SETDEWTEMPPVR.SH (Liest die Taupunkt-Temperatur aus DomticZ für das Badezimmer)

#!/bin/bash
 # Domoticz server
 SERVER="127.0.0.1"

# Get data
 TEMP="20.0"

str1=$(curl -s -i -H "Accept: application/json" "http://127.0.0.1/json.htm?type=devices&rid=49" | grep '"DewPoint"')
 sl=$((${#str1} - 25))

export TEMPD=${str1:23:$sl}
 echo $TEMPD

# If TEMP/HUM contains value then send it to Domoticz
 if [ -z "$TEMPD" ];
 then
 echo "Error: Value variable empty"
 else
 SVALUE="$TEMPD"
 # Send data
 curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command&param=udevice&idx=191&svalue=$SVALUE"
 fi

Beide Script in einem „cron“ Job alle 5 Minuten laufen lassen und schon hat man ein mindestens 5 Minuten verzögertes Schalten der Dachkuppelheizung.

crontab -e

*/5 * * * * /home/pi/domoticz/scripts/settempvr.sh 2>&1 >> /dev/null
*/5 * * * * /home/pi/domoticz/scripts/setdewtempvr.sh 2>&1 >> /dev/null

Anschließend habe ich noch ein Event in DomoticZ erstellt, welches die Kuppelheizung einschaltet sobald die Tautemperatur im Badezimmer höher ist, als die berechnete Temperatur am Glas der Kuppel.

Seit dieser Installation gab es nie wieder Regen im Bad.

Temperatursensor

Temperaturen aufzeichnen und in DomoticZ nutzen

Nach der Erfolgreichen Implementierung des RFXCOM – RFXtrx433 USB 433.92MHz in DomoticZ werden automatisch alle 433 MHz Geräte in der Umgebung als „Devices“ erkannt und auch zur Verfügung gestellt.

Unter „Setup“ -> „Devices“ fand sich also sofort mein „Cresta, TFA TS34C“ Sensor, der zuverlässig Temperatur und Feuchte im Raum misst und an den Raspberry Pi übermittelt.

Ein „lustiger“ Nebeneffekt dieser Fähigkeit des Raspberry Pi mit RFXCOM war es auch, dass sich mehrere Geräte gemeldet haben, die sich definitiv nicht in unserer Wohnung befinden. So ist inzwischen ein Kühlschrankthermostat und ein Strommessgerät CM180i für einen Hausanschluss (163,5 A je Phase) angezeigt. Diese liefern brav Werte, auch wenn sie nicht zu meiner Heimautomatisierung beitragen, weiß ich jetzt wenn der Kühlschrank des Nachbarn mal ein Problem haben sollte oder der Hausverteiler in der Nachbarschaft mal zu viel Strom verbraucht. Unnötig zu erwähnen, dass „Bauhaus-Funk-Stecker“ ebenfalls unfreiwillig eingefangen werden, daher auch mein Wechsel zu Z-Wave.

Raspberry Pi mit IR Modul und Relaiskarte

Per Infrarot den Video Beamer starten mit LIRC

Raspberry Pi Fernbedienung: Infrarot Steuerung einrichten

Im wesentlichen habe ich nach dieser Anleitung gearbeitet.

Nach der Bestellung der Bauteile war das Zusammenbauen nur mehr eine Fingerübung. Gekauft habe ich die Bauteile und die Platine bei conrad.at

Die Konfiguration für den Acer Beamer fand sich ebenfalls im Internet.
Dafür musste lediglich die /etc/lirc/lircd.conf angepasst werden:

...
begin remote

name beamer
 bits 32
 flags SPACE_ENC|CONST_LENGTH
 eps 30
 aeps 100

header 8936 4408
 one 616 1602
 zero 616 496
 ptrail 613
 repeat 8937 2201
 gap 106992
 toggle_bit_mask 0x0

begin codes
 KEY_POWER 0x10C8E11E
 end codes

end remote
...

Anschließend im DomoticZ virtuelle Knöpfe erzeugen. Erst muss dafür unter
„Setup“ ->
„Hardware“ ->
„Name“ beliebig wählen (ich hab „Virtuell“ genommen) ->
„Type“ ist „Dummy (Does nothing, use for virtual switches only)“ ->
„Add“

Jetzt kann im DomoticZ Webinterface unter:
„Switches“ ->
„Manuel Light/Switch“ ->
„Device Name“ mit etwas passendem befüllen. In diesem Fall „Beamer“ ->
„Harware“ „Virtuell“ wählen und eine beliebige „Type“ wählen (Bei mir wirds immer „X10“) ->
„Add Device“
ein neuer Schalter eingerichtet werden. Diesem habe ich mit „Edit“ eine „On Action“ und eine „Off Action“ zugewiesen:

On  Action: script:///home/pi/domoticz/scripts/IR_Beamer_ON.sh
Off Action: script:///home/pi/domoticz/scripts/IR_Beamer_OFF.sh

Inhalt der Scripts sieht so aus:

ON.sh:
#!/bin/sh
irsend SEND_ONCE beamer KEY_POWER
OFF.sh:
#!/bin/sh
irsend SEND_ONCE beamer KEY_POWER
sleep 1
irsend SEND_ONCE beamer KEY_POWER

Und schon kann der Beamer direkt über DomoticZ gestartet oder gestoppt werden.

 

HE8xx HomeEasy Steckdose schalten

Nach erfolgreicher Installation von DomoticZ und der Inbetriebnahme des RFXCom Adapters, wollte ich auch Steckdosen schalten. Die Spezifikation des 433 MHz Adapters lässt dies auch zu.
http://blog.rfxcom.com/?p=5

In DomoticZ muss leider auch hier der Schalter manuell konfiguriert werden. Unter „Switches“->
„Manual Light/Switch“ ->
Namen vergeben ->
„On/Off“ ->
„HE EU“ ->
ID beliebig wählen ->
Auf dem HomeEasy Stecker den Verbindungsmodus aktivieren und anschließend im Webinterface auf „Test“ ->
„Add Device“

Und schon kann wild drauf los geschaltet werden.

Leider haben die „Baumarkt“ Schalter ein „Problem“: Niemand außer dem Schalter selbst weiß ob er gerade ein oder aus ist. Da auch direkt am Gerät geschaltet werden kann, weiß DomoticZ nicht welcher Schaltzustand gerade herrscht. Es kann aber getrennt Ein oder Aus geschaltet werden. Ist einem der Status also nicht wichtig, feuert man laufend Ein oder Aus Signale um den Status zu „fixieren“.
Da mich dieser Zustand recht schnell gestört hat, habe ich mich mit ZWave beschäftigt. Hier werden die Schaltzustände zurückgemeldet und es ist immer klar ob gerade Ein oder Aus ist.

Somfy Fernsteuerung

Raffstor oder Jalousien automatisch schließen

Nachdem wir uns an allen Fenstern Raffstore mit Funkfernbedienungen von Somfy gegönnt hatten, stellte ich mir die Frage ob und wie es denn möglich ist diese zu einer bestimmten Zeit zu schließen.
Nach kurzem googlen, stieß ich auf die vom Hersteller empfohlene Variante:
https://www.somfy.at/produkte/hausautomation/tahoma was leider mein Budget sprengte. Also suchte ich nach kostengünstigen Alternativen. Mein Raspberry Pi, zu dieser Zeit gerade frisch auf dem Markt, sollte derartige Aufgaben doch erledigen können. Also fand ich den Niederländischen Anbieter RFXCom der die Hardware RFXtrx433E herstellt und auch vertreibt. http://www.rfxcom.com/epages/78165469.sf/en_GB/?ObjectPath=/Shops/78165469/Products/14103
Gleich dazu lieferte die Seite einen Vorschlag für die Software:
DomoticZ
https://www.domoticz.com

Installation DomoticZ auf Raspberry Pi

https://www.domoticz.com/wiki/Installing_and_running_Domoticz_on_a_Raspberry_PI

Inzwischen kann es um einiges schneller erledigt werden. Nach der Installation des Raspberry Pi mit Raspian reicht diese Codezeile:

sudo curl -L install.domoticz.com | bash

Anschließend die Konfiguration anpassen, ich nutze dafür WinSCP um die Dateien zu editieren und Putty als SSH Client zum ausführen von Befehlen:

/etc/init.d/domoticz.sh
DAEMON_ARGS="$DAEMON_ARGS -www 80"
DAEMON_ARGS="$DAEMON_ARGS -sslwww 0"

Mit „-sslwww 0“ wird der https Port deaktiviert. Da ich die Seite ausschließlich im internen Netzwerk betreibe ohne Portweiterleitung nach außen verzichte ich auf die SSL Verschlüsselung.

Anschließend kann schon die Webseite (IP Adresse des Raspi) aufgerufen werden und mit dem Einbinden der Geräte begonnen werden.
Unter „Setup“ ->
„Hardware“ ->
„Add“ ->
„RFXCOM – RFXtrx433 USB 433.92MHz“ als Gerät hinzufügen.
Unter „Switches“->
„Manual Light/Switch“ ->
„RFY“ ->
Auf der Fernbedienung der Somfy Steuerung den „Connect“ Button drücken und anschließend im Webinterface auf „Test“ ->
„Add Device“
Und schon kann man den Raffstor öffnen, schließen und auf die „My Somfy“ Position stellen.