Heizungssteuerung 1-Wire

Aus FHEMWiki
Zur Navigation springen Zur Suche springen

In diesem Szenario arbeitet die Raumtemperatursteuerung als Erweiterung zu den in den Räumen installierten Raumtemperaturreglern. In den Heizungsverteilern sind Relaismodule eingebaut, über die die Steuerleitung vom Raumtemperaturregler zum Stellantrieb des Heizkreises über den Öffnerkontakt des Relais geführt ist. Ist die Raumtemperatur erreicht, wird das Relais aktiviert und die Zuleitung zum Stellantrieb wird unterbrochen. Es gab zwei Gründe die Temperatursteuerung auf diese Weise zu realisieren. Zum einen sind die Raumtemperaturregler sowieso immer auf den Maximalwert eingestellt und zum andern werden die Räume auch bei einem Defekt des Relaismodul warm. Fällt die Stromversorgung des Relais aus, ist der Öffnerkontakt geschlossen. Somit ist im schlimmsten Fall die Raumtemperatur zu hoch.


Hardware

Das System ist aus den folgenden Komponenten aufgebaut:


Raumtemperatursensoren

Die Raumtemperatursensoren habe ich mit einem RJ45-Stecker und einem 1-Wire DS18B20 1-Wire Temp-Sensor realisiert. Hierzu habe ich den 1-Wire DS18B20 1-Wire Temp-Sensor in den RJ45-Stecker eingeführt und mit der Zange verpresst. Somit kann jede RJ45-Dose für einen Temperatursensor verwendet werden.

Heizungssteuerung 1-Wire Temperatursensor Einzelteile.jpg Heizungssteuerung 1-Wire Temperatursensor Final.jpg

Zentrale FHEM Konfiguration fhem.cfg

Im Wesentlichen ist in der zentralen Konfigurationsdatei nur der Zugriff auf den OWFS-Daemon und für jede Wohnung ein Include definiert.

attr global userattr devStateIcon devStateStyle fp_Wohnung_EG icon sortby webCmd widgetOverride

define TCM120_0 TCM 120 /dev/ttyUSB0@9600
define TCM120_1 TCM 120 /dev/ttyUSB1@9600
define myOWServer OWServer localhost:4304

include /opt/fhem/include/Wohnung-EG.cfg

Konfigurationsdatei Wohnung-EG.cfg

Temperatursensor

Den Temperatursensor habe ich um ein userReadings mit dem Namen Final erweitert. Somit kann ich, wenn ein Temperatursensor eine Abweichung hat, einen Korrekturwert angeben.

define Wohnung_EG_Schlafen_Temperatursensor OWDevice 10.8B90E3010800 120
attr Wohnung_EG_Schlafen_Temperatursensor IODev myOWServer
attr Wohnung_EG_Schlafen_Temperatursensor devStateIcon .*:icoTemp
attr Wohnung_EG_Schlafen_Temperatursensor icon icoTemp
attr Wohnung_EG_Schlafen_Temperatursensor model DS18S20
attr Wohnung_EG_Schlafen_Temperatursensor room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatursensor userReadings Final {ReadingsVal("Wohnung_EG_Schlafen_Temperatursensor","temperature",0)-2.4;;}

readingsGroup

Um eine Temperaturanzeige kombiniert mit einem Symbol im Floorplan zu erzeugen, habe ich eine readingsGroup verwendet. Weiter kann sich die Hintergrundfarbe der readingsGroup abhängig vom Modus des Raumes ändern.

define Wohnung_EG_Schlafen_Anzeige readingsGroup Wohnung_EG_Schlafen_Temperatursensor:Final
attr Wohnung_EG_Schlafen_Anzeige fp_Wohnung_EG 125,705,0,
attr Wohnung_EG_Schlafen_Anzeige nameIcon icoTemp
attr Wohnung_EG_Schlafen_Anzeige noheading 1
attr Wohnung_EG_Schlafen_Anzeige nolinks 1
attr Wohnung_EG_Schlafen_Anzeige notime 1
attr Wohnung_EG_Schlafen_Anzeige room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Anzeige style {setBackgroundColor("Wohnung_EG_Farbe_Modus_Standard","Wohnung_EG_Farbe_Modus_Alternativ","Wohnung_EG_Schlafen_Temperatur_Modus");;}
attr Wohnung_EG_Schlafen_Anzeige valueFormat %.2f °C
attr Wohnung_EG_Schlafen_Anzeige valueStyle style="text-align:left"


Relais

Um die Relais anzusteuern verwende ich einen readingsProxy. Den Status des readingsProxy lasse ich von der setFn setzen. In diesem Fall setzt die Funktion, timed4channel, das Relais und fragt gleich nach dem Setzen das Relais wieder ab. Ist der abgefragte Wert identisch mit dem gesetzten Wert, so ist der Bus funktional. Sind die Werte verschieden, wird der Status des Relais auf "fail" gesetzt. Bei verschiedenen Tests habe ich festgestellt, wenn ich für die Statusabfrage die ValueFn verwendet habe, und der Bus nicht funktional war, wurde der Status nur auf "off" statt auf "fail" gesetzt. Weiter kann das timed4channel-Modul nicht im Nachhinein den Status des einzelnen Relais ausgeben.

define Wohnung_EG_Schlafen_Heizung readingsProxy Wohnung_EG_Relais_1:PIO.ALL
attr Wohnung_EG_Schlafen_Heizung devStateIcon off:Heizung.off on:Heizung.on fail:Heizung.fail
attr Wohnung_EG_Schlafen_Heizung fp_Wohnung_EG 124,788,0,
attr Wohnung_EG_Schlafen_Heizung room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Heizung setFn {timed4channel($DEVICE,0,"$name",$CMD);;}
attr Wohnung_EG_Schlafen_Heizung setList on off fail sommer
attr Wohnung_EG_Schlafen_Heizung valueFn {undef;;}
attr Wohnung_EG_Schlafen_Heizung webCmd on:off


Verschiedene Temperaturen

Für die Räume können zwei Temperaturen vorgegeben werden. Diese werden mit dem Modus-dummy umgeschaltet und auf das Soll-dummy kopiert. Die Synchronisation der Werte erfolgt mit dem notify "Wohnung_EG_Temperatur_Notify".


define Wohnung_EG_Schlafen_Temperatur_Standard dummy
attr Wohnung_EG_Schlafen_Temperatur_Standard room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatur_Standard setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Schlafen_Temperatur_Standard webCmd state


define Wohnung_EG_Schlafen_Temperatur_Alternativ dummy
attr Wohnung_EG_Schlafen_Temperatur_Alternativ room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatur_Alternativ setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Schlafen_Temperatur_Alternativ webCmd state


define Wohnung_EG_Schlafen_Temperatur_Soll dummy
attr Wohnung_EG_Schlafen_Temperatur_Soll fp_Wohnung_EG 51,700,2,Soll
attr Wohnung_EG_Schlafen_Temperatur_Soll room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatur_Soll setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Schlafen_Temperatur_Soll webCmd state


