aiohomematic-test-support 2025.12.23__py3-none-any.whl → 2026.1.23__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aiohomematic_test_support/__init__.py +33 -2
- aiohomematic_test_support/const.py +26 -365
- aiohomematic_test_support/data/device_translation.json +364 -0
- aiohomematic_test_support/event_capture.py +257 -0
- aiohomematic_test_support/event_mock.py +300 -0
- aiohomematic_test_support/factory.py +77 -29
- aiohomematic_test_support/helper.py +6 -4
- aiohomematic_test_support/mock.py +68 -23
- {aiohomematic_test_support-2025.12.23.dist-info → aiohomematic_test_support-2026.1.23.dist-info}/METADATA +2 -2
- aiohomematic_test_support-2026.1.23.dist-info/RECORD +15 -0
- aiohomematic_test_support-2025.12.23.dist-info/RECORD +0 -12
- {aiohomematic_test_support-2025.12.23.dist-info → aiohomematic_test_support-2026.1.23.dist-info}/WHEEL +0 -0
- {aiohomematic_test_support-2025.12.23.dist-info → aiohomematic_test_support-2026.1.23.dist-info}/top_level.txt +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2021-2026
|
|
1
3
|
"""
|
|
2
4
|
Test support infrastructure for aiohomematic.
|
|
3
5
|
|
|
@@ -16,6 +18,8 @@ Key Components
|
|
|
16
18
|
playback support for deterministic testing.
|
|
17
19
|
- **helper**: Test helper utilities for common testing operations.
|
|
18
20
|
- **const**: Test-specific constants and configuration values.
|
|
21
|
+
- **event_capture**: Event capture and assertion utilities for behavior testing.
|
|
22
|
+
- **event_mock**: Event-driven mock server for test triggers.
|
|
19
23
|
|
|
20
24
|
Usage Example
|
|
21
25
|
-------------
|
|
@@ -30,9 +34,36 @@ Using the factory to create a test central with session playback:
|
|
|
30
34
|
|
|
31
35
|
# Test operations
|
|
32
36
|
await central.start()
|
|
33
|
-
device = central.get_device_by_address("VCU0000001")
|
|
37
|
+
device = central.device_coordinator.get_device_by_address("VCU0000001")
|
|
34
38
|
await central.stop()
|
|
35
39
|
|
|
40
|
+
Using EventCapture for behavior-focused testing:
|
|
41
|
+
|
|
42
|
+
from aiohomematic_test_support.event_capture import EventCapture
|
|
43
|
+
from aiohomematic.central.events import CircuitBreakerTrippedEvent
|
|
44
|
+
|
|
45
|
+
capture = EventCapture()
|
|
46
|
+
capture.subscribe_to(central.event_bus, CircuitBreakerTrippedEvent)
|
|
47
|
+
|
|
48
|
+
# ... trigger failures ...
|
|
49
|
+
|
|
50
|
+
capture.assert_event_emitted(CircuitBreakerTrippedEvent, failure_count=5)
|
|
51
|
+
capture.cleanup()
|
|
52
|
+
|
|
53
|
+
Using EventDrivenMockServer for event-triggered test behavior:
|
|
54
|
+
|
|
55
|
+
from aiohomematic_test_support.event_mock import EventDrivenMockServer
|
|
56
|
+
from aiohomematic.central.events import DataRefreshTriggeredEvent
|
|
57
|
+
|
|
58
|
+
mock_server = EventDrivenMockServer(event_bus=central.event_bus)
|
|
59
|
+
mock_server.when(DataRefreshTriggeredEvent).then_call(
|
|
60
|
+
lambda event: inject_mock_data()
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
# ... trigger refresh ...
|
|
64
|
+
|
|
65
|
+
mock_server.cleanup()
|
|
66
|
+
|
|
36
67
|
The session player replays pre-recorded backend responses, enabling fast and
|
|
37
68
|
reproducible tests without backend dependencies.
|
|
38
69
|
|
|
@@ -45,4 +76,4 @@ test dependencies to access test support functionality.
|
|
|
45
76
|
|
|
46
77
|
from __future__ import annotations
|
|
47
78
|
|
|
48
|
-
__version__ = "
|
|
79
|
+
__version__ = "2026.1.23"
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2021-2026
|
|
1
3
|
"""Constants for tests."""
|
|
2
4
|
|
|
3
5
|
from __future__ import annotations
|
|
4
6
|
|
|
7
|
+
import functools
|
|
8
|
+
import json
|
|
9
|
+
import os
|
|
10
|
+
from typing import cast
|
|
11
|
+
|
|
5
12
|
from aiohomematic.client.json_rpc import _JsonKey
|
|
6
|
-
from aiohomematic.const import LOCAL_HOST, HubValueType, Interface, ProgramData, SystemVariableData
|
|
13
|
+
from aiohomematic.const import LOCAL_HOST, UTF_8, HubValueType, Interface, ProgramData, SystemVariableData
|
|
7
14
|
|
|
8
15
|
CENTRAL_NAME = "CentralTest"
|
|
9
16
|
CCU_HOST = LOCAL_HOST
|
|
@@ -237,367 +244,21 @@ PROGRAM_DATA_JSON_DESCRIPTION = [
|
|
|
237
244
|
for p in PROGRAM_DATA
|
|
238
245
|
]
|
|
239
246
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
"
|
|
244
|
-
"
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
"
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
"VCU0000275": "HM-Sen-Wa-Od.json",
|
|
259
|
-
"VCU5092447": "HmIP-SMO-A.json",
|
|
260
|
-
"VCU3941846": "HMIP-PSM.json",
|
|
261
|
-
"VCU4984404": "HmIPW-STHD.json",
|
|
262
|
-
"VCU0000026": "HM-WDS20-TH-O.json",
|
|
263
|
-
"VCU0000064": "HM-LC-Dim1L-Pl-2.json",
|
|
264
|
-
"VCU1150287": "HmIP-HAP.json",
|
|
265
|
-
"VCU0000348": "HM-Sec-WDS.json",
|
|
266
|
-
"VCU0000017": "HM-PB-4Dis-WM.json",
|
|
267
|
-
"VCU3560967": "HmIP-HDM1.json",
|
|
268
|
-
"VCU0000287": "HM-LC-Sw2PBU-FM.json",
|
|
269
|
-
"VCU0000014": "HMW-LC-Sw2-DR.json",
|
|
270
|
-
"VCU0000155": "OLIGO.smart.iq.HM.json",
|
|
271
|
-
"VCU0000343": "HM-Sec-TiS.json",
|
|
272
|
-
"VCU5864966": "HmIP-SWDO-I.json",
|
|
273
|
-
"VCU0000150": "KS550.json",
|
|
274
|
-
"VCU0000121": "HM-LC-Dim1L-Pl.json",
|
|
275
|
-
"VCU0000177": "HM-RC-Key4-2.json",
|
|
276
|
-
"VCU0000216": "HM-Sec-RHS.json",
|
|
277
|
-
"VCU0000142": "HM-Dis-TD-T.json",
|
|
278
|
-
"VCU0000305": "HM-LC-Sw1-Pl-CT-R1.json",
|
|
279
|
-
"VCU0000131": "HM-ES-PMSw1-Pl-DN-R3.json",
|
|
280
|
-
"VCU0000114": "HM-Dis-WM55.json",
|
|
281
|
-
"VCU0000105": "263 134.json",
|
|
282
|
-
"VCU0000334": "HM-LC-Sw2-DR.json",
|
|
283
|
-
"VCU0000328": "HM-LC-Sw1-FM.json",
|
|
284
|
-
"VCU4264293": "HmIP-RCV-50.json",
|
|
285
|
-
"VCU0000196": "HM-RC-12-SW.json",
|
|
286
|
-
"VCU0000310": "HM-LC-Sw1-PCB.json",
|
|
287
|
-
"VCU0000002": "HMW-IO-12-Sw14-DR.json",
|
|
288
|
-
"VCU0000138": "HM-ES-PMSwX.json",
|
|
289
|
-
"VCU4613288": "HmIP-FROLL.json",
|
|
290
|
-
"VCU0000130": "HM-ES-PMSw1-Pl-DN-R2.json",
|
|
291
|
-
"VCU8655720": "HmIP-CCU3.json",
|
|
292
|
-
"VCU0000166": "263 135.json",
|
|
293
|
-
"VCU0000339": "HM-LC-Sw1-SM-ATmega168.json",
|
|
294
|
-
"VCU0000353": "WS888.json",
|
|
295
|
-
"VCU0000178": "HM-RC-Key4-3.json",
|
|
296
|
-
"VCU1289997": "HmIP-SPDR.json",
|
|
297
|
-
"VCU0000252": "263 162.json",
|
|
298
|
-
"VCU0000198": "HM-RC-19-B.json",
|
|
299
|
-
"VCU0000016": "HMW-Sen-SC-12-FM.json",
|
|
300
|
-
"VCU1815001": "HmIP-SWD.json",
|
|
301
|
-
"VCU7171997": "HB-WDS40-THP-O.json",
|
|
302
|
-
"VCU0000100": "HM-LC-Dim2T-SM-2.json",
|
|
303
|
-
"VCU0000167": "HM-PB-2-FM.json",
|
|
304
|
-
"VCU0000239": "ZEL STG RM FFK.json",
|
|
305
|
-
"VCU2721398": "HmIPW-DRI32.json",
|
|
306
|
-
"VCU0000345": "HM-WDS30-OT2-SM-2.json",
|
|
307
|
-
"VCU0000025": "263 158.json",
|
|
308
|
-
"VCU0000280": "HM-SwI-X.json",
|
|
309
|
-
"VCU1673350": "HmIPW-FIO6.json",
|
|
310
|
-
"VCU0000073": "HM-LC-Dim1L-Pl-3.json",
|
|
311
|
-
"VCU5429697": "HmIP-SAM.json",
|
|
312
|
-
"VCU0000096": "HM-LC-Dim2L-SM-2.json",
|
|
313
|
-
"VCU0000236": "S550IA.json",
|
|
314
|
-
"VCU0000211": "ZEL STG RM FDK.json",
|
|
315
|
-
"VCU7808411": "HmIP-eTRV-B1.json",
|
|
316
|
-
"VCU8333683": "HmIP-SWDM-B2.json",
|
|
317
|
-
"VCU0000054": "HM-CC-TC.json",
|
|
318
|
-
"VCU0000169": "ZEL STG RM FST UP4.json",
|
|
319
|
-
"VCU4523900": "HmIP-STHO.json",
|
|
320
|
-
"VCU0000340": "HM-LC-Sw4-SM-ATmega168.json",
|
|
321
|
-
"VCU0000087": "HM-LC-Dim1T-Pl-3.json",
|
|
322
|
-
"VCU0000137": "HM-ES-PMSw1-Pl.json",
|
|
323
|
-
"VCU0000175": "HM-RC-4-3.json",
|
|
324
|
-
"VCU0000341": "HM-TC-IT-WM-W-EU.json",
|
|
325
|
-
"VCU0000300": "HM-LC-Sw1-Pl-DN-R2.json",
|
|
326
|
-
"VCU0000081": "HM-LC-Dim1TPBU-FM-2.json",
|
|
327
|
-
"VCU0000240": "HM-Sec-SC-2.json",
|
|
328
|
-
"VCU8066814": "RPI-RF-MOD.json",
|
|
329
|
-
"VCU4898089": "HmIP-KRC4.json",
|
|
330
|
-
"VCU1954019": "HmIP-FAL230-C10.json",
|
|
331
|
-
"VCU0000350": "HM-Sec-Win.json",
|
|
332
|
-
"VCU0000243": "HM-SCI-3-FM.json",
|
|
333
|
-
"VCU0000023": "ASH550.json",
|
|
334
|
-
"VCU4567298": "HmIP-DBB.json",
|
|
335
|
-
"VCU8492627": "HB-UNI-Sensor1.json",
|
|
336
|
-
"VCU0000218": "WDF solar.json",
|
|
337
|
-
"VCU0000327": "HM-LC-Sw4-WM.json",
|
|
338
|
-
"VCU0000208": "HM-ReSC-Win-PCB-xx.json",
|
|
339
|
-
"VCU0000278": "ZEL STG RM FSS UP3.json",
|
|
340
|
-
"VCU0000122": "HM-LC-Dim1L-CV.json",
|
|
341
|
-
"VCU0000004": "HMW-IO-12-Sw7-DR.json",
|
|
342
|
-
"VCU0000055": "HM-CC-VD.json",
|
|
343
|
-
"VCU0000135": "HM-ES-PMSw1-SM.json",
|
|
344
|
-
"VCU0000296": "HM-LC-Sw2-FM-2.json",
|
|
345
|
-
"VCU3790312": "HmIP-SWO-B.json",
|
|
346
|
-
"VCU0000256": "HM-Sec-SD-Generic.json",
|
|
347
|
-
"VCU0000148": "HM-Sec-Key-O.json",
|
|
348
|
-
"VCU7652142": "HmIP-SRD.json",
|
|
349
|
-
"VCU0000183": "HM-RC-P1.json",
|
|
350
|
-
"VCU0000115": "HM-LC-DW-WM.json",
|
|
351
|
-
"VCU0000322": "HM-LC-Sw1-Pl-2.json",
|
|
352
|
-
"VCU0000193": "HM-RC-X.json",
|
|
353
|
-
"VCU0000060": "HM-OU-CFM-TW.json",
|
|
354
|
-
"VCU1891174": "HmIPW-DRS8.json",
|
|
355
|
-
"VCU6874371": "HmIP-MOD-RC8.json",
|
|
356
|
-
"VCU0000010": "HMW-LC-Bl1-DR-2.json",
|
|
357
|
-
"VCU0000273": "HM-MD.json",
|
|
358
|
-
"VCU0000018": "ZEL STG RM DWT 10.json",
|
|
359
|
-
"VCU0000337": "HM-LC-SwX.json",
|
|
360
|
-
"VCU0000133": "HM-ES-PMSw1-Pl-DN-R5.json",
|
|
361
|
-
"VCU0000247": "HM-Sec-MDIR-2.json",
|
|
362
|
-
"VCU6354483": "HmIP-STHD.json",
|
|
363
|
-
"VCU0000066": "263 132.json",
|
|
364
|
-
"VCU0000330": "HM-LC-Sw2-FM.json",
|
|
365
|
-
"VCU1769958": "HmIP-BWTH.json",
|
|
366
|
-
"VCU0000203": "BRC-H.json",
|
|
367
|
-
"VCU0000304": "HM-LC-Sw1-DR.json",
|
|
368
|
-
"VCU2118827": "HmIP-DLS.json",
|
|
369
|
-
"VCU0000165": "ZEL STG RM WT 2.json",
|
|
370
|
-
"VCU0000199": "HM-RC-19-SW.json",
|
|
371
|
-
"VCU5778428": "HmIP-HEATING.json",
|
|
372
|
-
"VCU0000201": "HM-RC-2-PBU-FM-2.json",
|
|
373
|
-
"VCU1437294": "HmIP-SMI.json",
|
|
374
|
-
"VCU0000293": "HM-LC-Sw4-PCB-2.json",
|
|
375
|
-
"VCU7981740": "HmIP-SRH.json",
|
|
376
|
-
"VCU0000170": "263 145.json",
|
|
377
|
-
"VCU3056370": "HmIP-SLO.json",
|
|
378
|
-
"VCU4243444": "HmIP-WRCD.json",
|
|
379
|
-
"VCU0000036": "HM-LC-Bl1-SM-2.json",
|
|
380
|
-
"VCU0000159": "HM-OU-X.json",
|
|
381
|
-
"VCU0000303": "HM-LC-Sw1-Pl-DN-R5.json",
|
|
382
|
-
"VCU9834159": "HB-LC-Bl1PBU-FM.json",
|
|
383
|
-
"VCU0000251": "HM-Sec-MDIR.json",
|
|
384
|
-
"VCU0000357": "HM-WDC7000.json",
|
|
385
|
-
"VCU0000111": "HM-LC-Dim1T-FM.json",
|
|
386
|
-
"VCU0000277": "HM-SwI-3-FM.json",
|
|
387
|
-
"VCU0000152": "KS550Tech.json",
|
|
388
|
-
"VCU0000188": "HM-PB-4-WM.json",
|
|
389
|
-
"VCU1543608": "HmIP-MP3P.json",
|
|
390
|
-
"VCU0000037": "HM-LC-Bl1-FM-2.json",
|
|
391
|
-
"VCU0000164": "HM-PB-2-WM55.json",
|
|
392
|
-
"VCU0000045": "HM-LC-Bl1-FM.json",
|
|
393
|
-
"VCU0000276": "ST6-SH.json",
|
|
394
|
-
"VCU2128127": "HmIP-BSM.json",
|
|
395
|
-
"VCU6985973": "HmIP-BSL.json",
|
|
396
|
-
"VCU6153495": "HmIP-FCI1.json",
|
|
397
|
-
"VCU0000265": "HM-Sen-LI-O.json",
|
|
398
|
-
"VCU0000146": "HM-Sec-Key.json",
|
|
399
|
-
"VCU2737768": "HMIP-SWDO.json",
|
|
400
|
-
"VCU0000143": "HM-WDS100-C6-O-2.json",
|
|
401
|
-
"VCU0000302": "HM-LC-Sw1-Pl-DN-R4.json",
|
|
402
|
-
"VCU0000057": "HM-RCV-50.json",
|
|
403
|
-
"VCU1152627": "HmIP-RC8.json",
|
|
404
|
-
"VCU0000336": "ZEL STG RM FZS-2.json",
|
|
405
|
-
"VCU0000279": "263 144.json",
|
|
406
|
-
"VCU0000012": "HMW-LC-Dim1L-DR.json",
|
|
407
|
-
"VCU0000094": "HM-LC-Dim1T-FM-LF.json",
|
|
408
|
-
"VCU0000292": "HM-LC-Sw4-SM-2.json",
|
|
409
|
-
"VCU7204276": "HmIP-DRSI4.json",
|
|
410
|
-
"VCU2333555": "HmIP-FSI16.json",
|
|
411
|
-
"VCU5424977": "HmIP-DSD-PCB.json",
|
|
412
|
-
"VCU8063453": "HmIP-STH.json",
|
|
413
|
-
"VCU0000237": "HM-WDS30-T-O.json",
|
|
414
|
-
"VCU0000332": "HM-LC-Sw2-PB-FM.json",
|
|
415
|
-
"VCU0000021": "HM-LC-AO-SM.json",
|
|
416
|
-
"VCU0000264": "HM-Sen-X.json",
|
|
417
|
-
"VCU0000132": "HM-ES-PMSw1-Pl-DN-R4.json",
|
|
418
|
-
"VCU0000246": "HM-Sec-MDIR-3.json",
|
|
419
|
-
"VCU0000145": "HM-LC-JaX.json",
|
|
420
|
-
"VCU0000083": "263 133.json",
|
|
421
|
-
"VCU0000346": "HM-WDS40-TH-I-2.json",
|
|
422
|
-
"VCU0000182": "HM-RC-4-B.json",
|
|
423
|
-
"VCU0000190": "RC-H.json",
|
|
424
|
-
"VCU7447418": "HmIP-PCBS2.json",
|
|
425
|
-
"VCU9344471": "HmIP-SPI.json",
|
|
426
|
-
"VCU0000351": "HM-Sec-Win-Generic.json",
|
|
427
|
-
"VCU0000015": "HMW-Sen-SC-12-DR.json",
|
|
428
|
-
"VCU7935803": "HMIP-WRC2.json",
|
|
429
|
-
"VCU0000289": "HM-LC-Sw1-Pl-3.json",
|
|
430
|
-
"VCU2680226": "HmIP-WTH-2.json",
|
|
431
|
-
"VCU6306084": "HmIP-BRC2.json",
|
|
432
|
-
"VCU0000335": "ZEL STG RM FZS.json",
|
|
433
|
-
"VCU0000168": "HM-PBI-4-FM.json",
|
|
434
|
-
"VCU0000074": "HM-LC-Dim1L-CV-2.json",
|
|
435
|
-
"VCU0000288": "HM-LC-Sw4-Ba-PCB.json",
|
|
436
|
-
"VCU2573721": "HmIP-SMO-2.json",
|
|
437
|
-
"VCU0000180": "HM-RC-Sec4-3.json",
|
|
438
|
-
"VCU0000181": "HM-RC-4.json",
|
|
439
|
-
"VCU0000186": "HM-RC-Key3.json",
|
|
440
|
-
"VCU0000272": "HM-Sen-MDIR-O.json",
|
|
441
|
-
"VCU0000329": "263 130.json",
|
|
442
|
-
"VCU0000309": "HM-LC-Sw1-Pl-CT-R5.json",
|
|
443
|
-
"VCU5980155": "HmIP-PCBS-BAT.json",
|
|
444
|
-
"INT0000001": "HM-CC-VG-1.json",
|
|
445
|
-
"VCU0000354": "WS550Tech.json",
|
|
446
|
-
"VCU0000259": "263 167.json",
|
|
447
|
-
"VCU0000344": "HM-WDS30-OT2-SM.json",
|
|
448
|
-
"VCU8249617": "HmIP-ASIR-2.json",
|
|
449
|
-
"VCU0000158": "HM-OU-LED16.json",
|
|
450
|
-
"VCU1004487": "HmIPW-DRAP.json",
|
|
451
|
-
"VCU0000290": "HM-LC-Sw1-SM-2.json",
|
|
452
|
-
"VCU7549831": "HmIP-STE2-PCB.json",
|
|
453
|
-
"VCU0000082": "HM-LC-Dim1TPBU-FM.json",
|
|
454
|
-
"VCU0000321": "HM-LC-Sw1-Pl.json",
|
|
455
|
-
"VCU0000206": "HM-Sen-RD-O.json",
|
|
456
|
-
"VCU9724704": "HmIP-DLD.json",
|
|
457
|
-
"VCU1768323": "HmIP-eTRV-C-2.json",
|
|
458
|
-
"VCU0000217": "HM-Sec-xx.json",
|
|
459
|
-
"VCU0000123": "HM-LC-Dim2L-CV.json",
|
|
460
|
-
"VCU0000295": "HM-LC-Sw1-FM-2.json",
|
|
461
|
-
"VCU0000056": "ZEL STG RM FSA.json",
|
|
462
|
-
"VCU0000078": "HM-LC-Dim1PWM-CV-2.json",
|
|
463
|
-
"VCU0000001": "HMW-RCV-50.json",
|
|
464
|
-
"VCU0000051": "HM-CC-RT-DN-BoM.json",
|
|
465
|
-
"VCU0000153": "KS550LC.json",
|
|
466
|
-
"VCU0000174": "HM-RC-8.json",
|
|
467
|
-
"VCU0000192": "ZEL STG RM HS 4.json",
|
|
468
|
-
"VCU0000171": "HM-PBI-X.json",
|
|
469
|
-
"VCU0000027": "HM-WDS40-TH-I.json",
|
|
470
|
-
"VCU0000088": "HM-LC-Dim1T-CV-2.json",
|
|
471
|
-
"VCU0000043": "263 147.json",
|
|
472
|
-
"VCU8205532": "HmIP-SCTH230.json",
|
|
473
|
-
"VCU0000266": "HM-Sen-MDIR-O-3.json",
|
|
474
|
-
"VCU0000352": "WS550.json",
|
|
475
|
-
"VCU0000331": "HM-LC-Sw1-PB-FM.json",
|
|
476
|
-
"VCU3880755": "HB-UNI-Sensor-THPD-BME280.json",
|
|
477
|
-
"VCU0000020": "HM-PB-4Dis-WM-2.json",
|
|
478
|
-
"VCU0000267": "HM-Sen-MDIR-O-2.json",
|
|
479
|
-
"VCU2407364": "HmIP-PCBS.json",
|
|
480
|
-
"VCU1841406": "HmIP-SWO-PL.json",
|
|
481
|
-
"VCU2826390": "HmIPW-STH.json",
|
|
482
|
-
"VCU0000197": "HM-RC-19.json",
|
|
483
|
-
"VCU0000260": "HM-Sec-SFA-SM.json",
|
|
484
|
-
"VCU0000007": "HMW-IO-4-FM.json",
|
|
485
|
-
"VCU3188750": "HmIP-WGC.json",
|
|
486
|
-
"VCU0000048": "263 146.json",
|
|
487
|
-
"VCU0000062": "CMM.json",
|
|
488
|
-
"VCU3609622": "HmIP-eTRV-2.json",
|
|
489
|
-
"VCU4743739": "HmIPW-SPI.json",
|
|
490
|
-
"VCU0000294": "HM-LC-Sw4-WM-2.json",
|
|
491
|
-
"VCU0000187": "HM-RC-Key3-B.json",
|
|
492
|
-
"VCU6948166": "HmIP-DRDI3.json",
|
|
493
|
-
"VCU0000311": "HM-MOD-Re-8.json",
|
|
494
|
-
"VCU0000202": "HM-RC-Dis-H-x-EU.json",
|
|
495
|
-
"VCU5801873": "HmIP-PMFS.json",
|
|
496
|
-
"VCU0000209": "HM-LC-RGBW-WM.json",
|
|
497
|
-
"VCU0000324": "HM-LC-Sw2-SM.json",
|
|
498
|
-
"VCU5644414": "HmIP-SWDM.json",
|
|
499
|
-
"VCU0000262": "HM-Sen-DB-PCB.json",
|
|
500
|
-
"VCU8539034": "HmIP-WRCR.json",
|
|
501
|
-
"VCU0000022": "ASH550I.json",
|
|
502
|
-
"VCU0000126": "HM-MOD-EM-8.json",
|
|
503
|
-
"VCU0000149": "HM-Sec-Key-Generic.json",
|
|
504
|
-
"VCU0000151": "KS888.json",
|
|
505
|
-
"VCU0000059": "HM-OU-CFM-Pl.json",
|
|
506
|
-
"VCU0000254": "HM-Sec-SCo.json",
|
|
507
|
-
"VCU3015080": "HmIP-SCI.json",
|
|
508
|
-
"VCU0000125": "HSS-DX.json",
|
|
509
|
-
"VCU0000049": "HM-LC-BlX.json",
|
|
510
|
-
"VCU0000333": "HM-LC-Sw4-DR.json",
|
|
511
|
-
"VCU0000047": "ZEL STG RM FEP 230V.json",
|
|
512
|
-
"VCU0000312": "HM-LC-Sw1-Ba-PCB.json",
|
|
513
|
-
"VCU1494703": "HmIP-eTRV-E.json",
|
|
514
|
-
"VCU0000070": "HM-LC-DDC1-PCB.json",
|
|
515
|
-
"VCU0000053": "ZEL STG RM FWT.json",
|
|
516
|
-
"VCU0000005": "HMW-IO-12-FM.json",
|
|
517
|
-
"VCU9333179": "HmIP-ASIR.json",
|
|
518
|
-
"VCU0000046": "HM-LC-Bl1-PB-FM.json",
|
|
519
|
-
"VCU0000204": "HM-RC-SB-X.json",
|
|
520
|
-
"VCU0000207": "HM-Sys-sRP-Pl.json",
|
|
521
|
-
"VCU0000286": "263 131.json",
|
|
522
|
-
"VCU0000308": "HM-LC-Sw1-Pl-CT-R4.json",
|
|
523
|
-
"VCU8126977": "HmIP-MOD-OC8.json",
|
|
524
|
-
"VCU4704397": "HmIPW-WRC6.json",
|
|
525
|
-
"VCU7807849": "HmIPW-DRBL4.json",
|
|
526
|
-
"VCU0000255": "HM-Sec-SD.json",
|
|
527
|
-
"VCU5597068": "HmIPW-SMI55.json",
|
|
528
|
-
"VCU0000179": "HM-RC-Sec4-2.json",
|
|
529
|
-
"VCU1399816": "HmIP-BDT.json",
|
|
530
|
-
"VCU0000044": "HM-LC-Bl1-SM.json",
|
|
531
|
-
"VCU0000297": "HM-LC-Sw4-DR-2.json",
|
|
532
|
-
"VCU0000191": "atent.json",
|
|
533
|
-
"VCU0000089": "HM-LC-Dim1T-FM-2.json",
|
|
534
|
-
"VCU0000029": "IS-WDS-TH-OD-S-R3.json",
|
|
535
|
-
"VCU8255833": "HmIP-STHO-A.json",
|
|
536
|
-
"VCU1803301": "HmIP-USBSM.json",
|
|
537
|
-
"VCU9933791": "HmIPW-DRD3.json",
|
|
538
|
-
"VCU0000299": "HM-LC-Sw1-Pl-DN-R1.json",
|
|
539
|
-
"VCU1366171": "HMIP-PS.json",
|
|
540
|
-
"VCU6977344": "HmIP-MIO16-PCB.json",
|
|
541
|
-
"VCU0000212": "HM-Sec-RHS-2.json",
|
|
542
|
-
"VCU0000028": "263 157.json",
|
|
543
|
-
"VCU0000108": "HM-LC-Dim1T-Pl.json",
|
|
544
|
-
"VCU2913614": "HmIP-WHS2.json",
|
|
545
|
-
"VCU8585352": "HmIP-DRSI1.json",
|
|
546
|
-
"VCU8451105": "HmIPW-WTH.json",
|
|
547
|
-
"VCU1362746": "HmIP-SWO-PR.json",
|
|
548
|
-
"VCU7631078": "HmIP-FDT.json",
|
|
549
|
-
"VCU0000154": "HM-WDS100-C6-O.json",
|
|
550
|
-
"VCU0000356": "WS550LCW.json",
|
|
551
|
-
"VCU0000124": "HM-LC-Dim2L-SM.json",
|
|
552
|
-
"VCU0000253": "HM-Sec-MD.json",
|
|
553
|
-
"VCU0000113": "HM-Dis-EP-WM55.json",
|
|
554
|
-
"VCU0000245": "HM-Sec-SC.json",
|
|
555
|
-
"VCU1223813": "HmIP-FBL.json",
|
|
556
|
-
"VCU0000307": "HM-LC-Sw1-Pl-CT-R3.json",
|
|
557
|
-
"VCU0000129": "HM-ES-PMSw1-Pl-DN-R1.json",
|
|
558
|
-
"VCU8688276": "HmIP-eTRV-B.json",
|
|
559
|
-
"VCU0000241": "HM-CC-SCD.json",
|
|
560
|
-
"VCU6531931": "HmIP-RCB1.json",
|
|
561
|
-
"VCU0000008": "HMW-IO-SR-FM.json",
|
|
562
|
-
"VCU0000194": "HM-RC-12.json",
|
|
563
|
-
"VCU0000144": "HM-LC-Ja1PBU-FM.json",
|
|
564
|
-
"VCU0000355": "WS550LCB.json",
|
|
565
|
-
"VCU0000042": "HM-LC-Bl1PBU-FM.json",
|
|
566
|
-
"VCU0000061": "HM-OU-CM-PCB.json",
|
|
567
|
-
"VCU1111390": "HmIP-HDM2.json",
|
|
568
|
-
"VCU0000258": "HM-Sec-SD-2-Generic.json",
|
|
569
|
-
"VCU0000050": "HM-CC-RT-DN.json",
|
|
570
|
-
"VCU0000141": "HM-ES-TX-WM.json",
|
|
571
|
-
"VCU0000109": "HM-LC-Dim1T-CV.json",
|
|
572
|
-
"VCU2822385": "HmIP-SWSD.json",
|
|
573
|
-
"VCU0000160": "HM-PB-2-WM55-2.json",
|
|
574
|
-
"VCU1533290": "HmIP-WRC6.json",
|
|
575
|
-
"VCU5334484": "HmIP-KRCA.json",
|
|
576
|
-
"VCU1260322": "HmIP-RFUSB.json",
|
|
577
|
-
"VCU0000242": "263 160.json",
|
|
578
|
-
"VCU0000306": "HM-LC-Sw1-Pl-CT-R2.json",
|
|
579
|
-
"VCU0000298": "HM-LC-Sw2-DR-2.json",
|
|
580
|
-
"VCU0000338": "HM-LC-Sw1-Pl-OM54.json",
|
|
581
|
-
"VCU0000195": "HM-RC-12-B.json",
|
|
582
|
-
"VCU0000176": "HM-RC-4-3-D.json",
|
|
583
|
-
"VCU0000261": "HM-Sec-Sir-WM.json",
|
|
584
|
-
"VCU8537918": "HmIP-BROLL.json",
|
|
585
|
-
"VCU0000134": "HM-ES-PMSw1-DR.json",
|
|
586
|
-
"VCU0000326": "HM-LC-Sw4-PCB.json",
|
|
587
|
-
"VCU0000271": "HM-Sen-MDIR-SM.json",
|
|
588
|
-
"VCU9981826": "HmIP-SFD.json",
|
|
589
|
-
"VCU0000349": "HM-Sec-WDS-2.json",
|
|
590
|
-
"VCU0000189": "HM-PB-2-WM.json",
|
|
591
|
-
"VCU0000098": "HM-DW-WM.json",
|
|
592
|
-
"VCU0000058": "HM-OU-CF-Pl.json",
|
|
593
|
-
"VCU0000285": "HM-LC-Sw1PBU-FM.json",
|
|
594
|
-
"VCU0000257": "HM-Sec-SD-2.json",
|
|
595
|
-
"VCU0000147": "HM-Sec-Key-S.json",
|
|
596
|
-
"VCU2428569": "HmIPW-FAL230-C6.json",
|
|
597
|
-
"VCU0000263": "HM-Sen-EP.json",
|
|
598
|
-
"VCU9628024": "HmIPW-FALMOT-C12.json",
|
|
599
|
-
"VCU0000024": "HM-WDS10-TH-O.json",
|
|
600
|
-
"VCU0000173": "HM-PB-6-WM55.json",
|
|
601
|
-
"VCU9710932": "HmIP-SMI55.json",
|
|
602
|
-
"VCU0000323": "HM-LC-Sw1-SM.json",
|
|
603
|
-
}
|
|
247
|
+
|
|
248
|
+
@functools.cache
|
|
249
|
+
def _load_device_translation() -> dict[str, str]:
|
|
250
|
+
"""Load device translation mapping from JSON file."""
|
|
251
|
+
file_path = os.path.join(os.path.dirname(__file__), "data", "device_translation.json")
|
|
252
|
+
if os.path.exists(file_path):
|
|
253
|
+
with open(file_path, encoding=UTF_8) as f:
|
|
254
|
+
return cast(dict[str, str], json.load(f))
|
|
255
|
+
return {}
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
def get_address_device_translation() -> dict[str, str]:
|
|
259
|
+
"""Return the address to device translation mapping."""
|
|
260
|
+
return _load_device_translation()
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
# Public accessor - use this instead of direct dict access
|
|
264
|
+
ADDRESS_DEVICE_TRANSLATION = get_address_device_translation()
|