Zone.home numeric_state broke my heating

Hi,

I created an automation based on zone.home numeric_state that changed my heating if it was below 1 (empty) and above 0 (Full) but this properly stuffed up my heating and I need to find a better way of doing this.

I had it set that if the zone numeric_state is above 0 then change the temp to 18 and the hvac_mode to auto. This worked as expected and I was really quite proud with myself for a very short period of time. What then happened is my heating wouldn’t fire and despite Hive showing a green light for heat, the boiler had the error “no call for heat”.

No matter how high or low I turned the thermostat, even if it was above the current temp ot wouldn’t fire and the boiler wouldn’t run. I think what was happening is it was set to 18 and wouldn’t change because that’s what my climate.set_temperature was set to. But I’m not sure.

What I think need to do instead is only do this when the numeric_state changes rather than based on the numeric state value. Does this make sense and am I on the right track?

Thanks,

This is my automation:

alias: Heating based on people in house
description: ""
trigger:
  - platform: numeric_state
    entity_id: zone.home
    below: "1"
    id: Empty
  - platform: numeric_state
    entity_id:
      - zone.home
    id: Full
    above: "0"
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Empty
        sequence:
          - service: climate.set_temperature
            data:
              temperature: 16
            target:
              entity_id: climate.thermostat
          - service: climate.set_hvac_mode
            target:
              entity_id: climate.thermostat
            data:
              hvac_mode: auto
      - conditions:
          - condition: trigger
            id:
              - Full
        sequence:
          - service: climate.set_temperature
            data:
              temperature: 18
            target:
              entity_id: climate.thermostat
          - service: climate.set_hvac_mode
            target:
              entity_id: climate.thermostat
            data:
              hvac_mode: auto
mode: single

That is already what the trigger is doing. Numeric state triggers require the state to change in such a way as to cross the defined threshold. For example, let’s take your “Empty” trigger by itself… once zone.home’s state is above 0 that trigger will not fire again until the state changes back to 0, then changes again to a value above 0.

Thanks,

so the trigger fires once when the state changes but the changes made aren’t persistent? In that if I change the thermostat temperature manually or via a schedule change within Hive or in HA they should come in to effect and work.

I wasn’t seeing this. I was seing my Hive heating controller, HA & Hive thermostat all displaying the changed temps. I was seeing the Hive boiler controller turn on with a green heating light but it wasn’t calling for heat and my boiler didn’t come on.

Disabling the automation fixed the issues and the heating has worked since. Very odd.