How HA is helping heat my water for free

(Free in third party energy costs, anyway)

I had Solar panels fitted a month ago. At the time we discussed using excess to heat water, directly from the inverter but there was no immersion heater fitted to my tank and the installer wasn’t keen on getting into that. (And having fitted it myself now, I totally understand why, fitting the element was a tank-out pig of a job that took most of a day)

Items:

  • The Inverter and Battery and GivEnergy systems are integrated into my HA setup thanks to cdpuk’s integration, which works perfectly.
  • A low power 1kw 27" top-mounted immersion element. Wired to:
  • A TPLink MiniKasa smart socket. (wifi) The socket is rated for 13a and by choosing a low power immersion (they’re normally 3kw for fixed wiring) I’m keeping load on that around 5a, and the switch is not getting warm. I would be more concerned about load with an unbranded or low quality switch.
  • A Onewire temperature sensor on the outside of the hot water tank. Have also used Aqara sensors for this.
  • Existing Home Assistant setup. Extensive.

Cost: Around £100 (plus 7.7k for the solar install)

And just two simple automations:

  1. If the system is sending >1200 watts to the grid for more than 5 minutes and the temperature of the tank is <60c: Turn on socket.
  2. If sending <100w to the grid for more than 3 minutes or temp >65c, turn off the switch. (It’s also turned off at sunset as a backup)

It’s working great. The system satisfies my house needs with two of us working, then fills my battery and when that’s full (around midday), switches to heating my water. My LPG boiler hasn’t had to be used since I fitted it even though it’s been quite cloudy here.

5 Likes

Photos please! I am curious to see your setup.

Do you have some kind of fail safe to stop the heater in case your hass instance crashes?

Yep - good question, and this was a concern. I am keen not to rely totally on Home Assistant’s automation, the server that’s running on, the temperature sensor, wired network, onewire, wifi and everything else in that chain. It’s just too fragile to only depend upon that for something that is potentially dangerous.

The 1kw immersion has TWO safety thermostats built-in. One that’s factory set at 90’ and one that’s homeowner set, which I have at 75’c. These things are generally designed to be plugged in on a timer switch, or even left on all the time, so they’re pretty rugged.

I’ve also tested that thermostat is working. Yesterday was a very sunny day and the tank heated up to 75’c and the immersion stopped heating. I knew this because I’m monitoring power on that socket too (via a HS110) so I could see the draw drop from 1066watts to 0. (Plus the temperature sensor stopped getting warmer)

1 Like

Sure thing!

Wifi socket.

Tank. (Non smart temp sensor for wife, trad thermostat for boiler)

Top of immersion element showing both thermostats (they have long tubes going down into the tank). One is factory set, the other I can adjust. They’re wired in series so either can cut power. There’s a cap goes over the top of this normally.

Some grafana outputs. HW Tank is under-reading as the sensor is fairly low in the tank and the immersion heats top-down much more so than the boiler.

Close up of hw temps. Steep climb left is boiler powered, rest are solar only.

Hello!
I’m interested in how you manage all the loads : is this through automation only or through scripts ?
Can you please share it ?

Certainly!

I have two automations, one to turn on when exported power is more than 1100w and one to turn off when it drops below for two minutes (to ensure my having a cup of tea doesn’t trigger it to turn off and to reduce hysterisis)

I’ve put the code below - feel free to ask any questions.

On:

alias: "Heat: Excess Solar to Hot Water (ON)"
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.grid_export_power
    for:
      hours: 0
      minutes: 3
      seconds: 0
    above: "1100"
condition:
  - type: is_value
    condition: device
    device_id: b8905f0f327cafdd2b51d220be47b211
    entity_id: sensor.hw_tank
    domain: sensor
    below: 68
  - condition: device
    type: is_off
    device_id: ff56b2126dd16c8ba1933aa9e852c905
    entity_id: switch.minikasa7
    domain: switch
action:
  - type: turn_on
    device_id: ff56b2126dd16c8ba1933aa9e852c905
    entity_id: switch.minikasa7
    domain: switch
  - service: telegram_bot.send_message
    data:
      message: Solar power now heating hot water
    enabled: false
mode: single

Off:

alias: "Heat: Excess Solar to Hot Water (OFF)"
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.grid_export_power
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: "200"
  - type: value
    platform: device
    device_id: b8905f0f327cafdd2b51d220be47b211
    entity_id: sensor.hw_tank
    domain: sensor
    above: 70
    for:
      hours: 0
      minutes: 1
      seconds: 0
condition:
  - condition: device
    type: is_on
    device_id: ff56b2126dd16c8ba1933aa9e852c905
    entity_id: switch.minikasa7
    domain: switch
    for:
      hours: 0
      minutes: 3
      seconds: 0
action:
  - type: turn_off
    device_id: ff56b2126dd16c8ba1933aa9e852c905
    entity_id: switch.minikasa7
    domain: switch
  - service: telegram_bot.send_message
    data:
      message: Solar power no longer heating hot water
    enabled: false
mode: restart

Many thanks!
This mean that this condition isn’t met until your battery is full ?
if yes, much more clear for me :wink:

That’s right, yes The priority is to use all the power and not send any back to the grid, because I only get very little from that. The water heating is normally done by LPG boiler, which comes on late afternoon. But in the summer, it doesn’t need to if it has been a sunny day and this system has already heated the water.

Over the past month it has been grey and rainy almost every day here in the UK so it has only filled the battery and started heating the water a few times, and not for long.