Heating Set Points

Hi,

Would appreciate some help.

I have some new Z Wave TRVs that don’t report back a “call for heat” via means of the HVAC Action status. They are Aeotec TRVs with a Vera Hub.

Anyway, I need the “call to heat” to start my boiler, so I need to find another way of achieving this. This is my plan, and please suggest an alternative if there is a better way.

Start heating > capture current level > check against set point > if below set point > start script (that triggers a relay connected to the boiler.

If above set point > trigger script (that turns off relay connected to the boiler).

What I am getting stuck on is the automation flow. I want an automaton to run every 10 seconds, or whenever a current temperature update happens (either or). The automation then needs to check the current temperature vs it’s setpoint.

Any ideas?

Thanks.

Hi there…To trigger the automation every 10 second or with temperature update can be done with the following trigger.

trigger:
  - platform: time_pattern
    seconds: /10
  - platform: numeric_state
    entity_id: sensor.temperature_sensor

Hope it works or if you want more help, just share the automation yaml

Thanks,

Any idea how to do the following: -

If room temperature (measured) is less than sensor setpoint (so the target temperature) start script 1. Else, start script 2 (so this would happen if the room temperature is above the setpoint).

Thanks.

It will be much better if you are more specific.

What room sensor is it, what is the entity_id. What temperature is the limit.

You can create 2 automations. First with trigger template.

{{states('sensor.room_temperature') < states('sensor.temperature_sensor')}}```

2nd with trigger template

{{states('sensor.room_temperature') > states('sensor.temperature_sensor')}}

We could have combined it but without the full knowledge of the situations i feel safe to advise 2 seperate automations.

Here is my YAML: So the climate.living_room has a second entity_id which is “temperature” so i want to check to see if the current_temperture is below the “temperature” which is the set point.

Here is my YAML: Sorry it wont let me copy and paste here. So the climate.living_room has a second entity_id which is “temperature” so i want to check to see if the current_temperture is below the “temperature” which is the set point.

so you want to check 10th second of every minute that if the current_temperature attribute of the climate.living_room entity is less or more than the set temperature?
By the way which entity gives the set temperature or do you have a constant integer like 23 or 24 etc.

So the COPY TO CLIPBOARD button does not work?

So,

The climate.living_room has 2 entities, the first is “temperature” which is the user adjustable set point. This changes frequently.

The second entity is the “current_temperature”. This is the measured room temperature.

The automation needs to run every 10 seconds, and it then needs to check the “current_temperature” and check to see if it’s higher than the “temperature” entity. If it’s higher, the script fires. If it’s lower, the automation ends.

Thanks,

Yes, but the formatting is off completely.

You can paste the code between ``` this to keep formatting

Does the Generic Thermostat not do what you want?

Here:

alias: Heating Control Exmaple
description: ''
mode: single
trigger:
  - platform: time_pattern
    seconds: '10'
condition:
  - condition: and
    conditions:
      - condition: numeric_state
        entity_id: climate.living_room
        attribute: current_temperature
action:
  - service: script.front_bedroom_on
    data: {}

From what you have explained. This could work. Please try it

alias: Heating Controls
description: ''
mode: single
trigger:
  - platform: time_pattern
    seconds: /10
condition: []
action:
  - choose:
      - conditions:
          - condition: template
            value_template: >-
              {{state_attr('climate.living_room', 'current_temperature') | int <
              states('climate.living_room') | int}}
        sequence:
          - service: (put the actions you want with current_temperature is less than set_temperature)
            data: {}
      - conditions:
          - condition: template
            value_template: >-
              {{state_attr('climate.living_room', 'current_temperature') | int >
              states('climate.living_room') | int}}
        sequence:
          - service: (put the actions you want with current_temperature is more than set_temperature)
            data: {}
    default: []

I think I’d run a generic thermostat.
Have an automation copy the set point from the trv to the generic thermostat whenever it gets changed.
This way all the logic is done for you and more efficient than running automations every 10 seconds

1 Like

How would this then trigger a relay on and off, to start and stop the boiler?

Thanks.

I will try this later after work.

Thanks.

This is a copy paste of the example in the thermostat docs.

climate:
  - platform: generic_thermostat
    name: Study
    heater: input_boolean.relay_and_boiler   // changed
    target_sensor: climate.living_room       // changed, not sure if this needs some more changes
    min_temp: 15
    max_temp: 21
    ac_mode: false
    target_temp: 17
    cold_tolerance: 0.3
    hot_tolerance: 0
    min_cycle_duration:
      seconds: 5
    keep_alive:
      minutes: 3
    initial_hvac_mode: "off"
    away_temp: 16
    precision: 0.1

Now this will switch a boolean on off, have this boolean trigger the scripts.

Thanks, but adjusting this sensor would also need to update the TRVs target, so changing the generic thermostats temperature would need to update the climate.living_room / temperature entity.

Any ideas?