The developer of the Honeywell Evohome integration has started on the local integration using HGI-80. It will be very powerful and comprehensive when finished. And the thermostat itself doesn’t require cloud to work.
I just ordered one too. This one seems exactly what I need for a good price.
Can you tell my why you didn’t use the MQTT HVAC platform to control this? https://www.home-assistant.io/integrations/climate.mqtt/
The documentation also lacks information about the MQTT possibilities. Is it, for example, possible to change the heating mode from schedule to manual using MQTT? And is it possible to set the temperature on it, using MQTT?
Can you also tell me something about your configuration? Do you need automations/templates to get this working properly?
So, for the MQTT stuff, I have no idea. I’ve never bothered to set up Mosquitto or anything as nothing I have needs it. The web control panel for the relay does have MQTT settings in it, so I presume you can change temps, heating modes etc, but I haven’t actually done it.
As for the rest setup, my setup is below. Two rest sensors (relay on/off and the temp sensor value), two rest services (turn relay on/off), a switch that ties all the relay state and services together and then a climate.generic_thermostat. My setup uses a statistics sensor (flat_avg_temperature, the average of about 5-6 Zigbee temp sensors in various rooms) for the target temp of the thermostat, but you can just drop the temp sensor in there just fine. Once you have that all set up, it’s just the usual climate automation stuff (turn the heating off if no-ones home or the doors are open, set different temps for day and night, that sort of thing). There’s things like Schedy or Node Red for that.
binary_sensor:
- platform: rest
resource: http://192.168.0.10/control/relay.cgi
method: GET
name: Heating
value_template: '{{ value_json.relay1 }}'
sensor:
- platform: rest
resource: http://192.168.0.10/control/thermostat.cgi?param=state
name: Kitchen Temperature
value_template: '{{ ( value_json.temperature | float - 2.0 ) | round(1) }}'
device_class: temperature
unit_of_measurement: °C
rest_command:
relay_on:
url: "http://192.168.0.10/control/relay.cgi?relay1=1"
relay_off:
url: "http://192.168.0.10/control/relay.cgi?relay1=0"
switch:
- platform: template
switches:
heating:
friendly_name: Heating
value_template: >
{{states.binary_sensor.heating.state}}
turn_on:
service: rest_command.relay_on
turn_off:
service: rest_command.relay_off
climate:
- platform: generic_thermostat
name: Thermostat
heater: switch.heating
target_sensor: sensor.kitchen_temperature
Edit: Ah, I’ve just reread your post. The scheduler on the relay is intended to be standalone, I personally moved all the scheduling duties over to HA with a bunch of automations. If you do that, it’s much easier to do device_tracker/door sensor type things, you just set the relay to manual mode and interact with it through a generic_thermostat.
This is what I have running for 6 months now. It’s cheap and can do everything the more expensive thermostats can do as well! Temperature changes in zones based on presence, time etc.
Thanks a lot for taking the time to post this!
Yesterday I received the Openenergymonitor WiFi thermostat and I used your information to get it working. I also experimented with the MQTT and got that working too. So I decided to rely on that, instead of the rest commands.
With NodeRED I’m changing temps based on our presence. I also like the idea of the open doors. Do you simply turn off the thermostat when a door is open? What if a door only opens for a few seconds to let someone through?
My place has standard UK central heating, so no zoned heating or anything cool. I’ve added door sensors to the external doors and an automation that just turns the thermostat off if either of them is open. It only updates every 60 secs, so quick open/closes are unlikely to be caught. No point running the radiators full blast if it’s 5 degrees outside and the door is left open…
I’ve listed my two template sensors and the two really basic automations that do everything heating related in my set up.
automation:
- id: heatingtempschedule
alias: Heating Temperature Schedule
trigger:
- entity_id: sensor.heating_schedule_temperature
platform: state
condition: []
action:
service: climate.set_temperature
entity_id: climate.thermostat
data_template:
temperature: "{{ states('sensor.heating_schedule_temperature') | float }}"
- id: heatingmodeschedule
alias: Heating Mode Schedule
trigger:
- entity_id: sensor.heating_schedule_mode
platform: state
condition: []
action:
service: climate.set_hvac_mode
entity_id: climate.thermostat
data_template:
hvac_mode: "{{ states('sensor.heating_schedule_mode') }}"
sensor:
- platform: template
sensors:
heating_schedule_temperature:
entity_id: sensor.time
value_template: >-
{% set default_temp = states('input_number.heating_night_temperature') %}
{% set now_timestamp = (now().second + (now().minute * 60) + (now().hour * 3600)) %}
{% if state_attr('input_datetime.heating_morning_time', 'timestamp') <= now_timestamp < state_attr('input_datetime.heating_night_time', 'timestamp') %}
{% set default_temp = states('input_number.heating_morning_temperature') %}
{% endif %}
{% if is_state('group.people', 'not_home') %}
{% set default_temp = "6" %}
{% endif %}
{{ default_temp }}
friendly_name: Heating Schedule Temperature
unit_of_measurement: °C
device_class: temperature
heating_schedule_mode:
value_template: >-
{% set default_mode = "heat" %}
{% if is_state('binary_sensor.back_door', 'on') %}
{% set default_mode = "off" %}
{% endif %}
{% if states('sensor.outside_temperature') | float + 1 >= states('sensor.heating_schedule_temperature') | float %}
{% set default_mode = "off" %}
{% endif %}
{{ default_mode }}
friendly_name: Heating Schedule Mode
input_datetime:
heating_morning_time:
name: Heating Morning Time
has_date: false
has_time: true
heating_night_time:
name: Heating Night Time
has_date: false
has_time: true
input_number:
heating_morning_temperature:
name: Heating Morning Temperature
initial: 18
min: 0
max: 32
step: 0.5
heating_night_temperature:
name: Heating Night Temperature
initial: 12
min: 0
max: 32
step: 0.5
I’m going to buy a tado Wired Smart Thermostat, may you confirm that is still working fine through homekit controller?
As far as I know it still works.
I bought a tado V3+ thermostat and a smart radiator and then both connected to HA by homekit controller as mentioned above. After some days I can say they work well. I’m using home assistant for automation and scheduler, leaving the temp in tado app unchanged. Now I’m working to a method to reproduce the smart heating feature of the tado app, using derivative sensor to calculate a heating time to achieve a desiderate temp at a desidered hour.