velbus-aio 2023.11.0__py3-none-any.whl → 2024.4.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-2023.11.0.dist-info → velbus_aio-2024.4.0.dist-info}/METADATA +3 -1
- velbus_aio-2024.4.0.dist-info/RECORD +103 -0
- {velbus_aio-2023.11.0.dist-info → velbus_aio-2024.4.0.dist-info}/WHEEL +1 -1
- velbusaio/channels.py +20 -0
- velbusaio/command_registry.py +18 -0
- velbusaio/const.py +1 -0
- velbusaio/controller.py +1 -0
- velbusaio/handler.py +2 -59
- velbusaio/helpers.py +1 -0
- velbusaio/message.py +1 -0
- velbusaio/messages/__init__.py +2 -1
- velbusaio/messages/blind_status.py +1 -0
- velbusaio/messages/bus_active.py +1 -0
- velbusaio/messages/bus_error_counter_status.py +1 -0
- velbusaio/messages/bus_error_counter_status_request.py +1 -0
- velbusaio/messages/bus_off.py +1 -0
- velbusaio/messages/channel_name_part1.py +15 -0
- velbusaio/messages/channel_name_part2.py +14 -0
- velbusaio/messages/channel_name_part3.py +14 -0
- velbusaio/messages/channel_name_request.py +2 -1
- velbusaio/messages/clear_led.py +1 -0
- velbusaio/messages/counter_status.py +1 -0
- velbusaio/messages/counter_status_request.py +1 -0
- velbusaio/messages/cover_down.py +1 -0
- velbusaio/messages/cover_off.py +1 -0
- velbusaio/messages/cover_position.py +1 -0
- velbusaio/messages/cover_up.py +1 -0
- velbusaio/messages/dali_device_settings.py +2 -1
- velbusaio/messages/dali_device_settings_request.py +2 -1
- velbusaio/messages/dali_dim_value_status.py +2 -1
- velbusaio/messages/dimmer_channel_status.py +2 -1
- velbusaio/messages/dimmer_status.py +2 -1
- velbusaio/messages/edge_set_custom_color.py +1 -0
- velbusaio/messages/fast_blinking_led.py +1 -0
- velbusaio/messages/forced_off.py +1 -0
- velbusaio/messages/forced_on.py +1 -0
- velbusaio/messages/interface_status_request.py +1 -0
- velbusaio/messages/ir_receiver_status.py +1 -0
- velbusaio/messages/kwh_status.py +1 -0
- velbusaio/messages/light_value_request.py +1 -0
- velbusaio/messages/memo_text.py +1 -0
- velbusaio/messages/memory_data.py +1 -0
- velbusaio/messages/memory_data_block.py +1 -0
- velbusaio/messages/memory_dump_request.py +1 -0
- velbusaio/messages/module_status.py +12 -0
- velbusaio/messages/module_status_request.py +1 -0
- velbusaio/messages/module_subtype.py +1 -0
- velbusaio/messages/module_type.py +117 -14
- velbusaio/messages/module_type_request.py +1 -0
- velbusaio/messages/push_button_status.py +1 -0
- velbusaio/messages/raw.py +1 -0
- velbusaio/messages/read_data_block_from_memory.py +1 -0
- velbusaio/messages/read_data_from_memory.py +1 -0
- velbusaio/messages/realtime_clock_status_request.py +1 -0
- velbusaio/messages/receive_buffer_full.py +1 -0
- velbusaio/messages/receive_ready.py +1 -0
- velbusaio/messages/relay_status.py +1 -0
- velbusaio/messages/restore_dimmer.py +6 -2
- velbusaio/messages/select_program.py +1 -0
- velbusaio/messages/sensor_settings_request.py +1 -0
- velbusaio/messages/sensor_temp_request.py +1 -0
- velbusaio/messages/sensor_temperature.py +1 -0
- velbusaio/messages/set_date.py +5 -4
- velbusaio/messages/set_daylight_saving.py +5 -4
- velbusaio/messages/set_dimmer.py +6 -2
- velbusaio/messages/set_led.py +1 -0
- velbusaio/messages/set_realtime_clock.py +5 -4
- velbusaio/messages/set_temperature.py +1 -0
- velbusaio/messages/slider_status.py +5 -1
- velbusaio/messages/slow_blinking_led.py +1 -0
- velbusaio/messages/start_relay_blinking_timer.py +1 -0
- velbusaio/messages/start_relay_timer.py +1 -0
- velbusaio/messages/switch_relay_off.py +1 -0
- velbusaio/messages/switch_relay_on.py +1 -0
- velbusaio/messages/switch_to_comfort.py +1 -0
- velbusaio/messages/switch_to_day.py +1 -0
- velbusaio/messages/switch_to_night.py +1 -0
- velbusaio/messages/switch_to_safe.py +1 -0
- velbusaio/messages/temp_sensor_settings_part1.py +1 -0
- velbusaio/messages/temp_sensor_settings_part2.py +1 -0
- velbusaio/messages/temp_sensor_settings_part3.py +1 -0
- velbusaio/messages/temp_sensor_settings_part4.py +1 -0
- velbusaio/messages/temp_sensor_settings_request.py +1 -0
- velbusaio/messages/temp_sensor_status.py +1 -0
- velbusaio/messages/temp_set_cooling.py +1 -0
- velbusaio/messages/temp_set_heating.py +1 -0
- velbusaio/messages/update_led_status.py +1 -0
- velbusaio/messages/very_fast_blinking_led.py +1 -0
- velbusaio/messages/write_data_to_memory.py +1 -0
- velbusaio/messages/write_memory_block.py +1 -0
- velbusaio/messages/write_module_address_and_serial_number.py +1 -0
- velbusaio/module.py +20 -21
- velbusaio/protocol.json +10122 -0
- velbusaio/protocol.py +2 -2
- velbusaio/raw_message.py +6 -6
- velbus_aio-2023.11.0.dist-info/RECORD +0 -103
- velbusaio/moduleprotocol/protocol.json +0 -26507
- {velbus_aio-2023.11.0.dist-info → velbus_aio-2024.4.0.dist-info}/LICENSE +0 -0
- {velbus_aio-2023.11.0.dist-info → velbus_aio-2024.4.0.dist-info}/top_level.txt +0 -0
|
@@ -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
|
import struct
|
|
@@ -24,7 +25,7 @@ LED_FAST_BLINKING = 1 << 5
|
|
|
24
25
|
LED_VERY_FAST_BLINKING = 1 << 4
|
|
25
26
|
|
|
26
27
|
|
|
27
|
-
@register(COMMAND_CODE, ["VMBDME", "VMB1LED"])
|
|
28
|
+
@register(COMMAND_CODE, ["VMB1DM", "VMBDME", "VMB1LED"])
|
|
28
29
|
class DimmerStatusMessage(Message):
|
|
29
30
|
"""
|
|
30
31
|
sent by: VMBDME
|
velbusaio/messages/forced_off.py
CHANGED
velbusaio/messages/forced_on.py
CHANGED
velbusaio/messages/kwh_status.py
CHANGED
velbusaio/messages/memo_text.py
CHANGED
|
@@ -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
|
|
@@ -75,6 +76,17 @@ class ModuleStatusMessage(Message):
|
|
|
75
76
|
"VMBGPOD-2",
|
|
76
77
|
"VMBELO",
|
|
77
78
|
"VMB7IN",
|
|
79
|
+
"VMB6PB-20",
|
|
80
|
+
"VMBEL1-20",
|
|
81
|
+
"VMBEL2-20",
|
|
82
|
+
"VMBEL4-20",
|
|
83
|
+
"VMBELO-20",
|
|
84
|
+
"VMBGP1-20",
|
|
85
|
+
"VMBGP2-20",
|
|
86
|
+
"VMBGP4-20",
|
|
87
|
+
"VMBGPO-20",
|
|
88
|
+
"VMBEL4PIR-20",
|
|
89
|
+
"VMBGP4PIR-20",
|
|
78
90
|
],
|
|
79
91
|
)
|
|
80
92
|
class ModuleStatusMessage2(Message):
|
|
@@ -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
|
|
@@ -25,7 +26,70 @@ MODULES_WITHOUT_SERIAL = {
|
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
|
|
28
|
-
@register(
|
|
29
|
+
@register(
|
|
30
|
+
COMMAND_CODE,
|
|
31
|
+
[
|
|
32
|
+
"VMB1BL",
|
|
33
|
+
"VMB6IN",
|
|
34
|
+
"VMB1DM",
|
|
35
|
+
"VMB4RY",
|
|
36
|
+
"VMB2BL",
|
|
37
|
+
"VMB8IR",
|
|
38
|
+
"VMB4PD",
|
|
39
|
+
"VMB1TS",
|
|
40
|
+
"VMB1TH",
|
|
41
|
+
"VMB1TC",
|
|
42
|
+
"VMB1LED",
|
|
43
|
+
"VMB4RYLD",
|
|
44
|
+
"VMB4RYNO",
|
|
45
|
+
"VMB4DC",
|
|
46
|
+
"VMBLCDWB",
|
|
47
|
+
"VMBDME",
|
|
48
|
+
"VMBDMI",
|
|
49
|
+
"VMB8PBU",
|
|
50
|
+
"VMB6PBN",
|
|
51
|
+
"VMB2PBN",
|
|
52
|
+
"VMB6PBB",
|
|
53
|
+
"VMB4RF",
|
|
54
|
+
"VMB1RYNO",
|
|
55
|
+
"VMB1BLE",
|
|
56
|
+
"VMB2BLE",
|
|
57
|
+
"VMBGP1",
|
|
58
|
+
"VMBGP2",
|
|
59
|
+
"VMBGP4",
|
|
60
|
+
"VMBGPO",
|
|
61
|
+
"VMB7IN",
|
|
62
|
+
"VMBGPOD",
|
|
63
|
+
"VMB1RYNOS",
|
|
64
|
+
"VMBPIRM",
|
|
65
|
+
"VMBPIRC",
|
|
66
|
+
"VMBPIRO",
|
|
67
|
+
"VMBGP4PIR",
|
|
68
|
+
"VMB1BLS",
|
|
69
|
+
"VMBDMI-R",
|
|
70
|
+
"VMBMETEO",
|
|
71
|
+
"VMB4AN",
|
|
72
|
+
"VMBVP01",
|
|
73
|
+
"VMBEL1",
|
|
74
|
+
"VMBEL2",
|
|
75
|
+
"VMBEL4",
|
|
76
|
+
"VMBELO",
|
|
77
|
+
"VMBELPIR",
|
|
78
|
+
"VMBSIG",
|
|
79
|
+
"VMBGP1-2",
|
|
80
|
+
"VMBGP2-2",
|
|
81
|
+
"VMBGP4-2",
|
|
82
|
+
"VMBGPOD-2",
|
|
83
|
+
"VMBGP4PIR-2",
|
|
84
|
+
"VMCM3",
|
|
85
|
+
"VMBUSBIP",
|
|
86
|
+
"VMB1RYS",
|
|
87
|
+
"VMBKP",
|
|
88
|
+
"VMBIN",
|
|
89
|
+
"VMB4PB",
|
|
90
|
+
"VMBDALI",
|
|
91
|
+
],
|
|
92
|
+
)
|
|
29
93
|
class ModuleTypeMessage(Message):
|
|
30
94
|
"""
|
|
31
95
|
send by: VMB6IN, VMB4RYLD
|
|
@@ -66,18 +130,57 @@ class ModuleTypeMessage(Message):
|
|
|
66
130
|
self.build_year = data[-2]
|
|
67
131
|
self.build_week = data[-1]
|
|
68
132
|
|
|
69
|
-
|
|
133
|
+
|
|
134
|
+
@register(
|
|
135
|
+
COMMAND_CODE,
|
|
136
|
+
[
|
|
137
|
+
"VMB4RYLD-10",
|
|
138
|
+
"VMB4RYNO-10",
|
|
139
|
+
"VMB2BLE-10",
|
|
140
|
+
"VMB6PB-20",
|
|
141
|
+
"VMBEL1-20",
|
|
142
|
+
"VMBEL2-20",
|
|
143
|
+
"VMBEL4-20",
|
|
144
|
+
"VMBELO-20",
|
|
145
|
+
"VMBGP1-20",
|
|
146
|
+
"VMBGP2-20",
|
|
147
|
+
"VMBGP4-20",
|
|
148
|
+
"VMBGPO-20",
|
|
149
|
+
"VMBEL4PIR-20",
|
|
150
|
+
"VMBGP4PIR-20",
|
|
151
|
+
],
|
|
152
|
+
)
|
|
153
|
+
class ModuleType2Message(Message):
|
|
154
|
+
def __init__(self, address=None):
|
|
155
|
+
Message.__init__(self)
|
|
156
|
+
self.module_type = 0x00
|
|
157
|
+
self.led_on = []
|
|
158
|
+
self.led_slow_blinking = []
|
|
159
|
+
self.led_fast_blinking = []
|
|
160
|
+
self.serial = 0
|
|
161
|
+
self.memory_map_version = 0
|
|
162
|
+
self.build_year = 0
|
|
163
|
+
self.build_week = 0
|
|
164
|
+
self.term = 0
|
|
165
|
+
self.set_defaults(address)
|
|
166
|
+
|
|
167
|
+
def module_name(self):
|
|
70
168
|
"""
|
|
71
|
-
:return:
|
|
169
|
+
:return: str
|
|
170
|
+
"""
|
|
171
|
+
return "Unknown"
|
|
172
|
+
|
|
173
|
+
def populate(self, priority, address, rtr, data):
|
|
174
|
+
"""
|
|
175
|
+
:return: None
|
|
72
176
|
"""
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
)
|
|
177
|
+
self.needs_low_priority(priority)
|
|
178
|
+
self.needs_no_rtr(rtr)
|
|
179
|
+
self.set_attributes(priority, address, rtr)
|
|
180
|
+
self.module_type = data[0]
|
|
181
|
+
if data[0] not in MODULES_WITHOUT_SERIAL:
|
|
182
|
+
(self.serial,) = struct.unpack(">L", bytes([0, 0, data[1], data[2]]))
|
|
183
|
+
self.memory_map_version = data[3]
|
|
184
|
+
self.build_year = data[-3]
|
|
185
|
+
self.build_week = data[-2]
|
|
186
|
+
self.term = data[-1]
|
velbusaio/messages/raw.py
CHANGED
|
@@ -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,10 @@ from velbusaio.message import Message
|
|
|
9
10
|
COMMAND_CODE = 0x11
|
|
10
11
|
|
|
11
12
|
|
|
12
|
-
@register(
|
|
13
|
+
@register(
|
|
14
|
+
COMMAND_CODE,
|
|
15
|
+
["VMB1DM", "VMBDME", "VMBDMI-R", "VMBDMI", "VMB1LED", "VMB4DC", "VMB8DC-20"],
|
|
16
|
+
)
|
|
13
17
|
class RestoreDimmerMessage(Message):
|
|
14
18
|
"""
|
|
15
19
|
send by:
|
|
@@ -53,7 +57,7 @@ class RestoreDimmerMessage(Message):
|
|
|
53
57
|
) + self.dimmer_transitiontime.to_bytes(2, byteorder="big", signed=False)
|
|
54
58
|
|
|
55
59
|
|
|
56
|
-
@register(COMMAND_CODE, ["VMBDALI"])
|
|
60
|
+
@register(COMMAND_CODE, ["VMBDALI", "VMBDALI-20"])
|
|
57
61
|
class RestoreDimmerMessage2(RestoreDimmerMessage):
|
|
58
62
|
def byte_to_channels(self, byte: int) -> list[int]:
|
|
59
63
|
return [byte]
|
velbusaio/messages/set_date.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
|
import time
|
|
@@ -17,14 +18,14 @@ class SetDate(Message):
|
|
|
17
18
|
received by all modules
|
|
18
19
|
"""
|
|
19
20
|
|
|
20
|
-
def __init__(self, address=0x00):
|
|
21
|
+
def __init__(self, address=0x00) -> None:
|
|
21
22
|
Message.__init__(self)
|
|
22
23
|
self._day = None
|
|
23
24
|
self._mon = None
|
|
24
25
|
self._year = None
|
|
25
26
|
self.set_defaults(address)
|
|
26
27
|
|
|
27
|
-
def set_defaults(self, address):
|
|
28
|
+
def set_defaults(self, address) -> None:
|
|
28
29
|
if address is not None:
|
|
29
30
|
self.set_address(address)
|
|
30
31
|
self.set_low_priority()
|
|
@@ -34,7 +35,7 @@ class SetDate(Message):
|
|
|
34
35
|
self._mon = lclt[1]
|
|
35
36
|
self._year = lclt[0]
|
|
36
37
|
|
|
37
|
-
def populate(self, priority, address, rtr, data):
|
|
38
|
+
def populate(self, priority, address, rtr, data) -> None:
|
|
38
39
|
"""
|
|
39
40
|
:return: None
|
|
40
41
|
"""
|
|
@@ -46,7 +47,7 @@ class SetDate(Message):
|
|
|
46
47
|
self._mon = data[1]
|
|
47
48
|
self._year = (data[2] << 8) + data[3]
|
|
48
49
|
|
|
49
|
-
def data_to_binary(self):
|
|
50
|
+
def data_to_binary(self) -> bytes:
|
|
50
51
|
"""
|
|
51
52
|
:return: bytes
|
|
52
53
|
"""
|
|
@@ -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 time
|
|
@@ -17,12 +18,12 @@ class SetDaylightSaving(Message):
|
|
|
17
18
|
received by all modules
|
|
18
19
|
"""
|
|
19
20
|
|
|
20
|
-
def __init__(self, address=0x00):
|
|
21
|
+
def __init__(self, address=0x00) -> None:
|
|
21
22
|
Message.__init__(self)
|
|
22
23
|
self._ds = None
|
|
23
24
|
self.set_defaults(address)
|
|
24
25
|
|
|
25
|
-
def set_defaults(self, address):
|
|
26
|
+
def set_defaults(self, address) -> None:
|
|
26
27
|
if address is not None:
|
|
27
28
|
self.set_address(address)
|
|
28
29
|
self.set_low_priority()
|
|
@@ -30,7 +31,7 @@ class SetDaylightSaving(Message):
|
|
|
30
31
|
lclt = time.localtime()
|
|
31
32
|
self._ds = not lclt[8]
|
|
32
33
|
|
|
33
|
-
def populate(self, priority, address, rtr, data):
|
|
34
|
+
def populate(self, priority, address, rtr, data) -> None:
|
|
34
35
|
"""
|
|
35
36
|
:return: None
|
|
36
37
|
"""
|
|
@@ -40,7 +41,7 @@ class SetDaylightSaving(Message):
|
|
|
40
41
|
self.set_attributes(priority, address, rtr)
|
|
41
42
|
self._ds = data[0]
|
|
42
43
|
|
|
43
|
-
def data_to_binary(self):
|
|
44
|
+
def data_to_binary(self) -> bytes:
|
|
44
45
|
"""
|
|
45
46
|
:return: bytes
|
|
46
47
|
"""
|
velbusaio/messages/set_dimmer.py
CHANGED
|
@@ -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,10 @@ from velbusaio.message import Message
|
|
|
9
10
|
COMMAND_CODE = 0x07
|
|
10
11
|
|
|
11
12
|
|
|
12
|
-
@register(
|
|
13
|
+
@register(
|
|
14
|
+
COMMAND_CODE,
|
|
15
|
+
["VMB1DM", "VMBDME", "VMB4DC", "VMBDMI", "VMBDMI-R", "VMB1LED", "VMB8DC-20"],
|
|
16
|
+
)
|
|
13
17
|
class SetDimmerMessage(Message):
|
|
14
18
|
"""
|
|
15
19
|
send by:
|
|
@@ -56,7 +60,7 @@ class SetDimmerMessage(Message):
|
|
|
56
60
|
) + self.dimmer_transitiontime.to_bytes(2, byteorder="big", signed=False)
|
|
57
61
|
|
|
58
62
|
|
|
59
|
-
@register(COMMAND_CODE, ["VMBDALI"])
|
|
63
|
+
@register(COMMAND_CODE, ["VMBDALI", "VMBDALI-20"])
|
|
60
64
|
class SetDimmerMessage2(SetDimmerMessage):
|
|
61
65
|
"""
|
|
62
66
|
send by:
|
velbusaio/messages/set_led.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
|
import time
|
|
@@ -17,14 +18,14 @@ class SetRealtimeClock(Message):
|
|
|
17
18
|
received by all modules
|
|
18
19
|
"""
|
|
19
20
|
|
|
20
|
-
def __init__(self, address=0x00):
|
|
21
|
+
def __init__(self, address=0x00) -> None:
|
|
21
22
|
Message.__init__(self)
|
|
22
23
|
self._wday = None
|
|
23
24
|
self._hour = None
|
|
24
25
|
self._min = None
|
|
25
26
|
self.set_defaults(address)
|
|
26
27
|
|
|
27
|
-
def set_defaults(self, address):
|
|
28
|
+
def set_defaults(self, address) -> None:
|
|
28
29
|
if address is not None:
|
|
29
30
|
self.set_address(address)
|
|
30
31
|
self.set_low_priority()
|
|
@@ -34,7 +35,7 @@ class SetRealtimeClock(Message):
|
|
|
34
35
|
self._hour = lclt[3]
|
|
35
36
|
self._min = lclt[4]
|
|
36
37
|
|
|
37
|
-
def populate(self, priority, address, rtr, data):
|
|
38
|
+
def populate(self, priority, address, rtr, data) -> None:
|
|
38
39
|
"""
|
|
39
40
|
:return: None
|
|
40
41
|
"""
|
|
@@ -46,7 +47,7 @@ class SetRealtimeClock(Message):
|
|
|
46
47
|
self._hour = data[1]
|
|
47
48
|
self._min = data[2]
|
|
48
49
|
|
|
49
|
-
def data_to_binary(self):
|
|
50
|
+
def data_to_binary(self) -> bytes:
|
|
50
51
|
"""
|
|
51
52
|
:return: bytes
|
|
52
53
|
"""
|
|
@@ -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,10 @@ from velbusaio.message import Message
|
|
|
9
10
|
COMMAND_CODE = 0x0F
|
|
10
11
|
|
|
11
12
|
|
|
12
|
-
@register(
|
|
13
|
+
@register(
|
|
14
|
+
COMMAND_CODE,
|
|
15
|
+
["VMB1DM", "VMBDME", "VMB4DC", "VMBDMI", "VMBDMI-R", "VMB1LED", "VMB8DC-20"],
|
|
16
|
+
)
|
|
13
17
|
class SliderStatusMessage(Message):
|
|
14
18
|
"""
|
|
15
19
|
sent by: VMBDME
|