velbus-aio 2023.12.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.12.0.dist-info → velbus_aio-2024.4.0.dist-info}/METADATA +2 -1
- velbus_aio-2024.4.0.dist-info/RECORD +103 -0
- {velbus_aio-2023.12.0.dist-info → velbus_aio-2024.4.0.dist-info}/WHEEL +1 -1
- velbusaio/channels.py +5 -0
- velbusaio/command_registry.py +3 -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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- velbusaio/messages/set_daylight_saving.py +1 -0
- velbusaio/messages/set_dimmer.py +6 -2
- velbusaio/messages/set_led.py +1 -0
- velbusaio/messages/set_realtime_clock.py +1 -0
- 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 +11 -16
- velbusaio/protocol.json +10122 -0
- velbusaio/protocol.py +2 -2
- velbusaio/raw_message.py +6 -6
- velbus_aio-2023.12.0.dist-info/RECORD +0 -103
- velbusaio/moduleprotocol/protocol.json +0 -26507
- {velbus_aio-2023.12.0.dist-info → velbus_aio-2024.4.0.dist-info}/LICENSE +0 -0
- {velbus_aio-2023.12.0.dist-info → velbus_aio-2024.4.0.dist-info}/top_level.txt +0 -0
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):
|
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
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: 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
|
velbusaio/module.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
This represents a velbus module
|
|
3
3
|
"""
|
|
4
|
+
|
|
4
5
|
from __future__ import annotations
|
|
5
6
|
|
|
6
7
|
import logging
|
|
@@ -111,7 +112,7 @@ class Module:
|
|
|
111
112
|
build_week: int | None = None,
|
|
112
113
|
cache_dir: str | None = None,
|
|
113
114
|
) -> Module:
|
|
114
|
-
if module_type == 0x45:
|
|
115
|
+
if module_type == 0x45 or module_type == 0x5A:
|
|
115
116
|
return VmbDali(
|
|
116
117
|
module_address,
|
|
117
118
|
module_type,
|
|
@@ -586,7 +587,11 @@ class Module:
|
|
|
586
587
|
addr = "{high:02X}{low:02X}".format(
|
|
587
588
|
high=message.high_address, low=message.low_address
|
|
588
589
|
)
|
|
589
|
-
|
|
590
|
+
if "Memory" not in self._data:
|
|
591
|
+
return
|
|
592
|
+
if "Address" not in self._data["Memory"]:
|
|
593
|
+
return
|
|
594
|
+
mdata = self._data["Memory"]["Address"][addr]
|
|
590
595
|
if "ModuleName" in mdata and isinstance(self._name, dict):
|
|
591
596
|
# if self._name is a dict we are still loading
|
|
592
597
|
# if its a string it was already complete
|
|
@@ -702,9 +707,10 @@ class Module:
|
|
|
702
707
|
self._name = None
|
|
703
708
|
return
|
|
704
709
|
|
|
705
|
-
for
|
|
706
|
-
|
|
707
|
-
|
|
710
|
+
for memory_key, memory_part in self._data["Memory"].items():
|
|
711
|
+
|
|
712
|
+
if memory_key == "Address":
|
|
713
|
+
for addr_int in memory_part.keys():
|
|
708
714
|
addr = struct.unpack(
|
|
709
715
|
">BB", struct.pack(">h", int("0x" + addr_int, 0))
|
|
710
716
|
)
|
|
@@ -731,17 +737,6 @@ class Module:
|
|
|
731
737
|
"ThermostatAddr" in self._data and self._data["ThermostatAddr"] != 0
|
|
732
738
|
):
|
|
733
739
|
await self._update_channel(int(chan), {"thermostat": True})
|
|
734
|
-
# add extra channel for program selection which is not in the channel list of the protocol.json file,
|
|
735
|
-
# but is available in the messages list of the corresponding module.
|
|
736
|
-
if keys_exists(self._data, "Messages", "B3"):
|
|
737
|
-
self._channels[CHANNEL_SELECTED_PROGRAM] = SelectedProgram(
|
|
738
|
-
self,
|
|
739
|
-
CHANNEL_SELECTED_PROGRAM,
|
|
740
|
-
"Selected Program",
|
|
741
|
-
False,
|
|
742
|
-
self._writer,
|
|
743
|
-
self._address,
|
|
744
|
-
)
|
|
745
740
|
|
|
746
741
|
|
|
747
742
|
class VmbDali(Module):
|