Skip to content

Commit 01646e6

Browse files
authored
fix: use manufacturer model name as model id (#178)
<img width="269" height="129" alt="Bildschirmfoto 2026-01-10 um 21 56 13" src="https://github.com/user-attachments/assets/c2a1c7a5-a7cc-41bd-a322-e3ad479c4219" />
1 parent 3c27f4f commit 01646e6

File tree

3 files changed

+23
-17
lines changed

3 files changed

+23
-17
lines changed

custom_components/solakon_one/const.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
CONF_DEVICE_ID: Final = "slave_id"
1010

11+
DEFAULT_MANUFACTURER: Final = "Solakon"
12+
DEFAULT_MODEL: Final = "ONE"
1113
DEFAULT_NAME: Final = "Solakon ONE"
1214
DEFAULT_PORT: Final = 502
1315
DEFAULT_DEVICE_ID: Final = 1

custom_components/solakon_one/entity.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from homeassistant.helpers.entity import Entity
55
from homeassistant.helpers.update_coordinator import CoordinatorEntity
66

7-
from .const import DOMAIN
7+
from .const import DEFAULT_MANUFACTURER, DEFAULT_MODEL, DEFAULT_NAME, DOMAIN
88
from .types import SolakonConfigEntry
99

1010

@@ -29,9 +29,10 @@ def __init__(
2929

3030
self._attr_device_info = DeviceInfo(
3131
identifiers={(DOMAIN, self._config_entry.entry_id)},
32-
name=self._config_entry.data.get("name", "Solakon ONE"),
33-
manufacturer=device_info.get("manufacturer", "Solakon"),
34-
model=device_info.get("model", "One"),
32+
name=self._config_entry.data.get("name", DEFAULT_NAME),
33+
manufacturer=DEFAULT_MANUFACTURER,
34+
model=DEFAULT_MODEL,
35+
model_id=device_info.get("model"),
3536
sw_version=device_info.get("version"),
3637
serial_number=device_info.get("serial_number"),
3738
)

custom_components/solakon_one/modbus.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,14 @@
1313
from homeassistant.const import CONF_HOST, CONF_PORT, CONF_SCAN_INTERVAL
1414
from homeassistant.core import HomeAssistant
1515

16-
from .const import CONF_DEVICE_ID, DEFAULT_DEVICE_ID, DEFAULT_SCAN_INTERVAL, REGISTERS
16+
from .const import (
17+
CONF_DEVICE_ID,
18+
DEFAULT_DEVICE_ID,
19+
DEFAULT_MANUFACTURER,
20+
DEFAULT_NAME,
21+
DEFAULT_SCAN_INTERVAL,
22+
REGISTERS,
23+
)
1724

1825
_LOGGER = logging.getLogger(__name__)
1926

@@ -142,12 +149,11 @@ async def async_get_device_info(self) -> dict[str, Any]:
142149

143150
if not self._client or not self.connected:
144151
return {
145-
"manufacturer": "Solakon",
146-
"model": "Solakon ONE",
147-
"name": "Solakon ONE",
152+
"manufacturer": DEFAULT_MANUFACTURER,
153+
"name": DEFAULT_NAME,
148154
}
149155

150-
model_name = "Solakon ONE"
156+
model_name = None
151157
serial_number = None
152158

153159
try:
@@ -160,28 +166,25 @@ async def async_get_device_info(self) -> dict[str, Any]:
160166
)
161167

162168
if not model_result.isError():
163-
tmp_name = convert_string(model_result.registers)
164-
if tmp_name is not None:
165-
model_name = tmp_name
169+
model_name = convert_string(model_result.registers)
166170
if not serial_result.isError():
167171
serial_number = convert_string(serial_result.registers)
168172

169173
except Exception as e:
170174
_LOGGER.debug(f"Device info read error: {e}")
171175

172176
return {
173-
"manufacturer": "Solakon",
177+
"manufacturer": DEFAULT_MANUFACTURER,
174178
"model": model_name,
175-
"name": model_name,
179+
"name": model_name or DEFAULT_NAME,
176180
"serial_number": serial_number,
177181
}
178182

179183
except Exception as err:
180184
_LOGGER.error(f"Failed to get device info: {err}")
181185
return {
182-
"manufacturer": "Solakon",
183-
"model": "Solakon ONE",
184-
"name": "Solakon ONE",
186+
"manufacturer": DEFAULT_MANUFACTURER,
187+
"name": DEFAULT_NAME,
185188
}
186189

187190
async def async_read_registers(self) -> dict[str, Any]:

0 commit comments

Comments
 (0)