Git Product home page Git Product logo

ha-homie's Introduction

Issues GPL License Homie HA LinkedIn

HA Homie

Homie integration for Home Assistant

Autodiscover and/or manual Homie devices configuration


About The Project

This HomeAssistant integration is born (and maybe will dead) as University project. The project was started from the old, abandoned and closed issue Compatibility with Home Assistant MQTT Discovery.

Getting Started

Installation

Download the zip from Code/Download ZIP and uncompress the homie folder in the HA custom_components directory:

cd YOUR_HA_CONFIG_DIRECTORY		# same place as configuration.yaml
mkdir -p custom_components/homie
unzip ha-homie-master.zip 
mv ha-homie-master/homie custom_components
rm ha-homie-master.zip

Alternatively, you can install the current GitHub master version by cloning and copying:

mkdir SOME_LOCAL_WORKSPACE
cd SOME_LOCAL_WORKSPACE
git clone https://github.com/elbowz/ha-homie.git
mkdir -p YOUR_HASS_CONFIG_DIRECTORY/custom_components
cp -r ha-homie/homie YOUR_HASS_CONFIG_DIRECTORY/custom_components

Restart Home assistant

tip: if you have some Homie devices in your network, you should already see the discovery tile in home assistant, that advice to configure this integration

Configuration

Go to the Integrations menu in the Home Assistant Configuration UI and add Homie from there.

Alternatively, add homie: to <config>/configuration.yaml.

note: you can use yaml configuration or UI configuration, but remember that the UI options overwrite the yaml config.

homie:
  base_topic: +
  qos: 2
  discovery: true

The Homie base discovery topic is +/+/$homie. You can restrict using the base_topic option.

eg. base_topic = root => the discovery topic become: root/+/$homie

Manual Configuration

With discovery: true all the recognised devices properties (and related attributes) are added in HA as entities. But you also can add them manually and set preferred attributes by configuration.yaml as platform. You can use it with or without discovery activated.

The supported platfrom are:

  • Switch
  • Binary sensor
  • Sensor
  • Number

configuration.yaml switch example:

switch:
  - platform: homie
    name: Led light
    icon: mdi:lightbulb-variant-outline
    #enabled_by_default: true # default
    #qos: 1 # default
    property:
      device: device-id
      node: node-id
      name: property-id
    #property_topic: device-id/node-id/property-id # alternative to "property"
    #optimistic: false # default
    device_class: outlet

tip: enable discovery and take base_topic from HA entity attributes. There will find also stored other device information (eg. stats, IP, etc...)

Shared config options between platform

name: name displayed
icon: icon
unique_id: id # use if you know
enabled_by_default: true # default
qos: 1 # default
property:
  device: device-id
  node: node-id
  name: property-id
property_topic: device-id/node-id/property-id # alternative to "property"
key default description
property_topic none alternative to property key. Allow a plenty of topic format
(eg. root/device-id/node-id/property-id, device-id/node-id/property-id, /device-id/node-id/property-id)
enabled_by_default true don't display in HA Dashboard but still in entities registry
unique_id none the unique key used internally by HA to store entity information

Switch

optimistic: false # default
device_class: # see https://www.home-assistant.io/integrations/switch/#device-class

Sensor

unit_of_measurement: C
device_class: # see https://www.home-assistant.io/integrations/sensor/#device-class

Binary sensor

off_delay: 6 # second delay to off
device_class: # see https://www.home-assistant.io/integrations/binary_sensor/#device-class

Number

min: 2.0
max: 10.0
step: 1.0
optimistic: false # default
mode: auto/slider/box
unit_of_measurement: s

Integration development

For didactic purpose (or who is interested) here can see information/documentation about the Homie custom component development model.

Class Diagram

class diagram

Activity Diagram

class diagram

๐Ÿ’– Support the project

I open-source almost everything I can. If you are using this project and are happy with it, please consider one of these ways to support the project (and me):

  • Giving proper credit when you use it, linking back to it :D
  • Starring ๐ŸŒŸ and sharing the project ๐Ÿš€
  • Submit PRs, bug reports and feature requests
  • Paypal Make one-time donations via PayPal. I'll probably buy a ๐Ÿบ

Thanks! โค๏ธ

License

Distributed under the GPL License. See LICENSE for more information.

Credits

ha-homie's People

Contributors

elbowz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ha-homie's Issues

Publish homie entities

Maybe I'm missing something, but at this point home assistant is only subscribing to homie. It would be nice if the home assistant entities also get published.

Error verifying configuration with ha-homie enabled in home assistant

