Enable dhcp flows for elkm1 registered devices (#66583)

This commit is contained in:
J. Nick Koston 2022-02-16 05:13:16 -06:00 committed by GitHub
parent b322c6dafc
commit 21f2c664d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 2 deletions

View File

@ -14,6 +14,7 @@ import voluptuous as vol
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
from homeassistant.const import ( from homeassistant.const import (
ATTR_CONNECTIONS,
CONF_EXCLUDE, CONF_EXCLUDE,
CONF_HOST, CONF_HOST,
CONF_INCLUDE, CONF_INCLUDE,
@ -28,6 +29,7 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant, ServiceCall, callback from homeassistant.core import HomeAssistant, ServiceCall, callback
from homeassistant.exceptions import ConfigEntryNotReady, HomeAssistantError from homeassistant.exceptions import ConfigEntryNotReady, HomeAssistantError
from homeassistant.helpers import config_validation as cv from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC
from homeassistant.helpers.entity import DeviceInfo, Entity from homeassistant.helpers.entity import DeviceInfo, Entity
from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType from homeassistant.helpers.typing import ConfigType
@ -286,6 +288,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
hass.data[DOMAIN][entry.entry_id] = { hass.data[DOMAIN][entry.entry_id] = {
"elk": elk, "elk": elk,
"prefix": conf[CONF_PREFIX], "prefix": conf[CONF_PREFIX],
"mac": entry.unique_id,
"auto_configure": conf[CONF_AUTO_CONFIGURE], "auto_configure": conf[CONF_AUTO_CONFIGURE],
"config": config, "config": config,
"keypads": {}, "keypads": {},
@ -420,6 +423,7 @@ class ElkEntity(Entity):
"""Initialize the base of all Elk devices.""" """Initialize the base of all Elk devices."""
self._elk = elk self._elk = elk
self._element = element self._element = element
self._mac = elk_data["mac"]
self._prefix = elk_data["prefix"] self._prefix = elk_data["prefix"]
self._name_prefix = f"{self._prefix} " if self._prefix else "" self._name_prefix = f"{self._prefix} " if self._prefix else ""
self._temperature_unit = elk_data["config"]["temperature_unit"] self._temperature_unit = elk_data["config"]["temperature_unit"]
@ -499,10 +503,13 @@ class ElkAttachedEntity(ElkEntity):
device_name = "ElkM1" device_name = "ElkM1"
if self._prefix: if self._prefix:
device_name += f" {self._prefix}" device_name += f" {self._prefix}"
return DeviceInfo( device_info = DeviceInfo(
identifiers={(DOMAIN, f"{self._prefix}_system")}, identifiers={(DOMAIN, f"{self._prefix}_system")},
manufacturer="ELK Products, Inc.", manufacturer="ELK Products, Inc.",
model="M1", model="M1",
name=device_name, name=device_name,
sw_version=self._elk.panel.elkm1_version, sw_version=self._elk.panel.elkm1_version,
) )
if self._mac:
device_info[ATTR_CONNECTIONS] = {(CONNECTION_NETWORK_MAC, self._mac)}
return device_info

View File

@ -3,7 +3,10 @@
"name": "Elk-M1 Control", "name": "Elk-M1 Control",
"documentation": "https://www.home-assistant.io/integrations/elkm1", "documentation": "https://www.home-assistant.io/integrations/elkm1",
"requirements": ["elkm1-lib==1.2.0"], "requirements": ["elkm1-lib==1.2.0"],
"dhcp": [{"macaddress":"00409D*"}], "dhcp": [
{"registered_devices": true},
{"macaddress":"00409D*"}
],
"codeowners": ["@gwww", "@bdraco"], "codeowners": ["@gwww", "@bdraco"],
"dependencies": ["network"], "dependencies": ["network"],
"config_flow": true, "config_flow": true,

View File

@ -23,6 +23,7 @@ DHCP: list[dict[str, str | bool]] = [
{'domain': 'broadlink', 'macaddress': '24DFA7*'}, {'domain': 'broadlink', 'macaddress': '24DFA7*'},
{'domain': 'broadlink', 'macaddress': 'A043B0*'}, {'domain': 'broadlink', 'macaddress': 'A043B0*'},
{'domain': 'broadlink', 'macaddress': 'B4430D*'}, {'domain': 'broadlink', 'macaddress': 'B4430D*'},
{'domain': 'elkm1', 'registered_devices': True},
{'domain': 'elkm1', 'macaddress': '00409D*'}, {'domain': 'elkm1', 'macaddress': '00409D*'},
{'domain': 'emonitor', 'hostname': 'emonitor*', 'macaddress': '0090C2*'}, {'domain': 'emonitor', 'hostname': 'emonitor*', 'macaddress': '0090C2*'},
{'domain': 'emonitor', 'registered_devices': True}, {'domain': 'emonitor', 'registered_devices': True},