core icon indicating copy to clipboard operation
core copied to clipboard

Lyric Honeywell integration - fails with leak detector sensors

Open tskirvin opened this issue 9 months ago • 13 comments

The problem

When trying to add Lyric Honeywell integration, it fails for the WLD3 water leak sensor. This appears to be an ongoing problem, based on the device not providing a macID (it instead offers a deviceID, which looks like it should be on all items). It sure feels like a simple try statement around the two calls to macID would solve this?

This is probably a repeat of 88471 (and 52528 before that), but I can't re-open that.

What version of Home Assistant Core has the issue?

core-2024.4.3

What was the last working version of Home Assistant Core?

(none)

What type of installation are you running?

Home Assistant Container

Integration causing the issue

lyric

Link to integration documentation on our website

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

Diagnostics information

2024-05-12 19:25:35.876 ERROR (MainThread) [homeassistant.components.climate] Error adding entity None for domain climate with platform lyric
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 7
50, in _async_add_entity
    device = dev_reg.async_get(self.hass).async_get_or_create(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/device_registry.py", line 6
57, in async_get_or_create
    connections = _normalize_connections(connections)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/device_registry.py", line 1
224, in _normalize_connections
    (key, format_mac(value)) if key == CONNECTION_NETWORK_MAC else (key, value)
          ^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/device_registry.py", line 3
79, in format_mac
    if len(to_test) == 17 and to_test.count(":") == 5:
       ^^^^^^^^^^^^
TypeError: object of type 'NoneType' has no len()

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

Sample json from the logs of a particular water sensor:

{'devices': [{'waterPresent': False, 'currentSensorReadings': {'time':          '2024-05-12T12:46:18', 'temperature': 20.85, 'humidity': 57.7}, 'currentAlarms':[], 'lastCheckin': '2024-05-12T12:46:20', 'lastDeviceSettingUpdatedOn':         '0001-01-01T00:00:00', 'batteryRemaining': 29, 'isRegistered': True,            'hasDeviceCheckedIn': True, 'isDeviceOffline': False, 'firstFailedAttemptTime': '0001-01-01T00:00:00', 'failedConnectionAttempts': 0, 'wifiSignalStrength': -48,'time': '2024-05-12T12:46:19', 'deviceClass': 'LeakDetector', 'deviceType':     'Water Leak Detector', 'deviceID': 'a481b5a7-47cf-4a68-9374-b181b7f55452',      'deviceInternalID': 316664, 'userDefinedDeviceName': 'Laundry', 'backend': {},  'isAlive': True, 'isUpgrading': False, 'isProvisioned': True, 'deviceSettings': {'temp': {'high': {'limit': 37}, 'low': {'limit': 7}}, 'humidity': {'high':     {'limit': 70}, 'low': {'limit': 20}}, 'userDefinedName': 'Laundry',             'buzzerMuted': False, 'checkinPeriod': 24, 'currentSensorReadPeriod': 60},      'service': {'mode': 'Up'}, 'deviceRegistrationDate':
'2017-07-06T20:52:20.1266667', 'deviceVariant': 'WLD3'}]}

tskirvin avatar May 13 '24 01:05 tskirvin