When I click verify configuration in developer tools I get the following error. I cannot find this error explained anywhere. Is this related to using this integration with a newer version of home assistant then it is originally developed with?

Component error: homie - cannot import name '_VALID_QOS_SCHEMA' from 'homeassistant.components.mqtt' (/usr/src/homeassistant/homeassistant/components/mqtt/init.py)

I am running homeassistant 2022.12.06

Error when adding the intergration

I finally found some time for testing your implementation. Looks really nice already!

As soon as I added the integration, Home Assistant showed an error in my logs saying that the number component does not have a property called MODE_AUTO.

When digging into the code I noticed that there was a faulty usage for the default value of the mode. I changed it (and tested it locally) and the error is gone now!

Any life here?

Hey,

is there any life here? the homie integration is nice, but it's currently broken with homeassistant. Would be nice to get it back in shape.

Duplicated entities on restart

I'm getting duplicated entities on restart. Some/all entities are being duplicated. Also some of the controls are changing to sensors in the process. Example below:

Device is online but the control entities are greyed out. Some of them can be seen at the top of the sensor section just below:
image

Also happening to sensors that duplicates are created:
image

Example of older entity that is a number (correct):
image

This is now a sensor with a different entity_id:
image

Auto Discover not working?

Hi,
thanks first of all for you work and providing your contribution to HA and Homie!
I was trying out your plugin. Unfortunately I cannot get any devices or entities automatically discovered.

The information is published by mbmd: https://github.com/volkszaehler/mbmd#mqtt-api

My structure for homie is as followed:
homie/sdm1-1/$state disconnected
homie/sdm1-1/$homie 4.0
homie/sdm1-1/$name SDM1.1
homie/sdm1-1/$state init
homie/sdm1-1/$implementation MBMD
homie/sdm1-1/$nodes meter
homie/sdm1-1/$implementation (null)
homie/sdm1-1/meter/$name SDM
homie/sdm1-1/meter/$type Eastron SDM630
homie/sdm1-1/meter/importl1/$name L1 Import
homie/sdm1-1/meter/importl1/$unit kWh
...

The values were set via UI, but I also tried it via configuration.yaml. The values are the default ones you have suggested in your howto and given as default values:
base_topic: +
qos: 2
discovery: true

Any idea why the devices and entities are not showing up?

HomieNumber is overriding deprecated methods on an instance of NumberEntity

When starting Home Assistant, I get the following message in the logfile:

Logger: homeassistant.components.number
Source: components/number/__init__.py:396
Integration: Nummer (documentation, issues)
First occurred: 12:13:39 (1 occurrences)
Last logged: 12:13:39

custom_components.homie.number::HomieNumber is overriding deprecated methods on an instance of NumberEntity, this is not valid and will be **unsupported from Home Assistant 2022.10**. Please report it to the custom integration author.

Config UI is broken

Browsing to Settings/Devices & Integrations/Home and then clicking on CONFIGURE results in a error:
image
The following errors are shown on the console:

