emsesp / EMS-ESP32

ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps
https://emsesp.github.io/docs
GNU Lesser General Public License v3.0
589 stars 100 forks source link

Loosing entity boiler_wwcomfort #581

Closed sweetpants closed 2 years ago

sweetpants commented 2 years ago

Bug description Coming from the HA Nefit easy integration i purchased the EMS-ESP32S gateway running version 3.4.1 and am very happy with it except for one thing.

The number of entities discovered varies from 86 to 87. Sometimes the entity wwcomfort is there and the next moment it's gone making the entity unavailable in HA now and then.

Steps to reproduce just let HA MQTT discover the device and add all to HA will show this issue

Screenshots Selection_009

Selection_010

Additional context

HA log shows the discovery of the device and later it's removed again

2022-07-21 12:02:57 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: select ems-esp boiler_wwcomfort

2022-07-21 12:03:25 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'wwcomfort' when rendering '{{value_json.wwcomfort}}' 2022-07-21 12:03:25 ERROR (MainThread) [homeassistant.components.mqtt.select] Invalid option for select.boiler_dhw_comfort: '' (valid options: ['hot', 'eco', 'intelligent'])

2022-07-21 12:03:56 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: select ems-esp boiler_wwcomfort, sending update 2022-07-21 12:03:56 INFO (MainThread) [homeassistant.components.mqtt.mixins] Got update for entity with hash: ('select', 'ems-esp boiler_wwcomfort') '{}' 2022-07-21 12:03:56 INFO (MainThread) [homeassistant.components.mqtt.mixins] Removing component: select.boiler_dhw_comfort

Device Informnation { "type": "settings", "System": { "version": "3.4.1" }, "Network": { "ssid": "WLHS-SECURE", "password": "", "hostname": "ems-esp", "static_ip_config": true, "enableIPv6": false, "bandwidth20": false, "tx_power": 20, "nosleep": true, "enableMDNS": false, "local_ip": "192.168.24.235", "gateway_ip": "192.168.24.254", "subnet_mask": "255.255.255.0", "dns_ip_1": "192.168.24.240" }, "AP": { "provision_mode": 1, "ssid": "ems-esp", "password": "ems-esp-neo", "channel": 1, "ssid_hidden": true, "max_clients": 4, "local_ip": "192.168.4.1", "gateway_ip": "192.168.4.1", "subnet_mask": "255.255.255.0" }, "MQTT": { "enabled": true, "host": "192.168.24.250", "port": 1883, "base": "ems-esp", "username": "mqtt", "password": "", "client_id": "ems-esp", "keep_alive": 60, "clean_session": true, "max_topic_length": 128, "publish_time_boiler": 0, "publish_time_thermostat": 1, "publish_time_solar": 0, "publish_time_mixer": 0, "publish_time_other": 10, "publish_time_sensor": 0, "mqtt_qos": 0, "mqtt_retain": false, "ha_enabled": true, "nested_format": 1, "discovery_prefix": "homeassistant", "publish_single": false, "publish_single2cmd": false, "send_response": false }, "NTP": { "enabled": true, "server": "192.168.24.254", "tz_label": "Europe/Amsterdam", "tz_format": "CET-1CEST,M3.5.0,M10.5.0/3" }, "OTA": { "enabled": true, "port": 8266, "password": "ems-esp-neo" }, "Security": { "jwt_secret": "ems-esp-neo", "users": [ { "username": "admin", "password": "*****", "admin": true }, { "username": "harrys", "password": "****", "admin": true } ] }, "Settings": { "tx_mode": 1, "ems_bus_id": 11, "syslog_enabled": false, "syslog_level": 9, "trace_raw": false, "syslog_mark_interval": 0, "syslog_host": "192.168.24.240", "syslog_port": 514, "master_thermostat": 0, "shower_timer": true, "shower_alert": true, "shower_alert_coldshot": 10, "shower_alert_trigger": 7, "rx_gpio": 23, "tx_gpio": 5, "dallas_gpio": 18, "dallas_parasite": false, "led_gpio": 2, "hide_led": false, "low_clock": false, "telnet_enabled": false, "notoken_api": false, "readonly_mode": false, "analog_enabled": false, "pbutton_gpio": 0, "solar_maxflow": 30, "board_profile": "S32", "fahrenheit": false, "bool_format": 1, "bool_dashboard": 1, "enum_format": 1, "weblog_level": 6, "weblog_buffer": 50, "weblog_compact": true, "phy_type": 0, "eth_power": 0, "eth_phy_addr": 0, "eth_clock_mode": 0 } }

Not sure what is happening here as i am just starting to ute this EMS gateway over the Nefit integration

Regards, Harry

sweetpants commented 2 years ago

Tested EMS-ESP Version, v3.4.2b3, same problem

proddy commented 2 years ago

EMS-ESP will remove entities (also from HA) when they drop off the EMS bus feed to avoid errors in HA because the info in boiler_data/thermostat_data is missing. But they will be added back when they get re-discovered.

How often do you lose wwcomfort? does it come back? what does the EMS-ESP logs say?

MichaelDvP commented 2 years ago

Yes, there is an issue in handling wwComfort when reading parts of telegram 0x33 without this value. I'll make a fix. @proddy see here Could we wait for completing the AM200 and EM10 changes, or do you want add this fix earlier? @sweetpants You can try with this dev build

proddy commented 2 years ago

Yes, there is an issue in handling wwComfort when reading parts of telegram 0x33 without this value. I'll make a fix. @proddy see here Could we wait for completing the AM200 and EM10 changes, or do you want add this fix earlier? @sweetpants You can try with this dev build

ah great find @MichaelDvP. You can do a PR now or wait, up to you. I'm sure sweetpants (!) can use the build you linked to in the time being

sweetpants commented 2 years ago

@MichaelDvP, i have installed the Development Build v3.4.2b4, see what happens. At first glance it looks better now. @proddy , it used to change/disappear every few minutes.

When subscribing to the ems-esp/boiler_data_ww topic i now always get a value for wwcomfort.

Great job guys, thanks a lot