velbus-aio 2023.12.0__py3-none-any.whl → 2025.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.
Files changed (192) hide show
  1. scripts/parse_specs.py +156 -0
  2. {velbus_aio-2023.12.0.dist-info → velbus_aio-2025.11.0.dist-info}/METADATA +24 -8
  3. velbus_aio-2025.11.0.dist-info/RECORD +194 -0
  4. {velbus_aio-2023.12.0.dist-info → velbus_aio-2025.11.0.dist-info}/WHEEL +1 -1
  5. {velbus_aio-2023.12.0.dist-info → velbus_aio-2025.11.0.dist-info}/top_level.txt +1 -0
  6. velbusaio/channels.py +35 -14
  7. velbusaio/command_registry.py +32 -5
  8. velbusaio/const.py +10 -2
  9. velbusaio/controller.py +183 -145
  10. velbusaio/handler.py +286 -154
  11. velbusaio/helpers.py +2 -1
  12. velbusaio/message.py +14 -8
  13. velbusaio/messages/__init__.py +6 -2
  14. velbusaio/messages/blind_status.py +4 -2
  15. velbusaio/messages/bus_active.py +1 -0
  16. velbusaio/messages/bus_error_counter_status.py +1 -0
  17. velbusaio/messages/bus_error_counter_status_request.py +1 -0
  18. velbusaio/messages/bus_off.py +1 -0
  19. velbusaio/messages/channel_name_part1.py +18 -0
  20. velbusaio/messages/channel_name_part2.py +18 -0
  21. velbusaio/messages/channel_name_part3.py +18 -0
  22. velbusaio/messages/channel_name_request.py +2 -1
  23. velbusaio/messages/clear_led.py +1 -0
  24. velbusaio/messages/counter_status.py +1 -0
  25. velbusaio/messages/counter_status_request.py +1 -0
  26. velbusaio/messages/counter_value.py +44 -0
  27. velbusaio/messages/cover_down.py +2 -1
  28. velbusaio/messages/cover_off.py +2 -3
  29. velbusaio/messages/cover_position.py +3 -4
  30. velbusaio/messages/cover_up.py +2 -1
  31. velbusaio/messages/dali_device_settings.py +2 -1
  32. velbusaio/messages/dali_device_settings_request.py +2 -1
  33. velbusaio/messages/dali_dim_value_status.py +4 -1
  34. velbusaio/messages/dimmer_channel_status.py +5 -1
  35. velbusaio/messages/dimmer_status.py +13 -1
  36. velbusaio/messages/edge_set_color.py +1 -0
  37. velbusaio/messages/edge_set_custom_color.py +1 -0
  38. velbusaio/messages/fast_blinking_led.py +1 -0
  39. velbusaio/messages/forced_off.py +1 -0
  40. velbusaio/messages/forced_on.py +1 -0
  41. velbusaio/messages/interface_status_request.py +1 -0
  42. velbusaio/messages/ir_receiver_status.py +1 -0
  43. velbusaio/messages/kwh_status.py +1 -0
  44. velbusaio/messages/light_value_request.py +1 -0
  45. velbusaio/messages/memo_text.py +1 -0
  46. velbusaio/messages/memory_data.py +1 -0
  47. velbusaio/messages/memory_data_block.py +1 -0
  48. velbusaio/messages/memory_dump_request.py +1 -0
  49. velbusaio/messages/module_status.py +13 -0
  50. velbusaio/messages/module_status_request.py +5 -2
  51. velbusaio/messages/module_subtype.py +4 -3
  52. velbusaio/messages/module_type.py +17 -7
  53. velbusaio/messages/module_type_request.py +1 -0
  54. velbusaio/messages/psu_load.py +56 -0
  55. velbusaio/messages/psu_values.py +53 -0
  56. velbusaio/messages/push_button_status.py +1 -0
  57. velbusaio/messages/raw.py +1 -0
  58. velbusaio/messages/read_data_block_from_memory.py +1 -0
  59. velbusaio/messages/read_data_from_memory.py +1 -0
  60. velbusaio/messages/realtime_clock_status_request.py +1 -0
  61. velbusaio/messages/receive_buffer_full.py +1 -0
  62. velbusaio/messages/receive_ready.py +1 -0
  63. velbusaio/messages/relay_status.py +1 -0
  64. velbusaio/messages/restore_dimmer.py +16 -2
  65. velbusaio/messages/select_program.py +1 -0
  66. velbusaio/messages/sensor_settings_request.py +1 -0
  67. velbusaio/messages/sensor_temp_request.py +1 -0
  68. velbusaio/messages/sensor_temperature.py +1 -0
  69. velbusaio/messages/set_date.py +5 -10
  70. velbusaio/messages/set_daylight_saving.py +3 -6
  71. velbusaio/messages/set_dimmer.py +22 -13
  72. velbusaio/messages/set_led.py +1 -0
  73. velbusaio/messages/set_realtime_clock.py +5 -10
  74. velbusaio/messages/set_temperature.py +1 -0
  75. velbusaio/messages/slider_status.py +15 -1
  76. velbusaio/messages/slow_blinking_led.py +1 -0
  77. velbusaio/messages/start_relay_blinking_timer.py +1 -0
  78. velbusaio/messages/start_relay_timer.py +1 -0
  79. velbusaio/messages/switch_relay_off.py +1 -0
  80. velbusaio/messages/switch_relay_on.py +1 -0
  81. velbusaio/messages/switch_to_comfort.py +1 -0
  82. velbusaio/messages/switch_to_day.py +1 -0
  83. velbusaio/messages/switch_to_night.py +1 -0
  84. velbusaio/messages/switch_to_safe.py +1 -0
  85. velbusaio/messages/temp_sensor_settings_part1.py +1 -0
  86. velbusaio/messages/temp_sensor_settings_part2.py +1 -0
  87. velbusaio/messages/temp_sensor_settings_part3.py +1 -0
  88. velbusaio/messages/temp_sensor_settings_part4.py +1 -0
  89. velbusaio/messages/temp_sensor_settings_request.py +1 -0
  90. velbusaio/messages/temp_sensor_status.py +1 -0
  91. velbusaio/messages/temp_set_cooling.py +1 -0
  92. velbusaio/messages/temp_set_heating.py +1 -0
  93. velbusaio/messages/update_led_status.py +1 -0
  94. velbusaio/messages/very_fast_blinking_led.py +1 -0
  95. velbusaio/messages/write_data_to_memory.py +1 -0
  96. velbusaio/messages/write_memory_block.py +1 -0
  97. velbusaio/messages/write_module_address_and_serial_number.py +1 -0
  98. velbusaio/module.py +214 -102
  99. velbusaio/module_spec/01.json +62 -0
  100. velbusaio/module_spec/02.json +16 -0
  101. velbusaio/module_spec/03.json +23 -0
  102. velbusaio/module_spec/04.json +283 -0
  103. velbusaio/module_spec/05.json +54 -0
  104. velbusaio/module_spec/06.json +110 -0
  105. velbusaio/module_spec/07.json +16 -0
  106. velbusaio/module_spec/08.json +38 -0
  107. velbusaio/module_spec/09.json +30 -0
  108. velbusaio/module_spec/0A.json +58 -0
  109. velbusaio/module_spec/0B.json +58 -0
  110. velbusaio/module_spec/0C.json +18 -0
  111. velbusaio/module_spec/0E.json +25 -0
  112. velbusaio/module_spec/0F.json +16 -0
  113. velbusaio/module_spec/10.json +111 -0
  114. velbusaio/module_spec/11.json +111 -0
  115. velbusaio/module_spec/12.json +73 -0
  116. velbusaio/module_spec/13.json +4 -0
  117. velbusaio/module_spec/14.json +16 -0
  118. velbusaio/module_spec/15.json +83 -0
  119. velbusaio/module_spec/16.json +129 -0
  120. velbusaio/module_spec/17.json +129 -0
  121. velbusaio/module_spec/18.json +129 -0
  122. velbusaio/module_spec/1A.json +79 -0
  123. velbusaio/module_spec/1B.json +107 -0
  124. velbusaio/module_spec/1D.json +89 -0
  125. velbusaio/module_spec/1E.json +306 -0
  126. velbusaio/module_spec/1F.json +178 -0
  127. velbusaio/module_spec/20.json +178 -0
  128. velbusaio/module_spec/21.json +326 -0
  129. velbusaio/module_spec/22.json +426 -0
  130. velbusaio/module_spec/23.json +129 -0
  131. velbusaio/module_spec/24.json +30 -0
  132. velbusaio/module_spec/25.json +3 -0
  133. velbusaio/module_spec/28.json +454 -0
  134. velbusaio/module_spec/29.json +235 -0
  135. velbusaio/module_spec/2A.json +239 -0
  136. velbusaio/module_spec/2B.json +239 -0
  137. velbusaio/module_spec/2C.json +257 -0
  138. velbusaio/module_spec/2D.json +270 -0
  139. velbusaio/module_spec/2E.json +215 -0
  140. velbusaio/module_spec/2F.json +211 -0
  141. velbusaio/module_spec/30.json +58 -0
  142. velbusaio/module_spec/31.json +465 -0
  143. velbusaio/module_spec/32.json +385 -0
  144. velbusaio/module_spec/33.json +249 -0
  145. velbusaio/module_spec/34.json +313 -0
  146. velbusaio/module_spec/35.json +313 -0
  147. velbusaio/module_spec/36.json +313 -0
  148. velbusaio/module_spec/37.json +333 -0
  149. velbusaio/module_spec/38.json +111 -0
  150. velbusaio/module_spec/39.json +4 -0
  151. velbusaio/module_spec/3A.json +306 -0
  152. velbusaio/module_spec/3B.json +306 -0
  153. velbusaio/module_spec/3C.json +306 -0
  154. velbusaio/module_spec/3D.json +454 -0
  155. velbusaio/module_spec/3E.json +302 -0
  156. velbusaio/module_spec/3F.json +4 -0
  157. velbusaio/module_spec/40.json +4 -0
  158. velbusaio/module_spec/41.json +241 -0
  159. velbusaio/module_spec/42.json +4 -0
  160. velbusaio/module_spec/43.json +23 -0
  161. velbusaio/module_spec/44.json +38 -0
  162. velbusaio/module_spec/45.json +4 -0
  163. velbusaio/module_spec/48.json +111 -0
  164. velbusaio/module_spec/49.json +111 -0
  165. velbusaio/module_spec/4A.json +89 -0
  166. velbusaio/module_spec/4B.json +138 -0
  167. velbusaio/module_spec/4C.json +129 -0
  168. velbusaio/module_spec/4D.json +108 -0
  169. velbusaio/module_spec/4E.json +787 -0
  170. velbusaio/module_spec/4F.json +114 -0
  171. velbusaio/module_spec/50.json +114 -0
  172. velbusaio/module_spec/51.json +114 -0
  173. velbusaio/module_spec/52.json +456 -0
  174. velbusaio/module_spec/54.json +270 -0
  175. velbusaio/module_spec/55.json +270 -0
  176. velbusaio/module_spec/56.json +270 -0
  177. velbusaio/module_spec/57.json +260 -0
  178. velbusaio/module_spec/5A.json +4 -0
  179. velbusaio/module_spec/5B.json +4 -0
  180. velbusaio/module_spec/5C.json +90 -0
  181. velbusaio/module_spec/5F.json +78 -0
  182. velbusaio/module_spec/60.json +4 -0
  183. velbusaio/module_spec/61.json +89 -0
  184. velbusaio/module_spec/broadcast.json +67 -0
  185. velbusaio/module_spec/ignore.json +22 -0
  186. velbusaio/protocol.py +34 -17
  187. velbusaio/raw_message.py +6 -6
  188. velbusaio/util.py +4 -0
  189. velbusaio/vlp_reader.py +249 -0
  190. velbus_aio-2023.12.0.dist-info/RECORD +0 -103
  191. velbusaio/moduleprotocol/protocol.json +0 -26507
  192. {velbus_aio-2023.12.0.dist-info → velbus_aio-2025.11.0.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,56 @@
1
+ """
2
+ :author: Maikel Punie
3
+ """
4
+
5
+ from __future__ import annotations
6
+
7
+ import struct
8
+
9
+ from velbusaio.command_registry import register
10
+ from velbusaio.message import Message
11
+
12
+ COMMAND_CODE = 0xA2
13
+ BALANCED = 0x01
14
+ BOOST = 0x02
15
+ BACKUP = 0x03
16
+
17
+
18
+ @register(COMMAND_CODE, ["VMBPSUMNGR-20"])
19
+ class PsuLoadMessage(Message):
20
+
21
+ def __init__(self, address=None):
22
+ Message.__init__(self)
23
+ self.mode = 0
24
+ self.load_1 = 0
25
+ self.load_2 = 0
26
+ self.out = 0
27
+
28
+ def populate(self, priority, address, rtr, data):
29
+ """
30
+ :return: None
31
+ """
32
+ self.needs_low_priority(priority)
33
+ self.needs_no_rtr(rtr)
34
+ self.needs_data(data, 3)
35
+ self.set_attributes(priority, address, rtr)
36
+ self.mode = data[0]
37
+ self.load_1 = data[1]
38
+ self.load_2 = data[2]
39
+ self.out = data[3]
40
+
41
+ def data_to_binary(self):
42
+ """
43
+ :return: bytes
44
+ """
45
+ return (
46
+ bytes(
47
+ [
48
+ COMMAND_CODE,
49
+ self.mode,
50
+ self.load_1,
51
+ self.load_2,
52
+ self.out,
53
+ ]
54
+ )
55
+ + struct.pack(">L", self.delay_time)[-3:]
56
+ )
@@ -0,0 +1,53 @@
1
+ """
2
+ :author: Maikel Punie
3
+ """
4
+
5
+ from __future__ import annotations
6
+
7
+ import struct
8
+
9
+ from velbusaio.command_registry import register
10
+ from velbusaio.message import Message
11
+
12
+ COMMAND_CODE = 0xA3
13
+
14
+
15
+ @register(COMMAND_CODE, ["VMBPSUMNGR-20"])
16
+ class PsuValuesMessage(Message):
17
+
18
+ def __init__(self, address=None):
19
+ Message.__init__(self)
20
+ self.channel = 0
21
+ self.watt = 0
22
+ self.volt = 0
23
+ self.amp = 0
24
+
25
+ def populate(self, priority, address, rtr, data):
26
+ """
27
+ :return: None
28
+ """
29
+ self.needs_low_priority(priority)
30
+ self.needs_no_rtr(rtr)
31
+ self.needs_data(data, 3)
32
+ self.set_attributes(priority, address, rtr)
33
+ self.channel = (data[0] & 0xF0) >> 4
34
+ self.watt = ((data[0] & 0x0F) << 16 | data[1] << 8 | data[2]) / 1000
35
+ self.volt = (data[3] << 8 | data[4]) / 1000
36
+ self.amp = (data[5] << 8 | data[6]) / 1000
37
+
38
+ def data_to_binary(self):
39
+ """
40
+ :return: bytes
41
+ """
42
+ return (
43
+ bytes(
44
+ [
45
+ COMMAND_CODE,
46
+ self.mode,
47
+ self.load_1,
48
+ self.load_2,
49
+ self.out,
50
+ ]
51
+ )
52
+ + struct.pack(">L", self.delay_time)[-3:]
53
+ )
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
velbusaio/messages/raw.py CHANGED
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  import struct
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Frank van Breugel
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -9,7 +10,20 @@ from velbusaio.message import Message
9
10
  COMMAND_CODE = 0x11
10
11
 
11
12
 
12
- @register(COMMAND_CODE, ["VMB1DM", "VMBDME", "VMBDMI-R", "VMBDMI", "VMB1LED", "VMB4DC"])
13
+ @register(
14
+ COMMAND_CODE,
15
+ [
16
+ "VMB1DM",
17
+ "VMBDME",
18
+ "VMBDMI-R",
19
+ "VMBDMI",
20
+ "VMB1LED",
21
+ "VMB4DC",
22
+ "VMB8DC-20",
23
+ "VMB2DC-20",
24
+ "VMB4LEDPWM-20",
25
+ ],
26
+ )
13
27
  class RestoreDimmerMessage(Message):
14
28
  """
15
29
  send by:
@@ -53,7 +67,7 @@ class RestoreDimmerMessage(Message):
53
67
  ) + self.dimmer_transitiontime.to_bytes(2, byteorder="big", signed=False)
54
68
 
55
69
 
56
- @register(COMMAND_CODE, ["VMBDALI"])
70
+ @register(COMMAND_CODE, ["VMBDALI", "VMBDALI-20"])
57
71
  class RestoreDimmerMessage2(RestoreDimmerMessage):
58
72
  def byte_to_channels(self, byte: int) -> list[int]:
59
73
  return [byte]
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Danny De Gaspari
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,9 +1,8 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
- from __future__ import annotations
5
4
 
6
- import time
5
+ from __future__ import annotations
7
6
 
8
7
  from velbusaio.command_registry import register
9
8
  from velbusaio.message import Message
@@ -17,11 +16,11 @@ class SetDate(Message):
17
16
  received by all modules
18
17
  """
19
18
 
20
- def __init__(self, address=0x00) -> None:
19
+ def __init__(self, address=0x00, day=None, mon=None, year=None) -> None:
21
20
  Message.__init__(self)
22
- self._day = None
23
- self._mon = None
24
- self._year = None
21
+ self._day = day
22
+ self._mon = mon
23
+ self._year = year
25
24
  self.set_defaults(address)
26
25
 
27
26
  def set_defaults(self, address) -> None:
@@ -29,10 +28,6 @@ class SetDate(Message):
29
28
  self.set_address(address)
30
29
  self.set_low_priority()
31
30
  self.set_no_rtr()
32
- lclt = time.localtime()
33
- self._day = lclt[2]
34
- self._mon = lclt[1]
35
- self._year = lclt[0]
36
31
 
37
32
  def populate(self, priority, address, rtr, data) -> None:
38
33
  """
@@ -1,9 +1,8 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
- from __future__ import annotations
5
4
 
6
- import time
5
+ from __future__ import annotations
7
6
 
8
7
  from velbusaio.command_registry import register
9
8
  from velbusaio.message import Message
@@ -17,9 +16,9 @@ class SetDaylightSaving(Message):
17
16
  received by all modules
18
17
  """
19
18
 
20
- def __init__(self, address=0x00) -> None:
19
+ def __init__(self, address=0x00, ds=None) -> None:
21
20
  Message.__init__(self)
22
- self._ds = None
21
+ self._ds = ds
23
22
  self.set_defaults(address)
24
23
 
25
24
  def set_defaults(self, address) -> None:
@@ -27,8 +26,6 @@ class SetDaylightSaving(Message):
27
26
  self.set_address(address)
28
27
  self.set_low_priority()
29
28
  self.set_no_rtr()
30
- lclt = time.localtime()
31
- self._ds = not lclt[8]
32
29
 
33
30
  def populate(self, priority, address, rtr, data) -> None:
34
31
  """
@@ -1,6 +1,5 @@
1
- """
2
- :author: Frank van Breugel
3
- """
1
+ """:author: Frank van Breugel"""
2
+
4
3
  from __future__ import annotations
5
4
 
6
5
  from velbusaio.command_registry import register
@@ -9,9 +8,12 @@ from velbusaio.message import Message
9
8
  COMMAND_CODE = 0x07
10
9
 
11
10
 
12
- @register(COMMAND_CODE, ["VMB1DM", "VMBDME", "VMB4DC", "VMBDMI", "VMBDMI-R", "VMB1LED"])
11
+ @register(
12
+ COMMAND_CODE,
13
+ ["VMB1DM", "VMBDME", "VMB4DC", "VMB1LED"],
14
+ )
13
15
  class SetDimmerMessage(Message):
14
- """
16
+ """with this message the channel numbering is a bitnumber
15
17
  send by:
16
18
  received by: VMBDME, VMB4DC
17
19
  """
@@ -30,9 +32,7 @@ class SetDimmerMessage(Message):
30
32
  self.set_no_rtr()
31
33
 
32
34
  def populate(self, priority, address, rtr, data):
33
- """
34
- :return: None
35
- """
35
+ """:return: None"""
36
36
  self.needs_high_priority(priority)
37
37
  self.needs_no_rtr(rtr)
38
38
  self.needs_data(data, 4)
@@ -44,9 +44,7 @@ class SetDimmerMessage(Message):
44
44
  )
