We’re using Tibber as our electricity supplier — we have the Tibber Pulse reading our power usage and making it available in Home Assistant, through an integration.

But Tibber also controls our heat-pump, by interfacing a Sensibo Sky. Tibber’s smart heating control takes multiple factors into account; outside temperature, power price, thermal inertia. A clever algorithm, made by clever people — it works really well 🙂

I found an easy way to “hook into” this heat control, using a simple Home Assistant automation.

Table of contents

Prerequisites

For this to work; you obviously need Tibber to control some sort of heating device in your home. This device must also be integrated into Home Assistant — allowing you to “reach” the temperature set point value controlled by Tibber.

Home Assistant

Climate

We’re using the Sensibo Sky, which controls our heat-pump. Adding the sensibo climate platform, makes it available as a thermostat in Home Assistant.

Sensibo climate control in Home Assistant
Sensibo climate control in Home Assistant

Below is the configuration for the Sensibo and generic thermostat integrations. The generic thermostat simply connects a sensor and switch together; to control a heater, or air conditioning.

I’m using an Aqara temperature sensor and TP-Link HS100 smart plug, but you can use anything that can be integrated into Home Assistant.

climate:
  - platform: sensibo
    api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  - platform: generic_thermostat
    name: Play room
    heater: switch.playroom_heater
    target_sensor: sensor.playroom_temperature
    min_cycle_duration: 2
    cold_tolerance: 0.3
    hot_tolerance: 0

Automation

Now to connect the two climate integrations; the automation below is triggered when the set temperature is changed on the Sensibo. The new set temperature is then applied to the generic thermostat as well.

- id: '1638281776325'
  alias: Mirror temperature set point from Sensibo
  description: ''
  trigger:
  - platform: state
    entity_id: climate.heat_pump
    attribute: temperature
  condition: []
  action:
  - service: climate.set_temperature
    target:
      entity_id: climate.play_room
    data:
      temperature: '{{ state_attr(''climate.heat_pump'', ''temperature'') | float }}'
  mode: single
History from the generic thermostat in Home Assistant
History from the generic thermostat in Home Assistant

Ending thoughts

This was really easy to implement, but so very useful! We had a dumb convection heater, with a mechanical thermostat, that we didn’t use. With a cheap smart plug and some Home Assistant magic; it’s now a smart heater with a powerful controlling algorithm 👍

Mill convection heater connected to smart plug
Mill convection heater connected to smart plug