I have a fairly standard heating system (UK) in that my boiler fires up at pre-programmed times to heat the radiators.
I know I could have purchased Hive etc, but I wanted to make this a little smarter, whilst keeping the costs down.
I purchased a smart button pusher here, which integrates directly with Hassio. The pusher has been stuck on to the heating controller allowing it to press the +1hr heating button.
There are a couple of annoyances with this:
- It’s not that smart - it doesn’t actually know if the heating is on or not, so can get out of sync.
- As it’s pressing a +1hr button the boiler auto switches off after one hour. I have had to create an automation to turn it off after 50mins so that hassio knows the state of the boiler.
Video of switchbot in action.
I see lots of additional features to be added too:
a) holiday mode
b) early bird mode
c) heating on when we get into village
Here is my code (fairly basic so far)
- id: 'Heating_home_day_on'
alias: 'Heating Home Day On'
trigger:
- platform: numeric_state
entity_id: sensor.house_temperature
below: '20'
for:
minutes: 15
condition:
- condition: time
after: '07:00:00'
before: '22:00:00'
- condition: state
entity_id: group.family
state: 'home'
- condition: template
value_template: '{{ (as_timestamp(now()) - as_timestamp(states.switch.boiler_bot.attributes.last_triggered | default(0)) | int > 3720)}}'
action:
- service: homeassistant.turn_on
entity_id: switch.boiler_bot
## Timers ##
## Heating timer Home ##
- id: 'Heating_timer'
alias: 'Heating Timer'
trigger:
- platform: time
at: '06:00:00'
- platform: time
at: '08:00:00'
- platform: time
at: '12:00:00'
- platform: time
at: '15:00:00'
- platform: time
at: '17:00:00'
- platform: time
at: '18:30:00'
condition:
- condition: state
entity_id: group.family
state: 'home'
- condition: numeric_state
entity_id: sensor.house_temperature
below: 23
# - condition: template
# value_template: '{{ (as_timestamp(now()) - as_timestamp(states.switch.boiler_bot.attributes.last_triggered | default(0)) | int > 3720)}}'
action:
- service: homeassistant.turn_on
entity_id: switch.boiler_bot
- id: 'Heating_timer_away'
alias: 'Heating Timer Away'
trigger:
- platform: time
at: '06:00:00'
- platform: time
at: '08:00:00'
- platform: time
at: '12:00:00'
- platform: time
at: '15:00:00'
condition:
- condition: state
entity_id: group.family
state: 'not_home'
- condition: numeric_state
entity_id: sensor.house_temperature
below: 16
# - condition: template
# value_template: '{{ (as_timestamp(now()) - as_timestamp(states.switch.boiler_bot.attributes.last_triggered | default(0)) | int > 3720)}}'
action:
- service: homeassistant.turn_on
entity_id: switch.boiler_bot
- id: 'heating_dumb_off'
alias: 'Heating Dumb Off'
trigger:
- platform: state
entity_id: switch.boiler_bot
to: 'on'
for:
minutes: 50
condition: []
action:
- service: homeassistant.turn_off
entity_id: switch.boiler_bot
- id: 'heating_hot_house'
alias: 'Heating Hot House Turn Off'
trigger:
- platform: numeric_state
entity_id: sensor.house_temperature
below: '26'
for:
minutes: 10
condition:
- condition: state
entity_id: switch.boiler_bot
state: 'on'
action:
- service: homeassistant.turn_off
entity_id: switch.boiler_bot