Better Thermostat Automation mit Wochentagen

Moin zusammen,

nutze HA jetzt schon länger, aber bis dato habe ich noch kein smartes Thermostat eingebunden. Dafür habe ich mir erst mal nur ein Sonoff TRV Thermostat gekauft, um das auszuprobieren. Aktuell ist das im Badezimmer installiert.

Integration Better Thermostat Back- und Frontend ist installiert

Geräte im Bad:

  • Sonoff Thermostat TRV
  • Sonoff Fenstersensor
  • Mi Temperatursensor

Das Bad ist ja eher ein spezieller Raum, der zumindest bei uns nicht permanent beheizt werden soll. Hauptsächlich wird morgens ab 5 Uhr - 9 Uhr an Wochentagen dort geheizt. Wochenende/Feiertage entsprechend später. Abends dann ebenfalls zu bestimmten Zeiten.

Deswegen brauche eine spezielle Automation. Als Blueprints habe ich mir schon ECO Heating und Advanced Heating Control angeschaut.

Automation:

  • Heizung aus, wenn Fenster auf (lässt sich einfach hinterlegen in der Blueprint)
  • Heizung aus, wenn alle aus dem Haus (Ping an Smartphones als Device_tracker)
  • externer Mi Temp Sensor als Maßstab (macht Better Thermostat)
  • Steuerung der Uhrzeiten ist an Wochentagen anders, wie am Wochenende oder Feiertagen.
  1. Hauptproblem ist die Steuerung an bestimmten Tagen, wie habt ihr das lösen können? ECO Heating bietet das ja gar nicht und bei Advanced Heating checke ich nicht genau, was da einzustellen ist.

  2. Kann man ein generelles Ein- und Ausschalten der Automation per Schalter integrieren

Hol Dir die Integration “Werktag”. Damit kannst Du einen Sensor einrichten, der an Werktagen on und an Wochenenden und Feiertagen (auch bundeslandspezifisch) off. Du kannst auch weitere Sensoren anlegen, beispielsweise einen, der on ist, wenn morgen ein Werktag ist. Den Zustand des Sensors machst Du dann zur Bedingung für Deine jeweilige Automatisierung.

1 „Gefällt mir“

Ah guter Tipp, danke. Den Sensor habe ich eh schon für andere Sachen. Wie setze ich das dann als Bedingung in einer Automation/Blueprint?

Also bspw. in Eco Heating oder Advanced Heating

Um spezifische Temperaturprofile anzulegen, egal ob Werktags oder Wochenende nutze ich das Addon Scheduler Card.
Ich setze damit eine input_number Variable, welche dann als Sollwert an die jeweiligen Thermostate weitergeleitet wird.
Bin voll zufrieden damit…

1 „Gefällt mir“

Versuche es jetzt auch noch mal testweise so in Advanced Heating, auch wenn es mir nicht ganz klar ist, was ‘Calibration’ heißt. Eigentlich will ich außerhalb der Heiz-Zeiten auch das Thermostat auf aus stellen. Setze dort jetzt mal eco: “5”. Keine Ahnung ob das funktioniert.

Vermutlich übersteuert die Automation auch dann eine manuelle Einstellung am Thermostat!?

Stimmt damit ist auch sehr simpel, berücksichtig die Scheduler Card auch ob überhaupt jemand zu Hause ist, Fenster geöffnet oder ggf. Feiertag ist :smiley:

In Eco Heating Ultimate kannst du auf jeden Fall den Sensor von Werktag als Automation Blocker eintragen.

3 „Gefällt mir“

Für was gibt es Automationen oder brauch man für jede Eventualität eine Blueprint, über die man sich beschweren kann, dass sie nicht wie gewollt funktioniert :stuck_out_tongue_winking_eye:

Zusätzlich hänge ich noch am input_boolean für die Anwesenheit fest, der aus irgendeinen Grund nicht getriggert wird. Zuerst habe ich die device_tracker Entitäten (Ping an die Smartphones) einzeln in die Automation gebracht, funktionierte auch nicht.
Dann habe ich per Yaml jetzt die Device Tracker in eine Gruppe gesetzt, welche auch korrekt angezeigt wird. In der Auswahl der Automation steht mit aber home oder not_home nicht zur Verfügung!? Jemand eine Idee was der Fehler ist?

