FHEM Forum

FHEM - Anwendungen => Heizungssteuerung/Raumklima => Thema gestartet von: Unicorn am 20 November 2016, 02:38:54

Titel: Übersicht über Heizungswerte, Fragen zur Umsetzung
Beitrag von: Unicorn am 20 November 2016, 02:38:54
Hallo zusammen!

Als FHEM-Anfänger bastel ich gerade an meiner Heizungssteuerung mit Homematic Heizungsreglern und habe ich verschieden Code-Schnipsel aus dem Forum in Wiki zusammengetragen.

Die Aufgabe: Ich möchte eine übersichtliche Darstellung der wichtigsten Werte von 5 Heizungen und einem Wandthermostat. Außerdem möchte ich auch ein paar Werte setzen können.
Das meiste habe ich in einer ReadingsGroup hinbekommen, allerdings funktioniert noch nicht alles und ich habe keine Lösung gefunden, sodass ich etwas Hilfe benötige.

Die Fragen:

Mein Code für die Übersicht:
# Übersicht Heizungswerte
define Heizungswerte readingsGroup <%sani_heating>,<Ist>,<Luftfeuchte>,<Soll>,<Ventil>,<Tagestemp.>,<Nachttemp.>,<Mode>,<Batterie> WZ.Thermostat_Climate:measured-temp,humidity@WZ.Thermostat_Weather,desired-temp,<>,R-dayTemp,R-nightTemp,controlMode,[Bb]atteryLevel@WZ.Thermostat \ WZ.Heizung_Clima:measured-temp,<>,desired-temp,ValvePosition,R-dayTemp,R-nightTemp,controlMode,[Bb]atteryLevel@WZ.Heizung \ SZ.Heizung_Clima:measured-temp,<>,desired-temp,ValvePosition,R-dayTemp,R-nightTemp,controlMode,[Bb]atteryLevel@SZ.Heizung \ AZ.Heizung_Clima:measured-temp,<>,desired-temp,ValvePosition,R-dayTemp,R-nightTemp,controlMode,[Bb]atteryLevel@AZ.Heizung \ KU.Heizung_Clima:measured-temp,<>,desired-temp,ValvePosition,R-dayTemp,R-nightTemp,controlMode,[Bb]atteryLevel@KU.Heizung \ BZ.Heizung_Clima:measured-temp,<>,desired-temp,ValvePosition,R-dayTemp,R-nightTemp,controlMode,[Bb]atteryLevel@BZ.Heizung
attr Heizungswerte nameStyle style="color:yellow"
attr Heizungswerte room Heizung,Wohnung
attr Heizungswerte valueFormat { if ($READING eq 'ValvePosition') {return   '0' if ($VALUE eq '0');; return  '10' if ($VALUE <=  10);; return  '20' if ($VALUE <=  20);; return  '30' if ($VALUE <=  30);; return  '40' if ($VALUE <=  40);; return  '50' if ($VALUE <=  50);; return  '60' if ($VALUE <=  60);; return  '70' if ($VALUE <=  70);; return  '80' if ($VALUE <=  80);; return  '90' if ($VALUE <=  90);; return '100' if ($VALUE <= 100) };; if ($READING eq 'batteryLevel') {return   '0' if ($VALUE < 1.9 );; return  '25' if ($VALUE < 2.1 );; return  '50' if ($VALUE < 2.3 );; return  '75' if ($VALUE < 2.5 );; return '100' if ($VALUE => 2.5 ) };; return $VALUE }
attr Heizungswerte valueIcon {'ValvePosition.0' => 'sani_heating_level_0@green','ValvePosition.10' => 'sani_heating_level_10@green','ValvePosition.20' => 'sani_heating_level_20@green','ValvePosition.30' => 'sani_heating_level_30@yellow','ValvePosition.40' => 'sani_heating_level_40@yellow','ValvePosition.50' => 'sani_heating_level_50@yellow','ValvePosition.60' => 'sani_heating_level_60@orange','ValvePosition.70' => 'sani_heating_level_70@orange','ValvePosition.80' => 'sani_heating_level_80@orange','ValvePosition.90' => 'sani_heating_level_90@red','ValvePosition.100' => 'sani_heating_level_100@red', 'batteryLevel.0' => 'measure_battery_0@red','batteryLevel.25' => 'measure_battery_25@red','batteryLevel.50' => 'measure_battery_50@orange','batteryLevel.75' => 'measure_battery_75@green','batteryLevel.100' => 'measure_battery_100@green', 'window.closed' => 'fts_window_1w@lightgreen', 'window.open' => 'fts_window_1w_open@red'}
attr Heizungswerte valueStyle { if ($READING eq "measured-temp") { if ($VALUE >  23){'style="color:red"'} elsif ($VALUE >  20){'style="color:green"'} elsif ($VALUE <= 20){'style="color:blue"'} else {'style="color:gray"'} }, if ($READING eq 'ValvePosition') {Balkenanzeige ($VALUE)} }
attr Heizungswerte valueSuffix {'ValvePosition' => '  '.ReadingsVal($DEVICE,$READING,0).' %', 'desired-temp' => ' °C', 'measured-temp' => ' °C', "humidity" => '% RH', "batteryLevel" => " ".ReadingsVal($DEVICE,$READING,0)." V"}
attr Heizungswerte commands {'desired-temp' => 'desired-temp:', 'controlMode' => 'controlMode:', 'R-dayTemp' => 'dayTemp:', 'R-nightTemp' => 'nightTemp:'}
attr Heizungswerte mapping {'desired-temp' => }


Die einzelne Übersicht der Ventilstellungen mit Balkenanzeige:
define Ventilstellungen readingsGroup .*:ValvePosition
attr Ventilstellungen icon sani_heating_temp
attr Ventilstellungen room Heizung
attr Ventilstellungen valueStyle {Balkenanzeige($VALUE)}