conson-xp 1.29.0__tar.gz → 1.33.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.29.0 → conson_xp-1.33.0}/PKG-INFO +27 -1
- {conson_xp-1.29.0 → conson_xp-1.33.0}/README.md +26 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/pyproject.toml +1 -1
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/__init__.py +1 -1
- conson_xp-1.33.0/src/xp/cli/commands/conbus/conbus_export_commands.py +88 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/main.py +4 -2
- conson_xp-1.33.0/src/xp/models/conbus/conbus_export.py +31 -0
- conson_xp-1.33.0/src/xp/services/conbus/conbus_export_service.py +452 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/dependencies.py +9 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/LICENSE +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/__main__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_autoreport_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_blink_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_config_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_custom_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_event_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_linknumber_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_modulenumber_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_msactiontable_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_output_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_raw_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_receive_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_scan_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/file_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/homekit/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/homekit/homekit.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/homekit/homekit_start_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/module_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/reverse_proxy_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/server/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/server/server_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_blink_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_checksum_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_discover_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_linknumber_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_parse_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_version_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/term/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/term/term.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/term/term_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/click_tree.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/datapoint_type_choice.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/decorators.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/error_handlers.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/formatters.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/module_type_choice.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/serial_number_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/system_function_choice.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/xp_module_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/connection/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/connection/exceptions.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/actiontable.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/msactiontable_xp20.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/msactiontable_xp24.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/msactiontable_xp33.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_autoreport.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_blink.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_client_config.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_connection_status.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_custom.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_datapoint.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_discover.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_event_list.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_event_raw.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_lightlevel.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_linknumber.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_logger_config.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_output.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_raw.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_receive.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_writeconfig.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/homekit/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/homekit/homekit_accessory.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/homekit/homekit_config.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/homekit/homekit_conson_config.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/log_entry.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/protocol/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/protocol/conbus_protocol.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/response.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/action_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/datapoint_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/event_telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/event_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/input_action_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/input_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/module_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/module_type_code.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/output_telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/reply_telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/system_function.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/system_telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/telegram_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/timeparam_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/connection_state.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/module_state.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/protocol_keys_config.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/status_message.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/telegram_display.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/write_config_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/actiontable_serializer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/msactiontable_serializer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/msactiontable_xp20_serializer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/msactiontable_xp24_serializer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/msactiontable_xp33_serializer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/actiontable_download_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/actiontable_list_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/actiontable_show_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/actiontable_upload_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/msactiontable_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_blink_all_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_blink_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_custom_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_datapoint_queryall_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_datapoint_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_discover_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_event_list_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_event_raw_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_output_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_raw_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_receive_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_scan_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/write_config_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_cache_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_conbus_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_config_validator.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_conson_validator.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_dimminglight.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_dimminglight_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_hap_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_lightbulb.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_lightbulb_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_module_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_outlet.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_outlet_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/log_file_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/module_type_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/conbus_event_protocol.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/conbus_protocol.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/protocol_factory.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/telegram_protocol.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/reverse_proxy_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/base_server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/client_buffer_manager.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/cp20_server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/device_service_factory.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp130_server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp20_server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp230_server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp24_server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp33_server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_blink_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_checksum_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_datapoint_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_discover_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_link_number_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_output_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_version_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/term/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/term/protocol_monitor_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/term/state_monitor_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/protocol.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/protocol.tcss +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/state.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/state.tcss +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/help_menu.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/modules_list.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/protocol_log.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/status_footer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/checksum.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/event_helper.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/logging.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/serialization.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/state_machine.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/time_utils.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/.coverage +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/conftest.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/.coverage +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/telegram_test_data.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_actiontable_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_api/.coverage +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_api/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_blink_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_checksum_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_conbus_blink_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_conbus_datapoint_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_conbus_raw_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_conbus_receive_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_discovery_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_event_telegram_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_homekit_config_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_link_number_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_module_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_output_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_reverse_proxy_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_system_reply_telegram_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_term_logging_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_version_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_xp20_action_table_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_xp24_action_table_integration.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_api/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_click_tree.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_conbus_actiontable_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_conbus_blink_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_datapoint_type_choice.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_decorators.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_error_handlers.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_formatters.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_serial_number_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_system_function_choice.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_term_commands.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_connection/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_connection/test_connection_init.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_connection/test_exceptions.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_encoding/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_encoding/test_latin1_edge_cases.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_conbus.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_conbus_client_send.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_conbus_discover.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_conbus_linknumber.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_event_telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_log_entry.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_logger_config.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_module_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_reply_telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_system_telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_system_telegram_enhancements.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_version_telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_write_config_type.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_xp20_action_table.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_xp24_action_table.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_xp24_action_telegram.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_actiontable_serializer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_actiontable_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_actiontable_upload_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_base_server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_blink_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_checksum_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_client_buffer_manager.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_blink_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_event_list_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_event_protocol.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_event_raw_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_raw_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_receive_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_reverse_proxy_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_device_service_factory.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_discovery_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_homekit_cache_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_homekit_config_validator.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_homekit_conson_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_homekit_services.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_log_file_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_module_type_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_protocol.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_protocol_monitor_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_server_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_state_monitor_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_telegram_input_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_telegram_output_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_telegram_protocol.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_telegram_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_version_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp20_action_table_serializer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp24_action_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp24_action_table_serializer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp24_action_table_service.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp33_action_table_serializer.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp_server_services.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_tui/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_tui/test_protocol_log.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/__init__.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/test_checksum.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/test_event_helper.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/test_logging.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/test_serialization.py +0 -0
- {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/test_time_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: conson-xp
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.33.0
|
|
4
4
|
Summary: XP Protocol Communication Tools
|
|
5
5
|
Author-Email: ldvchosal <ldvchosal@github.com>
|
|
6
6
|
License: MIT License
|
|
@@ -91,6 +91,9 @@ Comprehensive type safety and robust error handling
|
|
|
91
91
|
# Install with PIP (recommended)
|
|
92
92
|
pip install conson-xp
|
|
93
93
|
|
|
94
|
+
# Export your Conbus device configuration (recommended first step)
|
|
95
|
+
xp conbus export
|
|
96
|
+
|
|
94
97
|
# Parse a telegram
|
|
95
98
|
xp telegram parse "<E14L00I02MAK>"
|
|
96
99
|
|
|
@@ -133,7 +136,29 @@ xp telegram validate "<E14L00I02MAK>"
|
|
|
133
136
|
```
|
|
134
137
|
|
|
135
138
|
**Device Communication**
|
|
139
|
+
|
|
140
|
+
> **⚠️ Important**: Bridge modules (XP130, XP230) accept **only one TCP connection at a time**.
|
|
141
|
+
> Close any existing connections (including the official app) before using xp commands.
|
|
142
|
+
|
|
136
143
|
```bash
|
|
144
|
+
# Export device configuration (RECOMMENDED - run this first!)
|
|
145
|
+
# Discovers all devices and exports complete configuration to export.yml
|
|
146
|
+
xp conbus export
|
|
147
|
+
|
|
148
|
+
# What it does:
|
|
149
|
+
# - Automatically discovers all devices on the Conbus network
|
|
150
|
+
# - Queries 7 datapoints per device (type, version, link number, etc.)
|
|
151
|
+
# - Generates export.yml in conson.yml format
|
|
152
|
+
# - Shows real-time progress for each device
|
|
153
|
+
# - Handles timeouts gracefully with partial exports
|
|
154
|
+
#
|
|
155
|
+
# Example output:
|
|
156
|
+
# Querying device 1/12: 0020041013...
|
|
157
|
+
# ✓ Module type: X130 (1)
|
|
158
|
+
# ✓ Link number: 1
|
|
159
|
+
# ✓ Software version: V2.3
|
|
160
|
+
# Export complete: export.yml (12 devices)
|
|
161
|
+
|
|
137
162
|
# Discover XP servers on your network
|
|
138
163
|
xp conbus discover
|
|
139
164
|
|
|
@@ -325,6 +350,7 @@ xp conbus event
|
|
|
325
350
|
xp conbus event list
|
|
326
351
|
xp conbus event raw
|
|
327
352
|
|
|
353
|
+
xp conbus export
|
|
328
354
|
|
|
329
355
|
xp conbus lightlevel
|
|
330
356
|
xp conbus lightlevel get
|
|
@@ -38,6 +38,9 @@ Comprehensive type safety and robust error handling
|
|
|
38
38
|
# Install with PIP (recommended)
|
|
39
39
|
pip install conson-xp
|
|
40
40
|
|
|
41
|
+
# Export your Conbus device configuration (recommended first step)
|
|
42
|
+
xp conbus export
|
|
43
|
+
|
|
41
44
|
# Parse a telegram
|
|
42
45
|
xp telegram parse "<E14L00I02MAK>"
|
|
43
46
|
|
|
@@ -80,7 +83,29 @@ xp telegram validate "<E14L00I02MAK>"
|
|
|
80
83
|
```
|
|
81
84
|
|
|
82
85
|
**Device Communication**
|
|
86
|
+
|
|
87
|
+
> **⚠️ Important**: Bridge modules (XP130, XP230) accept **only one TCP connection at a time**.
|
|
88
|
+
> Close any existing connections (including the official app) before using xp commands.
|
|
89
|
+
|
|
83
90
|
```bash
|
|
91
|
+
# Export device configuration (RECOMMENDED - run this first!)
|
|
92
|
+
# Discovers all devices and exports complete configuration to export.yml
|
|
93
|
+
xp conbus export
|
|
94
|
+
|
|
95
|
+
# What it does:
|
|
96
|
+
# - Automatically discovers all devices on the Conbus network
|
|
97
|
+
# - Queries 7 datapoints per device (type, version, link number, etc.)
|
|
98
|
+
# - Generates export.yml in conson.yml format
|
|
99
|
+
# - Shows real-time progress for each device
|
|
100
|
+
# - Handles timeouts gracefully with partial exports
|
|
101
|
+
#
|
|
102
|
+
# Example output:
|
|
103
|
+
# Querying device 1/12: 0020041013...
|
|
104
|
+
# ✓ Module type: X130 (1)
|
|
105
|
+
# ✓ Link number: 1
|
|
106
|
+
# ✓ Software version: V2.3
|
|
107
|
+
# Export complete: export.yml (12 devices)
|
|
108
|
+
|
|
84
109
|
# Discover XP servers on your network
|
|
85
110
|
xp conbus discover
|
|
86
111
|
|
|
@@ -272,6 +297,7 @@ xp conbus event
|
|
|
272
297
|
xp conbus event list
|
|
273
298
|
xp conbus event raw
|
|
274
299
|
|
|
300
|
+
xp conbus export
|
|
275
301
|
|
|
276
302
|
xp conbus lightlevel
|
|
277
303
|
xp conbus lightlevel get
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"""Conbus export CLI command."""
|
|
2
|
+
|
|
3
|
+
from contextlib import suppress
|
|
4
|
+
|
|
5
|
+
import click
|
|
6
|
+
|
|
7
|
+
from xp.cli.commands.conbus.conbus import conbus
|
|
8
|
+
from xp.cli.utils.decorators import connection_command
|
|
9
|
+
from xp.models.conbus.conbus_export import ConbusExportResponse
|
|
10
|
+
from xp.models.homekit.homekit_conson_config import ConsonModuleConfig
|
|
11
|
+
from xp.services.conbus.conbus_export_service import ConbusExportService
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@conbus.command("export")
|
|
15
|
+
@click.pass_context
|
|
16
|
+
@connection_command()
|
|
17
|
+
def export_conbus_config(ctx: click.Context) -> None:
|
|
18
|
+
r"""Export Conbus device configuration to YAML file.
|
|
19
|
+
|
|
20
|
+
Discovers all devices on the Conbus network and queries their configuration
|
|
21
|
+
datapoints to generate a complete export.yml file in conson.yml format.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
ctx: Click context object.
|
|
25
|
+
|
|
26
|
+
Examples:
|
|
27
|
+
\b
|
|
28
|
+
# Export to export.yml in current directory
|
|
29
|
+
xp conbus export
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
def on_progress(serial_number: str, current: int, total: int) -> None:
|
|
33
|
+
"""Handle progress updates during export.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
serial_number: Serial number of discovered device.
|
|
37
|
+
current: Current device number.
|
|
38
|
+
total: Total devices discovered.
|
|
39
|
+
"""
|
|
40
|
+
click.echo(f"Querying device {current}/{total}: {serial_number}...")
|
|
41
|
+
|
|
42
|
+
def on_device_exported(module: ConsonModuleConfig) -> None:
|
|
43
|
+
"""Handle device export completion.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
module: Exported module configuration.
|
|
47
|
+
"""
|
|
48
|
+
module_type = module.module_type or "UNKNOWN"
|
|
49
|
+
module_code = (
|
|
50
|
+
module.module_type_code if module.module_type_code is not None else "?"
|
|
51
|
+
)
|
|
52
|
+
click.echo(f" ✓ Module type: {module_type} ({module_code})")
|
|
53
|
+
|
|
54
|
+
if module.link_number is not None:
|
|
55
|
+
click.echo(f" ✓ Link number: {module.link_number}")
|
|
56
|
+
if module.sw_version:
|
|
57
|
+
click.echo(f" ✓ Software version: {module.sw_version}")
|
|
58
|
+
|
|
59
|
+
def on_finish(result: ConbusExportResponse) -> None:
|
|
60
|
+
"""Handle export completion.
|
|
61
|
+
|
|
62
|
+
Args:
|
|
63
|
+
result: Export result.
|
|
64
|
+
|
|
65
|
+
Raises:
|
|
66
|
+
ClickException: When export fails with error message from result.
|
|
67
|
+
"""
|
|
68
|
+
# Try to stop reactor (may already be stopped)
|
|
69
|
+
with suppress(Exception):
|
|
70
|
+
service.stop_reactor()
|
|
71
|
+
|
|
72
|
+
if result.success:
|
|
73
|
+
click.echo(
|
|
74
|
+
f"\nExport complete: {result.output_file} ({result.device_count} devices)"
|
|
75
|
+
)
|
|
76
|
+
else:
|
|
77
|
+
click.echo(f"Error: {result.error}", err=True)
|
|
78
|
+
raise click.ClickException(result.error or "Export failed")
|
|
79
|
+
|
|
80
|
+
service: ConbusExportService = (
|
|
81
|
+
ctx.obj.get("container").get_container().resolve(ConbusExportService)
|
|
82
|
+
)
|
|
83
|
+
with service:
|
|
84
|
+
service.on_progress.connect(on_progress)
|
|
85
|
+
service.on_device_exported.connect(on_device_exported)
|
|
86
|
+
service.on_finish.connect(on_finish)
|
|
87
|
+
service.set_timeout(5)
|
|
88
|
+
service.start_reactor()
|
|
@@ -4,11 +4,13 @@ import click
|
|
|
4
4
|
from click_help_colors import HelpColorsGroup
|
|
5
5
|
|
|
6
6
|
from xp.cli.commands import homekit
|
|
7
|
+
|
|
8
|
+
# Import all conbus command modules to register their commands
|
|
9
|
+
from xp.cli.commands.conbus import conbus_discover_commands # noqa: F401
|
|
10
|
+
from xp.cli.commands.conbus import conbus_export_commands # noqa: F401
|
|
7
11
|
from xp.cli.commands.conbus.conbus import conbus
|
|
8
12
|
from xp.cli.commands.file_commands import file
|
|
9
13
|
from xp.cli.commands.module_commands import module
|
|
10
|
-
|
|
11
|
-
# Import all conbus command modules to register their commands
|
|
12
14
|
from xp.cli.commands.reverse_proxy_commands import reverse_proxy
|
|
13
15
|
from xp.cli.commands.server.server_commands import server
|
|
14
16
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""Conbus export response model."""
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass, field
|
|
4
|
+
from typing import Optional
|
|
5
|
+
|
|
6
|
+
from xp.models.homekit.homekit_conson_config import ConsonModuleListConfig
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class ConbusExportResponse:
|
|
11
|
+
"""Response from Conbus export operation.
|
|
12
|
+
|
|
13
|
+
Attributes:
|
|
14
|
+
success: Whether the operation was successful.
|
|
15
|
+
config: Exported module configuration list.
|
|
16
|
+
device_count: Number of devices exported.
|
|
17
|
+
output_file: Path to output file.
|
|
18
|
+
export_status: Export status (OK, FAILED_TIMEOUT, FAILED_NO_DEVICES, etc.).
|
|
19
|
+
error: Error message if operation failed.
|
|
20
|
+
sent_telegrams: List of telegrams sent during export.
|
|
21
|
+
received_telegrams: List of telegrams received during export.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
success: bool
|
|
25
|
+
config: Optional[ConsonModuleListConfig] = None
|
|
26
|
+
device_count: int = 0
|
|
27
|
+
output_file: str = "export.yml"
|
|
28
|
+
export_status: str = "OK"
|
|
29
|
+
error: Optional[str] = None
|
|
30
|
+
sent_telegrams: list[str] = field(default_factory=list)
|
|
31
|
+
received_telegrams: list[str] = field(default_factory=list)
|