alias: Anwesenheit - jemand zu Hause
description: ""
trigger:
  - platform: time_pattern
    minutes: /1
  - platform: state
    entity_id:
      - group.anwesenheit
    to: not_home
    for:
      hours: 0
      minutes: 0
      seconds: 30
    id: aus
    from: null
  - platform: state
    entity_id:
      - group.anwesenheit
    to: home
    for:
      hours: 0
      minutes: 0
      seconds: 30
    id: an
    from: null
condition: []
action:
  - if:
      - condition: trigger
        id:
          - an
    then:
      - service: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.anwesenheit_zuhause
  - if:
      - condition: trigger
        id:
          - aus
    then:
      - service: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.anwesenheit_zuhause
mode: single


Das kannst Du ganz einfach machen. Leg in den Einstellungen Personen an und weise ihnen die entsprechenden Device Tracker zu. Die zone.home beinhaltet dann die Zahl der anwesenden Personen.

alias: Anwesenheit - jemand zu Hause
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - zone.home
    above: 0
  - platform: numeric_state
    entity_id:
      - zone.home
    below: 1
condition: []
action:
  - if:
      - condition: numeric_state
        entity_id: zone.home
        above: 0
    then:
      - service: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.anwesenheit_zuhause
    else:
      - service: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.anwesenheit_zuhause
mode: single

Getriggert wird dann immer, wenn die letzte Person das Haus verlässt und wenn die erste Person wieder eintrifft.

1 „Gefällt mir“

Ah super, vielen Dank. Damit funktioniert es! :+1:

Noch eine andere Frage, gibt es eigentlich eine Möglichkeit das Thermostat auch manuell zu bedienen, ohne das die Automation es nach dem trigger alle paar Minuten ausstellt?

Also zb man stellt es außerhalb des Zeitplans der Autom. an?

Beschreib das mal etwas genauer, vielleicht mit einem Beispiel.

Naja z.B. Zeitplan Werktags (Helper) 5.15-8.30 Uhr Heizbetrieb Bad. Wochenende 9-11 Uhr. Nun kann es aber sein, dass außerhalb des Zeitplans jemand aus der Familie die Heizung anmacht. Die Uhrzeit ist aber unbestimmt und kann man nicht planen.

Stellt man bspw. per HA das Thermostatauf auf heizen, obwohl laut Zeitplan gerade aus, dann springt nach kurzer Zeit die Automation wieder an und stellt das Thermostat wieder auf Off, weil ja kein Zeitplan existiert bzw. zu dieser Zeit ja nicht geheizt werden soll

Sehe gerade Advanced Heating hat noch die Experimental Tweaks!?

Ich weiß wenig von den Blueprints, weil ich selbst keine nutze. Eigene Automationen machen halt etwas mehr Arbeit, dafür sind sie hochflexibel. Bei Blueprints bist du auf deren Macher angewiesen. Offenbar fragt Advanced Heating regelmäßig den aktuellen Status ab und bessert nach, wenn etwas aus dem Plan läuft.

Doch diese Experimental Features scheinen ja zumindest in Richtung Deines Problems zu zielen. Ich hab beispielsweise auch einen Partyschalter, der automatisch schaltet, wenn Gäste in den Kalender eingetragen sind, und am Folgemorgen automatisch zurückgesetzt wird.

Mmh ok, aber selbst ohne die Blueprint wüsste ich auch bei einer eigenen Automation nicht, wie das gehen sollte. Man muss ja quasi eine Ausnahme definieren, damit der Zeitplan oder die Autom. übersprungen wird.
Also einfach via Gui TRV Temp und auf On stellen wird dann ja nie gehen. Also irgendeinen Schalter muss man manual betätigen, wenn man die Heizung aus der Reihe einschalten will. So richtig smart fühlt sich das für mich nicht an. :wink: Vor allem wenn von 3 von 4 in der Familie nicht mal die HA App nutzen, und überall ein Tablet drantackern ja auch OP :smiley:
Mit dem Party-Timer habe ich testweise mal 30 Min. eingestellt, der aktuell aber nur beim manuellen betätigen direkt am Thermostat gehen soll, habe ich aber noch nicht getestet

Die Automation kann man ja auch einfach per Schalter deaktivieren, so wir ich das aktuell habe, aber wie gesagt richtig smart ist das nicht. :smiley:

Dafür gibt es Bedingungen.

Bei mir werden die Temperaturen nur zu den definierten Zeiten angepasst. Wenn ich zwischendurch per Hand oder Alexa die Temperatur an einem Heizkörper anpasse, bleibt die so bis zum nächsten Schaltzeitpunkt. Wenn es etwas gäbe, das ich dann außer Kraft setzen wollte, könnte ich zum Beispiel einrichten, dass eine Änderung zwischen den Schaltzeiten automatisch zu einer Pause der anstehenden Aktionen führt. Smarter geht immer.