2023-08-18 23:50:32.588 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/home/louis/source/ha_core/venv/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/venv/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/venv/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/http/ban.py", line 80, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/http/headers.py", line 31, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/http/view.py", line 148, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/http/decorators.py", line 63, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/config/config_entries.py", line 216, in post
    return await super().post(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/components/http/data_validator.py", line 72, in wrapper
    result = await method(view, request, data, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/helpers/data_entry_flow.py", line 85, in post
    result = self._prepare_result_json(result)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/homeassistant/helpers/data_entry_flow.py", line 44, in _prepare_result_json
    data["data_schema"] = voluptuous_serialize.convert(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/venv/lib/python3.11/site-packages/voluptuous_serialize/__init__.py", line 40, in convert
    pval = convert(value, custom_serializer=custom_serializer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/louis/source/ha_core/venv/lib/python3.11/site-packages/voluptuous_serialize/__init__.py", line 120, in convert
    if issubclass(schema, Enum):
       ^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: issubclass() arg 1 must be a class

No discovery for Ranges / Arrays

Hi elbowz,

first off all, many thanks for publishing this project! I never thought I would be able to eventually integrate my homie devices into HA (without manual config).

I had a look at the your readme but couldn't find any information on which Version of homie convention this plugin can handle. If you are covering 3.0.0 / 3.0.1, did you already implement Arrays?

It seems that roperties initialized via the range feature of the homie-esp8266 framework are currently not visible via your HA integration.

Regards,
Lukas

Error during device registry

I just bumped into this issue;

Logger: homeassistant
Source: helpers/device_registry.py:131 
First occurred: 22:00:32 (1 occurrences) 
Last logged: 22:00:32

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/homie/homie/component.py", line 138, in _async_update_topic_dict
    await self._async_on_ready(self)
  File "/config/custom_components/homie/utils.py", line 33, in wrap_f
    return await f(*args, **kwargs)
  File "/config/custom_components/homie/__init__.py", line 221, in async_device_on_ready
    async_create_ha_device(hass, homie_device, entry)
  File "/config/custom_components/homie/mixins.py", line 45, in async_create_ha_device
    mac = device_registry.format_mac(device.t["$mac"])
  File "/usr/src/homeassistant/homeassistant/helpers/device_registry.py", line 131, in format_mac
    if len(to_test) == 17 and to_test.count(":") == 5:
TypeError: object of type 'NoneType' has no len()

No entities captured on devices

Have a working setup with Homie MQTT to OpenHab.

When activating this plugin on Home Assistant only the devices are captured and no entitiies. Log below. You can see four homie devices captured and then as it starts with nodes/properties it falls over.

2023-08-07 21:47:38.352 DEBUG (MainThread) [custom_components.homie] async_discovery_message_received ( mqttmsg = ReceiveMessage(topic='homie/powerclamp/$homie', payload='4.0.0', qos=1, retain=1, subscribed_topic='homie/+/$homie', timestamp=datetime.datetime(2023, 8, 7, 19, 47, 38, 352078, tzinfo=datetime.timezone.utc)) )
2023-08-07 21:47:44.739 DEBUG (MainThread) [custom_components.homie] async_device_on_ready ( homie_device = <custom_components.homie.homie.component.HomieDevice object at 0x7f7b35bae690> )
2023-08-07 21:47:44.740 DEBUG (MainThread) [custom_components.homie.mixins] async_create_ha_device ( hass = <homeassistant.core.HomeAssistant object at 0x7f7b54ff7150>, device = <custom_components.homie.homie.component.HomieDevice object at 0x7f7b35bae690>, entry = <homeassistant.config_entries.ConfigEntry object at 0x7f7b54fcf440> )
2023-08-07 21:47:44.740 DEBUG (MainThread) [custom_components.homie.mixins] Adding new device: eskomsepush (id) on homie/eskomsepush (topic)
2023-08-07 21:47:44.740 DEBUG (MainThread) [custom_components.homie.mixins] async_discover_properties ( hass = <homeassistant.core.HomeAssistant object at 0x7f7b54ff7150>, device = <custom_components.homie.homie.component.HomieDevice object at 0x7f7b35bae690> )
2023-08-07 21:47:44.741 DEBUG (MainThread) [custom_components.homie.mixins] For node: area
2023-08-07 21:47:44.741 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: areaid
2023-08-07 21:47:44.741 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/area/areaid', payload = {'property': {'device': 'eskomsepush', 'node': 'area', 'name': 'areaid'}} )
2023-08-07 21:47:44.741 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: areaname
2023-08-07 21:47:44.742 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/area/areaname', payload = {'property': {'device': 'eskomsepush', 'node': 'area', 'name': 'areaname'}} )
2023-08-07 21:47:44.742 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: regionname
2023-08-07 21:47:44.742 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/area/regionname', payload = {'property': {'device': 'eskomsepush', 'node': 'area', 'name': 'regionname'}} )
2023-08-07 21:47:44.742 DEBUG (MainThread) [custom_components.homie.mixins] For node: api
2023-08-07 21:47:44.743 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: lastapiupdate
2023-08-07 21:47:44.743 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/api/lastapiupdate', payload = {'property': {'device': 'eskomsepush', 'node': 'api', 'name': 'lastapiupdate'}} )
2023-08-07 21:47:44.743 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: apicount
2023-08-07 21:47:44.743 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/api/apicount', payload = {'property': {'device': 'eskomsepush', 'node': 'api', 'name': 'apicount'}} )
2023-08-07 21:47:44.744 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: apilimit
2023-08-07 21:47:44.744 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/api/apilimit', payload = {'property': {'device': 'eskomsepush', 'node': 'api', 'name': 'apilimit'}} )
2023-08-07 21:47:44.744 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: apilimittype
2023-08-07 21:47:44.755 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/api/apilimittype', payload = {'property': {'device': 'eskomsepush', 'node': 'api', 'name': 'apilimittype'}} )
2023-08-07 21:47:44.756 DEBUG (MainThread) [custom_components.homie.mixins] For node: status
2023-08-07 21:47:44.756 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: loadshedding
2023-08-07 21:47:44.756 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'binary_sensor', unique_id = 'homie/eskomsepush/status/loadshedding', payload = {'property': {'device': 'eskomsepush', 'node': 'status', 'name': 'loadshedding'}} )
2023-08-07 21:47:44.756 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: warning15min
2023-08-07 21:47:44.757 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'binary_sensor', unique_id = 'homie/eskomsepush/status/warning15min', payload = {'property': {'device': 'eskomsepush', 'node': 'status', 'name': 'warning15min'}} )
2023-08-07 21:47:44.757 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: warning5min
2023-08-07 21:47:44.757 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'binary_sensor', unique_id = 'homie/eskomsepush/status/warning5min', payload = {'property': {'device': 'eskomsepush', 'node': 'status', 'name': 'warning5min'}} )
2023-08-07 21:47:44.758 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: loadsheddingnextstart
2023-08-07 21:47:44.758 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/status/loadsheddingnextstart', payload = {'property': {'device': 'eskomsepush', 'node': 'status', 'name': 'loadsheddingnextstart'}} )
2023-08-07 21:47:44.758 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: loadsheddingnextend
2023-08-07 21:47:44.759 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/status/loadsheddingnextend', payload = {'property': {'device': 'eskomsepush', 'node': 'status', 'name': 'loadsheddingnextend'}} )
2023-08-07 21:47:44.759 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: loadsheddingend
2023-08-07 21:47:44.759 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/status/loadsheddingend', payload = {'property': {'device': 'eskomsepush', 'node': 'status', 'name': 'loadsheddingend'}} )
2023-08-07 21:47:44.759 DEBUG (MainThread) [custom_components.homie.mixins] Try to match property: note
2023-08-07 21:47:44.760 DEBUG (MainThread) [custom_components.homie.mixins] fire_homie_discovery_new ( platform = 'sensor', unique_id = 'homie/eskomsepush/status/note', payload = {'property': {'device': 'eskomsepush', 'node': 'status', 'name': 'note'}} )
2023-08-07 21:47:44.968 ERROR (MainThread) [homeassistant.components.sensor] Error adding entities for domain sensor with platform homie
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 510, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 619, in _async_add_entity
    device = dev_reg.async_get(self.hass).async_get_or_create(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create() got multiple values for keyword argument 'config_entry_id'
2023-08-07 21:47:44.972 ERROR (MainThread) [homeassistant.components.sensor] Error adding entities for domain sensor with platform homie
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 510, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 619, in _async_add_entity
    device = dev_reg.async_get(self.hass).async_get_or_create(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create() got multiple values for keyword argument 'config_entry_id'
2023-08-07 21:47:44.976 ERROR (MainThread) [homeassistant.components.sensor] Error adding entities for domain sensor with platform homie
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 510, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 619, in _async_add_entity
    device = dev_reg.async_get(self.hass).async_get_or_create(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create() got multiple values for keyword argument 'config_entry_id'
2023-08-07 21:47:44.979 ERROR (MainThread) [homeassistant.components.sensor] Error adding entities for domain sensor with platform homie
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 510, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 619, in _async_add_entity
    device = dev_reg.async_get(self.hass).async_get_or_create(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create() got multiple values for keyword argument 'config_entry_id'
2023-08-07 21:47:44.982 ERROR (MainThread) [homeassistant.components.sensor] Error adding entities for domain sensor with platform homie
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 510, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 619, in _async_add_entity
    device = dev_reg.async_get(self.hass).async_get_or_create(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create() got multiple values for keyword argument 'config_entry_id'
2023-08-07 21:47:44.985 ERROR (MainThread) [homeassistant.components.sensor] Error adding entities for domain sensor with platform homie
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 510, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 619, in _async_add_entity
    device = dev_reg.async_get(self.hass).async_get_or_create(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create() got multiple values for keyword argument 'config_entry_id'

Dump from the device eskomsepush:

homie/eskomsepush/area/areaid capetown-7-gardens
homie/eskomsepush/area/areaid/$name Area ID
homie/eskomsepush/area/areaid/$datatype string
homie/eskomsepush/area/areaid/$settable false
homie/eskomsepush/area/areaid/$retained true
homie/eskomsepush/area/areaname Gardens (7)
homie/eskomsepush/area/areaname/$name Area Name
homie/eskomsepush/area/areaname/$datatype string
homie/eskomsepush/area/areaname/$settable false
homie/eskomsepush/area/areaname/$retained true
homie/eskomsepush/area/regionname City of Cape Town
homie/eskomsepush/area/regionname/$name Region Name
homie/eskomsepush/area/regionname/$datatype string
homie/eskomsepush/area/regionname/$settable false
homie/eskomsepush/area/regionname/$retained true
homie/eskomsepush/area/$name Area
homie/eskomsepush/area/$properties areaid,areaname,regionname
homie/eskomsepush/api/lastapiupdate 2023-08-07T21:59:36.137165+02:00
homie/eskomsepush/api/lastapiupdate/$name Last Update
homie/eskomsepush/api/lastapiupdate/$datatype string
homie/eskomsepush/api/lastapiupdate/$settable false
homie/eskomsepush/api/lastapiupdate/$retained true
homie/eskomsepush/api/apicount 46
homie/eskomsepush/api/apicount/$name API Count
homie/eskomsepush/api/apicount/$datatype integer
homie/eskomsepush/api/apicount/$settable false
homie/eskomsepush/api/apicount/$retained true
homie/eskomsepush/api/apilimit 50
homie/eskomsepush/api/apilimit/$name API Limit
homie/eskomsepush/api/apilimit/$datatype integer
homie/eskomsepush/api/apilimit/$settable false
homie/eskomsepush/api/apilimit/$retained true
homie/eskomsepush/api/apilimittype daily
homie/eskomsepush/api/apilimittype/$name API Limit Type
homie/eskomsepush/api/apilimittype/$datatype string
homie/eskomsepush/api/apilimittype/$settable false
homie/eskomsepush/api/apilimittype/$retained true
homie/eskomsepush/api/$name API
homie/eskomsepush/api/$properties lastapiupdate,apicount,apilimit,apilimittype
homie/eskomsepush/status/loadshedding false
homie/eskomsepush/status/loadshedding/$name Current Loadshedding
homie/eskomsepush/status/loadshedding/$datatype boolean
homie/eskomsepush/status/loadshedding/$settable false
homie/eskomsepush/status/loadshedding/$retained true
homie/eskomsepush/status/warning5min false
homie/eskomsepush/status/warning5min/$name Loadshedding 5 minute Warning
homie/eskomsepush/status/warning5min/$datatype boolean
homie/eskomsepush/status/warning5min/$settable false
homie/eskomsepush/status/warning5min/$retained true
homie/eskomsepush/status/warning15min false
homie/eskomsepush/status/warning15min/$name Loadshedding 15 minute Warning
homie/eskomsepush/status/warning15min/$datatype boolean
homie/eskomsepush/status/warning15min/$settable false
homie/eskomsepush/status/warning15min/$retained true
homie/eskomsepush/status/loadsheddingnextstart 2023-08-08T02:00:00+02:00
homie/eskomsepush/status/loadsheddingnextstart/$name Loadshedding Start Time
homie/eskomsepush/status/loadsheddingnextstart/$datatype string
homie/eskomsepush/status/loadsheddingnextstart/$settable false
homie/eskomsepush/status/loadsheddingnextstart/$retained true
homie/eskomsepush/status/loadsheddingnextend 2023-08-08T04:30:00+02:00
homie/eskomsepush/status/loadsheddingnextend/$name Loadshedding End Time
homie/eskomsepush/status/loadsheddingnextend/$datatype string
homie/eskomsepush/status/loadsheddingnextend/$settable false
homie/eskomsepush/status/loadsheddingnextend/$retained true
homie/eskomsepush/status/loadsheddingend 2099-01-01T01:01:01.000001+01:52
homie/eskomsepush/status/loadsheddingend/$name Loadshedding End Time
homie/eskomsepush/status/loadsheddingend/$datatype string
homie/eskomsepush/status/loadsheddingend/$settable false
homie/eskomsepush/status/loadsheddingend/$retained true
homie/eskomsepush/status/note Not loadshedding
homie/eskomsepush/status/note/$name Status Note
homie/eskomsepush/status/note/$datatype string
homie/eskomsepush/status/note/$settable false
homie/eskomsepush/status/note/$retained true
homie/eskomsepush/status/$name Loadshedding status
homie/eskomsepush/status/$properties loadshedding,warning15min,warning5min,loadsheddingnextstart,loadsheddingnextend,loadsheddingend,note
homie/eskomsepush/$homie 4.0.0
homie/eskomsepush/$name Eskom Loadshedding Schedule
homie/eskomsepush/$state ready
homie/eskomsepush/$nodes area,api,status
homie/eskomsepush/$implementation esp_mqtt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.