Heizungssteuerung 1-Wire: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K (Typos/Spelling (Betroffene Stellen im Scriptcode wurden nicht abgeändert!)) |
||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
In diesem Szenario arbeitet die Raumtemperatursteuerung als Erweiterung zu den in den Räumen installierten | 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. | ||
Zeile 8: | Zeile 8: | ||
* Raspberry Pi Hutschienen-Set (http://www.pollin.de) | * Raspberry Pi Hutschienen-Set (http://www.pollin.de) | ||
* 1-Wire Buskoppler USB, galvanisch | * 1-Wire Buskoppler USB, galvanisch isoliert (http://www.eservice-online.de) | ||
* 1-Wire Hub II AC V2 (http://www.eservice-online.de) | * 1-Wire Hub II AC V2 (http://www.eservice-online.de) | ||
* 1-Wire Dual Schaltmodul 230V 5A (http://www.eservice-online.de) | * 1-Wire Dual Schaltmodul 230V 5A (http://www.eservice-online.de) | ||
Zeile 24: | Zeile 24: | ||
== Zentrale FHEM Konfiguration fhem.cfg == | == Zentrale FHEM Konfiguration fhem.cfg == | ||
Im | Im Wesentlichen ist in der zentralen Konfigurationsdatei nur der Zugriff auf den OWFS-Daemon und für jede Wohnung ein Include definiert. | ||
<pre> | <pre> | ||
Zeile 40: | Zeile 40: | ||
=== Temperatursensor === | === 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. | |||
<pre> | <pre> | ||
Zeile 72: | Zeile 72: | ||
=== Relais === | === 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 | 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 | 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. | ||
<pre> | <pre> | ||
Zeile 89: | Zeile 89: | ||
=== Verschiedene Temperaturen === | === 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 | 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". | ||
Zeile 121: | Zeile 121: | ||
=== Farben für den Modus des Raumes === | === Farben für den Modus des Raumes === | ||
Die Farben für die Modi der Raumtemperatur wird pro Wohnung gesetzt. Hierzu sind zwei dummy vorhanden. | Die Farben-Konfiguration für die Modi der Raumtemperatur wird pro Wohnung gesetzt. Hierzu sind zwei dummy vorhanden. | ||
<pre> | <pre> | ||
Zeile 163: | Zeile 163: | ||
=== | === Temperaturregelung === | ||
Die | Die Temperaturregelung wird jede Minute angeworfen. | ||
<pre> | <pre> | ||
Zeile 886: | Zeile 886: | ||
===temperaturregelung === | === temperaturregelung === | ||
Diese Funktion vergleicht den Soll- und Istwert der Raumtemperatur und schaltet ggf. das Relais. Ist die | 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. | ||
<pre> | <pre> | ||
Zeile 972: | Zeile 972: | ||
=== temperatursyncronisation === | === temperatursyncronisation === | ||
Diese Funktion | Diese Funktion synchronisiert die Temperaturwerte der Dummys ...Temperatur_Soll, ...Temperatur_Alternativ und ...Temperatur_Standard eines Raumes in Abhängigkeit vom ...Temperatur_Modus des Raumes. | ||
<pre> | <pre> | ||
############################################## | ############################################## | ||
# Prozedur zur | # Prozedur zur Synchronisation der Temperaturanzeigen | ||
# Parameter: | # Parameter: | ||
# 1. Ausloesendes Device (z.B. Wohnung_OG_Bad_Temperatur_Alternativ) | # 1. Ausloesendes Device (z.B. Wohnung_OG_Bad_Temperatur_Alternativ) | ||
Zeile 1.108: | Zeile 1.108: | ||
=== setBackgroundColor === | === setBackgroundColor === | ||
Diese Funktion setzt die Farbe der readingsGroup in Abhängigkeit vom ...Temperatur_Modus des Raumes und | 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. | ||
<pre> | <pre> |
Aktuelle Version vom 27. Januar 2019, 18:02 Uhr
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:
- Raspberry Pi Hutschienen-Set (http://www.pollin.de)
- 1-Wire Buskoppler USB, galvanisch isoliert (http://www.eservice-online.de)
- 1-Wire Hub II AC V2 (http://www.eservice-online.de)
- 1-Wire Dual Schaltmodul 230V 5A (http://www.eservice-online.de)
- 1-Wire DS18B20 1-Wire Temp-Sensor (http://www.eservice-online.de)
- 1-Wire timed4channel Module (gibts leider nicht mehr zum Kauf).
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.
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; } } }