velbus-aio 2024.7.6__py3-none-any.whl → 2024.11.0__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.
Potentially problematic release.
This version of velbus-aio might be problematic. Click here for more details.
- {velbus_aio-2024.7.6.dist-info → velbus_aio-2024.11.0.dist-info}/METADATA +17 -5
- velbus_aio-2024.11.0.dist-info/RECORD +183 -0
- {velbus_aio-2024.7.6.dist-info → velbus_aio-2024.11.0.dist-info}/WHEEL +1 -1
- velbusaio/channels.py +16 -4
- velbusaio/command_registry.py +7 -5
- velbusaio/const.py +1 -1
- velbusaio/controller.py +8 -5
- velbusaio/handler.py +87 -61
- velbusaio/messages/__init__.py +2 -2
- velbusaio/messages/blind_status.py +1 -1
- velbusaio/messages/channel_name_part1.py +1 -0
- velbusaio/messages/channel_name_part2.py +1 -0
- velbusaio/messages/channel_name_part3.py +1 -0
- velbusaio/messages/cover_down.py +1 -1
- velbusaio/messages/cover_off.py +1 -1
- velbusaio/messages/cover_position.py +1 -1
- velbusaio/messages/cover_up.py +1 -1
- velbusaio/messages/edge_set_color.py +1 -0
- velbusaio/module.py +77 -29
- velbusaio/module_spec/01.json +50 -0
- velbusaio/module_spec/02.json +11 -0
- velbusaio/module_spec/03.json +18 -0
- velbusaio/module_spec/05.json +42 -0
- velbusaio/module_spec/06.json +105 -0
- velbusaio/module_spec/07.json +11 -0
- velbusaio/module_spec/08.json +30 -0
- velbusaio/module_spec/09.json +24 -0
- velbusaio/module_spec/0A.json +46 -0
- velbusaio/module_spec/0B.json +46 -0
- velbusaio/module_spec/0C.json +13 -0
- velbusaio/module_spec/0E.json +25 -0
- velbusaio/module_spec/0F.json +11 -0
- velbusaio/module_spec/10.json +104 -0
- velbusaio/module_spec/11.json +104 -0
- velbusaio/module_spec/12.json +67 -0
- velbusaio/module_spec/13.json +4 -0
- velbusaio/module_spec/14.json +11 -0
- velbusaio/module_spec/15.json +80 -0
- velbusaio/module_spec/16.json +119 -0
- velbusaio/module_spec/17.json +119 -0
- velbusaio/module_spec/18.json +119 -0
- velbusaio/module_spec/1A.json +73 -0
- velbusaio/module_spec/1B.json +100 -0
- velbusaio/module_spec/1D.json +83 -0
- velbusaio/module_spec/1E.json +295 -0
- velbusaio/module_spec/1F.json +167 -0
- velbusaio/module_spec/20.json +167 -0
- velbusaio/module_spec/21.json +291 -0
- velbusaio/module_spec/22.json +330 -0
- velbusaio/module_spec/23.json +129 -0
- velbusaio/module_spec/25.json +3 -0
- velbusaio/module_spec/28.json +419 -0
- velbusaio/module_spec/29.json +228 -0
- velbusaio/module_spec/2A.json +239 -0
- velbusaio/module_spec/2B.json +239 -0
- velbusaio/module_spec/2C.json +257 -0
- velbusaio/module_spec/2D.json +295 -0
- velbusaio/module_spec/2E.json +212 -0
- velbusaio/module_spec/2F.json +208 -0
- velbusaio/module_spec/30.json +46 -0
- velbusaio/module_spec/31.json +465 -0
- velbusaio/module_spec/32.json +365 -0
- velbusaio/module_spec/33.json +239 -0
- velbusaio/module_spec/34.json +157 -0
- velbusaio/module_spec/35.json +157 -0
- velbusaio/module_spec/36.json +157 -0
- velbusaio/module_spec/37.json +297 -0
- velbusaio/module_spec/38.json +102 -0
- velbusaio/module_spec/39.json +4 -0
- velbusaio/module_spec/3A.json +295 -0
- velbusaio/module_spec/3B.json +295 -0
- velbusaio/module_spec/3C.json +295 -0
- velbusaio/module_spec/3D.json +419 -0
- velbusaio/module_spec/3E.json +295 -0
- velbusaio/module_spec/3F.json +4 -0
- velbusaio/module_spec/40.json +4 -0
- velbusaio/module_spec/41.json +233 -0
- velbusaio/module_spec/42.json +4 -0
- velbusaio/module_spec/43.json +11 -0
- velbusaio/module_spec/44.json +26 -0
- velbusaio/module_spec/45.json +4 -0
- velbusaio/module_spec/48.json +104 -0
- velbusaio/module_spec/49.json +104 -0
- velbusaio/module_spec/4A.json +83 -0
- velbusaio/module_spec/4B.json +126 -0
- velbusaio/module_spec/4C.json +119 -0
- velbusaio/module_spec/4D.json +108 -0
- velbusaio/module_spec/4E.json +451 -0
- velbusaio/module_spec/4F.json +89 -0
- velbusaio/module_spec/50.json +89 -0
- velbusaio/module_spec/51.json +89 -0
- velbusaio/module_spec/52.json +189 -0
- velbusaio/module_spec/54.json +4 -0
- velbusaio/module_spec/55.json +4 -0
- velbusaio/module_spec/56.json +4 -0
- velbusaio/module_spec/57.json +222 -0
- velbusaio/module_spec/5A.json +4 -0
- velbusaio/module_spec/5C.json +87 -0
- velbusaio/module_spec/5F.json +66 -0
- velbusaio/module_spec/broadcast.json +67 -0
- velbusaio/protocol.py +1 -1
- velbus_aio-2024.7.6.dist-info/RECORD +0 -103
- velbusaio/protocol.json +0 -10194
- {velbus_aio-2024.7.6.dist-info → velbus_aio-2024.11.0.dist-info}/LICENSE +0 -0
- {velbus_aio-2024.7.6.dist-info → velbus_aio-2024.11.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: velbus-aio
|
|
3
|
-
Version: 2024.
|
|
3
|
+
Version: 2024.11.0
|
|
4
4
|
Summary: Open-source home automation platform running on Python 3.
|
|
5
5
|
Author-email: Maikel Punie <maikel.punie@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -18,19 +18,31 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
22
|
Classifier: Topic :: Home Automation
|
|
22
23
|
Classifier: Topic :: Software Development :: Libraries
|
|
23
24
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
|
-
Requires-Python: >=3.
|
|
25
|
+
Requires-Python: >=3.9.0
|
|
25
26
|
Description-Content-Type: text/markdown
|
|
26
27
|
License-File: LICENSE
|
|
27
|
-
Requires-Dist: pyserial
|
|
28
|
-
Requires-Dist: pyserial-asyncio-fast
|
|
29
|
-
Requires-Dist: backoff
|
|
28
|
+
Requires-Dist: pyserial>=3.5.0
|
|
29
|
+
Requires-Dist: pyserial-asyncio-fast>=0.11
|
|
30
|
+
Requires-Dist: backoff>=1.10.0
|
|
30
31
|
Requires-Dist: aiofile
|
|
31
32
|
|
|
32
33
|

|
|
33
34
|
[](https://results.pre-commit.ci/latest/github/Cereal2nd/velbus-aio/master)
|
|
35
|
+
[](https://badge.fury.io/py/velbus-aio)
|
|
36
|
+
[](https://github.com/Cereal2nd/velbus-aio)
|
|
37
|
+
[](https://github.com/cereal2nd/velbus-aio/blob/master/LICENSE)
|
|
38
|
+
[](https://pepy.tech/project/velbus-aio)
|
|
39
|
+
[](https://pepy.tech/project/velbus-aio)
|
|
40
|
+
[](https://pepy.tech/project/velbus-aio)
|
|
41
|
+
[](https://github.com/psf/black)
|
|
42
|
+
|
|
43
|
+
> This project requires financial support, but it is free for you to use. You can join those helping to keep the lights on at:
|
|
44
|
+
>
|
|
45
|
+
> [<img src="https://raw.githubusercontent.com/Cereal2nd/hassio-velbusd/refs/heads/main/images/bmc-button.svg" width=150 height=40 style="margin: 5px"/>](https://buymeacoffee.com/cereal2nd) [<img src="https://raw.githubusercontent.com/Cereal2nd/hassio-velbusd/refs/heads/main/images/github-sponsors-button.svg" width=150 height=40 style="margin: 5px"/>](https://github.com/sponsors/Cereal2nd/)
|
|
34
46
|
|
|
35
47
|
# velbus-aio
|
|
36
48
|
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
velbusaio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
velbusaio/channels.py,sha256=38AgefFFXJpA9v4ZrRAvoHz3UKuGKEVUgbyYiY1mkho,23278
|
|
3
|
+
velbusaio/command_registry.py,sha256=izhVz8jR37F-L10bxL4ObtZM3kat9AZqVItocbok9_w,5186
|
|
4
|
+
velbusaio/const.py,sha256=aHClMaMS6NINTCrjeRwLbVzdvS91VgFKM8j61ks5tn0,1862
|
|
5
|
+
velbusaio/controller.py,sha256=vKoDfEDlQF_L0ZrXU0L4yD61Adxr_qDma-e-dgWYz1w,7607
|
|
6
|
+
velbusaio/discovery.py,sha256=Px6qoZl4QhF17aMz6JxstCORBpLzZGWEK9h4Vyvg57o,1649
|
|
7
|
+
velbusaio/exceptions.py,sha256=FHkXaM3dK5Gkk-QGAf9dLE3FPlCU2FRZWUyY-4KRNnA,515
|
|
8
|
+
velbusaio/handler.py,sha256=gkRikfrTzekL0hFQSUV0AjVuMoUY1DNONEhbRBKyRko,11901
|
|
9
|
+
velbusaio/helpers.py,sha256=iqpoereRH4JY5WAkozIqWvXWyRmhko-J-UGXDylFyEM,2537
|
|
10
|
+
velbusaio/message.py,sha256=_MRuI4XnMcqeduCDJ3AwhAPL1B8VMstFDnjjLo8QuxM,5018
|
|
11
|
+
velbusaio/module.py,sha256=FF_qi7ceg0bjdCJQFRiw4js9cvpTjhRPC75zvG0HTso,37185
|
|
12
|
+
velbusaio/protocol.py,sha256=RIpdL0vPlL4qE4bC8sEZSD0SRS4tWtR9MdzjTPSd2zs,8002
|
|
13
|
+
velbusaio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
+
velbusaio/raw_message.py,sha256=ODoTPVAvyXXQSMXxtQO1U5OxcoQ4W8JJN5fotEDGSTo,4690
|
|
15
|
+
velbusaio/util.py,sha256=FW6YCiPYWOCgqHDs8-LbzME0h81mqftYVG0qqZ-oo7Y,1568
|
|
16
|
+
velbusaio/messages/__init__.py,sha256=ZiApo-9boa5fcxzuaTH3dQ2m8nfTVjrG84pL5V6rFbg,5893
|
|
17
|
+
velbusaio/messages/blind_status.py,sha256=q2CQgcU1ZsXMyjR2co8Eegj0LZRDfRqvpCTVvjovNWA,3432
|
|
18
|
+
velbusaio/messages/bus_active.py,sha256=AB1mEvbMXRuOaC2CQ7hzKSLmbaJnyFqqXrARi-aSdtg,749
|
|
19
|
+
velbusaio/messages/bus_error_counter_status.py,sha256=x0RIzil6IcXWq6GHEFYDkSAergNF51JQYyetDXjvvzY,1178
|
|
20
|
+
velbusaio/messages/bus_error_counter_status_request.py,sha256=zjX3k8MKgR9FO253a7bIlO-ba6SHmLi2WZT6ayAicrw,703
|
|
21
|
+
velbusaio/messages/bus_off.py,sha256=z0PmNZyTlwee6jXnzgK4zHhFvevAXNboDrEEQvyLLfc,679
|
|
22
|
+
velbusaio/messages/channel_name_part1.py,sha256=zN3rRXBQDLtIwy1ZdQmzNQPWUo1GPf0BQtQzYfiEYdo,2904
|
|
23
|
+
velbusaio/messages/channel_name_part2.py,sha256=O1eS5Eh63GJjNJ0-Z1OMbhU0dc4dutcJ3jl-C49n8Ek,2879
|
|
24
|
+
velbusaio/messages/channel_name_part3.py,sha256=84tLU2ksldBj0ahKC44BJ3uUOU_uLQEjOuw4HNvO4oQ,2880
|
|
25
|
+
velbusaio/messages/channel_name_request.py,sha256=t8Tpx9l4XLgF6cDwUylXk0r8vmNG2QrXJq9F4TwAaBg,2378
|
|
26
|
+
velbusaio/messages/clear_led.py,sha256=AcGRCD0OdlHcFonvHA075nVwvOtZ6KfyjrXeE6A7DZA,912
|
|
27
|
+
velbusaio/messages/counter_status.py,sha256=UgSRw-pipFb8C2DxauHw8Pjem1qTvzUFpiahui73-Is,1240
|
|
28
|
+
velbusaio/messages/counter_status_request.py,sha256=VLFaI7MFnTCH1s8acfKlcAGscJElwxYRC56eT3bbB7Y,919
|
|
29
|
+
velbusaio/messages/cover_down.py,sha256=0q805ghMmdeFbNLPXZ9TIqsn4QUiwaET4W6j0XEe58E,2566
|
|
30
|
+
velbusaio/messages/cover_off.py,sha256=kzzZKSXiLJJdrXPmIx0dFwR99j6PS6VVpmZp8BbrEY4,2257
|
|
31
|
+
velbusaio/messages/cover_position.py,sha256=_BgQz3DqZGirXDthj7xq72hxr51FYv2tyrdCMQkwzIY,1282
|
|
32
|
+
velbusaio/messages/cover_up.py,sha256=iFPCWuRhIc54oMQAFz5DZsUW23673_nNHoPFJC_HA_c,2561
|
|
33
|
+
velbusaio/messages/dali_device_settings.py,sha256=KzJ7OFkFRPuCXSOThuplM48J_kH0I3RE82ZRCpmiqYA,4870
|
|
34
|
+
velbusaio/messages/dali_device_settings_request.py,sha256=InTnrwLD7l9gCHXKlJ69FHMXcejtYMUZBtnffx9nDQU,1476
|
|
35
|
+
velbusaio/messages/dali_dim_value_status.py,sha256=Kgtfb65HCku4OBm6uaxKFpK3VtlYaTemSjMhZqngqkY,1059
|
|
36
|
+
velbusaio/messages/dimmer_channel_status.py,sha256=uk0SqV3EMJcDGZjoJDA_iHEpgk57qaa7xg1CQkSlIvc,2484
|
|
37
|
+
velbusaio/messages/dimmer_status.py,sha256=pWsWXJGWmYGio4FyUktI9aYnIBQkGCQ5ZwaeqnenYsU,2938
|
|
38
|
+
velbusaio/messages/edge_set_color.py,sha256=YhxTv-WtDrZ_O67Ro6V-bcHrxj3tyBI1GuzTI5LkIVw,3306
|
|
39
|
+
velbusaio/messages/edge_set_custom_color.py,sha256=Lz-7prBveqPwuDWv2Mn13X9TAXGBEquw8xz2_y9NtTk,1338
|
|
40
|
+
velbusaio/messages/fast_blinking_led.py,sha256=_AaG6NcjzG_cBNARogzu56l7DNpGU11XGrDHIkMuKss,909
|
|
41
|
+
velbusaio/messages/forced_off.py,sha256=RhYRkd7bbq4Nvg2mOp8Vmg3zvhyGeXYeAYJC8iQ_Bzw,591
|
|
42
|
+
velbusaio/messages/forced_on.py,sha256=38ZDMP70wcZ2I0w0w6HUROakhdl8bhVNELGpMCDqo6E,590
|
|
43
|
+
velbusaio/messages/interface_status_request.py,sha256=V0qfK1FM-uTT3ChXPiUOY0FdHJIB5rp4vLbOFjzgZMQ,695
|
|
44
|
+
velbusaio/messages/ir_receiver_status.py,sha256=EfCSaB0FRy1h1ofjRa-kim-oPnwWeHDmaw8XATRpJFE,375
|
|
45
|
+
velbusaio/messages/kwh_status.py,sha256=qUeHfA_66MCGUw3A-Kz9bMaw-WUZYJvc-vEcru51KiY,1414
|
|
46
|
+
velbusaio/messages/light_value_request.py,sha256=ysejBpgiifSCFHh88sKvou7f1BSqchCmTMAT3kjAGX0,599
|
|
47
|
+
velbusaio/messages/memo_text.py,sha256=RwAjm14oths6rmsjC8WFFS7uOD9UHRue1UxTd4AuQHU,1031
|
|
48
|
+
velbusaio/messages/memory_data.py,sha256=kH_jTCZCyivRnD3DJeiWKDTG01Vk91LbdRXVjj8WHBU,1031
|
|
49
|
+
velbusaio/messages/memory_data_block.py,sha256=3QufrOahEkIhJjivWtOXp62YuVaUwx6trA-OQls6ohQ,1045
|
|
50
|
+
velbusaio/messages/memory_dump_request.py,sha256=xrPsdpygD9DUF3lp-BzJacuq1dNkqz2wtHpqu_F1zVM,699
|
|
51
|
+
velbusaio/messages/module_status.py,sha256=83UrRFXgRRngcF36fogyw8G5XPFlyaoZoW7XlxwvnQE,6637
|
|
52
|
+
velbusaio/messages/module_status_request.py,sha256=s3h8F6Dpmjcb4hqDQKIzdOgocW1F_st40cctcW7WmQ4,961
|
|
53
|
+
velbusaio/messages/module_subtype.py,sha256=KG-OC0eW-ZRnP1P8EWmcay6O-no6Mn2cklEjokaIW9M,1487
|
|
54
|
+
velbusaio/messages/module_type.py,sha256=fb4q_SP3B6h_f9jGxgMvNoIpgBPXx36nwjCmtf0DfBw,4154
|
|
55
|
+
velbusaio/messages/module_type_request.py,sha256=fntMYCF1WVwSseCy3zRoZQH6JeGz8JDfTkwHC3AvcB4,754
|
|
56
|
+
velbusaio/messages/push_button_status.py,sha256=SRFLvNC00FdKDTSb4kNVSHeXI1i5Ey5ENxpsB3B8FuU,1554
|
|
57
|
+
velbusaio/messages/raw.py,sha256=pepZSUVY-ro5jv3ZyO6BI3ap5RZ2g_Bd9dlbaICFldQ,1964
|
|
58
|
+
velbusaio/messages/read_data_block_from_memory.py,sha256=GQwnO71rwPTFgu4YyB4FNQs4_G4dAOGuAsBqwBzmpXs,975
|
|
59
|
+
velbusaio/messages/read_data_from_memory.py,sha256=0Sy9x-7HmkazohpUqFT-647EUmCL8swIgcCpb93a-Fg,978
|
|
60
|
+
velbusaio/messages/realtime_clock_status_request.py,sha256=cDhA8lkCfvHtYwKIQ-bewCfg6xS6Uo4Ruj8KF6aGvDs,608
|
|
61
|
+
velbusaio/messages/receive_buffer_full.py,sha256=Xg4zy6rM-3Zxp3wjRRpVXA3UsFIiUZA0l-vU8c_Y33Q,858
|
|
62
|
+
velbusaio/messages/receive_ready.py,sha256=BjIu-zWlrBGV2BF1BdKF6jUbfzNLAUblq3SRTtF_0rg,687
|
|
63
|
+
velbusaio/messages/relay_status.py,sha256=du16mnJXIzbDSsaIJnoN5KkdqsloOgNkfoFuu3x_F5Y,2837
|
|
64
|
+
velbusaio/messages/restore_dimmer.py,sha256=YQsR7NF1pC40KaegxQhqcmL2mL57aPHsgzdA3YHrLxQ,1822
|
|
65
|
+
velbusaio/messages/select_program.py,sha256=9jLhsCuYGQsw-FMxpmNljPZifGeE_oJ6A5bgCRI2JJ0,835
|
|
66
|
+
velbusaio/messages/sensor_settings_request.py,sha256=Uwywf0JGwBwc_2ZlfxVJicm3oUlWBNEcclcHA2_Mv5I,819
|
|
67
|
+
velbusaio/messages/sensor_temp_request.py,sha256=bTChj9udOjIww9vJ2SWmMtbry_8jLDvbWSAy_ZPmrb4,599
|
|
68
|
+
velbusaio/messages/sensor_temperature.py,sha256=ThA_4FFhQutCSt8147yCy7ocUFfizWaUV2JHoNzesNc,1558
|
|
69
|
+
velbusaio/messages/set_date.py,sha256=jcWb8c5mB71HNBwLCQ9ocEPSHQdZP0yfGJL4_swsRWQ,1359
|
|
70
|
+
velbusaio/messages/set_daylight_saving.py,sha256=CpoKrSt62UzzNxl8SDcpDcb0GKnLcD1f73-ULzqDEzU,1049
|
|
71
|
+
velbusaio/messages/set_dimmer.py,sha256=b32lBHrvZRQ7kKIFhQwuBqk9rXagnBtcJxo1V7V5x_0,2050
|
|
72
|
+
velbusaio/messages/set_led.py,sha256=X8tIDzJgtf5EsH92rjoUyrECNFW-ECgAQoQ9TnvJEQk,900
|
|
73
|
+
velbusaio/messages/set_realtime_clock.py,sha256=h34pCvyPm7tSQ5BdB8yC8SRulrtldeX-ZJFv3Wcvdk0,1209
|
|
74
|
+
velbusaio/messages/set_temperature.py,sha256=78LfGOBZo2bw7eF38uyXOjUcJrsSvQPDW2qbXLOYd0o,959
|
|
75
|
+
velbusaio/messages/slider_status.py,sha256=AlBI1DJPLUwxOFfPIKYv15bFOnVXm__Tym7AW4xGMxo,1418
|
|
76
|
+
velbusaio/messages/slow_blinking_led.py,sha256=UktzpRtyM4mR7_KQuNjqenPEeM3P1vgTyMW8dnVwylQ,909
|
|
77
|
+
velbusaio/messages/start_relay_blinking_timer.py,sha256=AUqeXzQlxoW-jxG0YR7Lqt8QfDC1qX3u_MVSMkI783E,1298
|
|
78
|
+
velbusaio/messages/start_relay_timer.py,sha256=FZP4hL3t0rNF_b8GluAM_IymBRkp86epx2rJ29LXpyQ,1290
|
|
79
|
+
velbusaio/messages/switch_relay_off.py,sha256=zmFQP2M0dNKDIljAba0jswKCXsML1psBjfrQtmHuzPM,1099
|
|
80
|
+
velbusaio/messages/switch_relay_on.py,sha256=gMXV8F2rdFQMLKu3Rd1QXHqpb8RWsgcVqwnTt3C28y8,1098
|
|
81
|
+
velbusaio/messages/switch_to_comfort.py,sha256=_avZVz-OkEYe05syirB2N0d8IdgfxElRncNajRWMg_Y,791
|
|
82
|
+
velbusaio/messages/switch_to_day.py,sha256=c9ZQIfE6_tCSUksj1V_M8Pbo48-H7rbPriEtDmX6Shk,787
|
|
83
|
+
velbusaio/messages/switch_to_night.py,sha256=K-_19ZnnlJCOZJkEqWJ3antwHlHEjE7L5BA_H4vd99I,789
|
|
84
|
+
velbusaio/messages/switch_to_safe.py,sha256=5G6ZYdmi_-9W9KB-_SofUfco6ppWb802cChXHq4O6Gg,788
|
|
85
|
+
velbusaio/messages/temp_sensor_settings_part1.py,sha256=QBIzzfj7tB_9LQRlY92ac5IMGnEcgsvQPsyv9CHms9E,605
|
|
86
|
+
velbusaio/messages/temp_sensor_settings_part2.py,sha256=H7JxqsfBmIk05iTtpWfDidvyf-kGMj1YEJ-VouvAHnE,584
|
|
87
|
+
velbusaio/messages/temp_sensor_settings_part3.py,sha256=e9YUkcn11sRwcmvCCOzm87irJ5pdt81S3I1qGZBcTe0,584
|
|
88
|
+
velbusaio/messages/temp_sensor_settings_part4.py,sha256=b9s2-tj-q-ct0--_uvDOJx7JQtZ3hPShRyD5_oFGmGY,584
|
|
89
|
+
velbusaio/messages/temp_sensor_settings_request.py,sha256=kZG3QeHQdA-QEvp3newPGvNW8qhIrJAVcqTY1sZqtvQ,607
|
|
90
|
+
velbusaio/messages/temp_sensor_status.py,sha256=FnY5qFKli2P9xnpVKgysN_nOE_vx86G77Ql93vyTPEY,3828
|
|
91
|
+
velbusaio/messages/temp_set_cooling.py,sha256=_KzrPPdQNYLF6V8-KNehk6D82IQXNCe2obkct_QxX_c,724
|
|
92
|
+
velbusaio/messages/temp_set_heating.py,sha256=Au6b3Y3vpwwdfCJzO5DLOPPVJ98DBrO5_hxMtc165Ho,724
|
|
93
|
+
velbusaio/messages/update_led_status.py,sha256=77wRc3sQl_wXrGvGw9r9-KY17NE5mxTJYgvHWQ5DrRU,1301
|
|
94
|
+
velbusaio/messages/very_fast_blinking_led.py,sha256=vlMEern8PoOvtO5JaAk9erMR4IKJoWUeHJcD69S3B14,913
|
|
95
|
+
velbusaio/messages/write_data_to_memory.py,sha256=gr6bi4SzK8Mw8fnp8yV-STq5jts7NoeV7zZgdptH5Vs,1039
|
|
96
|
+
velbusaio/messages/write_memory_block.py,sha256=zGnNxx_M66HpBQ8S7kagtNw8_qSRHsOLk1MuiS0uygM,1032
|
|
97
|
+
velbusaio/messages/write_module_address_and_serial_number.py,sha256=6y57j-md3btNtQddX5CUREtSs1Dzgkd953sQPZ3Pioo,1597
|
|
98
|
+
velbusaio/module_spec/01.json,sha256=HgE7mouKohbnMbT_bPl1yo59py36daqyhyG5ZVVluzA,953
|
|
99
|
+
velbusaio/module_spec/02.json,sha256=f5xCxEGlqu1lVdMBRu8IDXV1RMXNRgi0cDk_e24UhFc,158
|
|
100
|
+
velbusaio/module_spec/03.json,sha256=a-nJbRjNfXpJsOAwGPkbQjJpF4QDBjj5N1HZezCWgnU,255
|
|
101
|
+
velbusaio/module_spec/05.json,sha256=0m7xOx3l5Fo4cfC6EqRpAom3fzA_Zz4UCUgEcxLCpYI,823
|
|
102
|
+
velbusaio/module_spec/06.json,sha256=ADducc-VXAa5WMPKEQwRjAZuwfNPswy5RLAJulmCLnY,3242
|
|
103
|
+
velbusaio/module_spec/07.json,sha256=YLR1SAcSM4PBdghWxKAhGGLomtB5tMWls7JNH7vVNzQ,161
|
|
104
|
+
velbusaio/module_spec/08.json,sha256=VxnheRrmMjvk208W2joPOUmi63e8HUximTpG8i62xfM,547
|
|
105
|
+
velbusaio/module_spec/09.json,sha256=RDzASLWiILU7vNU5sBonI9DhHhiPGC-4NrWH6hp52qg,378
|
|
106
|
+
velbusaio/module_spec/0A.json,sha256=N7eN0ovOGyWkmm1jkGli_0a1fVRN1cWmIFclHG_JzCU,880
|
|
107
|
+
velbusaio/module_spec/0B.json,sha256=DDGF-3jGLRcsCgjBwbZdrHO9mUwTFJzLBdlA5bszsmY,868
|
|
108
|
+
velbusaio/module_spec/0C.json,sha256=lohrBMeic48nV5sbLO8KuJpj2Yz1xUDDtIlYLA0PcEA,236
|
|
109
|
+
velbusaio/module_spec/0E.json,sha256=Avb1lYqFZvCjWbrQpV9AmrOnrMquYiqIcE7y8SwDxMw,744
|
|
110
|
+
velbusaio/module_spec/0F.json,sha256=589CrCMqI-8oJScbOX-PzXwQmpeZk9Ugv2RY6UQkM6M,176
|
|
111
|
+
velbusaio/module_spec/10.json,sha256=Jf4mYqelpZHcnUqwKH1OXeFUrrtUpvyxn6Ef7LT-ISc,3220
|
|
112
|
+
velbusaio/module_spec/11.json,sha256=RGpdP6ajCRtePzxgP4LgK1_tWQ6EPfwahE8jaJZJim8,3217
|
|
113
|
+
velbusaio/module_spec/12.json,sha256=En3J8Ju3d_G7xVo2zHy_sTWdBjYNollFwsZpeSo7s2o,1867
|
|
114
|
+
velbusaio/module_spec/13.json,sha256=reXGXbaTfVVmLekrXHlfzjsV424bb0ozG7q-PxDv27U,68
|
|
115
|
+
velbusaio/module_spec/14.json,sha256=ym2T2jCds-lC7QBZr7mqb0L9PlSmQflwpFnlEDxByjk,161
|
|
116
|
+
velbusaio/module_spec/15.json,sha256=VDkI3bJRZgpfAsCiEzRJls7Hj7spmaKZ6XR8TjyymAQ,2698
|
|
117
|
+
velbusaio/module_spec/16.json,sha256=9sdbNwyQQRkGsd477Oyu279tRcSydQC0bGwSQrhnVTU,3459
|
|
118
|
+
velbusaio/module_spec/17.json,sha256=WeWeIV6euBGkPq7jBv5rbSykZwhDP6nPzrfk7rrYz-w,3490
|
|
119
|
+
velbusaio/module_spec/18.json,sha256=ylZ7_86DYCkHxk40ZqsGYEkLeUslZ_-b_ftUihfJ2bQ,3484
|
|
120
|
+
velbusaio/module_spec/1A.json,sha256=dvIxgufmgIhZhsBuVEa27KmukJyvnFciorqpxwRNWFM,2581
|
|
121
|
+
velbusaio/module_spec/1B.json,sha256=JbHvdmoRnsqyqhCItsTOP-UK_Yz_ha1Km9CXDe68YVc,3159
|
|
122
|
+
velbusaio/module_spec/1D.json,sha256=flql_3BEJxN49hCuyY7rPpt1oSrbWsXurjnivOFd3vo,2717
|
|
123
|
+
velbusaio/module_spec/1E.json,sha256=tLisdUarUyS8Fk9oDsQy7TjmlkGs-vHrA8QbU6F7Pz4,5298
|
|
124
|
+
velbusaio/module_spec/1F.json,sha256=oFb-HIrLBhIr_sPX8ZsIzOtpi_nHyfLkfoP1P0Ewg88,4386
|
|
125
|
+
velbusaio/module_spec/20.json,sha256=ysngPSzynugxFZGd5bZD76nN1ZbjyiHiA1-HReJYm-Y,4393
|
|
126
|
+
velbusaio/module_spec/21.json,sha256=Sj-oc76Oi_KAEuwnaLHL8GsbR_ClZHW0yPiD0D7vIOA,6815
|
|
127
|
+
velbusaio/module_spec/22.json,sha256=hG1DWaKtqbrgU-cBEI1gyTMIDIqxvPQYpN26541IODQ,6332
|
|
128
|
+
velbusaio/module_spec/23.json,sha256=3jCtHfqaqHNVZ6QyG499ZKaIQyTqmTxqqLujmgTW4RY,3593
|
|
129
|
+
velbusaio/module_spec/25.json,sha256=H87YnDGlgnEJzokWZkrfDtGGE-3JRJEYDRnKTlL69eE,24
|
|
130
|
+
velbusaio/module_spec/28.json,sha256=FHyi0Ax7ve6k-e6vE8oTXsfLT7OqIMTXBtkhU3C7304,7712
|
|
131
|
+
velbusaio/module_spec/29.json,sha256=S_L0wHyhtqeyh4dxd_6tX179rhb5OoCzD2zl3GqcQOI,4008
|
|
132
|
+
velbusaio/module_spec/2A.json,sha256=RJIqQh-aqvtB4DifBe8oiaaC47tf_r8mAMX1iJ_O3yc,4170
|
|
133
|
+
velbusaio/module_spec/2B.json,sha256=lxzrmcWLz9KHMLVbiMSfzqH7rS8Ww3De11k5pJErUlo,4173
|
|
134
|
+
velbusaio/module_spec/2C.json,sha256=84VjlZ9j5DREO72wAhdDAF9hXRBvntGCZWbwXxVWkQk,4486
|
|
135
|
+
velbusaio/module_spec/2D.json,sha256=jmOmVnjHjozr6Cu345hPPQWpgCI7kuF_VVVGDEB4QV8,5276
|
|
136
|
+
velbusaio/module_spec/2E.json,sha256=VA1J1Sevkgnv-OA1T-mFSeWEg4hTq1LMydryq9S7Dq0,3654
|
|
137
|
+
velbusaio/module_spec/2F.json,sha256=95h-w7HA_xQpMCZRyFvPjVQP3mCa9AZM4zFNzTSi7vY,3595
|
|
138
|
+
velbusaio/module_spec/30.json,sha256=WJsy2Uw4oANze8h4eMJilIy5JDoy8yzsm2MJtUMiH9k,871
|
|
139
|
+
velbusaio/module_spec/31.json,sha256=o9AqfLTdjQkSd77t97A-ttQxWLEJVyKG22Ie50vsRIY,8291
|
|
140
|
+
velbusaio/module_spec/32.json,sha256=otyNI5_SyZW76TUTz0YwA6CIbUKpZk_Y2RFHeCTgPeA,6310
|
|
141
|
+
velbusaio/module_spec/33.json,sha256=7uEWgRW9_MOEtbJKxA6GPR-sWR-OMYp6snLoTgVzeyQ,4119
|
|
142
|
+
velbusaio/module_spec/34.json,sha256=h7jjGfZboTC3awV-RhCNggsZn-pz9ZB-lE9Z0SBPsJE,2897
|
|
143
|
+
velbusaio/module_spec/35.json,sha256=evnYDd_jX2CsvrLtCDrE1Dml5eO7zCaYauoYMAarED0,2894
|
|
144
|
+
velbusaio/module_spec/36.json,sha256=aQhIjfu2rSINQXP5ijmrmLKPk00XaLxJThbofjtKP9c,2888
|
|
145
|
+
velbusaio/module_spec/37.json,sha256=Ks3d_aq3aLdG4EnUrtz2o1JPtRp-DVLPYYO2zvxkmdo,6942
|
|
146
|
+
velbusaio/module_spec/38.json,sha256=fW5hUjUNF_6oJ1oREHDVEzhvqBPHHz-WUSFNuMmbwUw,1947
|
|
147
|
+
velbusaio/module_spec/39.json,sha256=o9p-zOhyyAgOrZT8JYok4qKsIDmYQS62v1HsqI_-SMU,70
|
|
148
|
+
velbusaio/module_spec/3A.json,sha256=mifj-U7M-55rTAo9L1DBSMbpBUOMwrhBuuvDG90loDQ,5307
|
|
149
|
+
velbusaio/module_spec/3B.json,sha256=npHo1SGnY9RT1jgKsBjcwLQRUCOByvzGvVMmR7bZabY,5304
|
|
150
|
+
velbusaio/module_spec/3C.json,sha256=uvJjyxp7mmY3ohBfNvRGk1FtVt6rWtlIqwLl6zIawkw,5298
|
|
151
|
+
velbusaio/module_spec/3D.json,sha256=PQN562OodAmwmhKfOqk2Grt4w-kFxj00ApYH3x_xqOs,7721
|
|
152
|
+
velbusaio/module_spec/3E.json,sha256=eu0pecAOfc7G3I3YCeUpCVXbKcaIOw2f0wGnEw6AKJY,5285
|
|
153
|
+
velbusaio/module_spec/3F.json,sha256=F_zC4QIDqkyT9kM0fGsusKYIqqMtOhmlYbQ0DFKqeas,73
|
|
154
|
+
velbusaio/module_spec/40.json,sha256=JkSmbb9uQ43VB0Aacif-lnHYj9-P-oFsOeGblu3sHRQ,71
|
|
155
|
+
velbusaio/module_spec/41.json,sha256=d5KBfGAUSht8Fl4WXiJg6QIQHu0mAP2e9oT4t25lldU,4103
|
|
156
|
+
velbusaio/module_spec/42.json,sha256=0zSbvyG6I2O3XAhv28R_v0IQvd_h4xLQIJDXVInYR6g,59
|
|
157
|
+
velbusaio/module_spec/43.json,sha256=y_e_hGjiUlnNj_Dnw_2pKvrutSlp-mU6OTym9KVPTLQ,178
|
|
158
|
+
velbusaio/module_spec/44.json,sha256=tYq0Y_dju2VztBX63LdorK3TEmMv0HlfYO_s9cZYJQ8,474
|
|
159
|
+
velbusaio/module_spec/45.json,sha256=aAlc4ANbdDXJs7YhXm06te-gN43uaL80DS9qoinS2cQ,71
|
|
160
|
+
velbusaio/module_spec/48.json,sha256=WfumNT6fFZxPWV2LjPAk58pcTpL8Phc4Aytglrsed_E,3223
|
|
161
|
+
velbusaio/module_spec/49.json,sha256=5Qu1mKtO_Qemvs11e2U_m-vg_QgWgu96IK2dy1-yaWI,3220
|
|
162
|
+
velbusaio/module_spec/4A.json,sha256=YEa9airi4DpJcKAkHuienkIzRR-AzGJZeQNuuzR0l2Q,2720
|
|
163
|
+
velbusaio/module_spec/4B.json,sha256=2OI1pysdFIsJv1R7M0KtVA4OvYAZFUhqQWAt2h_h_Tc,3611
|
|
164
|
+
velbusaio/module_spec/4C.json,sha256=l1oMv_JnUEpEIFY1GZMUeXDWPjbUz98tZZ-4VsGxhsM,3464
|
|
165
|
+
velbusaio/module_spec/4D.json,sha256=9Lho_3m4H5SBhx363zCDN3HnA8zLlygIi0EgXyOolF8,3213
|
|
166
|
+
velbusaio/module_spec/4E.json,sha256=wDEjpA6nMdV2WUndz2WDdzea3WTcMwMVV6sT_RR2pz4,8883
|
|
167
|
+
velbusaio/module_spec/4F.json,sha256=ePImVotWcTbCvJ5xYN3hBqwZkGoRFEgFJV4AwXg474A,1631
|
|
168
|
+
velbusaio/module_spec/50.json,sha256=xmchRD1S_Z4j3aLEafYsAZtW7bOWpWCWvUk-8SU3Zww,1628
|
|
169
|
+
velbusaio/module_spec/51.json,sha256=8xrdwniKVokfLK9k44JIBr_xJ4H0yh8pN1SuX1-fOc0,1622
|
|
170
|
+
velbusaio/module_spec/52.json,sha256=NcDjyS_j86oobJmENaRsbmELxEp79iBFn05zlzSvw5Q,3452
|
|
171
|
+
velbusaio/module_spec/54.json,sha256=kvSx4rKnpU10h4DZtPk_RZxej7zltx4hjWEstOPiNE8,60
|
|
172
|
+
velbusaio/module_spec/55.json,sha256=CZArOlcjtP-Dd57KXIcOFcTVj4UEkQmJtiERWZ02V44,60
|
|
173
|
+
velbusaio/module_spec/56.json,sha256=3EFab88JQrLrRwoiA_qlaL7t6tlfPo_gwCei2XIM5E0,60
|
|
174
|
+
velbusaio/module_spec/57.json,sha256=E_Ftam1UP57p6uQtmFe1gOOA_11_AIQMb8_Khf6XNTM,4313
|
|
175
|
+
velbusaio/module_spec/5A.json,sha256=V_yhMdGrNxFE7J_CXJmngN-yYBz2V_tqXkKCCwI7HCE,52
|
|
176
|
+
velbusaio/module_spec/5C.json,sha256=yw_XlccuFp-buRL_NXThwQLwblVRa0diLpUDm9Exrg0,1586
|
|
177
|
+
velbusaio/module_spec/5F.json,sha256=ebSwLMUW5A4LCRGOrF-vwxSVvrWZMNUWz10Xrmz7SwM,1259
|
|
178
|
+
velbusaio/module_spec/broadcast.json,sha256=L2Sc9FhZ7NOuu7K5g5jAhvUQGDP6a2CKrg-uWh_v-sA,2250
|
|
179
|
+
velbus_aio-2024.11.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
180
|
+
velbus_aio-2024.11.0.dist-info/METADATA,sha256=bBUEac4aHNH5XiMhRVlfAmCAvv54bDFg05c5lcV0mYM,4541
|
|
181
|
+
velbus_aio-2024.11.0.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
|
|
182
|
+
velbus_aio-2024.11.0.dist-info/top_level.txt,sha256=W0-lSOwD23mm8FqaIe9vY20fKicBMIdUVjF-zmfxRnY,15
|
|
183
|
+
velbus_aio-2024.11.0.dist-info/RECORD,,
|
velbusaio/channels.py
CHANGED
|
@@ -19,7 +19,7 @@ from velbusaio.const import (
|
|
|
19
19
|
VOLUME_LITERS_HOUR,
|
|
20
20
|
)
|
|
21
21
|
from velbusaio.message import Message
|
|
22
|
-
from velbusaio.messages.edge_set_color import
|
|
22
|
+
from velbusaio.messages.edge_set_color import CustomColorPriority, SetEdgeColorMessage
|
|
23
23
|
from velbusaio.messages.module_status import PROGRAM_SELECTION
|
|
24
24
|
|
|
25
25
|
if TYPE_CHECKING:
|
|
@@ -38,12 +38,14 @@ class Channel:
|
|
|
38
38
|
num: int,
|
|
39
39
|
name: str,
|
|
40
40
|
nameEditable: bool,
|
|
41
|
+
subDevice: bool,
|
|
41
42
|
writer: Callable[[Message], Awaitable[None]],
|
|
42
43
|
address: int,
|
|
43
44
|
):
|
|
44
45
|
self._num = num
|
|
45
46
|
self._module = module
|
|
46
47
|
self._name = name
|
|
48
|
+
self._subDevice = subDevice
|
|
47
49
|
if not nameEditable:
|
|
48
50
|
self._is_loaded = True
|
|
49
51
|
else:
|
|
@@ -80,6 +82,8 @@ class Channel:
|
|
|
80
82
|
return self._num
|
|
81
83
|
|
|
82
84
|
def get_full_name(self) -> str:
|
|
85
|
+
if self._subDevice:
|
|
86
|
+
return f"{self._module.get_name()} ({self._module.get_type_name()}) - {self._name}"
|
|
83
87
|
return f"{self._module.get_name()} ({self._module.get_type_name()})"
|
|
84
88
|
|
|
85
89
|
def is_loaded(self) -> bool:
|
|
@@ -94,6 +98,9 @@ class Channel:
|
|
|
94
98
|
def is_temperature(self) -> bool:
|
|
95
99
|
return False
|
|
96
100
|
|
|
101
|
+
def is_sub_device(self) -> bool:
|
|
102
|
+
return self._subDevice
|
|
103
|
+
|
|
97
104
|
def get_name(self) -> str:
|
|
98
105
|
"""
|
|
99
106
|
:return: the channel name
|
|
@@ -137,7 +144,11 @@ class Channel:
|
|
|
137
144
|
}
|
|
138
145
|
|
|
139
146
|
def to_cache(self) -> dict:
|
|
140
|
-
dst = {
|
|
147
|
+
dst = {
|
|
148
|
+
"name": self._name,
|
|
149
|
+
"type": type(self).__name__,
|
|
150
|
+
"subdevice": self._subDevice,
|
|
151
|
+
}
|
|
141
152
|
if hasattr(self, "_Unit"):
|
|
142
153
|
dst["Unit"] = self._Unit
|
|
143
154
|
return dst
|
|
@@ -448,11 +459,12 @@ class Dimmer(Channel):
|
|
|
448
459
|
num: int,
|
|
449
460
|
name: str,
|
|
450
461
|
nameEditable: bool,
|
|
462
|
+
subDevice: bool,
|
|
451
463
|
writer: Callable[[Message], Awaitable[None]],
|
|
452
464
|
address: int,
|
|
453
465
|
slider_scale: int = 100,
|
|
454
466
|
):
|
|
455
|
-
super().__init__(module, num, name, nameEditable, writer, address)
|
|
467
|
+
super().__init__(module, num, name, nameEditable, subDevice, writer, address)
|
|
456
468
|
|
|
457
469
|
self.slider_scale = slider_scale
|
|
458
470
|
# VMB4DC has dim values 0(off), 1-99(dimmed), 100(full on)
|
|
@@ -508,7 +520,7 @@ class Temperature(Channel):
|
|
|
508
520
|
_min = None
|
|
509
521
|
_target = 0
|
|
510
522
|
_cmode = None
|
|
511
|
-
|
|
523
|
+
_cool_mode = None
|
|
512
524
|
_cstatus = None
|
|
513
525
|
_thermostat = False
|
|
514
526
|
_sleep_timer = 0
|
velbusaio/command_registry.py
CHANGED
|
@@ -9,8 +9,8 @@ MODULE_DIRECTORY = {
|
|
|
9
9
|
0x01: "VMB8PB",
|
|
10
10
|
0x02: "VMB1RY",
|
|
11
11
|
0x03: "VMB1BL",
|
|
12
|
-
0x04: "VMB4LEDPWM-20",
|
|
13
12
|
0x05: "VMB6IN",
|
|
13
|
+
0x06: "VMB4LEDPWM-20",
|
|
14
14
|
0x07: "VMB1DM",
|
|
15
15
|
0x08: "VMB4RY",
|
|
16
16
|
0x09: "VMB2BL",
|
|
@@ -73,14 +73,16 @@ MODULE_DIRECTORY = {
|
|
|
73
73
|
0x4A: "VMB2BLE-10",
|
|
74
74
|
0x4B: "VMB8DC-20",
|
|
75
75
|
0x4C: "VMB6PB-20",
|
|
76
|
+
0x4D: "VMBPIR-20",
|
|
77
|
+
0x4E: "VMB8IN-20",
|
|
76
78
|
0x4F: "VMBEL1-20",
|
|
77
79
|
0x50: "VMBEL2-20",
|
|
78
80
|
0x51: "VMBEL4-20",
|
|
79
81
|
0x52: "VMBELO-20",
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
0x54: "VMBGP1-20",
|
|
83
|
+
0x55: "VMBGP2-20",
|
|
84
|
+
0x56: "VMBGP4-20",
|
|
85
|
+
0x57: "VMBGPO-20",
|
|
84
86
|
0x5A: "VMBDALI-20",
|
|
85
87
|
0x5C: "VMBEL4PIR-20",
|
|
86
88
|
0x5F: "VMBGP4PIR-20",
|
velbusaio/const.py
CHANGED
|
@@ -40,7 +40,7 @@ NO_RTR: Final = 0x00
|
|
|
40
40
|
CACHEDIR: Final = ".velbuscache"
|
|
41
41
|
|
|
42
42
|
# Module scan timeout values (in mSec)
|
|
43
|
-
SCAN_MODULETYPE_TIMEOUT: Final =
|
|
43
|
+
SCAN_MODULETYPE_TIMEOUT: Final = 3000 # time to wait for ModuleTypeRequest
|
|
44
44
|
SCAN_MODULEINFO_TIMEOUT_INITIAL: Final = 1000 # time to wait for first info (status)
|
|
45
45
|
SCAN_MODULEINFO_TIMEOUT_INTERVAL: Final = (
|
|
46
46
|
150 # time to wait for info interval (between next message)
|
velbusaio/controller.py
CHANGED
|
@@ -34,6 +34,7 @@ class Velbus:
|
|
|
34
34
|
self,
|
|
35
35
|
dsn: str,
|
|
36
36
|
cache_dir: str = get_cache_dir(),
|
|
37
|
+
one_address: int | None = None,
|
|
37
38
|
) -> None:
|
|
38
39
|
"""Init the Velbus controller."""
|
|
39
40
|
self._log = logging.getLogger("velbus")
|
|
@@ -46,7 +47,7 @@ class Velbus:
|
|
|
46
47
|
self._auto_reconnect = True
|
|
47
48
|
|
|
48
49
|
self._dsn = dsn
|
|
49
|
-
self._handler = PacketHandler(self)
|
|
50
|
+
self._handler = PacketHandler(self, one_address)
|
|
50
51
|
self._modules: dict[int, Module] = {}
|
|
51
52
|
self._submodules: list[int] = []
|
|
52
53
|
self._send_queue: asyncio.Queue = asyncio.Queue()
|
|
@@ -67,11 +68,10 @@ class Velbus:
|
|
|
67
68
|
self._log.debug("Reconnecting to transport")
|
|
68
69
|
asyncio.ensure_future(self.connect())
|
|
69
70
|
|
|
70
|
-
def add_module(
|
|
71
|
+
async def add_module(
|
|
71
72
|
self,
|
|
72
73
|
addr: int,
|
|
73
74
|
typ: int,
|
|
74
|
-
data: dict,
|
|
75
75
|
serial: int | None = None,
|
|
76
76
|
memorymap: int | None = None,
|
|
77
77
|
build_year: int | None = None,
|
|
@@ -81,14 +81,13 @@ class Velbus:
|
|
|
81
81
|
module = Module.factory(
|
|
82
82
|
addr,
|
|
83
83
|
typ,
|
|
84
|
-
data,
|
|
85
84
|
serial=serial,
|
|
86
85
|
build_year=build_year,
|
|
87
86
|
build_week=build_week,
|
|
88
87
|
memorymap=memorymap,
|
|
89
88
|
cache_dir=self._cache_dir,
|
|
90
89
|
)
|
|
91
|
-
module.initialize(self.send)
|
|
90
|
+
await module.initialize(self.send)
|
|
92
91
|
self._modules[addr] = module
|
|
93
92
|
self._log.info(f"Found module {addr}: {module}")
|
|
94
93
|
|
|
@@ -102,6 +101,10 @@ class Velbus:
|
|
|
102
101
|
self._modules[sub_addr] = module
|
|
103
102
|
module.cleanupSubChannels()
|
|
104
103
|
|
|
104
|
+
def addr_is_submodule(self, addr: int) -> bool:
|
|
105
|
+
"""Check if an address is a submodule."""
|
|
106
|
+
return addr in self._submodules
|
|
107
|
+
|
|
105
108
|
def get_modules(self) -> dict:
|
|
106
109
|
"""Return the module cache."""
|
|
107
110
|
return self._modules
|