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.

Files changed (105) hide show
  1. {velbus_aio-2024.7.6.dist-info → velbus_aio-2024.11.0.dist-info}/METADATA +17 -5
  2. velbus_aio-2024.11.0.dist-info/RECORD +183 -0
  3. {velbus_aio-2024.7.6.dist-info → velbus_aio-2024.11.0.dist-info}/WHEEL +1 -1
  4. velbusaio/channels.py +16 -4
  5. velbusaio/command_registry.py +7 -5
  6. velbusaio/const.py +1 -1
  7. velbusaio/controller.py +8 -5
  8. velbusaio/handler.py +87 -61
  9. velbusaio/messages/__init__.py +2 -2
  10. velbusaio/messages/blind_status.py +1 -1
  11. velbusaio/messages/channel_name_part1.py +1 -0
  12. velbusaio/messages/channel_name_part2.py +1 -0
  13. velbusaio/messages/channel_name_part3.py +1 -0
  14. velbusaio/messages/cover_down.py +1 -1
  15. velbusaio/messages/cover_off.py +1 -1
  16. velbusaio/messages/cover_position.py +1 -1
  17. velbusaio/messages/cover_up.py +1 -1
  18. velbusaio/messages/edge_set_color.py +1 -0
  19. velbusaio/module.py +77 -29
  20. velbusaio/module_spec/01.json +50 -0
  21. velbusaio/module_spec/02.json +11 -0
  22. velbusaio/module_spec/03.json +18 -0
  23. velbusaio/module_spec/05.json +42 -0
  24. velbusaio/module_spec/06.json +105 -0
  25. velbusaio/module_spec/07.json +11 -0
  26. velbusaio/module_spec/08.json +30 -0
  27. velbusaio/module_spec/09.json +24 -0
  28. velbusaio/module_spec/0A.json +46 -0
  29. velbusaio/module_spec/0B.json +46 -0
  30. velbusaio/module_spec/0C.json +13 -0
  31. velbusaio/module_spec/0E.json +25 -0
  32. velbusaio/module_spec/0F.json +11 -0
  33. velbusaio/module_spec/10.json +104 -0
  34. velbusaio/module_spec/11.json +104 -0
  35. velbusaio/module_spec/12.json +67 -0
  36. velbusaio/module_spec/13.json +4 -0
  37. velbusaio/module_spec/14.json +11 -0
  38. velbusaio/module_spec/15.json +80 -0
  39. velbusaio/module_spec/16.json +119 -0
  40. velbusaio/module_spec/17.json +119 -0
  41. velbusaio/module_spec/18.json +119 -0
  42. velbusaio/module_spec/1A.json +73 -0
  43. velbusaio/module_spec/1B.json +100 -0
  44. velbusaio/module_spec/1D.json +83 -0
  45. velbusaio/module_spec/1E.json +295 -0
  46. velbusaio/module_spec/1F.json +167 -0
  47. velbusaio/module_spec/20.json +167 -0
  48. velbusaio/module_spec/21.json +291 -0
  49. velbusaio/module_spec/22.json +330 -0
  50. velbusaio/module_spec/23.json +129 -0
  51. velbusaio/module_spec/25.json +3 -0
  52. velbusaio/module_spec/28.json +419 -0
  53. velbusaio/module_spec/29.json +228 -0
  54. velbusaio/module_spec/2A.json +239 -0
  55. velbusaio/module_spec/2B.json +239 -0
  56. velbusaio/module_spec/2C.json +257 -0
  57. velbusaio/module_spec/2D.json +295 -0
  58. velbusaio/module_spec/2E.json +212 -0
  59. velbusaio/module_spec/2F.json +208 -0
  60. velbusaio/module_spec/30.json +46 -0
  61. velbusaio/module_spec/31.json +465 -0
  62. velbusaio/module_spec/32.json +365 -0
  63. velbusaio/module_spec/33.json +239 -0
  64. velbusaio/module_spec/34.json +157 -0
  65. velbusaio/module_spec/35.json +157 -0
  66. velbusaio/module_spec/36.json +157 -0
  67. velbusaio/module_spec/37.json +297 -0
  68. velbusaio/module_spec/38.json +102 -0
  69. velbusaio/module_spec/39.json +4 -0
  70. velbusaio/module_spec/3A.json +295 -0
  71. velbusaio/module_spec/3B.json +295 -0
  72. velbusaio/module_spec/3C.json +295 -0
  73. velbusaio/module_spec/3D.json +419 -0
  74. velbusaio/module_spec/3E.json +295 -0
  75. velbusaio/module_spec/3F.json +4 -0
  76. velbusaio/module_spec/40.json +4 -0
  77. velbusaio/module_spec/41.json +233 -0
  78. velbusaio/module_spec/42.json +4 -0
  79. velbusaio/module_spec/43.json +11 -0
  80. velbusaio/module_spec/44.json +26 -0
  81. velbusaio/module_spec/45.json +4 -0
  82. velbusaio/module_spec/48.json +104 -0
  83. velbusaio/module_spec/49.json +104 -0
  84. velbusaio/module_spec/4A.json +83 -0
  85. velbusaio/module_spec/4B.json +126 -0
  86. velbusaio/module_spec/4C.json +119 -0
  87. velbusaio/module_spec/4D.json +108 -0
  88. velbusaio/module_spec/4E.json +451 -0
  89. velbusaio/module_spec/4F.json +89 -0
  90. velbusaio/module_spec/50.json +89 -0
  91. velbusaio/module_spec/51.json +89 -0
  92. velbusaio/module_spec/52.json +189 -0
  93. velbusaio/module_spec/54.json +4 -0
  94. velbusaio/module_spec/55.json +4 -0
  95. velbusaio/module_spec/56.json +4 -0
  96. velbusaio/module_spec/57.json +222 -0
  97. velbusaio/module_spec/5A.json +4 -0
  98. velbusaio/module_spec/5C.json +87 -0
  99. velbusaio/module_spec/5F.json +66 -0
  100. velbusaio/module_spec/broadcast.json +67 -0
  101. velbusaio/protocol.py +1 -1
  102. velbus_aio-2024.7.6.dist-info/RECORD +0 -103
  103. velbusaio/protocol.json +0 -10194
  104. {velbus_aio-2024.7.6.dist-info → velbus_aio-2024.11.0.dist-info}/LICENSE +0 -0
  105. {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.7.6
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.8.0
25
+ Requires-Python: >=3.9.0
25
26
  Description-Content-Type: text/markdown
26
27
  License-File: LICENSE
27
- Requires-Dist: pyserial >=3.5.0
28
- Requires-Dist: pyserial-asyncio-fast >=0.11
29
- Requires-Dist: backoff >=1.10.0
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
  ![CI](https://github.com/Cereal2nd/velbus-aio/actions/workflows/main.yml/badge.svg)
33
34
  [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/Cereal2nd/velbus-aio/master.svg)](https://results.pre-commit.ci/latest/github/Cereal2nd/velbus-aio/master)
35
+ [![PyPI version](https://badge.fury.io/py/velbus-aio.svg)](https://badge.fury.io/py/velbus-aio)
36
+ [![Supported Python versions](https://img.shields.io/pypi/pyversions/velbus-aio.svg)](https://github.com/Cereal2nd/velbus-aio)
37
+ [![License](https://img.shields.io/github/license/Cereal2nd/velbus-aio)](https://github.com/cereal2nd/velbus-aio/blob/master/LICENSE)
38
+ [![Downloads](https://pepy.tech/badge/velbus-aio)](https://pepy.tech/project/velbus-aio)
39
+ [![Downloads](https://pepy.tech/badge/velbus-aio/month)](https://pepy.tech/project/velbus-aio)
40
+ [![Downloads](https://pepy.tech/badge/velbus-aio/week)](https://pepy.tech/project/velbus-aio)
41
+ [![Black](https://img.shields.io/badge/code%20style-black-000000.svg)](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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (72.1.0)
2
+ Generator: setuptools (75.5.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
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 SetEdgeColorMessage, CustomColorPriority
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 = {"name": self._name, "type": type(self).__name__}
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
- _coolmode = None
523
+ _cool_mode = None
512
524
  _cstatus = None
513
525
  _thermostat = False
514
526
  _sleep_timer = 0
@@ -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
- 0x53: "VMBGP1-20",
81
- 0x54: "VMBGP2-20",
82
- 0x55: "VMBGP4-20",
83
- 0x56: "VMBGPO-20",
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 = 2000 # time to wait for ModuleTypeRequest
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