Homeassistant does not see the thermostat via MQTT.
Opened this issue · 5 comments
Good afternoon I can't pair the thermostat with homeassistant via MQTT. My thermostat and settings in screenshots.
What did I miss, what did I do wrong?
I also tried installing another firmware from this topic: https://github.com/fashberg/WThermostatBeca/tree/master
with this firmware it connects to homeassistant, but does not transmit information about temperatures (set and actual).
@mistikdonbass what's your configuration on HA side ?
@mistikdonbass what's your configuration on HA side ?
Thanks for the quick response.
Judging by MQTT Explorer, it connects to HA and transfers data. But it does not appear on devices.
I didn't add anything to configuration.yaml.
What other settings need to be shown?
There is no auto discovery on this firmware so you must configure your MQTT climate entity manually. Here is some example code, but you need to adjust to your topics.
mqtt:
climate:
- name: Łazienka sterownik podłogowy
temperature_command_topic: "termostat_lazienka/thermostat/set/targetTemperature"
temperature_state_topic: "termostat_lazienka/thermostat/properties"
temperature_state_template: "{{ value_json['targetTemperature'] | round(1) }}"
current_temperature_topic: "termostat_lazienka/thermostat/properties"
current_temperature_template: "{{value_json['temperature'] | round(1) }}"
mode_state_topic: "termostat_lazienka/thermostat/properties"
mode_state_template: >
{% if value_json.deviceOn != true %}
off
{% elif value_json.schedulesMode == 'auto' %}
auto
{% else %}
heat
{% endif %}
modes:
- "heat"
- "auto"
- "off"
min_temp: 10
max_temp: 30
temp_step: 0.5
precision: 0.5
retain: true
There is no auto discovery on this firmware so you must configure your MQTT climate entity manually. Here is some example code, but you need to adjust to your topics.
Thanks a lot.
I already understood this and used a more complex config.
Works too.
mqtt: #Настройка термостата для бойлера
climate:
- name: Thermostat
unique_id: termostat
device:
configuration_url: http://192.168.1.166/config
manufacturer: Tuya
model: ME81AH
connections: [["mac", "E8: DB: 84:D1: EF:33"]]
temperature_command_topic: thermostat/thermostat/set
temperature_command_template: >
{{ {'targetTemperature':value} | to_json }}
temperature_state_topic: thermostat/thermostat/properties
temperature_state_template: >
{% if value_json is defined and value_json['targetTemperature'] is defined %}
{{ value_json['targetTemperature'] }}
{% endif %}
current_temperature_topic: thermostat/thermostat/properties
current_temperature_template: >
{% if value_json is defined and value_json['temperature'] is defined %}
{{ value_json['temperature'] }}
{% endif %}
mode_state_topic: thermostat/thermostat/properties
mode_state_template: >
{% if value_json is defined and value_json['deviceOn'] is defined %}
{% set deviceOn = value_json['deviceOn'] %}
{% else %}
{% set deviceOn = false %}
{% endif %}
{% if value_json is defined and value_json['schedulesMode'] is defined %}
{% set schedulesMode = value_json['schedulesMode'] %}
{% else %}
{% set schedulesMode = 'off' %}
{% endif %}
{% if deviceOn == true %}
{% if schedulesMode == 'auto' %}
auto
{% else %}
heat
{% endif %}
{% else %}
off
{% endif %}
action_topic: thermostat/thermostat/properties
action_template: >
{% if value_json is defined and value_json['systemMode'] is defined %}
{% set deviceOn = value_json['deviceOn'] %}
{% else %}
{% set deviceOn = false %}
{% endif %}
{% if value_json is defined and value_json['systemMode'] is defined %}
{% set systemMode = value_json['systemMode'] %}
{% else %}
{% set systemMode = 'off' %}
{% endif %}
{% if deviceOn == true %}
{% if systemMode == 'cool' %}
idle
{% elif systemMode == 'heat' %}
heating
{% endif %}
{% else %}
off
{% endif %}
mode_command_topic: thermostat/thermostat/set
mode_command_template: >
{% if value == 'auto' %}
{{ {'deviceOn':true,'schedulesMode':'auto'} | to_json }}
{% endif %}
{% if value == 'heat' %}
{{ {'deviceOn':true,'schedulesMode':'off'} | to_json }}
{% endif %}
{% if value == 'off' %}
{{ {'deviceOn':false,'schedulesMode':'off'} | to_json }}
{% endif %}
modes:
- "auto"
- "heat"
- "off"
temperature_unit: C
temp_step: 1
min_temp: 5
max_temp: 85
initial: 20
retain: true
qos: 0
Your proposed configuration makes more sense to me. But I don’t understand why the thermostat doesn’t turn off.
If you click on turn off.
The template you posted works better. I had a very basic one for a different thermostat which was only to serve as an example. This works better (I have installed ME81H just today so I was able to check)