conson-xp 1.17.0__tar.gz → 1.18.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.17.0 → conson_xp-1.18.0}/PKG-INFO +1 -1
- {conson_xp-1.17.0 → conson_xp-1.18.0}/pyproject.toml +1 -1
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/__init__.py +1 -1
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_event_commands.py +7 -41
- conson_xp-1.18.0/src/xp/cli/utils/module_type_choice.py +56 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_event_raw_service.py +3 -7
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/protocol/conbus_event_protocol.py +24 -6
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_conbus_event_raw_service.py +3 -1
- {conson_xp-1.17.0 → conson_xp-1.18.0}/LICENSE +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/README.md +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/__main__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_autoreport_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_blink_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_config_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_custom_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_linknumber_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_modulenumber_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_msactiontable_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_output_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_raw_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_receive_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_scan_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/file_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/homekit/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/homekit/homekit.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/homekit/homekit_start_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/module_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/reverse_proxy_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/server/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/server/server_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_blink_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_checksum_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_discover_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_linknumber_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_parse_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_version_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/main.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/utils/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/utils/click_tree.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/utils/datapoint_type_choice.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/utils/decorators.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/utils/error_handlers.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/utils/formatters.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/utils/serial_number_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/utils/system_function_choice.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/utils/xp_module_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/connection/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/connection/exceptions.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/actiontable/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/actiontable/actiontable.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/actiontable/msactiontable_xp20.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/actiontable/msactiontable_xp24.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/actiontable/msactiontable_xp33.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_autoreport.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_blink.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_client_config.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_connection_status.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_custom.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_datapoint.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_discover.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_event_raw.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_lightlevel.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_linknumber.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_output.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_raw.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_receive.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/conbus/conbus_writeconfig.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/homekit/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/homekit/homekit_accessory.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/homekit/homekit_config.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/homekit/homekit_conson_config.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/log_entry.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/protocol/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/protocol/conbus_protocol.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/response.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/action_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/datapoint_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/event_telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/event_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/input_action_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/input_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/module_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/module_type_code.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/output_telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/reply_telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/system_function.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/system_telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/telegram_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/telegram/timeparam_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/models/write_config_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/actiontable_serializer.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/msactiontable_serializer.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/msactiontable_xp20_serializer.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/msactiontable_xp24_serializer.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/msactiontable_xp33_serializer.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/actiontable/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/actiontable/actiontable_download_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/actiontable/actiontable_list_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/actiontable/actiontable_show_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/actiontable/actiontable_upload_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/actiontable/msactiontable_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_blink_all_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_blink_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_custom_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_datapoint_queryall_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_datapoint_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_discover_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_output_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_raw_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_receive_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_scan_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/write_config_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_cache_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_conbus_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_config_validator.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_conson_validator.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_dimminglight.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_dimminglight_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_hap_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_lightbulb.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_lightbulb_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_module_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_outlet.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_outlet_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/log_file_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/module_type_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/protocol/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/protocol/conbus_protocol.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/protocol/protocol_factory.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/protocol/telegram_protocol.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/reverse_proxy_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/base_server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/cp20_server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/device_service_factory.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/xp130_server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/xp20_server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/xp230_server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/xp24_server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/server/xp33_server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/telegram/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/telegram/telegram_blink_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/telegram/telegram_checksum_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/telegram/telegram_datapoint_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/telegram/telegram_discover_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/telegram/telegram_link_number_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/telegram/telegram_output_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/telegram/telegram_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/telegram/telegram_version_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/utils/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/utils/checksum.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/utils/dependencies.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/utils/event_helper.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/utils/serialization.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/utils/time_utils.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/.coverage +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/conftest.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/.coverage +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/telegram_test_data.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_actiontable_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_api/.coverage +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_api/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_blink_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_checksum_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_conbus_blink_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_conbus_datapoint_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_conbus_raw_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_conbus_receive_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_discovery_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_event_telegram_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_homekit_config_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_link_number_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_module_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_output_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_reverse_proxy_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_system_reply_telegram_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_version_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_xp20_action_table_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/integration/test_xp24_action_table_integration.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_api/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/test_click_tree.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/test_conbus_actiontable_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/test_conbus_blink_commands.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/test_datapoint_type_choice.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/test_decorators.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/test_error_handlers.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/test_formatters.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/test_serial_number_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_cli/test_system_function_choice.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_connection/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_connection/test_connection_init.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_connection/test_exceptions.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_encoding/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_encoding/test_latin1_edge_cases.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_conbus.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_conbus_client_send.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_conbus_discover.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_conbus_linknumber.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_event_telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_log_entry.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_module_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_reply_telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_system_telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_system_telegram_enhancements.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_version_telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_write_config_type.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_xp20_action_table.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_xp24_action_table.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_models/test_xp24_action_telegram.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_actiontable_serializer.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_actiontable_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_actiontable_upload_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_base_server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_blink_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_checksum_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_conbus_blink_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_conbus_raw_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_conbus_reverse_proxy_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_device_service_factory.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_discovery_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_homekit_cache_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_homekit_config_validator.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_homekit_conson_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_homekit_services.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_log_file_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_module_type_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_protocol.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_server_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_telegram_input_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_telegram_protocol.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_telegram_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_version_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_xp20_action_table_serializer.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_xp24_action_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_xp24_action_table_serializer.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_xp24_action_table_service.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_xp33_action_table_serializer.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_xp_server_services.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_utils/__init__.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_utils/test_checksum.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_utils/test_event_helper.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_utils/test_serialization.py +0 -0
- {conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_utils/test_time_utils.py +0 -0
|
@@ -6,8 +6,8 @@ import click
|
|
|
6
6
|
|
|
7
7
|
from xp.cli.commands.conbus.conbus import conbus
|
|
8
8
|
from xp.cli.utils.decorators import connection_command
|
|
9
|
+
from xp.cli.utils.module_type_choice import MODULE_TYPE
|
|
9
10
|
from xp.models import ConbusEventRawResponse
|
|
10
|
-
from xp.models.telegram.module_type_code import ModuleTypeCode
|
|
11
11
|
from xp.services.conbus.conbus_event_raw_service import ConbusEventRawService
|
|
12
12
|
|
|
13
13
|
|
|
@@ -18,15 +18,15 @@ def conbus_event() -> None:
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
@conbus_event.command("raw")
|
|
21
|
-
@click.argument("module_type", type=
|
|
22
|
-
@click.argument("link_number", type=
|
|
23
|
-
@click.argument("input_number", type=
|
|
24
|
-
@click.argument("time_ms", type=
|
|
21
|
+
@click.argument("module_type", type=MODULE_TYPE)
|
|
22
|
+
@click.argument("link_number", type=click.IntRange(0, 99))
|
|
23
|
+
@click.argument("input_number", type=click.IntRange(0, 9))
|
|
24
|
+
@click.argument("time_ms", type=click.IntRange(min=1), default=1000)
|
|
25
25
|
@click.pass_context
|
|
26
26
|
@connection_command()
|
|
27
27
|
def send_event_raw(
|
|
28
28
|
ctx: click.Context,
|
|
29
|
-
module_type:
|
|
29
|
+
module_type: int,
|
|
30
30
|
link_number: int,
|
|
31
31
|
input_number: int,
|
|
32
32
|
time_ms: int,
|
|
@@ -45,40 +45,6 @@ def send_event_raw(
|
|
|
45
45
|
xp conbus event raw CP20 00 00
|
|
46
46
|
xp conbus event raw XP33 00 00 500
|
|
47
47
|
"""
|
|
48
|
-
# Validate parameters
|
|
49
|
-
if link_number < 0 or link_number > 99:
|
|
50
|
-
click.echo(
|
|
51
|
-
json.dumps({"error": "Link number must be between 0 and 99"}, indent=2)
|
|
52
|
-
)
|
|
53
|
-
return
|
|
54
|
-
|
|
55
|
-
if input_number < 0 or input_number > 9:
|
|
56
|
-
click.echo(
|
|
57
|
-
json.dumps({"error": "Input number must be between 0 and 9"}, indent=2)
|
|
58
|
-
)
|
|
59
|
-
return
|
|
60
|
-
|
|
61
|
-
if time_ms <= 0:
|
|
62
|
-
click.echo(json.dumps({"error": "Time must be greater than 0"}, indent=2))
|
|
63
|
-
return
|
|
64
|
-
|
|
65
|
-
# Resolve module type to numeric code
|
|
66
|
-
module_type_code: int = 0
|
|
67
|
-
try:
|
|
68
|
-
# Try to get the enum value by name
|
|
69
|
-
module_type_enum = ModuleTypeCode[module_type.upper()]
|
|
70
|
-
module_type_code = module_type_enum.value
|
|
71
|
-
except KeyError:
|
|
72
|
-
# Module type not found
|
|
73
|
-
click.echo(
|
|
74
|
-
json.dumps(
|
|
75
|
-
{
|
|
76
|
-
"error": f"Unknown module type: {module_type}. Use module types like CP20, XP33, XP24, etc."
|
|
77
|
-
},
|
|
78
|
-
indent=2,
|
|
79
|
-
)
|
|
80
|
-
)
|
|
81
|
-
return
|
|
82
48
|
|
|
83
49
|
def on_finish(response: ConbusEventRawResponse) -> None:
|
|
84
50
|
"""Handle successful completion of event raw operation.
|
|
@@ -100,7 +66,7 @@ def send_event_raw(
|
|
|
100
66
|
ctx.obj.get("container").get_container().resolve(ConbusEventRawService)
|
|
101
67
|
)
|
|
102
68
|
service.run(
|
|
103
|
-
module_type_code=
|
|
69
|
+
module_type_code=module_type,
|
|
104
70
|
link_number=link_number,
|
|
105
71
|
input_number=input_number,
|
|
106
72
|
time_ms=time_ms,
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""Click parameter type for ModuleTypeCode enum validation."""
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
|
|
5
|
+
import click
|
|
6
|
+
|
|
7
|
+
from xp.models.telegram.module_type_code import ModuleTypeCode
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ModuleTypeChoice(click.ParamType):
|
|
11
|
+
"""Click parameter type for validating ModuleTypeCode enum values.
|
|
12
|
+
|
|
13
|
+
Attributes:
|
|
14
|
+
name: The parameter type name.
|
|
15
|
+
choices: List of valid choice strings.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
name = "module_type"
|
|
19
|
+
|
|
20
|
+
def __init__(self) -> None:
|
|
21
|
+
"""Initialize the ModuleTypeChoice parameter type."""
|
|
22
|
+
self.choices = [key for key in ModuleTypeCode.__members__.keys()]
|
|
23
|
+
|
|
24
|
+
def convert(
|
|
25
|
+
self, value: Any, param: Optional[click.Parameter], ctx: Optional[click.Context]
|
|
26
|
+
) -> int:
|
|
27
|
+
"""Convert and validate input to ModuleTypeCode value.
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
value: The input value to convert.
|
|
31
|
+
param: The Click parameter.
|
|
32
|
+
ctx: The Click context.
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
Module type code integer value if valid.
|
|
36
|
+
"""
|
|
37
|
+
if value is None:
|
|
38
|
+
self.fail("Module type is required", param, ctx)
|
|
39
|
+
|
|
40
|
+
# Convert to upper for comparison
|
|
41
|
+
normalized_value = value.upper()
|
|
42
|
+
|
|
43
|
+
if normalized_value in self.choices:
|
|
44
|
+
# Return the actual enum value (integer)
|
|
45
|
+
return ModuleTypeCode[normalized_value].value
|
|
46
|
+
|
|
47
|
+
# If not found, show error with available choices
|
|
48
|
+
choices_list = "\n".join(f" - {choice}" for choice in sorted(self.choices))
|
|
49
|
+
self.fail(
|
|
50
|
+
f"{value!r} is not a valid module type. " f"Choose from:\n{choices_list}",
|
|
51
|
+
param,
|
|
52
|
+
ctx,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
MODULE_TYPE = ModuleTypeChoice()
|
|
@@ -63,13 +63,11 @@ class ConbusEventRawService:
|
|
|
63
63
|
payload = f"E{self.module_type_code:02d}L{self.link_number:02d}I{self.input_number:02d}M"
|
|
64
64
|
self.logger.debug(f"Sending MAKE event: {payload}")
|
|
65
65
|
self.conbus_protocol.telegram_queue.put_nowait(payload.encode())
|
|
66
|
-
self.conbus_protocol.
|
|
67
|
-
0.0, self.conbus_protocol.start_queue_manager
|
|
68
|
-
)
|
|
66
|
+
self.conbus_protocol.call_later(0.0, self.conbus_protocol.start_queue_manager)
|
|
69
67
|
|
|
70
68
|
# Schedule BREAK event after delay
|
|
71
69
|
delay_seconds = self.time_ms / 1000.0
|
|
72
|
-
self.break_event_call = self.conbus_protocol.
|
|
70
|
+
self.break_event_call = self.conbus_protocol.call_later(
|
|
73
71
|
delay_seconds, self._send_break_event
|
|
74
72
|
)
|
|
75
73
|
|
|
@@ -78,9 +76,7 @@ class ConbusEventRawService:
|
|
|
78
76
|
payload = f"E{self.module_type_code:02d}L{self.link_number:02d}I{self.input_number:02d}B"
|
|
79
77
|
self.logger.debug(f"Sending BREAK event: {payload}")
|
|
80
78
|
self.conbus_protocol.telegram_queue.put_nowait(payload.encode())
|
|
81
|
-
self.conbus_protocol.
|
|
82
|
-
0.0, self.conbus_protocol.start_queue_manager
|
|
83
|
-
)
|
|
79
|
+
self.conbus_protocol.call_later(0.0, self.conbus_protocol.start_queue_manager)
|
|
84
80
|
|
|
85
81
|
def telegram_sent(self, telegram_sent: str) -> None:
|
|
86
82
|
"""Handle telegram sent event.
|
|
@@ -7,7 +7,7 @@ import logging
|
|
|
7
7
|
from queue import SimpleQueue
|
|
8
8
|
from random import randint
|
|
9
9
|
from threading import Lock
|
|
10
|
-
from typing import Any, Optional
|
|
10
|
+
from typing import Any, Callable, Optional
|
|
11
11
|
|
|
12
12
|
from psygnal import Signal
|
|
13
13
|
from twisted.internet import protocol
|
|
@@ -209,7 +209,27 @@ class ConbusEventProtocol(protocol.Protocol, protocol.ClientFactory):
|
|
|
209
209
|
f"D{data_value}"
|
|
210
210
|
)
|
|
211
211
|
self.telegram_queue.put_nowait(payload.encode())
|
|
212
|
-
self.
|
|
212
|
+
self.call_later(0.0, self.start_queue_manager)
|
|
213
|
+
|
|
214
|
+
def call_later(
|
|
215
|
+
self,
|
|
216
|
+
delay: float,
|
|
217
|
+
callable_action: Callable[..., Any],
|
|
218
|
+
*args: object,
|
|
219
|
+
**kw: object,
|
|
220
|
+
) -> DelayedCall:
|
|
221
|
+
"""Schedule a callable to be called later.
|
|
222
|
+
|
|
223
|
+
Args:
|
|
224
|
+
delay: Delay in seconds before calling.
|
|
225
|
+
callable_action: The callable to execute.
|
|
226
|
+
args: Positional arguments to pass to callable.
|
|
227
|
+
kw: Keyword arguments to pass to callable.
|
|
228
|
+
|
|
229
|
+
Returns:
|
|
230
|
+
DelayedCall object that can be cancelled.
|
|
231
|
+
"""
|
|
232
|
+
return self._reactor.callLater(delay, callable_action, *args, **kw)
|
|
213
233
|
|
|
214
234
|
def buildProtocol(self, addr: IAddress) -> protocol.Protocol:
|
|
215
235
|
"""Build protocol instance for connection.
|
|
@@ -264,9 +284,7 @@ class ConbusEventProtocol(protocol.Protocol, protocol.ClientFactory):
|
|
|
264
284
|
def _reset_timeout(self) -> None:
|
|
265
285
|
"""Reset the inactivity timeout."""
|
|
266
286
|
self._cancel_timeout()
|
|
267
|
-
self.timeout_call = self.
|
|
268
|
-
self.timeout_seconds, self._on_timeout
|
|
269
|
-
)
|
|
287
|
+
self.timeout_call = self.call_later(self.timeout_seconds, self._on_timeout)
|
|
270
288
|
|
|
271
289
|
def _cancel_timeout(self) -> None:
|
|
272
290
|
"""Cancel the inactivity timeout."""
|
|
@@ -320,7 +338,7 @@ class ConbusEventProtocol(protocol.Protocol, protocol.ClientFactory):
|
|
|
320
338
|
telegram = self.telegram_queue.get_nowait()
|
|
321
339
|
self.sendFrame(telegram)
|
|
322
340
|
later = randint(10, 80) / 100
|
|
323
|
-
self.
|
|
341
|
+
self.call_later(later, self.process_telegram_queue)
|
|
324
342
|
|
|
325
343
|
def __enter__(self) -> "ConbusEventProtocol":
|
|
326
344
|
"""Enter context manager.
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/tests/unit/test_services/test_conbus_event_raw_service.py
RENAMED
|
@@ -28,7 +28,9 @@ class TestConbusEventRawService:
|
|
|
28
28
|
protocol.on_failed.connect = Mock()
|
|
29
29
|
protocol._reactor = Mock()
|
|
30
30
|
protocol.telegram_queue = Mock()
|
|
31
|
+
protocol.call_later = Mock()
|
|
31
32
|
protocol.timeout_seconds = 5
|
|
33
|
+
protocol.stop_reactor = Mock()
|
|
32
34
|
return protocol
|
|
33
35
|
|
|
34
36
|
@pytest.fixture
|
|
@@ -61,7 +63,7 @@ class TestConbusEventRawService:
|
|
|
61
63
|
assert call_args == b"E02L10I05M"
|
|
62
64
|
|
|
63
65
|
# Verify BREAK event was scheduled
|
|
64
|
-
mock_protocol.
|
|
66
|
+
mock_protocol.call_later.assert_called()
|
|
65
67
|
|
|
66
68
|
def test_telegram_sent(self, service):
|
|
67
69
|
"""Test telegram_sent callback updates service response."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_autoreport_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_linknumber_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_modulenumber_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/conbus/conbus_msactiontable_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_blink_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_checksum_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_discover_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_linknumber_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_parse_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/cli/commands/telegram/telegram_version_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/msactiontable_serializer.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/msactiontable_xp20_serializer.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/msactiontable_xp24_serializer.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/actiontable/msactiontable_xp33_serializer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/actiontable/actiontable_list_service.py
RENAMED
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/actiontable/actiontable_show_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/actiontable/msactiontable_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/conbus/conbus_datapoint_queryall_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conson_xp-1.17.0 → conson_xp-1.18.0}/src/xp/services/homekit/homekit_dimminglight_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|