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

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

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

Last commit 2024-04-05, with message: Tag cleanup.