define Wohnung_EG_Schlafen_Temperatur_Modus dummy
attr Wohnung_EG_Schlafen_Temperatur_Modus room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatur_Modus setList state:Standard,Alternativ
attr Wohnung_EG_Schlafen_Temperatur_Modus webCmd state


Farben für den Modus des Raumes

Die Farben-Konfiguration für die Modi der Raumtemperatur wird pro Wohnung gesetzt. Hierzu sind zwei dummy vorhanden.

define Wohnung_EG_Farbe_Modus_Standard dummy
attr Wohnung_EG_Farbe_Modus_Standard room Wohnung_EG_Technik
attr Wohnung_EG_Farbe_Modus_Standard setList state:white,lightgrey,lightblue,lightgreen,lightred
attr Wohnung_EG_Farbe_Modus_Standard webCmd state


define Wohnung_EG_Farbe_Modus_Alternativ dummy
attr Wohnung_EG_Farbe_Modus_Alternativ room Wohnung_EG_Technik
attr Wohnung_EG_Farbe_Modus_Alternativ setList state:white,lightgrey,lightblue,lightgreen,lightred
attr Wohnung_EG_Farbe_Modus_Alternativ webCmd state


Offset für die Temperaturregelung

Pro Wohnung wird ein Offset für die Temperaturregelung festgelegt. Hiermit können unnötige Schaltvorgänge, verursacht durch Messdifferenzen, vermieden werden. Der Offset wird durch das at "Wohnung_EG_Temperaturregelung" ausgewertet.

define Wohnung_EG_Offset dummy
attr Wohnung_EG_Offset fp_Wohnung_EG 235,884,2,Offset
attr Wohnung_EG_Offset room Wohnung_EG_Technik
attr Wohnung_EG_Offset setList state:0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0
attr Wohnung_EG_Offset webCmd state


Betriebmodus für die Wohnung

Es wird zwischen den Modi Sommer und Winter unterschieden. Im Normalfall ist im Sommer die Raumtemperatur höher als die vorgegebene Raumtemperatur. Hierdurch sind die Relais angezogen um die Zuleitung zu den Stellantrieben zu unterbrechen. Die Umschaltung auf Sommer bewirkt dass die Relais nicht angezogen sind, der Status jedoch als "off" angezeigt wird. Somit spare ich im Sommer den Strom für die angezogenen Relais.

define Wohnung_EG_Modus dummy
attr Wohnung_EG_Modus fp_Wohnung_EG 235,766,2,Modus
attr Wohnung_EG_Modus room Wohnung_EG_Technik
attr Wohnung_EG_Modus setList state:Sommer,Winter
attr Wohnung_EG_Modus webCmd state


Temperaturregelung

Die Temperaturregelung wird jede Minute angeworfen.

