Automatisierung für Heizungskontrolle

mheiker

New member
Halle zusammen,

in meiner Wohnung laufen einige Comet-DECT-Thermostate, die leider zwei Schwächen zeigen:
- sie übersteuern stark bei einer Änderung der Solltemperatur, und das leider recht wesentlich und
- das Polling-Intervall ist mit 15 Minuten unterirdisch.

Damit ich die trotzdem nutzen kann, habe ich mir eine Automatisierung erstellt. Dabei wird eine Ziel-Solltemperatur "Heizung Wohnzimmer Sollwert" berücksichtig und ein Schalter "Heizung Wohnzimmer ein", der grundsätzlich die Heizung abschaltet. Die Automatisierung soll dabei folgende Dinge beachten:
  • Wird der Schalter auf off geschaltet, soll die Temperatur auf 7°C gestellt werden (Thermostate schalten bei <8°C ab).
  • Wird der Schalter auf on geschaltet soll diese Unterscheidung getroffen werden:
    • Ist die Ziel-Solltemperatur über 2°C unterhalb der bisher am Thermostat eingestellten Temperatur UND ist die Ziel-Solltemperatur unterhalb der aktuell am Thermostat gemessenen Temperatur, soll die Temperatur auf 2°C unterhalb der aktuell gemessenen Temperatur eingestellt werden.
    • Dann soll die am Thermostat eingestellte Temperatur alle 15 Minuten um 0,5°C erhöht werden, bis die Ziel-Solltemperatur erreicht ist (Sollwertrampe).
Das Problem ist: wird die Ziel-Solltemperatur oder der Schalter Heizung kurz hintereinander geändert, reagiert die Automatisierung nicht.

Habt ihr eine Idee? Den Code habe ich angefügt, ich hoffe, damit kann man was anfangen?

Danke im Voraus!
Mathias

YAML:
alias: Heizungskontrolle Wohnzimmer
description: Heizungskontrolle mit automatisierter Rampe
trigger:
  - platform: state
    entity_id:
      - input_number.heizung_wohnzimmer_sollwert
    id: Sollwert
  - platform: state
    entity_id:
      - input_boolean.heizung_wohnzimmer_ein
    id: Ein
action:
  - if:
      - condition: state
        entity_id: input_boolean.heizung_wohnzimmer_ein
        state: "on"
    then:
      - if:
          - condition: trigger
            id: Ein
        then:
          - service: climate.set_temperature
            data:
              temperature: 8
            target:
              device_id:
                - e00d5db60821770b07114e236e9368a1
      - repeat:
          until:
            - condition: template
              value_template: >-
                {{
                state_attr('climate.heizung_wohnzimmer_links','temperature') | float == states('input_number.heizung_wohnzimmer_sollwert') | float}}
          sequence:
            - if:
                - condition: template
                  value_template: >-
                    {{
                    state_attr('climate.heizung_wohnzimmer_links','temperature') | float > states('input_number.heizung_wohnzimmer_sollwert') | float}}
                - condition: template
                  value_template: >-
                    {{
                    state_attr('climate.heizung_wohnzimmer_links','current_temperature') | float < states('input_number.heizung_wohnzimmer_sollwert') | float}}
              then:
                - service: climate.set_temperature
                  data:
                    temperature: >-
                      {{ states('input_number.heizung_wohnzimmer_sollwert') |
                      float }}
                  target:
                    device_id:
                      - e00d5db60821770b07114e236e9368a1
              else:
                - if:
                    - condition: and
                      conditions:
                        - condition: template
                          value_template: >-
                            {{
                            state_attr('climate.heizung_wohnzimmer_links','temperature') | float <
                            states('input_number.heizung_wohnzimmer_sollwert') | float -2 }}
                        - condition: template
                          value_template: >-
                            {{
                            state_attr('climate.heizung_wohnzimmer_links','current_temperature') | float >
                            state_attr('climate.heizung_wohnzimmer_links','temperature') | float +2 }}
                  then:
                    - service: climate.set_temperature
                      data:
                        temperature: >-
                          {{
                          state_attr('climate.heizung_wohnzimmer_links','current_temperature') | float -2 }}
                      target:
                        device_id:
                          - e00d5db60821770b07114e236e9368a1
                  else:
                    - service: climate.set_temperature
                      data:
                        temperature: >-
                          {{
                          state_attr('climate.heizung_wohnzimmer_links','temperature') + 0.5 | float}}
                      target:
                        device_id:
                          - e00d5db60821770b07114e236e9368a1
            - delay:
                hours: 0
                minutes: 15
                seconds: 0
                milliseconds: 0
    else:
      - service: climate.set_temperature
        data:
          temperature: 7
        target:
          device_id:
            - e00d5db60821770b07114e236e9368a1
mode: single
 
Schön schön, mir gefallen solche durchdachten und komplexen Automationen. Hat Spaß gemacht, die durchzulesen 😅

Problem ist:
Sobald deine Automation in der 15-Minuten-Schleife zur Erhöhung der Soll-Temp ist, sind deine Trigger tot, bis deine Schleife vorbei ist. Das liegt an dem eingestellten Modus der Automation. In diesem Fall musst du zwangsläufig auf "neu starten" stellen.
Probiers mal und berichte 😉
 
Vielen Dank, ich hab mir auch große Mühe gegeben! ;)

Der Tip war super, Modus umgestellt und es funktioniert! Jetzt teste ich, ob meine Logik logisch ist! 😅
 
Sehr gut. Ist dir auch bewusst, wieso weshalb warum? Eine laufende Automation im Modus "Einzeln" läuft so lange, bis sie durch ist. Da kann Triggern was will, das einzige was passiert sind Fehler im Log. Das muss man wenn man Wartezeiten mit einbaut berücksichtigen.


Die Logik sollte passen, was ich da so gelesen hab. Nur die Templates hab ich nicht genauer angeguckt.
Aber man sieht ja, du bist kein Anfänger 🤙
Wenns doch irgendwo klemmt sag bescheid.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
5.604
Beiträge
55.100
Mitglieder
5.451
Neuestes Mitglied
PaulBaer
Zurück
Oben