home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
73.91k stars 30.98k forks source link

Incomfort Integration suddenly not working #87660

Closed ankaboutobruni closed 1 year ago

ankaboutobruni commented 1 year ago

The problem

Today I changed the IP address of my Intergas Incomfort Gateway. I changed it in the configuration.yaml file, and then restarted. Suddenly all the entities weren't available anymore and they were all "restored".

I tried removing them all, and removing the integration, and then adding it again. No luck, it strangely only adds a second thermostat (one that isn't being used). But no other thermostats or entities are being created.

The only log details for Incomfort are these:

2023-02-07 21:38:14.998 DEBUG (MainThread) [incomfortclient] Gateway(hostname=192.168.1.101) instantiated.
2023-02-07 21:38:14.999 DEBUG (MainThread) [incomfortclient] _get(url=heaterlist.json, auth=REDACTED)
2023-02-07 21:38:16.727 DEBUG (MainThread) [incomfortclient] _get(url=heaterlist.json): response = {'heaterlist': ['000W00000', '000W00000', None, None, None, None, None, None]}
2023-02-07 21:38:16.727 DEBUG (MainThread) [incomfortclient] Heater(serial_no=000W00000) instantiated.
2023-02-07 21:38:16.728 DEBUG (MainThread) [incomfortclient] Heater(serial_no=000W00000) instantiated.
2023-02-07 21:38:16.728 DEBUG (MainThread) [incomfortclient] Gateway(192.168.1.101).heaters() = ['000W00000', '000W00000', None, None, None, None, None, None]
2023-02-07 21:38:16.728 DEBUG (MainThread) [incomfortclient] _get(url=data.json?heater=0, auth=REDACTED)
2023-02-07 21:38:17.385 DEBUG (MainThread) [incomfortclient] _get(url=data.json?heater=0): response = {'nodenr': 250, 'ch_temp_lsb': 168, 'ch_temp_msb': 24, 'tap_temp_lsb': 184, 'tap_temp_msb': 19, 'ch_pressure_lsb': 174, 'ch_pressure_msb': 0, 'room_temp_1_lsb': 108, 'room_temp_1_msb': 7, 'room_temp_set_1_lsb': 8, 'room_temp_set_1_msb': 7, 'room_temp_2_lsb': 255, 'room_temp_2_msb': 127, 'room_temp_set_2_lsb': 255, 'room_temp_set_2_msb': 127, 'displ_code': 126, 'IO': 0, 'serial_year': 0, 'serial_month': 0, 'serial_line': 0, 'serial_sn1': 0, 'serial_sn2': 0, 'serial_sn3': 0, 'room_set_ovr_1_msb': 0, 'room_set_ovr_1_lsb': 0, 'room_set_ovr_2_msb': 3, 'room_set_ovr_2_lsb': 132, 'rf_message_rssi': 27, 'rfstatus_cntr': 0}
2023-02-07 21:38:17.386 DEBUG (MainThread) [incomfortclient] Heater(000W00000).status() = {'display_code': 126, 'display_text': 'standby', 'fault_code': None, 'is_burning': False, 'is_failed': False, 'is_pumping': False, 'is_tapping': False, 'heater_temp': 63.12, 'tap_temp': 50.48, 'pressure': 1.74, 'serial_no': '000W00000', 'nodenr': 250, 'rf_message_rssi': 27, 'rfstatus_cntr': 0}
2023-02-07 21:38:17.386 DEBUG (MainThread) [incomfortclient] _get(url=data.json?heater=1, auth=REDACTED)
2023-02-07 21:38:18.178 WARNING (MainThread) [homeassistant.helpers.frame] Detected integration that called async_setup_platforms instead of awaiting async_forward_entry_setups; this will fail in version 2023.3. Please report issue to the custom integration author for hacs using this method at custom_components/hacs/__init__.py, line 177: hass.config_entries.async_setup_platforms(
2023-02-07 21:38:19.237 WARNING (MainThread) [hyundai_kia_connect_api.KiaUvoApiEU] Unsupported language: en-GB, fallback to en
2023-02-07 21:38:19.758 DEBUG (MainThread) [incomfortclient] _get(url=data.json?heater=1): response = {'nodenr': 237, 'ch_temp_lsb': 0, 'ch_temp_msb': 0, 'tap_temp_lsb': 0, 'tap_temp_msb': 0, 'ch_pressure_lsb': 0, 'ch_pressure_msb': 0, 'room_temp_1_lsb': 0, 'room_temp_1_msb': 0, 'room_temp_set_1_lsb': 0, 'room_temp_set_1_msb': 0, 'room_temp_2_lsb': 0, 'room_temp_2_msb': 0, 'room_temp_set_2_lsb': 0, 'room_temp_set_2_msb': 0, 'displ_code': 0, 'IO': 0, 'serial_year': 0, 'serial_month': 0, 'serial_line': 0, 'serial_sn1': 0, 'serial_sn2': 0, 'serial_sn3': 0, 'room_set_ovr_1_msb': 0, 'room_set_ovr_1_lsb': 0, 'room_set_ovr_2_msb': 0, 'room_set_ovr_2_lsb': 0, 'rf_message_rssi': 0, 'rfstatus_cntr': 0}
2023-02-07 21:38:19.758 DEBUG (MainThread) [incomfortclient] Heater(000W00000).status() = {'display_code': 0, 'display_text': 'opentherm', 'fault_code': None, 'is_burning': False, 'is_failed': False, 'is_pumping': False, 'is_tapping': False, 'heater_temp': 0.0, 'tap_temp': 0.0, 'pressure': 0.0, 'serial_no': '000W00000', 'nodenr': 237, 'rf_message_rssi': 0, 'rfstatus_cntr': 0}
2023-02-07 21:38:19.846 WARNING (MainThread) [homeassistant.config_entries] Config entry 'My home' for smartthings integration not ready yet: Internal Server Error (500): {"requestId": "DAB5DE3B-3F96-4544-8E00-8B4F591C547D", "error": {"code": "UnexpectedError", "message": "A non-recoverable error condition occurred.", "details": []}}; Retrying in background
2023-02-07 21:38:19.934 DEBUG (MainThread) [incomfortclient] Room(room_no=1) instantiated.
2023-02-07 21:38:19.935 DEBUG (MainThread) [incomfortclient] Room(room_no=1) instantiated.
2023-02-07 21:38:19.935 DEBUG (MainThread) [incomfortclient] Room(room_no=2) instantiated.
2023-02-07 21:38:19.983 DEBUG (MainThread) [incomfortclient] Room(2).status() = {'room_temp': 0.0, 'setpoint': 0.0, 'override': 0.0}

What version of Home Assistant Core has the issue?

2023.2.2

What was the last working version of Home Assistant Core?

2023.2.2

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Incomfort

Link to integration documentation on our website

https://www.home-assistant.io/integrations/incomfort

Diagnostics information

No response

Example YAML snippet

# Intergas Gateway for Heating Setup
incomfort:
  host: 192.168.178.10
  username: admin
  password: SECRET

Anything in the logs that might be useful for us?

2023-02-07 21:38:14.998 DEBUG (MainThread) [incomfortclient] Gateway(hostname=192.168.1.101) instantiated.
2023-02-07 21:38:14.999 DEBUG (MainThread) [incomfortclient] _get(url=heaterlist.json, auth=REDACTED)
2023-02-07 21:38:16.727 DEBUG (MainThread) [incomfortclient] _get(url=heaterlist.json): response = {'heaterlist': ['000W00000', '000W00000', None, None, None, None, None, None]}
2023-02-07 21:38:16.727 DEBUG (MainThread) [incomfortclient] Heater(serial_no=000W00000) instantiated.
2023-02-07 21:38:16.728 DEBUG (MainThread) [incomfortclient] Heater(serial_no=000W00000) instantiated.
2023-02-07 21:38:16.728 DEBUG (MainThread) [incomfortclient] Gateway(192.168.1.101).heaters() = ['000W00000', '000W00000', None, None, None, None, None, None]
2023-02-07 21:38:16.728 DEBUG (MainThread) [incomfortclient] _get(url=data.json?heater=0, auth=REDACTED)
2023-02-07 21:38:17.385 DEBUG (MainThread) [incomfortclient] _get(url=data.json?heater=0): response = {'nodenr': 250, 'ch_temp_lsb': 168, 'ch_temp_msb': 24, 'tap_temp_lsb': 184, 'tap_temp_msb': 19, 'ch_pressure_lsb': 174, 'ch_pressure_msb': 0, 'room_temp_1_lsb': 108, 'room_temp_1_msb': 7, 'room_temp_set_1_lsb': 8, 'room_temp_set_1_msb': 7, 'room_temp_2_lsb': 255, 'room_temp_2_msb': 127, 'room_temp_set_2_lsb': 255, 'room_temp_set_2_msb': 127, 'displ_code': 126, 'IO': 0, 'serial_year': 0, 'serial_month': 0, 'serial_line': 0, 'serial_sn1': 0, 'serial_sn2': 0, 'serial_sn3': 0, 'room_set_ovr_1_msb': 0, 'room_set_ovr_1_lsb': 0, 'room_set_ovr_2_msb': 3, 'room_set_ovr_2_lsb': 132, 'rf_message_rssi': 27, 'rfstatus_cntr': 0}
2023-02-07 21:38:17.386 DEBUG (MainThread) [incomfortclient] Heater(000W00000).status() = {'display_code': 126, 'display_text': 'standby', 'fault_code': None, 'is_burning': False, 'is_failed': False, 'is_pumping': False, 'is_tapping': False, 'heater_temp': 63.12, 'tap_temp': 50.48, 'pressure': 1.74, 'serial_no': '000W00000', 'nodenr': 250, 'rf_message_rssi': 27, 'rfstatus_cntr': 0}
2023-02-07 21:38:17.386 DEBUG (MainThread) [incomfortclient] _get(url=data.json?heater=1, auth=REDACTED)
2023-02-07 21:38:18.178 WARNING (MainThread) [homeassistant.helpers.frame] Detected integration that called async_setup_platforms instead of awaiting async_forward_entry_setups; this will fail in version 2023.3. Please report issue to the custom integration author for hacs using this method at custom_components/hacs/__init__.py, line 177: hass.config_entries.async_setup_platforms(
2023-02-07 21:38:19.237 WARNING (MainThread) [hyundai_kia_connect_api.KiaUvoApiEU] Unsupported language: en-GB, fallback to en
2023-02-07 21:38:19.758 DEBUG (MainThread) [incomfortclient] _get(url=data.json?heater=1): response = {'nodenr': 237, 'ch_temp_lsb': 0, 'ch_temp_msb': 0, 'tap_temp_lsb': 0, 'tap_temp_msb': 0, 'ch_pressure_lsb': 0, 'ch_pressure_msb': 0, 'room_temp_1_lsb': 0, 'room_temp_1_msb': 0, 'room_temp_set_1_lsb': 0, 'room_temp_set_1_msb': 0, 'room_temp_2_lsb': 0, 'room_temp_2_msb': 0, 'room_temp_set_2_lsb': 0, 'room_temp_set_2_msb': 0, 'displ_code': 0, 'IO': 0, 'serial_year': 0, 'serial_month': 0, 'serial_line': 0, 'serial_sn1': 0, 'serial_sn2': 0, 'serial_sn3': 0, 'room_set_ovr_1_msb': 0, 'room_set_ovr_1_lsb': 0, 'room_set_ovr_2_msb': 0, 'room_set_ovr_2_lsb': 0, 'rf_message_rssi': 0, 'rfstatus_cntr': 0}
2023-02-07 21:38:19.758 DEBUG (MainThread) [incomfortclient] Heater(000W00000).status() = {'display_code': 0, 'display_text': 'opentherm', 'fault_code': None, 'is_burning': False, 'is_failed': False, 'is_pumping': False, 'is_tapping': False, 'heater_temp': 0.0, 'tap_temp': 0.0, 'pressure': 0.0, 'serial_no': '000W00000', 'nodenr': 237, 'rf_message_rssi': 0, 'rfstatus_cntr': 0}
2023-02-07 21:38:19.846 WARNING (MainThread) [homeassistant.config_entries] Config entry 'My home' for smartthings integration not ready yet: Internal Server Error (500): {"requestId": "DAB5DE3B-3F96-4544-8E00-8B4F591C547D", "error": {"code": "UnexpectedError", "message": "A non-recoverable error condition occurred.", "details": []}}; Retrying in background
2023-02-07 21:38:19.934 DEBUG (MainThread) [incomfortclient] Room(room_no=1) instantiated.
2023-02-07 21:38:19.935 DEBUG (MainThread) [incomfortclient] Room(room_no=1) instantiated.
2023-02-07 21:38:19.935 DEBUG (MainThread) [incomfortclient] Room(room_no=2) instantiated.
2023-02-07 21:38:19.983 DEBUG (MainThread) [incomfortclient] Room(2).status() = {'room_temp': 0.0, 'setpoint': 0.0, 'override': 0.0}

Additional information

No response

home-assistant[bot] commented 1 year ago

Hey there @zxdavb, mind taking a look at this issue as it has been labeled with an integration (incomfort) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `incomfort` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Change the title of the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign incomfort` Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


incomfort documentation incomfort source (message by IssueLinks)

zxdavb commented 1 year ago

Hello, thanks for your report.

Have a look at these lines from your log file:

2023-02-07 21:38:16.727 DEBUG (MainThread) [incomfortclient] _get(url=heaterlist.json): response = {'heaterlist': ['000W00000', '000W00000', None, None, None, None, None, None]}
2023-02-07 21:38:16.727 DEBUG (MainThread) [incomfortclient] Heater(serial_no=000W00000) instantiated.

The boiler serial number is 000W00000, which is a sentinel value for a null boiler. It is not the serial number of your existing boiler.

The 'new' serial number is why the integration is creating a second thermostat.

The problem with the code is that it should be raising an exception with this sentinel value, rather than instantiating a boiler - I will address that issue in an update (but I do not currently have access to the hardware).

I don't know why the gateway is reporting the sentinel value, instead of your actual boiler's serial number - you need to address that - perhaps via the vendor's web site / app?

ankaboutobruni commented 1 year ago

I think I figured it out. As a last attempt late last night I put the gateway back to its original IP. I then remembered that that was actually in a different network, outside of my normal LAN, and now it's working again. So I'm now wondering whether port 80 might have been blocked inside my LAN but not on default in the network it's in now (default network of my router). I'll test again when I'm home tonight if it was port 80 that was not reachable, and if so, it'd be a good addition to the documentation (it mentions the port must be reachable but not the effect if it's not).

If you want access to my gateway for some updates, I'd be happy to assist and give you some limited access. Just message me.

zxdavb commented 1 year ago

There is a new version of the incomfort-client library that should address the above issue.

However, I am unable to test it using the LAN2RF hardware (for some months).

If anyone has the skills to test it: modify components/incomfort/manifest.json to include this line:

  "requirements": ["incomfort-client==0.5.0"]

If there are any issues, simply change it back to 0.4.4.

(see also: #82178)

zxdavb commented 1 year ago

Closing as per above.