How I have made my dumb heating smarter

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:

  1. It’s not that smart - it doesn’t actually know if the heating is on or not, so can get out of sync.
  2. 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
2 Likes

Great idea and I’d never seen that gadget before!

My thermostat doesn’t have a boost function, so I’d have to set it to repeatedly press the up arrow to get it to fire up, then another to press down repeatedly to turn it off.
I’m looking at bypassing the thermostat/programmer completely with a Sonoff wired into the boiler thermostat wiring itself, just need to work out the wiring setup I have…

Be very very careful with that sonoff. External fuse. Watch total current. Don’t blow up your boiler or your sonoff.

If that red led stays on to say the builder is on, can’t you get a light sensor and tape it over it, so I can tell if it’s running.

I did that with my washing machine door locker led.

Interesting idea!
What sensor did you have?

I made myself another Bruh sensor (but using the awesome esphomelib.com project) just without the leds, DHT22 and pir sensor. I then use that to see if the LED is on as the LDR is in front of the door lock LED

I have to say that at the moment this isn’t being very reliable. I quite regularly have automations fire, but the switch doesn’t activate. :frowning:

Reliability is definitely a desirable trait of heating control. It might be worth looking at the low cost wifi thermostats (e.g. Floureon) that go for < £40 on amazon that have Home Ass. support.
Winter is coming.

Do you have any more info / links on this. I’m struggling to see a supported component, and Flouron seem to have a plethora of components on Amazon.

I was thinking of one like this. It looks like the component is still a ‘custom’ component for now. In that thread people seem to be happy with it and a PR has been requested for official integration.

Oh yes, So I’ve read… there isnt much of a draw on the thermostat wires though so should be fine. I’ll still be using a fuse though regardless…better safe than sorry…

Do you need the Hub to connect it to Hassio? because i only need 1 and £40 for a hub for 1 device is pretty steep…