Skip to content

Instantly share code, notes, and snippets.

@phdd
Last active November 4, 2025 16:09
Show Gist options
  • Select an option

  • Save phdd/882257b033167a89b65b2beb5f3e3a95 to your computer and use it in GitHub Desktop.

Select an option

Save phdd/882257b033167a89b65b2beb5f3e3a95 to your computer and use it in GitHub Desktop.
blueprint:
name: Veränderung der Soll-Temperatur
description: |
Übernimmt den am TRV manuell eingestellten Sollwert (aus dem Zigbee2MQTT-Payload)
in eine Climate-Entität. Verhindert Loops durch feste Verzögerung (8 s) und Δ-Check (0,2 °C).
domain: automation
input:
mqtt_topic_pattern:
name: Zigbee2MQTT Topic (mit Wildcards)
description: >-
MQTT-Topic oder Pattern mit Wildcards (+ / #), z. B.
zigbee2mqtt/OG/Büro/Thermostat/+ (alle TRVs im Büro)
oder zigbee2mqtt/OG/+/Thermostat/# (mehrere Räume)
selector:
text: {}
climate_target:
name: Ziel-Climate
description: Climate-Entität, deren Temperatur gesetzt werden soll
selector:
entity:
domain: climate
name: Ziel-Climate
description: Climate-Entität, deren Temperatur gesetzt werden soll
selector:
entity:
domain: climate
mode: single
max_exceeded: silent
triggers:
- platform: mqtt
topic: !input mqtt_topic_pattern
variables:
climate_entity: !input climate_target
temp_target: "{{ (trigger.payload_json.occupied_heating_setpoint | float) | round(1) }}"
actions:
- delay:
seconds: 8
- condition: template
value_template: >-
{{ trigger.payload_json.occupied_heating_setpoint is defined and (
((trigger.payload_json.occupied_heating_setpoint | float) -
(state_attr(climate_entity, 'temperature') | float(0))) | abs > 0.2
) }}
- action: climate.set_temperature
target:
entity_id: "{{ climate_entity }}"
data:
temperature: "{{ temp_target }}"
- wait_template: >-
{{ (state_attr(climate_entity, 'temperature') | float(0) - temp_target) | abs <= 0.2 }}
timeout:
seconds: 8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment