conson-xp 1.46.0__tar.gz → 1.48.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.46.0 → conson_xp-1.48.0}/PKG-INFO +1 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/pyproject.toml +12 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/__init__.py +3 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus.py +1 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py +33 -19
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_autoreport_commands.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_blink_commands.py +20 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_config_commands.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_custom_commands.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py +10 -5
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_event_commands.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_export_commands.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py +16 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_linknumber_commands.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_modulenumber_commands.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_msactiontable_commands.py +78 -40
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_output_commands.py +16 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_raw_commands.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_receive_commands.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_scan_commands.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/file_commands.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/homekit/homekit.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/homekit/homekit_start_commands.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/module_commands.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/reverse_proxy_commands.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/server/server_commands.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/telegram/telegram_blink_commands.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/telegram/telegram_checksum_commands.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/telegram/telegram_discover_commands.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/telegram/telegram_linknumber_commands.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/telegram/telegram_parse_commands.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/telegram/telegram_version_commands.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/term/term_commands.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/main.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/click_tree.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/datapoint_type_choice.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/decorators.py +42 -21
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/error_handlers.py +16 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/formatters.py +22 -11
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/module_type_choice.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/serial_number_type.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/system_function_choice.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/xp_module_type.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/actiontable/actiontable.py +8 -8
- conson_xp-1.48.0/src/xp/models/actiontable/actiontable_type.py +20 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/actiontable/msactiontable_xp20.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/actiontable/msactiontable_xp24.py +12 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/actiontable/msactiontable_xp33.py +20 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_autoreport.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_blink.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_client_config.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_connection_status.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_custom.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_datapoint.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_discover.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_event_list.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_event_raw.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_export.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_lightlevel.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_linknumber.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_logger_config.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_output.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_raw.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_receive.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/conbus_writeconfig.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/config/conson_module_config.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/homekit/homekit_accessory.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/homekit/homekit_config.py +12 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/log_entry.py +16 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/protocol/conbus_protocol.py +36 -18
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/response.py +12 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/action_type.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/datapoint_type.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/event_telegram.py +14 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/event_type.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/input_action_type.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/input_type.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/module_type.py +24 -12
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/module_type_code.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/output_telegram.py +16 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/reply_telegram.py +24 -13
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/system_function.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/system_telegram.py +10 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/telegram.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/telegram_type.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/timeparam_type.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/term/connection_state.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/term/module_state.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/term/protocol_keys_config.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/term/status_message.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/term/telegram_display.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/write_config_type.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/actiontable/actiontable_serializer.py +34 -41
- conson_xp-1.46.0/src/xp/services/conbus/actiontable/actiontable_download_state_machine.py → conson_xp-1.48.0/src/xp/services/actiontable/download_state_machine.py +13 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/actiontable/msactiontable_xp20_serializer.py +73 -50
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/actiontable/msactiontable_xp24_serializer.py +73 -54
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/actiontable/msactiontable_xp33_serializer.py +44 -20
- conson_xp-1.48.0/src/xp/services/actiontable/serializer_protocol.py +76 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/actiontable/actiontable_download_service.py +68 -31
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/actiontable/actiontable_list_service.py +17 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/actiontable/actiontable_show_service.py +10 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/actiontable/actiontable_upload_service.py +17 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_blink_all_service.py +16 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_blink_service.py +14 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_custom_service.py +16 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_datapoint_queryall_service.py +18 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_datapoint_service.py +18 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_discover_service.py +24 -13
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_event_list_service.py +11 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_event_raw_service.py +18 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_export_service.py +28 -14
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_output_service.py +18 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_raw_service.py +16 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_receive_service.py +18 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/conbus_scan_service.py +18 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/msactiontable/msactiontable_upload_service.py +18 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/write_config_service.py +18 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_cache_service.py +12 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_conbus_service.py +12 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_config_validator.py +34 -17
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_conson_validator.py +18 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_dimminglight.py +14 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_dimminglight_service.py +14 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_hap_service.py +18 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_lightbulb.py +10 -5
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_lightbulb_service.py +10 -5
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_module_service.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_outlet.py +14 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_outlet_service.py +12 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/homekit_service.py +24 -12
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/log_file_service.py +16 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/module_type_service.py +10 -5
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/protocol/conbus_event_protocol.py +51 -26
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/protocol/conbus_protocol.py +36 -19
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/protocol/protocol_factory.py +12 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/protocol/telegram_protocol.py +12 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/reverse_proxy_service.py +26 -14
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/base_server_service.py +42 -23
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/client_buffer_manager.py +12 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/cp20_server_service.py +10 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/device_service_factory.py +12 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/server_service.py +18 -11
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/xp130_server_service.py +11 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/xp20_server_service.py +16 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/xp230_server_service.py +10 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/xp24_server_service.py +22 -13
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/xp33_server_service.py +44 -25
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/telegram/telegram_blink_service.py +14 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/telegram/telegram_checksum_service.py +12 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/telegram/telegram_datapoint_service.py +14 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/telegram/telegram_discover_service.py +28 -15
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/telegram/telegram_link_number_service.py +18 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/telegram/telegram_output_service.py +24 -12
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/telegram/telegram_service.py +22 -11
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/telegram/telegram_version_service.py +14 -8
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/term/protocol_monitor_service.py +30 -16
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/term/state_monitor_service.py +39 -21
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/protocol.py +12 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/state.py +12 -7
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/widgets/help_menu.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/widgets/modules_list.py +20 -10
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/widgets/protocol_log.py +12 -6
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/widgets/status_footer.py +10 -5
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/utils/checksum.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/utils/dependencies.py +25 -30
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/utils/event_helper.py +6 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/utils/logging.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/utils/serialization.py +30 -16
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/utils/state_machine.py +16 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/utils/time_utils.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/telegram_test_data.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_actiontable_integration.py +35 -27
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_checksum_integration.py +4 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_conbus_blink_integration.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_conbus_datapoint_integration.py +18 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_conbus_raw_integration.py +28 -15
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_conbus_receive_integration.py +4 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_homekit_config_integration.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_reverse_proxy_integration.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_system_reply_telegram_integration.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_xp20_action_table_integration.py +33 -30
- conson_xp-1.48.0/tests/integration/test_xp24_action_table_integration.py +215 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_conbus_actiontable_commands.py +35 -25
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_conbus_blink_commands.py +1 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_conbus_msactiontable_upload_commands.py +8 -4
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_formatters.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_encoding/test_latin1_edge_cases.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_reply_telegram.py +4 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_system_telegram.py +4 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_actiontable_download_service.py +39 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_actiontable_serializer.py +25 -20
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_actiontable_service.py +16 -9
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_actiontable_upload_service.py +5 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_base_server_service.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_checksum_service.py +4 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_client_buffer_manager.py +6 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_homekit_config_validator.py +13 -5
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_homekit_services.py +15 -5
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_log_file_service.py +4 -2
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_msactiontable_upload_service.py +4 -36
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_state_monitor_service.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_telegram_output_service.py +2 -1
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_telegram_service.py +4 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_xp20_action_table_serializer.py +37 -32
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_xp24_action_table_serializer.py +32 -14
- conson_xp-1.48.0/tests/unit/test_services/test_xp24_action_table_service.py +240 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_xp33_action_table_serializer.py +19 -17
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_utils/test_checksum.py +3 -3
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_utils/test_logging.py +2 -1
- conson_xp-1.46.0/src/xp/services/conbus/msactiontable/msactiontable_download_service.py +0 -275
- conson_xp-1.46.0/src/xp/services/conbus/msactiontable/msactiontable_list_service.py +0 -100
- conson_xp-1.46.0/src/xp/services/conbus/msactiontable/msactiontable_show_service.py +0 -89
- conson_xp-1.46.0/tests/integration/test_xp24_action_table_integration.py +0 -287
- conson_xp-1.46.0/tests/unit/test_services/test_xp24_action_table_service.py +0 -353
- {conson_xp-1.46.0 → conson_xp-1.48.0}/LICENSE +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/README.md +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/__main__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/homekit/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/server/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/telegram/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/telegram/telegram.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/term/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/term/term.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/utils/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/actiontable/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/conbus/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/config/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/homekit/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/protocol/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/telegram/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/models/term/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/actiontable/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/actiontable/msactiontable_serializer.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/actiontable/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/conbus/msactiontable/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/homekit/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/protocol/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/server/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/telegram/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/services/term/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/protocol.tcss +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/state.tcss +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/term/widgets/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/utils/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/.coverage +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/conftest.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/.coverage +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_api/.coverage +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_api/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_blink_integration.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_discovery_integration.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_event_telegram_integration.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_link_number_integration.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_module_integration.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_output_integration.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_term_logging_integration.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/integration/test_version_integration.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_api/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_click_tree.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_datapoint_type_choice.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_decorators.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_error_handlers.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_serial_number_type.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_system_function_choice.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_cli/test_term_commands.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_encoding/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_conbus.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_conbus_client_send.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_conbus_discover.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_conbus_linknumber.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_event_telegram.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_log_entry.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_logger_config.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_module_type.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_system_telegram_enhancements.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_version_telegram.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_write_config_type.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_xp20_action_table.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_xp24_action_table.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_xp24_action_table_short_format.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_models/test_xp24_action_telegram.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_blink_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_conbus_blink_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_conbus_event_list_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_conbus_event_protocol.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_conbus_event_raw_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_conbus_output_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_conbus_raw_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_conbus_receive_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_conbus_reverse_proxy_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_conbus_scan_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_device_service_factory.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_discovery_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_homekit_cache_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_homekit_conson_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_module_type_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_protocol.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_protocol_monitor_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_server_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_telegram_input_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_telegram_protocol.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_version_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_xp24_action_service.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_xp33_short_format.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_services/test_xp_server_services.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_tui/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_tui/test_protocol_log.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_utils/__init__.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_utils/test_event_helper.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.0}/tests/unit/test_utils/test_serialization.py +0 -0
- {conson_xp-1.46.0 → conson_xp-1.48.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.48.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.48.0"
|
|
7
8
|
__manufacturer__ = "salchichon"
|
|
8
9
|
__model__ = "xp.cli"
|
|
9
10
|
__serial__ = "2025.09.23.000"
|
{conson_xp-1.46.0 → conson_xp-1.48.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py
RENAMED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import json
|
|
4
4
|
from contextlib import suppress
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import Any, Dict
|
|
7
6
|
|
|
8
7
|
import click
|
|
9
8
|
from click import Context
|
|
@@ -14,6 +13,7 @@ from xp.cli.utils.decorators import (
|
|
|
14
13
|
)
|
|
15
14
|
from xp.cli.utils.serial_number_type import SERIAL
|
|
16
15
|
from xp.models.actiontable.actiontable import ActionTable
|
|
16
|
+
from xp.models.actiontable.actiontable_type import ActionTableType
|
|
17
17
|
from xp.models.config.conson_module_config import (
|
|
18
18
|
ConsonModuleConfig,
|
|
19
19
|
ConsonModuleListConfig,
|
|
@@ -43,7 +43,8 @@ class ActionTableError(Exception):
|
|
|
43
43
|
@click.pass_context
|
|
44
44
|
@connection_command()
|
|
45
45
|
def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
46
|
-
"""
|
|
46
|
+
"""
|
|
47
|
+
Download action table from XP module.
|
|
47
48
|
|
|
48
49
|
Args:
|
|
49
50
|
ctx: Click context object.
|
|
@@ -54,7 +55,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
54
55
|
)
|
|
55
56
|
|
|
56
57
|
def on_progress(progress: str) -> None:
|
|
57
|
-
"""
|
|
58
|
+
"""
|
|
59
|
+
Handle progress updates during action table download.
|
|
58
60
|
|
|
59
61
|
Args:
|
|
60
62
|
progress: Progress message string.
|
|
@@ -63,20 +65,18 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
63
65
|
|
|
64
66
|
def on_actiontable_received(
|
|
65
67
|
_actiontable: ActionTable,
|
|
66
|
-
actiontable_dict: Dict[str, Any],
|
|
67
68
|
actiontable_short: list[str],
|
|
68
69
|
) -> None:
|
|
69
|
-
"""
|
|
70
|
+
"""
|
|
71
|
+
Handle successful completion of action table download.
|
|
70
72
|
|
|
71
73
|
Args:
|
|
72
74
|
_actiontable: a list of ActionTableEntries.
|
|
73
|
-
actiontable_dict: action table in a dictionary.
|
|
74
75
|
actiontable_short: short representation of action table.
|
|
75
76
|
"""
|
|
76
77
|
output = {
|
|
77
78
|
"serial_number": serial_number,
|
|
78
79
|
"actiontable_short": actiontable_short,
|
|
79
|
-
"actiontable": actiontable_dict,
|
|
80
80
|
}
|
|
81
81
|
click.echo(json.dumps(output, indent=2, default=str))
|
|
82
82
|
|
|
@@ -85,7 +85,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
85
85
|
service.stop_reactor()
|
|
86
86
|
|
|
87
87
|
def on_error(error: str) -> None:
|
|
88
|
-
"""
|
|
88
|
+
"""
|
|
89
|
+
Handle errors during action table download.
|
|
89
90
|
|
|
90
91
|
Args:
|
|
91
92
|
error: Error message string.
|
|
@@ -98,7 +99,10 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
98
99
|
service.on_finish.connect(on_finish)
|
|
99
100
|
service.on_actiontable_received.connect(on_actiontable_received)
|
|
100
101
|
service.on_error.connect(on_error)
|
|
101
|
-
service.configure(
|
|
102
|
+
service.configure(
|
|
103
|
+
serial_number=serial_number,
|
|
104
|
+
actiontable_type=ActionTableType.ACTIONTABLE,
|
|
105
|
+
)
|
|
102
106
|
service.start_reactor()
|
|
103
107
|
|
|
104
108
|
|
|
@@ -107,7 +111,8 @@ def conbus_download_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
107
111
|
@click.pass_context
|
|
108
112
|
@connection_command()
|
|
109
113
|
def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
110
|
-
"""
|
|
114
|
+
"""
|
|
115
|
+
Upload action table from conson.yml to XP module.
|
|
111
116
|
|
|
112
117
|
Args:
|
|
113
118
|
ctx: Click context object.
|
|
@@ -123,7 +128,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
123
128
|
entries_count = 0
|
|
124
129
|
|
|
125
130
|
def progress_callback(progress: str) -> None:
|
|
126
|
-
"""
|
|
131
|
+
"""
|
|
132
|
+
Handle progress updates during action table upload.
|
|
127
133
|
|
|
128
134
|
Args:
|
|
129
135
|
progress: Progress message string.
|
|
@@ -131,7 +137,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
131
137
|
click.echo(progress, nl=False)
|
|
132
138
|
|
|
133
139
|
def on_finish(success: bool) -> None:
|
|
134
|
-
"""
|
|
140
|
+
"""
|
|
141
|
+
Handle completion of action table upload.
|
|
135
142
|
|
|
136
143
|
Args:
|
|
137
144
|
success: True if upload succeeded.
|
|
@@ -143,7 +150,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
143
150
|
service.stop_reactor()
|
|
144
151
|
|
|
145
152
|
def on_error(error: str) -> None:
|
|
146
|
-
"""
|
|
153
|
+
"""
|
|
154
|
+
Handle errors during action table upload.
|
|
147
155
|
|
|
148
156
|
Args:
|
|
149
157
|
error: Error message string.
|
|
@@ -174,7 +182,8 @@ def conbus_upload_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
174
182
|
@conbus_actiontable.command("list", short_help="List modules with ActionTable")
|
|
175
183
|
@click.pass_context
|
|
176
184
|
def conbus_list_actiontable(ctx: Context) -> None:
|
|
177
|
-
"""
|
|
185
|
+
"""
|
|
186
|
+
List all modules with action table configurations from conson.yml.
|
|
178
187
|
|
|
179
188
|
Args:
|
|
180
189
|
ctx: Click context object.
|
|
@@ -184,7 +193,8 @@ def conbus_list_actiontable(ctx: Context) -> None:
|
|
|
184
193
|
)
|
|
185
194
|
|
|
186
195
|
def on_finish(module_list: dict) -> None:
|
|
187
|
-
"""
|
|
196
|
+
"""
|
|
197
|
+
Handle successful completion of action table list.
|
|
188
198
|
|
|
189
199
|
Args:
|
|
190
200
|
module_list: Dictionary containing modules and total count.
|
|
@@ -192,7 +202,8 @@ def conbus_list_actiontable(ctx: Context) -> None:
|
|
|
192
202
|
click.echo(json.dumps(module_list, indent=2, default=str))
|
|
193
203
|
|
|
194
204
|
def on_error(error: str) -> None:
|
|
195
|
-
"""
|
|
205
|
+
"""
|
|
206
|
+
Handle errors during action table list.
|
|
196
207
|
|
|
197
208
|
Args:
|
|
198
209
|
error: Error message string.
|
|
@@ -209,7 +220,8 @@ def conbus_list_actiontable(ctx: Context) -> None:
|
|
|
209
220
|
@click.argument("serial_number", type=SERIAL)
|
|
210
221
|
@click.pass_context
|
|
211
222
|
def conbus_show_actiontable(ctx: Context, serial_number: str) -> None:
|
|
212
|
-
"""
|
|
223
|
+
"""
|
|
224
|
+
Show action table configuration for a specific module from conson.yml.
|
|
213
225
|
|
|
214
226
|
Args:
|
|
215
227
|
ctx: Click context object.
|
|
@@ -220,7 +232,8 @@ def conbus_show_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
220
232
|
)
|
|
221
233
|
|
|
222
234
|
def on_finish(module: ConsonModuleConfig) -> None:
|
|
223
|
-
"""
|
|
235
|
+
"""
|
|
236
|
+
Handle successful completion of action table show.
|
|
224
237
|
|
|
225
238
|
Args:
|
|
226
239
|
module: Dictionary containing module configuration.
|
|
@@ -230,7 +243,8 @@ def conbus_show_actiontable(ctx: Context, serial_number: str) -> None:
|
|
|
230
243
|
click.echo(json.dumps(module_data, indent=2, default=str))
|
|
231
244
|
|
|
232
245
|
def error_callback(error: str) -> None:
|
|
233
|
-
"""
|
|
246
|
+
"""
|
|
247
|
+
Handle errors during action table show.
|
|
234
248
|
|
|
235
249
|
Args:
|
|
236
250
|
error: Error message string.
|
{conson_xp-1.46.0 → conson_xp-1.48.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.46.0 → conson_xp-1.48.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.46.0 → conson_xp-1.48.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.46.0 → conson_xp-1.48.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.
|