define Wohnung_EG_Temperaturregelung at +*00:01:00 {temperaturregelung("Wohnung_EG_Schlafen",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;\
						temperaturregelung("Wohnung_EG_Bad",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;\
						temperaturregelung("Wohnung_EG_Buero",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;\
						temperaturregelung("Wohnung_EG_Wohnen",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;\
						temperaturregelung("Wohnung_EG_Kueche",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;}
attr Wohnung_EG_Temperaturregelung room Wohnung_EG_Technik

Vollständige Konfigurationsdatei

Im Voraus bin ich nur auf die "Besonderheiten" eingegangen. Hier die komplette Datei.


define Wohnung_EG FLOORPLAN
attr Wohnung_EG fp_arrange 0
attr Wohnung_EG fp_backgroundimg fp_Wohnung_EG.png
attr Wohnung_EG fp_default 0


define Wohnung_EG_Relais_1 OWDevice 29.35A304000000
attr Wohnung_EG_Relais_1 IODev myOWServer
attr Wohnung_EG_Relais_1 model DS2408
attr Wohnung_EG_Relais_1 room Wohnung_EG_Technik


define Wohnung_EG_Relais_2 OWDevice 29.1D8103000000
attr Wohnung_EG_Relais_2 IODev myOWServer
attr Wohnung_EG_Relais_2 model DS2408
attr Wohnung_EG_Relais_2 room Wohnung_EG_Technik


define Wohnung_EG_Offset dummy
attr Wohnung_EG_Offset fp_Wohnung_EG 235,884,2,Offset
attr Wohnung_EG_Offset room Wohnung_EG_Technik
attr Wohnung_EG_Offset setList state:0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0
attr Wohnung_EG_Offset webCmd state


define Wohnung_EG_Farbe_Modus_Standard dummy
attr Wohnung_EG_Farbe_Modus_Standard room Wohnung_EG_Technik
attr Wohnung_EG_Farbe_Modus_Standard setList state:white,lightgrey,lightblue,lightgreen,lightred
attr Wohnung_EG_Farbe_Modus_Standard webCmd state


define Wohnung_EG_Farbe_Modus_Alternativ dummy
attr Wohnung_EG_Farbe_Modus_Alternativ room Wohnung_EG_Technik
attr Wohnung_EG_Farbe_Modus_Alternativ setList state:white,lightgrey,lightblue,lightgreen,lightred
attr Wohnung_EG_Farbe_Modus_Alternativ webCmd state


define Wohnung_EG_Modus dummy
attr Wohnung_EG_Modus fp_Wohnung_EG 235,766,2,Modus
attr Wohnung_EG_Modus room Wohnung_EG_Technik
attr Wohnung_EG_Modus setList state:Sommer,Winter
attr Wohnung_EG_Modus webCmd state


define Wohnung_EG_Temperaturregelung at +*00:01:00 {temperaturregelung("Wohnung_EG_Schlafen",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;\
						temperaturregelung("Wohnung_EG_Bad",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;\
						temperaturregelung("Wohnung_EG_Buero",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;\
						temperaturregelung("Wohnung_EG_Wohnen",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;\
						temperaturregelung("Wohnung_EG_Kueche",Value("Wohnung_EG_Offset"),Value("Wohnung_EG_Modus"));;}
attr Wohnung_EG_Temperaturregelung room Wohnung_EG_Technik


define Wohnung_EG_Temperatur_Notify notify Wohnung_EG_.*_Temperatur_.* {temperatursyncronisation($NAME,$EVENT);;}


#---------------------------------------Wohnung_EG_Flur----------------------------------------------------------------------------------


define Wohnung_EG_Flur_Temperatursensor OWDevice 10.8AC3FF010800 120
attr Wohnung_EG_Flur_Temperatursensor IODev myOWServer
attr Wohnung_EG_Flur_Temperatursensor devStateIcon .*:icoTemp
attr Wohnung_EG_Flur_Temperatursensor icon icoTemp
attr Wohnung_EG_Flur_Temperatursensor model DS18S20
attr Wohnung_EG_Flur_Temperatursensor room Wohnung_EG_Flur
attr Wohnung_EG_Flur_Temperatursensor userReadings Final {ReadingsVal("Wohnung_EG_Flur_Temperatursensor","temperature",0)+0;;}


define Wohnung_EG_Flur_Anzeige readingsGroup Wohnung_EG_Flur_Temperatursensor:Final
attr Wohnung_EG_Flur_Anzeige fp_Wohnung_EG 238,651,0,
attr Wohnung_EG_Flur_Anzeige nameIcon icoTemp
attr Wohnung_EG_Flur_Anzeige noheading 1
attr Wohnung_EG_Flur_Anzeige nolinks 1
attr Wohnung_EG_Flur_Anzeige notime 1
attr Wohnung_EG_Flur_Anzeige room Wohnung_EG_Flur
attr Wohnung_EG_Flur_Anzeige valueFormat %.2f °C
attr Wohnung_EG_Flur_Anzeige valueStyle style="text-align:left"


define Wohnung_EG_Flur_Temperatursensor_Log FileLog ./log/Wohnung_EG_Flur_Temperatursensor_Log-%Y-%m.log Wohnung_EG_Flur_Temperatursensor:Final.*
attr Wohnung_EG_Flur_Temperatursensor_Log logtype my_temperatursensor
attr Wohnung_EG_Flur_Temperatursensor_Log room Wohnung_EG_Flur


define Wohnung_EG_Flur_Temperatursensor_SVG SVG Wohnung_EG_Flur_Temperatursensor_Log:my_temperatursensor:CURRENT
attr Wohnung_EG_Flur_Temperatursensor_SVG room Wohnung_EG_Flur


#---------------------------------------Wohnung_EG_Schlafen----------------------------------------------------------------------------------


define Wohnung_EG_Schlafen_Temperatur_Standard dummy
attr Wohnung_EG_Schlafen_Temperatur_Standard room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatur_Standard setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Schlafen_Temperatur_Standard webCmd state


define Wohnung_EG_Schlafen_Temperatur_Alternativ dummy
attr Wohnung_EG_Schlafen_Temperatur_Alternativ room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatur_Alternativ setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Schlafen_Temperatur_Alternativ webCmd state


define Wohnung_EG_Schlafen_Temperatur_Soll dummy
attr Wohnung_EG_Schlafen_Temperatur_Soll fp_Wohnung_EG 51,700,2,Soll
attr Wohnung_EG_Schlafen_Temperatur_Soll room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatur_Soll setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Schlafen_Temperatur_Soll webCmd state


define Wohnung_EG_Schlafen_Temperatur_Modus dummy
attr Wohnung_EG_Schlafen_Temperatur_Modus room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatur_Modus setList state:Standard,Alternativ
attr Wohnung_EG_Schlafen_Temperatur_Modus webCmd state


define Wohnung_EG_Schlafen_Temperatursensor OWDevice 10.8B90E3010800 120
attr Wohnung_EG_Schlafen_Temperatursensor IODev myOWServer
attr Wohnung_EG_Schlafen_Temperatursensor devStateIcon .*:icoTemp
attr Wohnung_EG_Schlafen_Temperatursensor icon icoTemp
attr Wohnung_EG_Schlafen_Temperatursensor model DS18S20
attr Wohnung_EG_Schlafen_Temperatursensor room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Temperatursensor userReadings Final {ReadingsVal("Wohnung_EG_Schlafen_Temperatursensor","temperature",0)+0;;}


define Wohnung_EG_Schlafen_Anzeige readingsGroup Wohnung_EG_Schlafen_Temperatursensor:Final
attr Wohnung_EG_Schlafen_Anzeige fp_Wohnung_EG 125,705,0,
attr Wohnung_EG_Schlafen_Anzeige nameIcon icoTemp
attr Wohnung_EG_Schlafen_Anzeige noheading 1
attr Wohnung_EG_Schlafen_Anzeige nolinks 1
attr Wohnung_EG_Schlafen_Anzeige notime 1
attr Wohnung_EG_Schlafen_Anzeige room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Anzeige style {setBackgroundColor("Wohnung_EG_Farbe_Modus_Standard","Wohnung_EG_Farbe_Modus_Alternativ","Wohnung_EG_Schlafen_Temperatur_Modus");;}
attr Wohnung_EG_Schlafen_Anzeige valueFormat %.2f °C
attr Wohnung_EG_Schlafen_Anzeige valueStyle style="text-align:left"


define Wohnung_EG_Schlafen_Temperatursensor_Log FileLog ./log/Wohnung_EG_Schlafen_Temperatursensor_Log-%Y-%m.log Wohnung_EG_Schlafen_Temperatursensor:Final.*
attr Wohnung_EG_Schlafen_Temperatursensor_Log logtype my_temperatursensor
attr Wohnung_EG_Schlafen_Temperatursensor_Log room Wohnung_EG_Schlafen


define Wohnung_EG_Schlafen_Temperatursensor_SVG SVG Wohnung_EG_Schlafen_Temperatursensor_Log:my_temperatursensor:CURRENT
attr Wohnung_EG_Schlafen_Temperatursensor_SVG room Wohnung_EG_Schlafen


define Wohnung_EG_Schlafen_Heizung readingsProxy Wohnung_EG_Relais_1:PIO.ALL
attr Wohnung_EG_Schlafen_Heizung devStateIcon off:Heizung.off on:Heizung.on fail:Heizung.fail
attr Wohnung_EG_Schlafen_Heizung fp_Wohnung_EG 124,788,0,
attr Wohnung_EG_Schlafen_Heizung room Wohnung_EG_Schlafen
attr Wohnung_EG_Schlafen_Heizung setFn {timed4channel($DEVICE,0,"$name",$CMD);;}
attr Wohnung_EG_Schlafen_Heizung setList on off fail sommer
attr Wohnung_EG_Schlafen_Heizung valueFn {undef;;}
attr Wohnung_EG_Schlafen_Heizung webCmd on:off


define Wohnung_EG_Schlafen_Heizung_Log FileLog ./log/Wohnung_EG_Schlafen_Heizung_Log-%Y-%m.log Wohnung_EG_Schlafen_Heizung:*
attr Wohnung_EG_Schlafen_Heizung_Log logtype my_Relais
attr Wohnung_EG_Schlafen_Heizung_Log room Wohnung_EG_Schlafen


define Wohnung_EG_Schlafen_Heizung_SVG SVG Wohnung_EG_Schlafen_Heizung_Log:my_Relais:CURRENT
attr Wohnung_EG_Schlafen_Heizung_SVG room Wohnung_EG_Schlafen



#---------------------------------------Wohnung_EG_Bad----------------------------------------------------------------------------------


define Wohnung_EG_Bad_Temperatur_Standard dummy
attr Wohnung_EG_Bad_Temperatur_Standard room Wohnung_EG_Bad
attr Wohnung_EG_Bad_Temperatur_Standard setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Bad_Temperatur_Standard webCmd state


define Wohnung_EG_Bad_Temperatur_Alternativ dummy
attr Wohnung_EG_Bad_Temperatur_Alternativ room Wohnung_EG_Bad
attr Wohnung_EG_Bad_Temperatur_Alternativ setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Bad_Temperatur_Alternativ webCmd state


define Wohnung_EG_Bad_Temperatur_Soll dummy
attr Wohnung_EG_Bad_Temperatur_Soll fp_Wohnung_EG 19,539,2,Soll
attr Wohnung_EG_Bad_Temperatur_Soll room Wohnung_EG_Bad
attr Wohnung_EG_Bad_Temperatur_Soll setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Bad_Temperatur_Soll webCmd state


define Wohnung_EG_Bad_Temperatur_Modus dummy
attr Wohnung_EG_Bad_Temperatur_Modus room Wohnung_EG_Bad
attr Wohnung_EG_Bad_Temperatur_Modus setList state:Standard,Alternativ
attr Wohnung_EG_Bad_Temperatur_Modus webCmd state


define Wohnung_EG_Bad_Temperatursensor OWDevice 10.C9A3FF010800 120
attr Wohnung_EG_Bad_Temperatursensor IODev myOWServer
attr Wohnung_EG_Bad_Temperatursensor devStateIcon .*:icoTemp
attr Wohnung_EG_Bad_Temperatursensor icon icoTemp
attr Wohnung_EG_Bad_Temperatursensor model DS18S20
attr Wohnung_EG_Bad_Temperatursensor room Wohnung_EG_Bad
attr Wohnung_EG_Bad_Temperatursensor userReadings Final {ReadingsVal("Wohnung_EG_Bad_Temperatursensor","temperature",0)+0;;}


define Wohnung_EG_Bad_Anzeige readingsGroup Wohnung_EG_Bad_Temperatursensor:Final
attr Wohnung_EG_Bad_Anzeige fp_Wohnung_EG 95,541,0,
attr Wohnung_EG_Bad_Anzeige nameIcon icoTemp
attr Wohnung_EG_Bad_Anzeige noheading 1
attr Wohnung_EG_Bad_Anzeige nolinks 1
attr Wohnung_EG_Bad_Anzeige notime 1
attr Wohnung_EG_Bad_Anzeige room Wohnung_EG_Bad
attr Wohnung_EG_Bad_Anzeige style {setBackgroundColor("Wohnung_EG_Farbe_Modus_Standard","Wohnung_EG_Farbe_Modus_Alternativ","Wohnung_EG_Bad_Temperatur_Modus");;}
attr Wohnung_EG_Bad_Anzeige valueFormat %.2f °C
attr Wohnung_EG_Bad_Anzeige valueStyle style="text-align:left"


define Wohnung_EG_Bad_Temperatursensor_Log FileLog ./log/Wohnung_EG_Bad_Temperatursensor_Log-%Y-%m.log Wohnung_EG_Bad_Temperatursensor:Final.*
attr Wohnung_EG_Bad_Temperatursensor_Log logtype my_temperatursensor
attr Wohnung_EG_Bad_Temperatursensor_Log room Wohnung_EG_Bad


define Wohnung_EG_Bad_Temperatursensor_SVG SVG Wohnung_EG_Bad_Temperatursensor_Log:my_temperatursensor:CURRENT
attr Wohnung_EG_Bad_Temperatursensor_SVG room Wohnung_EG_Bad


define Wohnung_EG_Bad_Heizung readingsProxy Wohnung_EG_Relais_1:PIO.ALL
attr Wohnung_EG_Bad_Heizung devStateIcon off:Heizung.off on:Heizung.on fail:Heizung.fail
attr Wohnung_EG_Bad_Heizung fp_Wohnung_EG 91,623,0,
attr Wohnung_EG_Bad_Heizung room Wohnung_EG_Bad
attr Wohnung_EG_Bad_Heizung setFn {timed4channel($DEVICE,1,"$name",$CMD);;}
attr Wohnung_EG_Bad_Heizung setList on off fail sommer
attr Wohnung_EG_Bad_Heizung valueFn {undef;;}
attr Wohnung_EG_Bad_Heizung webCmd on:off


define Wohnung_EG_Bad_Heizung_Log FileLog ./log/Wohnung_EG_Bad_Heizung_Log-%Y-%m.log Wohnung_EG_Bad_Heizung:*
attr Wohnung_EG_Bad_Heizung_Log logtype my_Relais
attr Wohnung_EG_Bad_Heizung_Log room Wohnung_EG_Bad


define Wohnung_EG_Bad_Heizung_SVG SVG Wohnung_EG_Bad_Heizung_Log:my_Relais:CURRENT
attr Wohnung_EG_Bad_Heizung_SVG room Wohnung_EG_Bad


#---------------------------------------Wohnung_EG_Buero----------------------------------------------------------------------------------


define Wohnung_EG_Buero_Temperatur_Standard dummy
attr Wohnung_EG_Buero_Temperatur_Standard room Wohnung_EG_Buero
attr Wohnung_EG_Buero_Temperatur_Standard setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Buero_Temperatur_Standard webCmd state


define Wohnung_EG_Buero_Temperatur_Alternativ dummy
attr Wohnung_EG_Buero_Temperatur_Alternativ room Wohnung_EG_Buero
attr Wohnung_EG_Buero_Temperatur_Alternativ setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Buero_Temperatur_Alternativ webCmd state


define Wohnung_EG_Buero_Temperatur_Soll dummy
attr Wohnung_EG_Buero_Temperatur_Soll fp_Wohnung_EG 39,381,2,Soll
attr Wohnung_EG_Buero_Temperatur_Soll room Wohnung_EG_Buero
attr Wohnung_EG_Buero_Temperatur_Soll setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Buero_Temperatur_Soll webCmd state


define Wohnung_EG_Buero_Temperatur_Modus dummy
attr Wohnung_EG_Buero_Temperatur_Modus room Wohnung_EG_Buero
attr Wohnung_EG_Buero_Temperatur_Modus setList state:Standard,Alternativ
attr Wohnung_EG_Buero_Temperatur_Modus webCmd state


define Wohnung_EG_Buero_Temperatursensor OWDevice 10.E894FF010800 120
attr Wohnung_EG_Buero_Temperatursensor IODev myOWServer
attr Wohnung_EG_Buero_Temperatursensor devStateIcon .*:icoTemp
attr Wohnung_EG_Buero_Temperatursensor icon icoTemp
attr Wohnung_EG_Buero_Temperatursensor model DS18S20
attr Wohnung_EG_Buero_Temperatursensor room Wohnung_EG_Buero
attr Wohnung_EG_Buero_Temperatursensor userReadings Final {ReadingsVal("Wohnung_EG_Buero_Temperatursensor","temperature",0)+0;;}


define Wohnung_EG_Buero_Anzeige readingsGroup Wohnung_EG_Buero_Temperatursensor:Final
attr Wohnung_EG_Buero_Anzeige fp_Wohnung_EG 109,381,0,
attr Wohnung_EG_Buero_Anzeige nameIcon icoTemp
attr Wohnung_EG_Buero_Anzeige noheading 1
attr Wohnung_EG_Buero_Anzeige nolinks 1
attr Wohnung_EG_Buero_Anzeige notime 1
attr Wohnung_EG_Buero_Anzeige room Wohnung_EG_Buero
attr Wohnung_EG_Buero_Anzeige style {setBackgroundColor("Wohnung_EG_Farbe_Modus_Standard","Wohnung_EG_Farbe_Modus_Alternativ","Wohnung_EG_Buero_Temperatur_Modus");;}
attr Wohnung_EG_Buero_Anzeige valueFormat %.2f °C
attr Wohnung_EG_Buero_Anzeige valueStyle style="text-align:left"



define Wohnung_EG_Buero_Temperatursensor_Log FileLog ./log/Wohnung_EG_Buero_Temperatursensor_Log-%Y-%m.log Wohnung_EG_Buero_Temperatursensor:Final.*
attr Wohnung_EG_Buero_Temperatursensor_Log logtype my_temperatursensor
attr Wohnung_EG_Buero_Temperatursensor_Log room Wohnung_EG_Buero


define Wohnung_EG_Buero_Temperatursensor_SVG SVG Wohnung_EG_Buero_Temperatursensor_Log:my_temperatursensor:CURRENT
attr Wohnung_EG_Buero_Temperatursensor_SVG room Wohnung_EG_Buero


define Wohnung_EG_Buero_Heizung readingsProxy Wohnung_EG_Relais_1:PIO.ALL
attr Wohnung_EG_Buero_Heizung devStateIcon off:Heizung.off on:Heizung.on fail:Heizung.fail
attr Wohnung_EG_Buero_Heizung fp_Wohnung_EG 156,461,0,
attr Wohnung_EG_Buero_Heizung room Wohnung_EG_Buero
attr Wohnung_EG_Buero_Heizung setFn {timed4channel($DEVICE,2,"$name",$CMD);;}
attr Wohnung_EG_Buero_Heizung setList on off fail sommer
attr Wohnung_EG_Buero_Heizung valueFn {undef;;}
attr Wohnung_EG_Buero_Heizung webCmd on:off


define Wohnung_EG_Buero_Heizung_Log FileLog ./log/Wohnung_EG_Buero_Heizung_Log-%Y-%m.log Wohnung_EG_Buero_Heizung:*
attr Wohnung_EG_Buero_Heizung_Log logtype my_Relais
attr Wohnung_EG_Buero_Heizung_Log room Wohnung_EG_Buero


define Wohnung_EG_Buero_Heizung_SVG SVG Wohnung_EG_Buero_Heizung_Log:my_Relais:CURRENT
attr Wohnung_EG_Buero_Heizung_SVG room Wohnung_EG_Buero


#---------------------------------------Wohnung_EG_Wohnen----------------------------------------------------------------------------------


define Wohnung_EG_Wohnen_Temperatur_Standard dummy
attr Wohnung_EG_Wohnen_Temperatur_Standard room Wohnung_EG_Wohnen
attr Wohnung_EG_Wohnen_Temperatur_Standard setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Wohnen_Temperatur_Standard webCmd state


define Wohnung_EG_Wohnen_Temperatur_Alternativ dummy
attr Wohnung_EG_Wohnen_Temperatur_Alternativ room Wohnung_EG_Wohnen
attr Wohnung_EG_Wohnen_Temperatur_Alternativ setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Wohnen_Temperatur_Alternativ webCmd state


define Wohnung_EG_Wohnen_Temperatur_Soll dummy
attr Wohnung_EG_Wohnen_Temperatur_Soll fp_Wohnung_EG 355,366,2,Soll
attr Wohnung_EG_Wohnen_Temperatur_Soll room Wohnung_EG_Wohnen
attr Wohnung_EG_Wohnen_Temperatur_Soll setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Wohnen_Temperatur_Soll webCmd state


define Wohnung_EG_Wohnen_Temperatur_Modus dummy
attr Wohnung_EG_Wohnen_Temperatur_Modus room Wohnung_EG_Wohnen
attr Wohnung_EG_Wohnen_Temperatur_Modus setList state:Standard,Alternativ
attr Wohnung_EG_Wohnen_Temperatur_Modus webCmd state


define Wohnung_EG_Wohnen_Temperatursensor OWDevice 10.E0B40B020800 120
attr Wohnung_EG_Wohnen_Temperatursensor IODev myOWServer
attr Wohnung_EG_Wohnen_Temperatursensor devStateIcon .*:icoTemp
attr Wohnung_EG_Wohnen_Temperatursensor icon icoTemp
attr Wohnung_EG_Wohnen_Temperatursensor model DS18S20
attr Wohnung_EG_Wohnen_Temperatursensor room Wohnung_EG_Wohnen
attr Wohnung_EG_Wohnen_Temperatursensor userReadings Final {ReadingsVal("Wohnung_EG_Wohnen_Temperatursensor","temperature",0)+0;;}


define Wohnung_EG_Wohnen_Anzeige readingsGroup Wohnung_EG_Wohnen_Temperatursensor:Final
attr Wohnung_EG_Wohnen_Anzeige fp_Wohnung_EG 428,368,0,
attr Wohnung_EG_Wohnen_Anzeige nameIcon icoTemp
attr Wohnung_EG_Wohnen_Anzeige noheading 1
attr Wohnung_EG_Wohnen_Anzeige nolinks 1
attr Wohnung_EG_Wohnen_Anzeige notime 1
attr Wohnung_EG_Wohnen_Anzeige room Wohnung_EG_Wohnen
attr Wohnung_EG_Wohnen_Anzeige style {setBackgroundColor("Wohnung_EG_Farbe_Modus_Standard","Wohnung_EG_Farbe_Modus_Alternativ","Wohnung_EG_Wohnen_Temperatur_Modus");;}
attr Wohnung_EG_Wohnen_Anzeige valueFormat %.2f °C
attr Wohnung_EG_Wohnen_Anzeige valueStyle style="text-align:left"



define Wohnung_EG_Wohnen_Temperatursensor_Log FileLog ./log/Wohnung_EG_Wohnen_Temperatursensor_Log-%Y-%m.log Wohnung_EG_Wohnen_Temperatursensor:Final.*
attr Wohnung_EG_Wohnen_Temperatursensor_Log logtype my_temperatursensor
attr Wohnung_EG_Wohnen_Temperatursensor_Log room Wohnung_EG_Wohnen


define Wohnung_EG_Wohnen_Temperatursensor_SVG SVG Wohnung_EG_Wohnen_Temperatursensor_Log:my_temperatursensor:CURRENT
attr Wohnung_EG_Wohnen_Temperatursensor_SVG room Wohnung_EG_Wohnen


define Wohnung_EG_Wohnen_Heizung readingsProxy Wohnung_EG_Relais_1:PIO.ALL
attr Wohnung_EG_Wohnen_Heizung devStateIcon off:Heizung.off on:Heizung.on fail:Heizung.fail
attr Wohnung_EG_Wohnen_Heizung fp_Wohnung_EG 416,476,0,
attr Wohnung_EG_Wohnen_Heizung room Wohnung_EG_Wohnen
attr Wohnung_EG_Wohnen_Heizung setFn {timed4channel($DEVICE,3,"$name",$CMD);;}
attr Wohnung_EG_Wohnen_Heizung setList on off fail sommer
attr Wohnung_EG_Wohnen_Heizung valueFn {undef;;}
attr Wohnung_EG_Wohnen_Heizung webCmd on:off


define Wohnung_EG_Wohnen_Heizung_Log FileLog ./log/Wohnung_EG_Wohnen_Heizung_Log-%Y-%m.log Wohnung_EG_Wohnen_Heizung:*
attr Wohnung_EG_Wohnen_Heizung_Log logtype my_Relais
attr Wohnung_EG_Wohnen_Heizung_Log room Wohnung_EG_Wohnen


define Wohnung_EG_Wohnen_Heizung_SVG SVG Wohnung_EG_Wohnen_Heizung_Log:my_Relais:CURRENT
attr Wohnung_EG_Wohnen_Heizung_SVG room Wohnung_EG_Wohnen


#---------------------------------------Wohnung_EG_Kueche----------------------------------------------------------------------------------


define Wohnung_EG_Kueche_Temperatur_Standard dummy
attr Wohnung_EG_Kueche_Temperatur_Standard room Wohnung_EG_Kueche
attr Wohnung_EG_Kueche_Temperatur_Standard setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Kueche_Temperatur_Standard webCmd state


define Wohnung_EG_Kueche_Temperatur_Alternativ dummy
attr Wohnung_EG_Kueche_Temperatur_Alternativ room Wohnung_EG_Kueche
attr Wohnung_EG_Kueche_Temperatur_Alternativ setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Kueche_Temperatur_Alternativ webCmd state


define Wohnung_EG_Kueche_Temperatur_Soll dummy
attr Wohnung_EG_Kueche_Temperatur_Soll fp_Wohnung_EG 355,590,2,Soll
attr Wohnung_EG_Kueche_Temperatur_Soll room Wohnung_EG_Kueche
attr Wohnung_EG_Kueche_Temperatur_Soll setList state:17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0
attr Wohnung_EG_Kueche_Temperatur_Soll webCmd state


define Wohnung_EG_Kueche_Temperatur_Modus dummy
attr Wohnung_EG_Kueche_Temperatur_Modus room Wohnung_EG_Kueche
attr Wohnung_EG_Kueche_Temperatur_Modus setList state:Standard,Alternativ
attr Wohnung_EG_Kueche_Temperatur_Modus webCmd state


define Wohnung_EG_Kueche_Temperatursensor OWDevice 10.F8B8FF010800 120
attr Wohnung_EG_Kueche_Temperatursensor IODev myOWServer
attr Wohnung_EG_Kueche_Temperatursensor devStateIcon .*:icoTemp
attr Wohnung_EG_Kueche_Temperatursensor icon icoTemp
attr Wohnung_EG_Kueche_Temperatursensor model DS18S20
attr Wohnung_EG_Kueche_Temperatursensor room Wohnung_EG_Kueche
attr Wohnung_EG_Kueche_Temperatursensor userReadings Final {ReadingsVal("Wohnung_EG_Kueche_Temperatursensor","temperature",0)+0;;}


define Wohnung_EG_Kueche_Anzeige readingsGroup Wohnung_EG_Kueche_Temperatursensor:Final
attr Wohnung_EG_Kueche_Anzeige fp_Wohnung_EG 428,593,0,
attr Wohnung_EG_Kueche_Anzeige nameIcon icoTemp
attr Wohnung_EG_Kueche_Anzeige noheading 1
attr Wohnung_EG_Kueche_Anzeige nolinks 1
attr Wohnung_EG_Kueche_Anzeige notime 1
attr Wohnung_EG_Kueche_Anzeige room Wohnung_EG_Kueche
attr Wohnung_EG_Kueche_Anzeige style {setBackgroundColor("Wohnung_EG_Farbe_Modus_Standard","Wohnung_EG_Farbe_Modus_Alternativ","Wohnung_EG_Kueche_Temperatur_Modus");;}
attr Wohnung_EG_Kueche_Anzeige valueFormat %.2f °C
attr Wohnung_EG_Kueche_Anzeige valueStyle style="text-align:left"



define Wohnung_EG_Kueche_Temperatursensor_Log FileLog ./log/Wohnung_EG_Kueche_Temperatursensor_Log-%Y-%m.log Wohnung_EG_Kueche_Temperatursensor:Final.*
attr Wohnung_EG_Kueche_Temperatursensor_Log logtype my_temperatursensor
attr Wohnung_EG_Kueche_Temperatursensor_Log room Wohnung_EG_Kueche


define Wohnung_EG_Kueche_Temperatursensor_SVG SVG Wohnung_EG_Kueche_Temperatursensor_Log:my_temperatursensor:CURRENT
attr Wohnung_EG_Kueche_Temperatursensor_SVG room Wohnung_EG_Kueche


define Wohnung_EG_Kueche_Heizung readingsProxy Wohnung_EG_Relais_2:PIO.ALL
attr Wohnung_EG_Kueche_Heizung devStateIcon off:Heizung.off on:Heizung.on fail:Heizung.fail
attr Wohnung_EG_Kueche_Heizung fp_Wohnung_EG 448,679,0,
attr Wohnung_EG_Kueche_Heizung room Wohnung_EG_Kueche
attr Wohnung_EG_Kueche_Heizung setFn {timed4channel($DEVICE,0,"$name",$CMD);;}
attr Wohnung_EG_Kueche_Heizung setList on off fail sommer
attr Wohnung_EG_Kueche_Heizung valueFn {undef;;}
attr Wohnung_EG_Kueche_Heizung webCmd on:off


define Wohnung_EG_Kueche_Heizung_Log FileLog ./log/Wohnung_EG_Kueche_Heizung_Log-%Y-%m.log Wohnung_EG_Kueche_Heizung:*
attr Wohnung_EG_Kueche_Heizung_Log logtype my_Relais
attr Wohnung_EG_Kueche_Heizung_Log room Wohnung_EG_Kueche


define Wohnung_EG_Kueche_Heizung_SVG SVG Wohnung_EG_Kueche_Heizung_Log:my_Relais:CURRENT
attr Wohnung_EG_Kueche_Heizung_SVG room Wohnung_EG_Kueche


99_myUtils.pm

In der 99_myUtils.pm habe ich meine Skripte eingebaut.


timed4channel

Mit dieser Funktion wird das timed4Channel-Modul gesteuert. Vom Entwickler des Moduls habe ich folgende Beschreibung bekommen:

Here some important details for your information:

- The communication over the 1-Wire Bus goes via a DS2408 IC
- The DS2408 needs to be initialized so that all 8 Channels act as "Digital Outputs" and that Pin 10 (RSTZ) is configured as /STRB , an output strobe will occur after a PIO write (see Channel-Access Write command). The power-on default function of this pin is /RST.

- You need to send 8-Bit Control words to the module - like

P0 ... P5 => [1 - 60] - Values for ON-Time in minutes
[0] - selected Channel OFF
[61] - selected Channel ON
[62] - all Channels OFF - regardless of Channel

P6 and P7 => [0 - 3] - Value 0 is channel 1, value 1 is channel 2, value 2 is channel 3, value 3 is channel 4


Examples of binary control words:

PPPPPPPP
76543210
-----------

01001010; Channel 2 for 10 minutes ON

11100110; Channel 4 for 38 minutes ON

10000000; Channel 3 OFF

00111101; Channel 1 ON

00111110; All Channels OFF


Hier der Code:

##############################################
# Prozedur zur Steuerung des timed4channel 1-Wire Relaismodul
# Parameter: 
#   1. Relaismodul   (z.B. TestRelais)
#   2. Relais        (0-3)
#   3. readingsproxy (z.B. Relais_2)
#   4. Aktion        (on | off | sommer) 
#
# Bsp: timed4channel("TestRelais",2,"Relais_2","on")
##############################################

sub
timed4channel($$$$)
{
	if (scalar(@_) != 4) {
                Log 3, "Abbruch: Falsche Anzahl von Parameter";
		return;
	}

	my($controller,$relais,$readingsproxy,$action) = @_;
	my $invertstate=0;

	if (!(($relais >= 0) && ($relais <= 3))) {
                Log 3, "Abbruch: Falsches Relais, $relais.";
		return;
	}

	if (($action =~ /[[:alpha:]]/) && ($action =~ /[[:digit:]]/)) {
                Log 3, "Abbruch: Falsche Aktion, $action";
		return;
	}
	elsif ($action =~ /[[:alpha:]]/) {
		$action = lc($action);
		if ($action eq "on") {
			$action = 61;
		}
		elsif ($action eq "off") {
			$action = 0;
		}
		elsif ($action eq "sommer") {
			$action = 0;
			$invertstate=1;
		}
		else {
                        Log 3, "Abbruch: Falsche Aktion, $action";
			return;
		}
	}
	else {
                Log 3, "Abbruch: Falsche Aktion, $action";
		return;
	}

	my $relaisstring = ( $relais << 6 ) + $action;
	$relaisstring = ~$relaisstring;
	$relaisstring = $relaisstring & 255;
	$relaisstring = sprintf("%08b",$relaisstring);
	$relaisstring = reverse ($relaisstring);

	$relaisstring =~ s/(.)/$1,/g;
	$relaisstring =~ s/(,$)//;


	if ($action == 0) {
		fhem("set $controller strobe 1");
		fhem("set $controller PIO.ALL $relaisstring");
		if (fhem("get $controller PIO.ALL") eq $relaisstring) {
			if ($invertstate == 1) {
				fhem("setreading $readingsproxy state on");
			}
			else {
				fhem("setreading $readingsproxy state off");
			}
		}
		else {
			fhem("setreading $readingsproxy state fail");
		}
	}
	elsif ($action == 61) {
		fhem("set $controller strobe 1");
		fhem("set $controller PIO.ALL $relaisstring");
		if (fhem("get $controller PIO.ALL") eq $relaisstring) {
			fhem("setreading $readingsproxy state on");
		}
		else {
			fhem("setreading $readingsproxy state fail");
		}
	}

}

piorelais

Mit dieser Funktion können Relais in Relaismodulen gesteuert werden, die für jedes Relais ein File zur Verfügung stellen.

 ##############################################
# Prozedur zur Steuerung des 1-Wire Relaismodul
# Parameter: 
#   1. Relaismodul   (z.B. TestRelais)
#   2. Relais        (0-7)
#   3. readingsproxy (z.B. Relais_2)
#   4. Aktion        (on | off | sommer)
#
# Bsp: piorelais("TestRelais",2,"Relais_2","on")
##############################################

sub
piorelais($$$$)
{
	if (scalar(@_) != 4) {
                Log 3, "Abbruch: Falsche Anzahl von Parameter";
		return;
	}

	my($controller,$relais,$readingsproxy,$action) = @_;
	my $invertstate=0;

	if (!($relais =~ /^PIO\.[0-7AB]$/)) {
                Log 3, "Abbruch: Falsches Relais, $relais.";
		return;
	}

	if (($action =~ /[[:alpha:]]/) && ($action =~ /[[:digit:]]/)) {
                Log 3, "Abbruch: Falsche Aktion, $action";
		return;
	}
	elsif ($action =~ /[[:alpha:]]/) {
		$action = lc($action);
		if ($action eq "on") {
			$action = 1;
		}
		elsif ($action eq "off") {
			$action = 0;
		}
		elsif ($action eq "sommer") {
			$action = 0;
			$invertstate=1;
		}
		else {
                        Log 3, "Abbruch: Falsche Aktion, $action";
			return;
		}
	}
	else {
                Log 3, "Abbruch: Falsche Aktion, $action";
		return;
	}


	if ($action == 0) {
		fhem("set $controller $relais $action");
		if (fhem("get $controller $relais") eq $action) {
			if ($invertstate == 1) {
				fhem("setreading $readingsproxy state on");
			}
			else {
				fhem("setreading $readingsproxy state off");
			}
		}
		else {
			fhem("setreading $readingsproxy state fail");
		}
	}
	elsif ($action == 1) {
		fhem("set $controller $relais $action");
		if (fhem("get $controller $relais") eq $action) {
			fhem("setreading $readingsproxy state on");
		}
		else {
			fhem("setreading $readingsproxy state fail");
		}
	}

}


temperaturregelung

Diese Funktion vergleicht den Soll- und Istwert der Raumtemperatur und schaltet ggf. das Relais. Ist die Raumtemperatur unter dem Sollwert, wird der Raum auf den Sollwert plus Offset aufgeheizt. Ist diese Temperatur erreicht, wird das Relais, zur Unterbrechung der Zuleitung zum Stellantrieb, aktiviert. Somit wird der Raum nicht mehr beheizt bis der Sollwert unterschritten ist.

##############################################
# Prozedur zur Regelung der Raumtemperatur
# Parameter: 
#   1. Raumname      (z.B. Wohnung_OG_Kueche)
#   2. Offset        (z.B. 0.2)
#   3. Modus         (z.B. Sommer)
#
# Bsp: temperaturregelung("Wohnung_OG_Kueche",0.2,"Sommer")
##############################################


sub
temperaturregelung($$$)
{

	if (scalar(@_) != 3) {
                Log 3, "Abbruch: Falsche Anzahl von Parameter";
		return;
	}

	my($raum,$offset,$modus) = @_;

	if ( $offset eq "???" ) {
                Log 3, "Abbruch: Offset ist nicht initialisiert";
		return;
	}

	$modus = lc($modus);

	if ( $modus eq "sommer" )
	{
		my $heizung = $raum."_Heizung";
		fhem("set $heizung sommer");
	}
	else
	{
		my $sollwert = Value($raum."_Temperatur_Soll");
		my $istwert = ReadingsVal($raum."_Temperatursensor","Final",0);
		my $status = ReadingsVal($raum."_Heizung","state",0);
		my $heizung = $raum."_Heizung";

		if ( $status eq "off" )
		{
			if ( $istwert >= ( $sollwert + $offset ))
			{
				fhem("set $heizung on");	
			}
			else
			{
				fhem("set $heizung off");	
			}
		}
		elsif ( $status eq "on" )
		{
			if ( $istwert < $sollwert )
			{
				fhem("set $heizung off");	
			}
			else
			{
				fhem("set $heizung on");	
			}
		}
		else
		{
			if ( $istwert >= ( $sollwert ))
			{
				fhem("set $heizung on");	
			}
			else
			{
				fhem("set $heizung off");	
			}
		}
	}
}


temperatursyncronisation

Diese Funktion synchronisiert die Temperaturwerte der Dummys ...Temperatur_Soll, ...Temperatur_Alternativ und ...Temperatur_Standard eines Raumes in Abhängigkeit vom ...Temperatur_Modus des Raumes.

##############################################
# Prozedur zur Synchronisation der Temperaturanzeigen
# Parameter: 
#   1. Ausloesendes Device      (z.B. Wohnung_OG_Bad_Temperatur_Alternativ)
#   2. Event		        (z.B. 23.2)
#
# Bsp: temperatursyncronisation("Wohnung_OG_Bad_Temperatur_Alternativ",23.2)
##############################################


sub
temperatursyncronisation($$)
{


	if (scalar(@_) != 2) {
                Log 3, "Abbruch: Falsche Anzahl von Parameter";
		return;
	}

	my($name,$event) = @_;

	my @nameArray = split(/_/,$name);
	my $nameArrayLast = $nameArray[$#nameArray];

	SELECT: {
		if ($nameArrayLast eq "Soll"){ 
			
			my $modusdevice = $name;
			$modusdevice =~ s/$nameArrayLast/Modus/;

			my $modus = Value($modusdevice);

			MODUS: {

				if ($modus eq "Standard"){

					my $standarddevice = $name;
					$standarddevice =~ s/$nameArrayLast/Standard/;

					fhem("set $standarddevice $event");

					last MODUS;
				}
				if ($modus eq "Alternativ"){

					my $alternativdevice = $name;
					$alternativdevice =~ s/$nameArrayLast/Alternativ/;

					fhem("set $alternativdevice $event");

					last MODUS;
				}
			}

			last SELECT; 
		}
		if ($nameArrayLast eq "Standard"){ 
			
			my $modusdevice = $name;
			$modusdevice =~ s/$nameArrayLast/Modus/;

			my $modus = Value($modusdevice);
			
			if ($modus eq "Standard"){ 

				my $solldevice = $name;
				$solldevice =~ s/$nameArrayLast/Soll/;

				fhem("set $solldevice $event");
			}
			last SELECT;
		}
		if ($nameArrayLast eq "Alternativ"){ 
			
			my $modusdevice = $name;
			$modusdevice =~ s/$nameArrayLast/Modus/;

			my $modus = Value($modusdevice);
			
			if ($modus eq "Alternativ"){ 

				my $solldevice = $name;
				$solldevice =~ s/$nameArrayLast/Soll/;

				fhem("set $solldevice $event");
			}
			last SELECT;
		}
		if ($nameArrayLast eq "Modus"){ 
			
			my $modus = $event;

			MODUS: {

				if ($modus eq "Standard"){

					my $standarddevice = $name;
					$standarddevice =~ s/$nameArrayLast/Standard/;

					my $solldevice = $name;
					$solldevice =~ s/$nameArrayLast/Soll/;

					my $standard = Value($standarddevice);

					fhem("set $solldevice $standard");

					last MODUS;
				}
				if ($modus eq "Alternativ"){

					my $alternativdevice = $name;
					$alternativdevice =~ s/$nameArrayLast/Alternativ/;

					my $solldevice = $name;
					$solldevice =~ s/$nameArrayLast/Soll/;

					my $alternativ = Value($alternativdevice);

					fhem("set $solldevice $alternativ");

					last MODUS;
				}
			}

			last SELECT; 
		}
	}
}

setBackgroundColor

Diese Funktion setzt die Farbe der readingsGroup in Abhängigkeit vom ...Temperatur_Modus des Raumes und den für die Wohnung definierten Farben für die Modi der Räume.

##############################################
# Prozedur zur Rueckgabe der Farbe fuer den Background 
# Parameter: 
#   1. StandardfarbeDevice      (z.B. Wohnung_OG_Kueche)
#   2. AlternativfarbeDevice    (z.B. 0.2)
#   3. Modusdevice              (z.B. Wohnung_DG_Bad_Temperatur_Modus)
#
# Bsp: setBackgroundColor("Wohnung_OG_Farbe_Modus_Standard","Wohnung_OG_Farbe_Modus_Alternativ","Wohnung_DG_Kind_West_Temperatur_Modus")
##############################################


sub
setBackgroundColor($$$)
{

	if (scalar(@_) != 3) {
                Log 3, "Abbruch: Falsche Anzahl von Parameter";
		return;
	}

	my($standardfarbedevice,$alternativfarbedevice,$modusdevice) = @_;

	my $modus = Value($modusdevice); 

	if ( $modus eq "???" ) {
       		Log 3, "Abbruch: Modus ist nicht initialisiert";
		return;
	}

	MODUS: {

		if ($modus eq "Standard"){

			my $standardfarbe = Value($standardfarbedevice);

			if ( $standardfarbe eq "???" ) {
               			Log 3, "Abbruch: Standardfarbe ist nicht initialisiert";
				return;
			}

			return "style=\"background-color:".$standardfarbe."\"";
			last MODUS;
		}
		if ($modus eq "Alternativ"){

			my $alternativfarbe = Value($alternativfarbedevice);

			if ( $alternativfarbe eq "???" ) {
	               		Log 3, "Abbruch: Alternativfarbe ist nicht initialisiert";
				return;
			}

			return "style=\"background-color:".$alternativfarbe."\"";
			last MODUS;
		}
	}
}