2 „Gefällt mir“

Ok, da bin ich noch dabei. Der Entwickler will aber auch noch nach einer Lösung schauen.

Dann habe ich noch einen Sonderfall, in unserem Badezimmer steht noch ein Wäschetrockner, wenn der läuft, soll die Heizung grundsätzlich aus sein (erzeugt ja Wärme genug).
Da ich schon einen input_boolean für den Trockner habe, der auch funktioniert, wollte ich nun eine Automation verwenden, die leider nicht funktioniert. Automation wird nicht deaktiviert? Evtl. muss ich mir doch was eigenes bauen ohne Blueprint

  1. jede Minute prüft ob
  2. der Trockner läuft (ID: an)
  3. aber nur wenn Heizung ist am heizen
  4. wenn ID: An, dann schalte Automation Advanced Heating aus
  5. und ID: an, dann schalte Heizung auf Aus
  6. wenn ID: Aus (Trockner fertig = boolean = off!)
  7. dann aktiviere Automation wieder
alias: Heizung Bad aus - Trockner läuft
description: Stellt Heizung im Bad aus, wenn der Trockner läuft
trigger:
  - platform: time_pattern
    minutes: /1
  - platform: state
    entity_id:
      - input_boolean.trockner_lauft
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 0
    id: an
  - platform: state
    entity_id:
      - input_boolean.trockner_lauft
    to: "off"
    for:
      hours: 0
      minutes: 0
      seconds: 0
    id: aus
condition:
  - condition: state
    entity_id: climate.heizung_bad
    state: heat
action:
  - if:
      - condition: trigger
        id:
          - an
    then:
      - service: automation.turn_off
        metadata: {}
        data:
          stop_actions: true
        target:
          entity_id: automation.advanced_heating_control_badezimmer
      - service: climate.turn_off
        target:
          entity_id: climate.betterthermostat_bad
        data: {}
  - if:
      - condition: trigger
        id:
          - aus
    then:
      - service: automation.turn_on
        metadata: {}
        data: {}
        target:
          entity_id: automation.advanced_heating_control_badezimmer
mode: single

  • Das Zeitraster brauchst Du nicht, weil die Automatisierung schon durch den Input Boolean für den Trockner getriggert wird.
  • Wenn Du als Trigger Input Booleans verwendest, ist es sinnvoll, immer von on zu off bzw. off zu on einzugeben. Denn beim Neustart von HA ist ihr Status kurzzeitig unbekannt und wechselt dann zur aktuellen Einstellung. Ist der Ausgangsstatus im Trigger nicht definiert, kann es dann passieren, dass Deine Automatisierung geschaltet wird, ohne dass es vorgesehen ist.
  • Die Bedingung funktioniert so nicht, weil der physische Thermostat auf Auto steht. Dafür müsstest Du die BT-Entität verwenden. Allerdings würde dann auch nur die Hälfte funktionieren. Denn die Heizung ist zwar noch an, wenn der Trockner anfängt zu laufen, dann wird sie aber abgeschaltet. Wenn der Trockner dann ausgeht, trifft die Bedingung nicht mehr zu, und es passiert nichts. Du kannst die Bedingung mit der BT-Entität aber in die Wenn-dann-Aktion verlegen. So müsste es funktionieren:
alias: Heizung Bad aus - Trockner läuft
description: Stellt Heizung im Bad aus, wenn der Trockner läuft
trigger:
  - platform: state
    entity_id:
      - input_boolean.trockner_lauft
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 0
    id: an
  - platform: state
    entity_id:
      - input_boolean.trockner_lauft
    from: "on"
    to: "off"
    for:
      hours: 0
      minutes: 0
      seconds: 0
    id: aus
condition: []
action:
  - if:
      - condition: trigger
        id:
          - an
      - condition: state
        entity_id: climate.betterthermostat_bad
        state: heat
    then:
      - service: automation.turn_off
        metadata: {}
        data:
          stop_actions: true
        target:
          entity_id: automation.advanced_heating_control_badezimmer
      - service: climate.turn_off
        target:
          entity_id: climate.betterthermostat_bad
        data: {}
  - if:
      - condition: trigger
        id:
          - aus
    then:
      - service: automation.turn_on
        metadata: {}
        data: {}
        target:
          entity_id: automation.advanced_heating_control_badezimmer
mode: single
1 „Gefällt mir“

Oh super vielen Dank :+1: