Die Arbeiten mit elektrischen Anlagen und Geräten im Haushalt können gefährlich sein und sollten nur von qualifizierten Fachkräften durchgeführt werden.
Die Wandthermostate für die Steuerung der Fußbodenheizung sollten durch Smart Home Thermostate ersetzt werden. Versprochene Vorteile:
Die aktuellen Thermostate arbeiten mit einem Bimetallstreifen, wodurch die Temperatur nur ungenau eingestellt werden kann. Im Wohnzimmer steht das Thermostat bspw. bei 29grad und der Raum hat eine Temperatur von 22grad.
Aktuelles Thermostat:
Wie auf dem Bild “CurrentThermostat” zu sehen, wird der Aktor im Heizkreisverteiler (HKV) recht einfach über den Kontakt des Bi Metallstreifens gesteuert –> also ist das auch nur ein Schalter und könnte auch durch einen Lichtschalter ersetzt. Da die Aktoren mit 230V betrieben werden, sind keine weiteren Bauteile im aktuellen Aufbau vorhanden. Vom HKV zum Thermostat liegt ein NYM-J 5x1,5 mm² Leitung.
Mit dem erlangten wissen ging es auf die Suche. Es gibt eine Vielzahl von von Anbietern, beachtet man eine mögliche externe Steuerung und Integration in Homeassistant engt sich der Markt ein und die Lösungen werden für den Austausch von 7 Thermostaten schon recht ordentlich bis hin zu eine möglichen Gateway, welches für die Kommunikation der Geräte und der Cloud genutzt wird, also versuchen wir es einfach selbst.
Ergebnis: min. 500€ Investition
Für kein direktes Einsparpotential, einfach zu teuer.
Liste der benötigten Bauteile pro Thermostat
Liste des benötigten Wekzeug
Der Code für den Mikrocontroller wurde mit Hilfe von ESPHome erzeugt und geflasht.
# These substitutions allow the end user to override certain values
substitutions:
room_name: "ShowRoom"
name: smartheat-showshowroom
friendly_name: SmartHeat_showRoom
esp8266:
board: d1_mini
# Enable logging
logger:
level: INFO
# Enable Home Assistant API
api:
encryption:
key: "1234567890asdfghjklö23424234234"
ota:
platform: esphome
password: "1234567890asdfghjklö"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Smartheat-showroom"
password: "1234567890"
# Optional manual IP
manual_ip:
static_ip: AAA.BBB.CCC.DDD
gateway: !secret network_gateway
subnet: !secret network_subnet
globals:
- id: display_state
type: "bool"
initial_value: "1"
- id: display_counter
type: "int"
initial_value: "0"
esphome:
name: "${name}"
friendly_name: "${friendly_name}"
comment: ""
area: ""
on_loop:
then:
- lambda: |-
if(id(display_counter) == 625 && id(display_state) == 1) {
id(heat_display).turn_off();
id(display_state) = 0;
id(display_counter) = 0;
}
else if (id(display_state) == 1){
id(display_counter) += 1;
}
time:
- platform: homeassistant
id: esptime
font:
- file: "gfonts://Roboto"
id: roboto
size: 10
sensor:
- platform: dht
model: DHT22_TYPE2
id: dhtsensor
pin: D5
temperature:
id: temp
name: "Temperature"
filters:
- offset: -4.0
- throttle: 60s
on_value:
then:
- lambda: |-
if (id(temp).state < id(soll_temp).state){
id(heat_relay).turn_on();
}
else {
id(heat_relay).turn_off();
}
humidity:
id: hum
name: "Humidity"
update_interval: 5s
# Example configuration entry
number:
- platform: template
name: sollTemperatur"
id: soll_temp
optimistic: true
update_interval: 5s
restore_value: true
initial_value: 15
min_value: 5
max_value: 30
step: 0.25
# Example configuration entry
binary_sensor:
- platform: gpio
pin:
number: D6
mode:
input: true
pullup: true
id: up_button
name: "Up"
on_press:
if:
condition:
number.in_range:
id: soll_temp
below: 29.75
then:
- lambda: |-
if (id(display_state) == 0){
id(heat_display).turn_on();
id(display_state) = 1;
}
else {
id(soll_temp).publish_state(id(soll_temp).state += 0.25);
}
id(display_counter) = 0;
- platform: gpio
pin:
number: D7
mode:
input: true
pullup: true
id: down_button
name: "Down"
on_press:
if:
condition:
number.in_range:
id: soll_temp
above: 5.25
then:
- lambda: |-
if (id(display_state) == 0){
id(heat_display).turn_on();
id(display_state) = 1;
}
else {
id(soll_temp).publish_state(id(soll_temp).state -= 0.25);
}
id(display_counter) = 0;
switch:
- platform: gpio
name: "Heat Relay"
id: heat_relay
pin: D0
i2c:
sda: D1
scl: D2
scan: true
frequency: 800kHz
id: bus_a
display:
- platform: ssd1306_i2c
model: "SH1106 128x64"
id: heat_display
contrast: 50%
address: 0x3C
lambda: |
it.strftime(85, 0, id(roboto), "%H:%M:%S", id(esptime).now());
it.printf(0, 10, id(roboto), "Temp: %.2fC", id(temp).state);
it.printf(0, 20, id(roboto), "Hum: %.2f", id(hum).state);
it.printf(0, 30, id(roboto), "Soll: %.2f", id(soll_temp).state);
if (id(heat_relay).state == 1){
it.printf(0, 54, id(roboto), "Heizen ein");
}
else if (id(heat_relay).state == 0){
it.printf(0, 54, id(roboto), "Heizen aus");
}
Zu Begin sollte jedes Thermostat ein eigenes Netzteil erhalten, dies wurde Aufgrund vom Spulenfiepen der Mini Neztzteile in den HKV verlegt. Spart Ressourcen und Platz in der Unterputzdose.
Durch den Einsatz der DIY Lösung der Preis pro Thermostat auf unter 8€ gedrückt werden.
Der Wechsel zu smarten Wandthermostaten bietet mehr Komfort, präzisere Steuerung und die Möglichkeit zur Integration in Home Assistant – und das zu einem Bruchteil der Kosten kommerzieller Lösungen. Dieses DIY-Projekt zeigt, dass man mit etwas technischem Geschick und Kreativität eine funktionale und stilvolle Lösung selbst umsetzen kann.
Die selbstgebauten Thermostate überzeugen durch Effizienz, Unabhängigkeit und modernes Design. Es ist ein inspirierendes Beispiel dafür, wie sich smarte Technologien individuell und kostengünstig realisieren lassen. Viel Erfolg beim Nachbauen – und denkt immer an die Sicherheit bei der Arbeit mit elektrischen Anlagen! 😊