Sonoff TH10 für Infrarot Heizung

Statt mit einem Thermostat wird über OpenHAB geregelt!

Ein Winter im Waldviertel ist schön, aber kalt und wenn man dort eine Wohnung frostfrei halten möchte, dann geht das am einfachsten mit einer Elektroheizung. Infrarot Heizpaneele, vor allem mit Keramikoberflächen sind da besten geeignet. Meine ist von heatness, liegt preislich in der Mittelklasse.
Die Montage ist einfach und der elektrische Anschluss erfolgt über einen 230V Stecker. Die Heizung hat aber keine Regelung, d.h. solange sie am Stromnetz hängt, solange wird geheizt.

Steuerung über einen Sonoff TH10

Für die Steuerung habe ich eine neue Aufputz Steckdose montiert und davor einen sonoff TH10 Relaisschalter mit angeschlossen DS18B20 Temperaturfühler. Der TH10 wurde, wie immer mit der tasmota firmware geflashed. Geht nicht OTA, d.h. etwas löten ist notwendig.
Folgendes Template habe ich verwendet.

{"NAME":"Sonoff TH","GPIO":[32,1,0,1,1,0,0,0,224,320,1312,0,0,0],"FLAG":0,"BASE":4}

Die Kommunikation mit openHAB funktioniert wieder über MQTT. Dazu gibt es folgende Einträge. Es gibt natürlich noch weit mehr Info, die man aus dem TH10 auslesen kann.

// things: Sonoff TH10 mit DS18B20 Temperatursensor
 
Thing topic sonoffTH10_1 "Infrarot Heizung" {
Channels:
 Type switch : s1Power "Power" 
  [stateTopic="stat/sonoff1/POWER", 
   commandTopic="cmnd/sonoff1/POWER"]
 Type number : s1Temperature  "Temperature"
  [stateTopic="tele/sonoff1/SENSOR", 
   transformationPattern="JSONPATH:$.DS18B20.Temperature" ]
}
// items:
Switch s1Power "s1 Power" <switch>
 {channel="mqtt:topic:mosquitto:sonoffTH10_1:s1Power"}
Number s1Temperature "Temperature" <temperature>
 {channel="mqtt:topic:mosquitto:sonoffTH10_1:s1Temperature"}
Number Raumtemperatur_Soll

// sitemap:
sitemap heizung label="Heizung" {
 Frame label="Heizung" {
  Setpoint item=Raumtemperatur_Soll 
   label="Raumtemperatur Soll [%.1f °C]" 
   step=0.5 minValue=-1 maxValue=30
  Text item=s1Temperature 
   label="Raumtemperatur Ist [%.1f °C]" 
   icon="temperature"  
 Switch item=s1Power label="Heizung []"
 }
}
// rules
rule "Init Heizung Items"
when
 System started
then
 if (Raumtemperatur_Soll.state == NULL) {
  Raumtemperatur_Soll.postUpdate(2.0) 
  //postUpdate ist nur für Aktualisierungen innerhalb von 
openHAB (sendCommand gibt diese auch auf den Bus)
 }
 if (s1Temperature.state == NULL) {
  s1Temperature.postUpdate(2.0)
 }
end

rule "Temperatur Ist mit Soll vergleichen"
when
 Item Raumtemperatur_Soll changed or
 Item s1Temperature changed
then
 var double raum_temp_soll=
 (Raumtemperatur_Soll.state as DecimalType).doubleValue
 var double raum_temp_ist=
 (s1Temperature.state as DecimalType).doubleValue
 if (raum_temp_ist < raum_temp_soll){
  s1Power.sendCommand(ON)  
 }
 else {
  s1Power.sendCommand(OFF)
 }
end

Funktioniert alles Bestens, nur der Temperaturfühler liegt zu Nahe an der Heizpaneele, der muss noch mit einer Verlängerung etwas weiter weg, sonst misst er nicht die wirkliche Raumtemperatur.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Begin typing your search above and press return to search. Press Esc to cancel.