Achronite / mqtt-energenie-ener314rt

MQTT interface for Energenie ENER314-RT add-on board for the Raspberry Pi, designed for use by Home Assistant.
MIT License
13 stars 5 forks source link

Link underlying heating/boiler 'state' to the state of eTRV #91

Open Achronite opened 3 months ago

Achronite commented 3 months ago

This change would introduce the capability to link the underlying state of the heating system (e.g. 'heating', 'off') to the state of radiator valve.

It could work initially by getting the boiler status from a linked MiHome thermostat (using act_t) and using config.json.

But support for other smart system integration (e.g. Wiser, Tapo, Nest) system setting should be investigated and implemented if possible.

genestealer commented 3 months ago

My Setup for Smart Heating

I'm happy to help with testing! Here's my current heating system setup:

Nest Controls The Nest thermostat communicates with the boiler using OpenTherm. This allows the Nest to:

The flow temperature is determined by several factors:

Nest The Nest is located in the hallway, where the radiator is always off. This means the Nest might not accurately reflect the actual temperature in heated rooms.

However, I have integrated the Nest thermostat with Home Assistant as a climate entity, allowing for more granular control. I don't use the scheduling function on the Nest itself, relying entirely on Home Assistant for a more sophisticated "away" mode and other automations.

Room Control with eTRVs Each room has an electronic thermostatic radiator valve (eTRV) that can be controlled through Google Assistant via Google Home speakers or displays. This allows for individual room temperature adjustments. I also control the "Nest" (hallway thermostat) through this method, effectively turning the boiler on and off.

Current Manual Operation Currently, all eTRVs are set to "auto" with a base temperature of 8°C. To heat a specific room, I manually adjust the eTRV temperature to the desired level (e.g., from 16°C to 18°C).

I also need to manually adjust the Nest thermostat to a slightly higher temperature (0.5°C to 1°C) than the current reading (e.g., Nest reading 17°C, adjust to 17.5°C-18°C) to trigger the boiler to turn on and heat the room.

Automation My plan is to leverage advanced scheduling add-ins within Home Assistant. This will enable me to create individual room temperature schedules ranging from 8°C to 18°C, depending on the time of day.

I plan to create automations in Home Assistant that monitor the requested eTRV setpoints and actual room temperatures. These automations could potentially incorporate data from additional room temperature sensors. When the room temperature falls below the eTRV setpoint by a specific hysteresis value (between 0.5°C and 1°C, to be determined), the automation would trigger.

However, due to OpenTherm communication, simply "turning on" the boiler isn't possible. Instead, the automation would need to adjust the Nest setpoint to a specific value ("x") above the current room temperature.

Calculating "x" for Optimal Flow Temperature I plan to calculate "x" as a weighted average based on the delta temperature values from all eTRVs in rooms requesting heat (i.e., rooms where the actual temperature is lower than the eTRV setpoint). Essentially, a larger delta (greater difference between room temperature and desired temperature) would result in a higher "x" value. This, in turn, would signal the Nest to set a higher water flow temperature, allowing for faster room heating. For example, a 1°C delta might trigger a 40°C flow temperature, while a 10°C delta could result in a 50°C or 60°C flow temperature.

Achronite commented 3 months ago

Does the Nest report the boiler flow and return temperatures? It does on the Wiser, and the individual Wiser TRVs 'call for heat' when needed.

What is tricky to do, and similar to your use case, is integrating with the energenie eTRVs; ideally I need them to 'call for heat' too; I guess I could do a similar thing with my Wiser hallway room stat; or use 'boost' mode to manually switch on the boiler (but it will boost all by the looks of things).

It's a shame we couldn't fudge an eTRV 'call for heat' to operate with our smart boiler systems... Do you know what energenie does with it's Nest integration?

genestealer commented 3 months ago

Hi @Achronite I can see the flow and return temperatures on the boiler's built in display, but not on any Google API or Nest interface.

That's cool you can see those temperatures, do you mean your Wiser is also connected via OpenTherm? I have thought about buying/building my own OpenTherm controller.

The Energenie Nest integration, not sure what it used to do, but it does nothing anymore, possibly because Nest's servers shut down a while ago and moved to Google.

Achronite commented 3 months ago

That's cool you can see those temperatures, do you mean your Wiser is also connected via OpenTherm? I have thought about buying/building my own OpenTherm controller.

Yes it is connected only via OpenTherm. I went for Wiser after researching on the HA forums.

The Energenie Nest integration, not sure what it used to do, but it does nothing anymore, possibly because Nest's servers shut down a while ago and moved to google

That's a shame; it would have been good to know how this worked.

genestealer commented 3 months ago

@Achronite

I think I will get one of those ESP8266 to Opentherm converters, so I can "spy" on the Nest-to-boiler data.