45
45
 
46
46
  def data_to_binary(self):
47
- """
48
- :return: bytes
49
- """
47
+ """:return: bytes"""
50
48
  return bytes(
51
49
  [
52
50
  COMMAND_CODE,
@@ -56,9 +54,20 @@ class SetDimmerMessage(Message):
56
54
  ) + self.dimmer_transitiontime.to_bytes(2, byteorder="big", signed=False)
57
55
 
58
56
 
59
- @register(COMMAND_CODE, ["VMBDALI"])
57
+ @register(
58
+ COMMAND_CODE,
59
+ [
60
+ "VMBDALI",
61
+ "VMBDALI-20",
62
+ "VMBDMI",
63
+ "VMBDMI-R",
64
+ "VMB8DC-20",
65
+ "VMB4LEDPWM-20",
66
+ "VMB2DC-20",
67
+ ],
68
+ )
60
69
  class SetDimmerMessage2(SetDimmerMessage):
61
- """
70
+ """This with this message the channel numbering is an integer
62
71
  send by:
63
72
  received by: VMBDALI
64
73
  """
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,9 +1,8 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
- from __future__ import annotations
5
4
 
6
- import time
5
+ from __future__ import annotations
7
6
 
8
7
  from velbusaio.command_registry import register
9
8
  from velbusaio.message import Message
@@ -17,11 +16,11 @@ class SetRealtimeClock(Message):
17
16
  received by all modules
18
17
  """
19
18
 
20
- def __init__(self, address=0x00) -> None:
19
+ def __init__(self, address=0x00, wday=None, hour=None, min=None) -> None:
21
20
  Message.__init__(self)
22
- self._wday = None
23
- self._hour = None
24
- self._min = None
21
+ self._wday = wday
22
+ self._hour = hour
23
+ self._min = min
25
24
  self.set_defaults(address)
26
25
 
27
26
  def set_defaults(self, address) -> None:
@@ -29,10 +28,6 @@ class SetRealtimeClock(Message):
29
28
  self.set_address(address)
30
29
  self.set_low_priority()
31
30
  self.set_no_rtr()
32
- lclt = time.localtime()
33
- self._wday = lclt[6]
34
- self._hour = lclt[3]
35
- self._min = lclt[4]
36
31
 
37
32
  def populate(self, priority, address, rtr, data) -> None:
38
33
  """
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Frank van Breugel
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -9,7 +10,20 @@ from velbusaio.message import Message
9
10
  COMMAND_CODE = 0x0F
10
11
 
11
12
 
12
- @register(COMMAND_CODE, ["VMB1DM", "VMBDME", "VMB4DC", "VMBDMI", "VMBDMI-R", "VMB1LED"])
13
+ @register(
14
+ COMMAND_CODE,
15
+ [
16
+ "VMB1DM",
17
+ "VMBDME",
18
+ "VMB4DC",
19
+ "VMBDMI",
20
+ "VMBDMI-R",
21
+ "VMB1LED",
22
+ "VMB8DC-20",
23
+ "VMB2DC-20",
24
+ "VMB4LEDPWM-20",
25
+ ],
26
+ )
13
27
  class SliderStatusMessage(Message):
14
28
  """
15
29
  sent by: VMBDME
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  import struct
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  import struct
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Danny De Gaspari
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Danny De Gaspari
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Danny De Gaspari
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Maikel Punie <maikel.punie@gmail.com>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  import json
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register
@@ -1,6 +1,7 @@
1
1
  """
2
2
  :author: Thomas Delaet <thomas@delaet.org>
3
3
  """
4
+
4
5
  from __future__ import annotations
5
6
 
6
7
  from velbusaio.command_registry import register