conson-xp 1.45.0__tar.gz → 1.47.0__tar.gz
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.
- {conson_xp-1.45.0 → conson_xp-1.47.0}/PKG-INFO +1 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/pyproject.toml +12 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/__init__.py +3 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus.py +1 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py +33 -15
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_autoreport_commands.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_blink_commands.py +20 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_config_commands.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_custom_commands.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py +10 -5
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_event_commands.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_export_commands.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py +16 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_linknumber_commands.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_modulenumber_commands.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_msactiontable_commands.py +78 -40
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_output_commands.py +16 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_raw_commands.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_receive_commands.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_scan_commands.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/file_commands.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/homekit/homekit.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/homekit/homekit_start_commands.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/module_commands.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/reverse_proxy_commands.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/server/server_commands.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_blink_commands.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_checksum_commands.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_discover_commands.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_linknumber_commands.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_parse_commands.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram_version_commands.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/term/term_commands.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/main.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/click_tree.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/datapoint_type_choice.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/decorators.py +42 -21
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/error_handlers.py +16 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/formatters.py +22 -11
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/module_type_choice.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/serial_number_type.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/system_function_choice.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/xp_module_type.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/actiontable.py +8 -8
- conson_xp-1.47.0/src/xp/models/actiontable/actiontable_type.py +20 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/msactiontable_xp20.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/msactiontable_xp24.py +12 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/msactiontable_xp33.py +20 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_autoreport.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_blink.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_client_config.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_connection_status.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_custom.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_datapoint.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_discover.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_event_list.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_event_raw.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_export.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_lightlevel.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_linknumber.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_logger_config.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_output.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_raw.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_receive.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/conbus_writeconfig.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/config/conson_module_config.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/homekit/homekit_accessory.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/homekit/homekit_config.py +12 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/log_entry.py +16 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/protocol/conbus_protocol.py +36 -18
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/response.py +12 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/action_type.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/datapoint_type.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/event_telegram.py +14 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/event_type.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/input_action_type.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/input_type.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/module_type.py +24 -12
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/module_type_code.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/output_telegram.py +16 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/reply_telegram.py +24 -13
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/system_function.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/system_telegram.py +10 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/telegram.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/telegram_type.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/timeparam_type.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/connection_state.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/module_state.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/protocol_keys_config.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/status_message.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/telegram_display.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/write_config_type.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/actiontable_serializer.py +34 -41
- conson_xp-1.47.0/src/xp/services/actiontable/download_state_machine.py +281 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/msactiontable_xp20_serializer.py +77 -49
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/msactiontable_xp24_serializer.py +78 -53
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/msactiontable_xp33_serializer.py +39 -9
- conson_xp-1.47.0/src/xp/services/actiontable/serializer_protocol.py +76 -0
- conson_xp-1.47.0/src/xp/services/conbus/actiontable/actiontable_download_service.py +379 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/actiontable/actiontable_list_service.py +17 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/actiontable/actiontable_show_service.py +10 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/actiontable/actiontable_upload_service.py +17 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_blink_all_service.py +16 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_blink_service.py +14 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_custom_service.py +16 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_datapoint_queryall_service.py +18 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_datapoint_service.py +18 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_discover_service.py +24 -13
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_event_list_service.py +11 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_event_raw_service.py +18 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_export_service.py +28 -14
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_output_service.py +18 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_raw_service.py +16 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_receive_service.py +18 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/conbus_scan_service.py +18 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/msactiontable/msactiontable_upload_service.py +17 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/write_config_service.py +18 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_cache_service.py +12 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_conbus_service.py +12 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_config_validator.py +34 -17
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_conson_validator.py +18 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_dimminglight.py +14 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_dimminglight_service.py +14 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_hap_service.py +18 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_lightbulb.py +10 -5
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_lightbulb_service.py +10 -5
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_module_service.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_outlet.py +14 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_outlet_service.py +12 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/homekit_service.py +24 -12
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/log_file_service.py +16 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/module_type_service.py +10 -5
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/conbus_event_protocol.py +140 -21
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/conbus_protocol.py +36 -19
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/protocol_factory.py +12 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/telegram_protocol.py +12 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/reverse_proxy_service.py +26 -14
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/base_server_service.py +42 -23
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/client_buffer_manager.py +12 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/cp20_server_service.py +10 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/device_service_factory.py +12 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/server_service.py +18 -11
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp130_server_service.py +11 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp20_server_service.py +16 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp230_server_service.py +10 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp24_server_service.py +22 -13
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/xp33_server_service.py +44 -25
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_blink_service.py +14 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_checksum_service.py +12 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_datapoint_service.py +14 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_discover_service.py +28 -15
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_link_number_service.py +18 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_output_service.py +24 -12
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_service.py +22 -11
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/telegram_version_service.py +14 -8
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/term/protocol_monitor_service.py +30 -16
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/term/state_monitor_service.py +39 -21
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/protocol.py +12 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/state.py +12 -7
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/help_menu.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/modules_list.py +20 -10
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/protocol_log.py +12 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/status_footer.py +10 -5
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/checksum.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/dependencies.py +26 -31
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/event_helper.py +6 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/logging.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/serialization.py +30 -16
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/state_machine.py +16 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/time_utils.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/telegram_test_data.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_actiontable_integration.py +35 -26
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_checksum_integration.py +4 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_conbus_blink_integration.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_conbus_datapoint_integration.py +18 -9
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_conbus_raw_integration.py +28 -15
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_conbus_receive_integration.py +4 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_homekit_config_integration.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_reverse_proxy_integration.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_system_reply_telegram_integration.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_xp20_action_table_integration.py +31 -28
- conson_xp-1.47.0/tests/integration/test_xp24_action_table_integration.py +215 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_conbus_actiontable_commands.py +33 -18
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_conbus_blink_commands.py +1 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_conbus_msactiontable_upload_commands.py +8 -4
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_formatters.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_encoding/test_latin1_edge_cases.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_reply_telegram.py +4 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_system_telegram.py +4 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_actiontable_download_service.py +39 -47
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_actiontable_serializer.py +25 -20
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_actiontable_service.py +30 -61
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_actiontable_upload_service.py +5 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_base_server_service.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_checksum_service.py +4 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_client_buffer_manager.py +6 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_event_protocol.py +11 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_homekit_config_validator.py +13 -5
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_homekit_services.py +15 -5
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_log_file_service.py +4 -2
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_msactiontable_upload_service.py +6 -6
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_state_monitor_service.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_telegram_output_service.py +2 -1
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_telegram_service.py +4 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp20_action_table_serializer.py +28 -22
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp24_action_table_serializer.py +29 -11
- conson_xp-1.47.0/tests/unit/test_services/test_xp24_action_table_service.py +240 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp33_action_table_serializer.py +18 -16
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_checksum.py +3 -3
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_logging.py +2 -1
- conson_xp-1.45.0/src/xp/services/conbus/actiontable/actiontable_download_service.py +0 -525
- conson_xp-1.45.0/src/xp/services/conbus/msactiontable/msactiontable_download_service.py +0 -275
- conson_xp-1.45.0/src/xp/services/conbus/msactiontable/msactiontable_list_service.py +0 -100
- conson_xp-1.45.0/src/xp/services/conbus/msactiontable/msactiontable_show_service.py +0 -89
- conson_xp-1.45.0/tests/integration/test_xp24_action_table_integration.py +0 -287
- conson_xp-1.45.0/tests/unit/test_services/test_xp24_action_table_service.py +0 -353
- {conson_xp-1.45.0 → conson_xp-1.47.0}/LICENSE +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/README.md +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/__main__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/homekit/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/server/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/telegram/telegram.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/term/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/term/term.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/utils/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/actiontable/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/conbus/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/config/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/homekit/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/protocol/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/telegram/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/models/term/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/actiontable/msactiontable_serializer.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/actiontable/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/conbus/msactiontable/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/homekit/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/protocol/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/server/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/telegram/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/services/term/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/protocol.tcss +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/state.tcss +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/term/widgets/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/utils/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/.coverage +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/conftest.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/.coverage +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_api/.coverage +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_api/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_blink_integration.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_discovery_integration.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_event_telegram_integration.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_link_number_integration.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_module_integration.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_output_integration.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_term_logging_integration.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/integration/test_version_integration.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_api/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_click_tree.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_datapoint_type_choice.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_decorators.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_error_handlers.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_serial_number_type.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_system_function_choice.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_cli/test_term_commands.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_encoding/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_conbus.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_conbus_client_send.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_conbus_discover.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_conbus_linknumber.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_event_telegram.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_log_entry.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_logger_config.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_module_type.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_system_telegram_enhancements.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_version_telegram.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_write_config_type.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_xp20_action_table.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_xp24_action_table.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_xp24_action_table_short_format.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_models/test_xp24_action_telegram.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_blink_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_blink_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_event_list_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_event_raw_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_output_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_raw_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_receive_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_reverse_proxy_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_conbus_scan_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_device_service_factory.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_discovery_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_homekit_cache_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_homekit_conson_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_module_type_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_protocol.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_protocol_monitor_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_server_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_telegram_input_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_telegram_protocol.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_version_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp24_action_service.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp33_short_format.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_services/test_xp_server_services.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_tui/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_tui/test_protocol_log.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/__init__.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_event_helper.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_serialization.py +0 -0
- {conson_xp-1.45.0 → conson_xp-1.47.0}/tests/unit/test_utils/test_time_utils.py +0 -0
|
@@ -23,7 +23,7 @@ dependencies = [
|
|
|
23
23
|
]
|
|
24
24
|
requires-python = ">=3.11"
|
|
25
25
|
readme = "README.md"
|
|
26
|
-
version = "1.
|
|
26
|
+
version = "1.47.0"
|
|
27
27
|
|
|
28
28
|
[project.license]
|
|
29
29
|
file = "LICENSE"
|
|
@@ -59,6 +59,7 @@ dev = [
|
|
|
59
59
|
"absolufy-imports>=0.3.1",
|
|
60
60
|
"pytest-asyncio>=1.2.0",
|
|
61
61
|
"types-docutils>=0.22.2.20251006",
|
|
62
|
+
"docformatter>=1.7.7",
|
|
62
63
|
]
|
|
63
64
|
|
|
64
65
|
[tool.pytest.ini_options]
|
|
@@ -177,6 +178,7 @@ interrogate = "interrogate -vv src/"
|
|
|
177
178
|
vulture = "vulture src/ tests/"
|
|
178
179
|
refurb = "refurb src/ tests/"
|
|
179
180
|
isort = "isort src/ tests/"
|
|
181
|
+
docformatter = "docformatter src/ tests/"
|
|
180
182
|
bump-version = "pdm bump -v minor"
|
|
181
183
|
env = "echo ${PATH}"
|
|
182
184
|
install = "pdm install"
|
|
@@ -197,6 +199,7 @@ composite = [
|
|
|
197
199
|
"clean",
|
|
198
200
|
"lint",
|
|
199
201
|
"format",
|
|
202
|
+
"docformatter",
|
|
200
203
|
"typecheck",
|
|
201
204
|
"flake8",
|
|
202
205
|
"interrogate",
|
|
@@ -250,6 +253,14 @@ color = true
|
|
|
250
253
|
generate-badge = "."
|
|
251
254
|
badge-format = "svg"
|
|
252
255
|
|
|
256
|
+
[tool.docformatter]
|
|
257
|
+
recursive = true
|
|
258
|
+
wrap-summaries = 88
|
|
259
|
+
wrap-descriptions = 88
|
|
260
|
+
close-quotes-on-newline = true
|
|
261
|
+
pre-summary-newline = true
|
|
262
|
+
in-place = true
|
|
263
|
+
|
|
253
264
|
[build-system]
|
|
254
265
|
requires = [
|
|
255
266
|
"pdm-backend",
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""
|
|
2
|
+
XP CLI tool for remote console bus operations.
|
|
2
3
|
|
|
3
4
|
conson-xp package.
|
|
4
5
|
"""
|
|
5
6
|
|
|
6
|
-
__version__ = "1.
|
|
7
|
+
__version__ = "1.47.0"
|
|
7
8
|
__manufacturer__ = "salchichon"
|
|
8
9
|
__model__ = "xp.cli"
|
|
9
10
|
__serial__ = "2025.09.23.000"
|
{conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py
RENAMED
|
@@ -14,6 +14,7 @@ from xp.cli.utils.decorators import (
|
|
|
14
14
|
)
|
|
15
15
|
from xp.cli.utils.serial_number_type import SERIAL
|
|
16
16
|
from xp.models.actiontable.actiontable import ActionTable
|
|
17
|
+
from xp.models.actiontable.actiontable_type import ActionTableType
|
|
17
18
|
from xp.models.config.conson_module_config import (
|
|
18
19
|
ConsonModuleConfig,
|
|
19
20
|
ConsonModuleListConfig,
|
|
@@ -43,7 +44,8 @@ class ActionTableError(Exception):
|
|
|
43
44
|
@click.pass_context
|
|
44
45
|
@connection_command()
|
|
45
46
|
def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
46
|
-
"""
|
|
47
|
+
"""
|
|
48
|
+
Download action table from XP module.
|
|
47
49
|
|
|
48
50
|
Args:
|
|
49
51
|
ctx: Click context object.
|
|
@@ -54,7 +56,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
54
56
|
)
|
|
55
57
|
|
|
56
58
|
def on_progress(progress: str) -> None:
|
|
57
|
-
"""
|
|
59
|
+
"""
|
|
60
|
+
Handle progress updates during action table download.
|
|
58
61
|
|
|
59
62
|
Args:
|
|
60
63
|
progress: Progress message string.
|
|
@@ -66,7 +69,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
66
69
|
actiontable_dict: Dict[str, Any],
|
|
67
70
|
actiontable_short: list[str],
|
|
68
71
|
) -> None:
|
|
69
|
-
"""
|
|
72
|
+
"""
|
|
73
|
+
Handle successful completion of action table download.
|
|
70
74
|
|
|
71
75
|
Args:
|
|
72
76
|
_actiontable: a list of ActionTableEntries.
|
|
@@ -85,7 +89,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
85
89
|
service.stop_reactor()
|
|
86
90
|
|
|
87
91
|
def on_error(error: str) -> None:
|
|
88
|
-
"""
|
|
92
|
+
"""
|
|
93
|
+
Handle errors during action table download.
|
|
89
94
|
|
|
90
95
|
Args:
|
|
91
96
|
error: Error message string.
|
|
@@ -98,7 +103,10 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
98
103
|
service.on_finish.connect(on_finish)
|
|
99
104
|
service.on_actiontable_received.connect(on_actiontable_received)
|
|
100
105
|
service.on_error.connect(on_error)
|
|
101
|
-
service.configure(
|
|
106
|
+
service.configure(
|
|
107
|
+
serial_number=serial_number,
|
|
108
|
+
actiontable_type=ActionTableType.ACTIONTABLE,
|
|
109
|
+
)
|
|
102
110
|
service.start_reactor()
|
|
103
111
|
|
|
104
112
|
|
|
@@ -107,7 +115,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
107
115
|
@click.pass_context
|
|
108
116
|
@connection_command()
|
|
109
117
|
def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
110
|
-
"""
|
|
118
|
+
"""
|
|
119
|
+
Upload action table from conson.yml to XP module.
|
|
111
120
|
|
|
112
121
|
Args:
|
|
113
122
|
ctx: Click context object.
|
|
@@ -123,7 +132,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
123
132
|
entries_count = 0
|
|
124
133
|
|
|
125
134
|
def progress_callback(progress: str) -> None:
|
|
126
|
-
"""
|
|
135
|
+
"""
|
|
136
|
+
Handle progress updates during action table upload.
|
|
127
137
|
|
|
128
138
|
Args:
|
|
129
139
|
progress: Progress message string.
|
|
@@ -131,7 +141,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
131
141
|
click.echo(progress, nl=False)
|
|
132
142
|
|
|
133
143
|
def on_finish(success: bool) -> None:
|
|
134
|
-
"""
|
|
144
|
+
"""
|
|
145
|
+
Handle completion of action table upload.
|
|
135
146
|
|
|
136
147
|
Args:
|
|
137
148
|
success: True if upload succeeded.
|
|
@@ -143,7 +154,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
143
154
|
service.stop_reactor()
|
|
144
155
|
|
|
145
156
|
def on_error(error: str) -> None:
|
|
146
|
-
"""
|
|
157
|
+
"""
|
|
158
|
+
Handle errors during action table upload.
|
|
147
159
|
|
|
148
160
|
Args:
|
|
149
161
|
error: Error message string.
|
|
@@ -174,7 +186,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
174
186
|
@conbus_actiontable.command("list", short_help="List modules with ActionTable")
|
|
175
187
|
@click.pass_context
|
|
176
188
|
def conbus_list_actiontable(ctx: Context) -> None:
|
|
177
|
-
"""
|
|
189
|
+
"""
|
|
190
|
+
List all modules with action table configurations from conson.yml.
|
|
178
191
|
|
|
179
192
|
Args:
|
|
180
193
|
ctx: Click context object.
|
|
@@ -184,7 +197,8 @@ def conbus_list_actiontable(ctx: Context) -> None:
|
|
|
184
197
|
)
|
|
185
198
|
|
|
186
199
|
def on_finish(module_list: dict) -> None:
|
|
187
|
-
"""
|
|
200
|
+
"""
|
|
201
|
+
Handle successful completion of action table list.
|
|
188
202
|
|
|
189
203
|
Args:
|
|
190
204
|
module_list: Dictionary containing modules and total count.
|
|
@@ -192,7 +206,8 @@ def conbus_list_actiontable(ctx: Context) -> None:
|
|
|
192
206
|
click.echo(json.dumps(module_list, indent=2, default=str))
|
|
193
207
|
|
|
194
208
|
def on_error(error: str) -> None:
|
|
195
|
-
"""
|
|
209
|
+
"""
|
|
210
|
+
Handle errors during action table list.
|
|
196
211
|
|
|
197
212
|
Args:
|
|
198
213
|
error: Error message string.
|
|
@@ -209,7 +224,8 @@ def conbus_list_actiontable(ctx: Context) -> None:
|
|
|
209
224
|
@click.argument("serial_number", type=SERIAL)
|
|
210
225
|
@click.pass_context
|
|
211
226
|
def conbus_show_actiontable(ctx: Context, serial_number: str) -> None:
|
|
212
|
-
"""
|
|
227
|
+
"""
|
|
228
|
+
Show action table configuration for a specific module from conson.yml.
|
|
213
229
|
|
|
214
230
|
Args:
|
|
215
231
|
ctx: Click context object.
|
|
@@ -220,7 +236,8 @@ def conbus_show_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
220
236
|
)
|
|
221
237
|
|
|
222
238
|
def on_finish(module: ConsonModuleConfig) -> None:
|
|
223
|
-
"""
|
|
239
|
+
"""
|
|
240
|
+
Handle successful completion of action table show.
|
|
224
241
|
|
|
225
242
|
Args:
|
|
226
243
|
module: Dictionary containing module configuration.
|
|
@@ -230,7 +247,8 @@ def conbus_show_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
230
247
|
click.echo(json.dumps(module_data, indent=2, default=str))
|
|
231
248
|
|
|
232
249
|
def error_callback(error: str) -> None:
|
|
233
|
-
"""
|
|
250
|
+
"""
|
|
251
|
+
Handle errors during action table show.
|
|
234
252
|
|
|
235
253
|
Args:
|
|
236
254
|
error: Error message string.
|
{conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_autoreport_commands.py
RENAMED
|
@@ -23,7 +23,8 @@ from xp.services.telegram.telegram_datapoint_service import TelegramDatapointSer
|
|
|
23
23
|
@connection_command()
|
|
24
24
|
@click.pass_context
|
|
25
25
|
def get_autoreport_command(ctx: Context, serial_number: str) -> None:
|
|
26
|
-
r"""
|
|
26
|
+
r"""
|
|
27
|
+
Get the current auto report status for a specific module.
|
|
27
28
|
|
|
28
29
|
Args:
|
|
29
30
|
ctx: Click context object.
|
|
@@ -42,7 +43,8 @@ def get_autoreport_command(ctx: Context, serial_number: str) -> None:
|
|
|
42
43
|
)
|
|
43
44
|
|
|
44
45
|
def on_finish(service_response: ConbusDatapointResponse) -> None:
|
|
45
|
-
"""
|
|
46
|
+
"""
|
|
47
|
+
Handle successful completion of auto report status retrieval.
|
|
46
48
|
|
|
47
49
|
Args:
|
|
48
50
|
service_response: Auto report response object.
|
|
@@ -70,7 +72,8 @@ def get_autoreport_command(ctx: Context, serial_number: str) -> None:
|
|
|
70
72
|
@connection_command()
|
|
71
73
|
@click.pass_context
|
|
72
74
|
def set_autoreport_command(ctx: Context, serial_number: str, status: str) -> None:
|
|
73
|
-
r"""
|
|
75
|
+
r"""
|
|
76
|
+
Set the auto report status for a specific module.
|
|
74
77
|
|
|
75
78
|
Args:
|
|
76
79
|
ctx: Click context object.
|
|
@@ -90,7 +93,8 @@ def set_autoreport_command(ctx: Context, serial_number: str, status: str) -> Non
|
|
|
90
93
|
)
|
|
91
94
|
|
|
92
95
|
def on_finish(response: "ConbusWriteConfigResponse") -> None:
|
|
93
|
-
"""
|
|
96
|
+
"""
|
|
97
|
+
Handle successful completion of light level on command.
|
|
94
98
|
|
|
95
99
|
Args:
|
|
96
100
|
response: Light level response object.
|
|
@@ -23,7 +23,8 @@ from xp.services.telegram.telegram_blink_service import BlinkError
|
|
|
23
23
|
@connection_command()
|
|
24
24
|
@handle_service_errors(BlinkError)
|
|
25
25
|
def send_blink_on_telegram(ctx: Context, serial_number: str) -> None:
|
|
26
|
-
r"""
|
|
26
|
+
r"""
|
|
27
|
+
Send blink command to start blinking module LED.
|
|
27
28
|
|
|
28
29
|
Args:
|
|
29
30
|
ctx: Click context object.
|
|
@@ -35,7 +36,8 @@ def send_blink_on_telegram(ctx: Context, serial_number: str) -> None:
|
|
|
35
36
|
"""
|
|
36
37
|
|
|
37
38
|
def on_finish(service_response: ConbusBlinkResponse) -> None:
|
|
38
|
-
"""
|
|
39
|
+
"""
|
|
40
|
+
Handle successful completion of blink on command.
|
|
39
41
|
|
|
40
42
|
Args:
|
|
41
43
|
service_response: Blink response object.
|
|
@@ -58,7 +60,8 @@ def send_blink_on_telegram(ctx: Context, serial_number: str) -> None:
|
|
|
58
60
|
@connection_command()
|
|
59
61
|
@handle_service_errors(BlinkError)
|
|
60
62
|
def send_blink_off_telegram(ctx: Context, serial_number: str) -> None:
|
|
61
|
-
r"""
|
|
63
|
+
r"""
|
|
64
|
+
Send blink command to stop blinking module LED.
|
|
62
65
|
|
|
63
66
|
Args:
|
|
64
67
|
ctx: Click context object.
|
|
@@ -70,7 +73,8 @@ def send_blink_off_telegram(ctx: Context, serial_number: str) -> None:
|
|
|
70
73
|
"""
|
|
71
74
|
|
|
72
75
|
def on_finish(service_response: ConbusBlinkResponse) -> None:
|
|
73
|
-
"""
|
|
76
|
+
"""
|
|
77
|
+
Handle successful completion of blink off command.
|
|
74
78
|
|
|
75
79
|
Args:
|
|
76
80
|
service_response: Blink response object.
|
|
@@ -98,7 +102,8 @@ def conbus_blink_all() -> None:
|
|
|
98
102
|
@connection_command()
|
|
99
103
|
@handle_service_errors(BlinkError)
|
|
100
104
|
def blink_all_off(ctx: Context) -> None:
|
|
101
|
-
r"""
|
|
105
|
+
r"""
|
|
106
|
+
Turn off blinking for all discovered devices.
|
|
102
107
|
|
|
103
108
|
Args:
|
|
104
109
|
ctx: Click context object.
|
|
@@ -109,7 +114,8 @@ def blink_all_off(ctx: Context) -> None:
|
|
|
109
114
|
"""
|
|
110
115
|
|
|
111
116
|
def on_finish(discovered_devices: ConbusBlinkResponse) -> None:
|
|
112
|
-
"""
|
|
117
|
+
"""
|
|
118
|
+
Handle successful completion of blink all off command.
|
|
113
119
|
|
|
114
120
|
Args:
|
|
115
121
|
discovered_devices: Blink response with all devices.
|
|
@@ -118,7 +124,8 @@ def blink_all_off(ctx: Context) -> None:
|
|
|
118
124
|
service.stop_reactor()
|
|
119
125
|
|
|
120
126
|
def progress(message: str) -> None:
|
|
121
|
-
"""
|
|
127
|
+
"""
|
|
128
|
+
Handle progress updates during blink all off operation.
|
|
122
129
|
|
|
123
130
|
Args:
|
|
124
131
|
message: Progress message string.
|
|
@@ -140,7 +147,8 @@ def blink_all_off(ctx: Context) -> None:
|
|
|
140
147
|
@connection_command()
|
|
141
148
|
@handle_service_errors(BlinkError)
|
|
142
149
|
def blink_all_on(ctx: Context) -> None:
|
|
143
|
-
r"""
|
|
150
|
+
r"""
|
|
151
|
+
Turn on blinking for all discovered devices.
|
|
144
152
|
|
|
145
153
|
Args:
|
|
146
154
|
ctx: Click context object.
|
|
@@ -151,7 +159,8 @@ def blink_all_on(ctx: Context) -> None:
|
|
|
151
159
|
"""
|
|
152
160
|
|
|
153
161
|
def on_finish(discovered_devices: ConbusBlinkResponse) -> None:
|
|
154
|
-
"""
|
|
162
|
+
"""
|
|
163
|
+
Handle successful completion of blink all on command.
|
|
155
164
|
|
|
156
165
|
Args:
|
|
157
166
|
discovered_devices: Blink response with all devices.
|
|
@@ -160,7 +169,8 @@ def blink_all_on(ctx: Context) -> None:
|
|
|
160
169
|
service.stop_reactor()
|
|
161
170
|
|
|
162
171
|
def progress(message: str) -> None:
|
|
163
|
-
"""
|
|
172
|
+
"""
|
|
173
|
+
Handle progress updates during blink all on operation.
|
|
164
174
|
|
|
165
175
|
Args:
|
|
166
176
|
message: Progress message string.
|
|
@@ -14,7 +14,8 @@ from xp.models import ConbusClientConfig
|
|
|
14
14
|
@click.pass_context
|
|
15
15
|
@handle_service_errors(Exception)
|
|
16
16
|
def show_config(ctx: Context) -> None:
|
|
17
|
-
r"""
|
|
17
|
+
r"""
|
|
18
|
+
Display current Conbus client configuration.
|
|
18
19
|
|
|
19
20
|
Args:
|
|
20
21
|
ctx: Click context object.
|
|
@@ -23,7 +23,8 @@ from xp.services.conbus.conbus_custom_service import ConbusCustomService
|
|
|
23
23
|
def send_custom_telegram(
|
|
24
24
|
ctx: Context, serial_number: str, function_code: str, datapoint_code: str
|
|
25
25
|
) -> None:
|
|
26
|
-
r"""
|
|
26
|
+
r"""
|
|
27
|
+
Send custom telegram with specified function and data point codes.
|
|
27
28
|
|
|
28
29
|
Args:
|
|
29
30
|
ctx: Click context object.
|
|
@@ -41,7 +42,8 @@ def send_custom_telegram(
|
|
|
41
42
|
)
|
|
42
43
|
|
|
43
44
|
def on_finish(response: ConbusCustomResponse) -> None:
|
|
44
|
-
"""
|
|
45
|
+
"""
|
|
46
|
+
Handle successful completion of custom telegram.
|
|
45
47
|
|
|
46
48
|
Args:
|
|
47
49
|
response: Custom response object.
|
{conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py
RENAMED
|
@@ -30,7 +30,8 @@ from xp.services.conbus.conbus_datapoint_service import (
|
|
|
30
30
|
@click.pass_context
|
|
31
31
|
@connection_command()
|
|
32
32
|
def query_datapoint(ctx: Context, serial_number: str, datapoint: DataPointType) -> None:
|
|
33
|
-
r"""
|
|
33
|
+
r"""
|
|
34
|
+
Query a specific datapoint from Conbus server.
|
|
34
35
|
|
|
35
36
|
Args:
|
|
36
37
|
ctx: Click context object.
|
|
@@ -50,7 +51,8 @@ def query_datapoint(ctx: Context, serial_number: str, datapoint: DataPointType)
|
|
|
50
51
|
)
|
|
51
52
|
|
|
52
53
|
def on_finish(service_response: ConbusDatapointResponse) -> None:
|
|
53
|
-
"""
|
|
54
|
+
"""
|
|
55
|
+
Handle successful completion of datapoint query.
|
|
54
56
|
|
|
55
57
|
Args:
|
|
56
58
|
service_response: Datapoint response object.
|
|
@@ -77,7 +79,8 @@ conbus_datapoint.add_command(query_datapoint)
|
|
|
77
79
|
@click.pass_context
|
|
78
80
|
@connection_command()
|
|
79
81
|
def query_all_datapoints(ctx: Context, serial_number: str) -> None:
|
|
80
|
-
r"""
|
|
82
|
+
r"""
|
|
83
|
+
Query all datapoints from a specific module.
|
|
81
84
|
|
|
82
85
|
Args:
|
|
83
86
|
ctx: Click context object.
|
|
@@ -92,7 +95,8 @@ def query_all_datapoints(ctx: Context, serial_number: str) -> None:
|
|
|
92
95
|
)
|
|
93
96
|
|
|
94
97
|
def on_finish(service_response: ConbusDatapointResponse) -> None:
|
|
95
|
-
"""
|
|
98
|
+
"""
|
|
99
|
+
Handle successful completion of all datapoints query.
|
|
96
100
|
|
|
97
101
|
Args:
|
|
98
102
|
service_response: Datapoint response object with all datapoints.
|
|
@@ -101,7 +105,8 @@ def query_all_datapoints(ctx: Context, serial_number: str) -> None:
|
|
|
101
105
|
service.stop_reactor()
|
|
102
106
|
|
|
103
107
|
def on_progress(reply_telegram: ReplyTelegram) -> None:
|
|
104
|
-
"""
|
|
108
|
+
"""
|
|
109
|
+
Handle progress updates during all datapoints query.
|
|
105
110
|
|
|
106
111
|
Args:
|
|
107
112
|
reply_telegram: Reply telegram object with progress data.
|
{conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py
RENAMED
|
@@ -19,7 +19,8 @@ from xp.services.conbus.conbus_discover_service import (
|
|
|
19
19
|
@click.pass_context
|
|
20
20
|
@connection_command()
|
|
21
21
|
def send_discover_telegram(ctx: click.Context) -> None:
|
|
22
|
-
r"""
|
|
22
|
+
r"""
|
|
23
|
+
Send discover telegram to Conbus server.
|
|
23
24
|
|
|
24
25
|
Args:
|
|
25
26
|
ctx: Click context object.
|
|
@@ -30,7 +31,8 @@ def send_discover_telegram(ctx: click.Context) -> None:
|
|
|
30
31
|
"""
|
|
31
32
|
|
|
32
33
|
def on_finish(discovered_devices: ConbusDiscoverResponse) -> None:
|
|
33
|
-
"""
|
|
34
|
+
"""
|
|
35
|
+
Handle successful completion of device discovery.
|
|
34
36
|
|
|
35
37
|
Args:
|
|
36
38
|
discovered_devices: Discover response with all found devices.
|
|
@@ -39,7 +41,8 @@ def send_discover_telegram(ctx: click.Context) -> None:
|
|
|
39
41
|
service.stop_reactor()
|
|
40
42
|
|
|
41
43
|
def on_device_discovered(discovered_device: DiscoveredDevice) -> None:
|
|
42
|
-
"""
|
|
44
|
+
"""
|
|
45
|
+
Handle discovery of sa single module.
|
|
43
46
|
|
|
44
47
|
Args:
|
|
45
48
|
discovered_device: Discover device.
|
|
@@ -47,7 +50,8 @@ def send_discover_telegram(ctx: click.Context) -> None:
|
|
|
47
50
|
click.echo(json.dumps(discovered_device, indent=2))
|
|
48
51
|
|
|
49
52
|
def progress(_serial_number: str) -> None:
|
|
50
|
-
"""
|
|
53
|
+
"""
|
|
54
|
+
Handle progress updates during device discovery.
|
|
51
55
|
|
|
52
56
|
Args:
|
|
53
57
|
_serial_number: Serial number of discovered device (unused).
|
|
@@ -15,7 +15,8 @@ from xp.services.conbus.conbus_event_raw_service import ConbusEventRawService
|
|
|
15
15
|
@conbus_event.command("list")
|
|
16
16
|
@click.pass_context
|
|
17
17
|
def list_events(ctx: click.Context) -> None:
|
|
18
|
-
r"""
|
|
18
|
+
r"""
|
|
19
|
+
List configured event telegrams from module action tables.
|
|
19
20
|
|
|
20
21
|
Reads conson.yml configuration, parses action tables, and groups
|
|
21
22
|
modules by their event keys to show which modules are assigned to
|
|
@@ -50,7 +51,8 @@ def send_event_raw(
|
|
|
50
51
|
input_number: int,
|
|
51
52
|
time_ms: int,
|
|
52
53
|
) -> None:
|
|
53
|
-
r"""
|
|
54
|
+
r"""
|
|
55
|
+
Send raw event telegrams to simulate button presses.
|
|
54
56
|
|
|
55
57
|
Args:
|
|
56
58
|
ctx: Click context object.
|
|
@@ -66,7 +68,8 @@ def send_event_raw(
|
|
|
66
68
|
"""
|
|
67
69
|
|
|
68
70
|
def on_finish(response: ConbusEventRawResponse) -> None:
|
|
69
|
-
"""
|
|
71
|
+
"""
|
|
72
|
+
Handle successful completion of event raw operation.
|
|
70
73
|
|
|
71
74
|
Args:
|
|
72
75
|
response: Event raw response with sent and received telegrams.
|
|
@@ -74,7 +77,8 @@ def send_event_raw(
|
|
|
74
77
|
click.echo(json.dumps(response.to_dict(), indent=2))
|
|
75
78
|
|
|
76
79
|
def on_progress(telegram: str) -> None:
|
|
77
|
-
"""
|
|
80
|
+
"""
|
|
81
|
+
Handle progress updates during event operation.
|
|
78
82
|
|
|
79
83
|
Args:
|
|
80
84
|
telegram: Received telegram.
|
|
@@ -15,7 +15,8 @@ from xp.services.conbus.conbus_export_service import ConbusExportService
|
|
|
15
15
|
@click.pass_context
|
|
16
16
|
@connection_command()
|
|
17
17
|
def export_conbus_config(ctx: click.Context) -> None:
|
|
18
|
-
r"""
|
|
18
|
+
r"""
|
|
19
|
+
Export Conbus device metadata to YAML file.
|
|
19
20
|
|
|
20
21
|
Discovers all devices on the Conbus network and queries their configuration
|
|
21
22
|
datapoints to generate a complete export.yml file in conson.yml format.
|
|
@@ -31,7 +32,8 @@ def export_conbus_config(ctx: click.Context) -> None:
|
|
|
31
32
|
"""
|
|
32
33
|
|
|
33
34
|
def on_progress(serial_number: str, current: int, total: int) -> None:
|
|
34
|
-
"""
|
|
35
|
+
"""
|
|
36
|
+
Handle progress updates during export.
|
|
35
37
|
|
|
36
38
|
Args:
|
|
37
39
|
serial_number: Serial number of discovered device.
|
|
@@ -41,7 +43,8 @@ def export_conbus_config(ctx: click.Context) -> None:
|
|
|
41
43
|
click.echo(f"Querying device {current}/{total}: {serial_number}...")
|
|
42
44
|
|
|
43
45
|
def on_device_exported(module: ConsonModuleConfig) -> None:
|
|
44
|
-
"""
|
|
46
|
+
"""
|
|
47
|
+
Handle device export completion.
|
|
45
48
|
|
|
46
49
|
Args:
|
|
47
50
|
module: Exported module configuration.
|
|
@@ -58,7 +61,8 @@ def export_conbus_config(ctx: click.Context) -> None:
|
|
|
58
61
|
click.echo(f" ✓ Software version: {module.sw_version}")
|
|
59
62
|
|
|
60
63
|
def on_finish(result: ConbusExportResponse) -> None:
|
|
61
|
-
"""
|
|
64
|
+
"""
|
|
65
|
+
Handle export completion.
|
|
62
66
|
|
|
63
67
|
Args:
|
|
64
68
|
result: Export result.
|
{conson_xp-1.45.0 → conson_xp-1.47.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py
RENAMED
|
@@ -26,7 +26,8 @@ from xp.services.telegram.telegram_datapoint_service import TelegramDatapointSer
|
|
|
26
26
|
def xp_lightlevel_set(
|
|
27
27
|
ctx: click.Context, serial_number: str, output_number: int, level: int
|
|
28
28
|
) -> None:
|
|
29
|
-
r"""
|
|
29
|
+
r"""
|
|
30
|
+
Set light level for output_number on XP module serial_number.
|
|
30
31
|
|
|
31
32
|
Args:
|
|
32
33
|
ctx: Click context object.
|
|
@@ -44,7 +45,8 @@ def xp_lightlevel_set(
|
|
|
44
45
|
)
|
|
45
46
|
|
|
46
47
|
def on_finish(response: "ConbusWriteConfigResponse") -> None:
|
|
47
|
-
"""
|
|
48
|
+
"""
|
|
49
|
+
Handle successful completion of light level on command.
|
|
48
50
|
|
|
49
51
|
Args:
|
|
50
52
|
response: Light level response object.
|
|
@@ -73,7 +75,8 @@ def xp_lightlevel_set(
|
|
|
73
75
|
def xp_lightlevel_off(
|
|
74
76
|
ctx: click.Context, serial_number: str, output_number: int
|
|
75
77
|
) -> None:
|
|
76
|
-
r"""
|
|
78
|
+
r"""
|
|
79
|
+
Turn off light for output_number on XP module serial_number (set level to 0).
|
|
77
80
|
|
|
78
81
|
Args:
|
|
79
82
|
ctx: Click context object.
|
|
@@ -90,7 +93,8 @@ def xp_lightlevel_off(
|
|
|
90
93
|
)
|
|
91
94
|
|
|
92
95
|
def on_finish(response: "ConbusWriteConfigResponse") -> None:
|
|
93
|
-
"""
|
|
96
|
+
"""
|
|
97
|
+
Handle successful completion of light level on command.
|
|
94
98
|
|
|
95
99
|
Args:
|
|
96
100
|
response: Light level response object.
|
|
@@ -120,7 +124,8 @@ def xp_lightlevel_off(
|
|
|
120
124
|
def xp_lightlevel_on(
|
|
121
125
|
ctx: click.Context, serial_number: str, output_number: int
|
|
122
126
|
) -> None:
|
|
123
|
-
r"""
|
|
127
|
+
r"""
|
|
128
|
+
Turn on light for output_number on XP module serial_number (set level to 80%).
|
|
124
129
|
|
|
125
130
|
Args:
|
|
126
131
|
ctx: Click context object.
|
|
@@ -137,7 +142,8 @@ def xp_lightlevel_on(
|
|
|
137
142
|
)
|
|
138
143
|
|
|
139
144
|
def on_finish(response: "ConbusWriteConfigResponse") -> None:
|
|
140
|
-
"""
|
|
145
|
+
"""
|
|
146
|
+
Handle successful completion of light level on command.
|
|
141
147
|
|
|
142
148
|
Args:
|
|
143
149
|
response: Light level response object.
|
|
@@ -167,7 +173,8 @@ def xp_lightlevel_on(
|
|
|
167
173
|
def xp_lightlevel_get(
|
|
168
174
|
ctx: click.Context, serial_number: str, output_number: int
|
|
169
175
|
) -> None:
|
|
170
|
-
r"""
|
|
176
|
+
r"""
|
|
177
|
+
Get current light level for output_number on XP module serial_number.
|
|
171
178
|
|
|
172
179
|
Args:
|
|
173
180
|
ctx: Click context object.
|
|
@@ -188,7 +195,8 @@ def xp_lightlevel_get(
|
|
|
188
195
|
)
|
|
189
196
|
|
|
190
197
|
def on_finish(service_response: "ConbusDatapointResponse") -> None:
|
|
191
|
-
"""
|
|
198
|
+
"""
|
|
199
|
+
Handle successful completion of light level get command.
|
|
192
200
|
|
|
193
201
|
Args:
|
|
194
202
|
service_response: Light level response object.
|