Hey Aladin,
ja, es sind die Aqara E1.
ZHA/Skyconnect hatte ich mal getestet und mich dann dagegen entschieden.
Ich nutze Zigbee2MQTT, weil dort oftmals mehr Entitäten im Vergleich zu ZHA zur Verfügung gestellt werden (bei identischen Geräten).
Zu deiner Anfrage bzgl. meiner Umsetzung:
Was genau möchtest du wissen?
Das eine ist die „normale“ Heizungssteuerung mit einem Scheduler.
Das zweite ist die Berücksichtigung von „Tagesprogrammen“ (Homeoffice, Urlaub, krank) und an-/abwesend.
Das dritte ist die Berechnung der Vorheizzeit, wenn um 8 Uhr die Heizung nicht erst starten soll, sondern die Zieltemperatur bereits erreicht werden soll.
HI , erstmal frohes neues Jahr
Ja die Aqara E1 sind mittlerweile eingetroffen und um Gegensatz zu den Shelly Blu TRV machen sie einen guten Eindruck und funktionieren so erstmal direkt über ZHA !
In Zigbee2Mqtt muss ich mich erstmal einlesen und schauen ob ich dies mal teste .
Erstmal ist meine Frau happy ,da die Bude wieder warm ist
Lief bisher alles Prima , ich habe better Thermostat mit einem Sheduler laufen und muss mal schauen wie es sich in der Praxis weiter bewährt …aber danke für deine Rückmeldung
Wie hast du das gelöst, bestimmt mit einem Script?
@Aladin212 Ich weiß da scheiden sich die Geister, aber ich nutze auch ZHA und bin damit eigentlich sehr zu frieden (aktuell 35 Geräte). Bisher konnte alles easy anlernen, waren aber auch immer Zigbee 3.0 Geräte und das wird nativ von ZHA unterstützt. Vorteil sehe ich für mich, dass ZHA von Home Assistant kommt und mit Sicherheit die meisten Geräte unterstütz. Bei Zigbee2Mqtt müssen alle Geräte händisch im Code von den Entwicklern hinterlegt werden, deswegen wird glaube ich auch immer mit knapp 4000 unterstützen Geräte geworben. Bei ZHA werden alle Geräte unterstützt die zigbee 3.0 nutzen.
Eigentlich sind es nur Helfer und Automationen mit etwas yaml-Code.
Wenn ich etwas Zeit habe, werde ich mal meine Lösung hier posten.
Ich nutze auch schon seit Jahren die Homematic Thermostate für Wandheizkörper und Fußbodenheizungen. An den Fenstern die verdeckten Homematic-Fenstersensoren und das Ganze mit Raspberrymatic. Langfristiges Ziel: Das in HA mit dem HM Stick zu legen damit der Pi weg kann.
Die Aktoren laufen sowas von Zuverlässig, da kann der Zigbee-Schrott bei weitem nicht mit halten. Aber: is inzwischen unverschämt teuer geworden. Heute würde ich mir wohl das Bosch System holen was aber leider keine verdeckten Fenstersensoren hat :-/
Die Steuerung erfolgt über das super Blueprint „Advanced Heating Control V5“ von panhans.
Es ist einfach irre was das inzwischen kann und wir sparen damit richtig Gas bzw Holz.
Sehe ich auch, auch wenn Homematic nicht mehr das neuste ist. Zuverlässig sind die Aktoren. Nutze die inzwischen knapp 10 Jahre und habe bisher nur ein Unterputzaktor getauscht.
Ich versuche mal, meine Lösung zum berechneten Heizbeginn übersichtlich darzustellen…
Im Prinzip wird mit Hilfe von 3 Automationen folgendes gemacht:
- Berechnung der Heizdauer für 0,5°C sobald die Heizung anfängt zu heizen
- Berechnung der Uhrzeit für den Heizbeginn, damit zur geplanten Zeit die Zieltemperatur bereits erreicht wird
- Trigger für die berechnete Uhrzeit, um die Komforttemperatur zu aktivieren → Heizung startet mit dem Heizen
Dies kann dann in der Heizungsautomatisierung z.B. Blueprint „ECO Heating Ultimate“ von Simon42 als „Comfort Temperatur Checker“ verwendet werden.
-
verwendete Entitäten:
-
climate.wz_heizung
Steuerung der Heizung (stellt über Attribut HVAC Action fest, ob gerade geheizt wird) -
sensor.wz_luftsensor_temperature
Ist-Temperatur des Raumes -
switch.schedule_wz_heizplan
Zeitplan für die Heizungssteuerung - schaltet input_boolean.wz_heizung_komforttemperatur ein bzw. aus -
benötigte Helfer:
-
input_number.wz_heizdauer
benötigte Heizzeit für 0,5°C in Sekunden -
input_number.wz_heizung_komforttemperatur
Komforttemperatur in °C -
input_number.wz_heizung_ecotemperatur
Ecotemperatur in °C -
input_boolean.wz_heizung_komforttemperatur
Aktivierung der Komforttemperatur für die Heizungssteuerung -
sensor.wz_heizung_nachste_anderung
Template-Sensor als Zeitstempel, der aus dem Scheduler die nächste on/off-Änderung ausliest
Template
{{ state_attr('switch.schedule_wz_heizplan','next_trigger') }}
- sensor.wz_heizung_nachste_temperatur
Template-Sensor als Temperatur, der aus dem Scheduler und input_number.wz_heizung_komforttemperatur und input_number.wz_heizung_ecotemperatur die nächste Zieltemperatur ausliest
Template
{% if state_attr('switch.schedule_wz_heizplan','actions')[state_attr('switch.schedule_wz_heizplan','next_slot')|int].service == 'input_boolean.turn_on' %}
{{states.input_number.wz_heizung_komforttemperatur.state|float(1)}}
{% else %}
{{states.input_number.wz_heizung_ecotemperatur.state|float(1)}}
{% endif %}
-
input_datetime.wz_heizung_nachste_anderung_berechnet
Berechneter Heizbeginn auf Grundlage des Schedulers sowie der Temperaturdifferenz und Heizdauer -
input_number.wz_heizzeitdifferenz
Da sich die Ist-Temperatur oft ändert, wird alle 15 min. die Heizzeitdifferenz zur Komforttemperatur neu berechnet -
erforderliche Automationen:
-
WZ Heizung Messung Dauer
misst die Dauer, die die Heizung braucht, um es 0,5°C wärmer zu machen
YAML-Code
alias: WZ Heizung Messung Dauer
description: ""
triggers:
- trigger: state
entity_id:
- climate.wz_heizung
attribute: hvac_action
to: heating
from: idle
conditions: []
actions:
- variables:
ziel_temp: "{{ states('sensor.wz_luftsensor_temperature')|float + 0.5 }}"
start_time: "{{ now() }}"
- wait_for_trigger:
- value_template: "{{ states('sensor.wz_luftsensor_temperature')|float > ziel_temp }}"
trigger: template
- trigger: state
entity_id:
- sensor.wz_heizung_hvac_action
to: idle
timeout:
hours: 3
minutes: 0
seconds: 0
milliseconds: 0
continue_on_timeout: false
enabled: true
- condition: state
entity_id: sensor.wz_heizung_hvac_action
state: heating
- variables:
end_time: "{{ now() }}"
time_diff: "{{ (as_timestamp(end_time) - as_timestamp(start_time))|int }}"
- metadata: {}
data:
value: "{{time_diff}}"
target:
entity_id: input_number.wz_heizdauer
action: input_number.set_value
mode: single
- WZ Heizung nächste Änderung Berechnung
berechnet alle 15 min. den Heizbeginn neu
YAML-Code
alias: WZ Heizung nächste Änderung Berechnung
description: ""
triggers:
- minutes: /15
trigger: time_pattern
conditions: []
actions:
- variables:
start_heat_time: >-
{{ as_timestamp(states.sensor.wz_heizung_nachste_anderung.state)
|timestamp_custom('%H')|int * 3600 +
as_timestamp(states.sensor.wz_heizung_nachste_anderung.state)
|timestamp_custom('%M')|int * 60 +
as_timestamp(states.sensor.wz_heizung_nachste_anderung.state)
|timestamp_custom('%S')|int }}
- variables:
ziel_temperatur: "{{ states('sensor.wz_heizung_nachste_temperatur') }}"
ist_temperatur: "{{ states('sensor.wz_luftsensor_temperature') }}"
- variables:
temp_diff: "{{ (ziel_temperatur - ist_temperatur)|round(1) }}"
- choose:
- conditions:
- condition: template
value_template: "{{ temp_diff > 0 }}"
sequence:
- variables:
time_diff_sec: >-
{{(states.input_number.wz_heizdauer.state|int * 2 *
temp_diff)|int}}
neue_startzeit: >-
{{ (start_heat_time -
time_diff_sec)|timestamp_custom('%H:%M:%S', false) }}
jetzt: "{{ now().strftime('%H:%M:%S') }}"
- condition: template
value_template: "{{ jetzt < neue_startzeit }}"
- metadata: {}
data:
value: "{{ time_diff_sec }}"
target:
entity_id: input_number.wz_heizzeitdifferenz
enabled: true
action: input_number.set_value
- metadata: {}
data:
time: "{{ neue_startzeit }}"
target:
entity_id: input_datetime.wz_heizung_nachste_anderung_berechnet
action: input_datetime.set_datetime
default:
- metadata: {}
data:
time: >-
{{ as_timestamp(states.sensor.wz_heizung_nachste_anderung.state)
|timestamp_custom('%H:%M:%S') }}
target:
entity_id: input_datetime.wz_heizung_nachste_anderung_berechnet
action: input_datetime.set_datetime
mode: single
- WZ Heizung berechneter Heizbeginn
schaltet input_boolean.wz_heizung_komforttemperatur zur berechneten Zeit ein
YAML-Code
alias: WZ Heizung berechneter Heizbeginn
description: ""
triggers:
- trigger: time
at: input_datetime.wz_heizung_nachste_anderung_berechnet
conditions:
- condition: template
value_template: >-
{{
state_attr('switch.schedule_wz_heizplan','actions')[state_attr('switch.schedule_wz_heizplan','next_slot')|int].service
== 'input_boolean.turn_on' }}
alias: nächste Periode = Komforttemperatur
actions:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.wz_heizung_komforttemperatur
mode: single
Ich habe mit Homematic eine Witterungsgeführte Heizungssteuerung realisiert die seit Jahren sehr zuverlässig arbeitet. (Mittlerweile als Add On in HA)
Die Temperaturwerte hole ich über den selbstgebauten 1…8fach Temperatursensor HB-UNI-Sen-TEMP DS18B20
Mit dem CUxD Wrapper in Raspberrymatic lasse ich die Temperatur des Außenfühlers in den Wert für die gewünschte Vorlauftemperatur ausgeben. Damit wird dann der Pelletofen über den Homatic 4fach Aktor geschaltet um den Pufferspeicher auf diese Vorlauftemperatur aufzuheizen.
Bis jetzt fehlt mir die Lösung für HA, wie man eine Heizkurve anhand der Aussentemperatur errechnet und das Ergebnis an ein Generic Thermostat liefert ???