conson-xp 1.14.0__tar.gz → 1.15.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.14.0 → conson_xp-1.15.0}/PKG-INFO +1 -1
- {conson_xp-1.14.0 → conson_xp-1.15.0}/pyproject.toml +1 -1
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/__init__.py +1 -1
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/homekit/homekit_config.py +4 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/protocol/conbus_protocol.py +4 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_conbus_service.py +5 -9
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_lightbulb_service.py +2 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_outlet_service.py +2 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_homekit_config_integration.py +12 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_homekit_config_validator.py +36 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_homekit_services.py +16 -4
- {conson_xp-1.14.0 → conson_xp-1.15.0}/LICENSE +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/README.md +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/__main__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_autoreport_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_blink_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_config_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_custom_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_linknumber_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_modulenumber_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_msactiontable_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_output_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_raw_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_receive_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_scan_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/file_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/homekit/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/homekit/homekit.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/homekit/homekit_start_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/module_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/reverse_proxy_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/server/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/server/server_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_blink_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_checksum_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_discover_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_linknumber_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_parse_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_version_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/main.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/utils/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/utils/click_tree.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/utils/datapoint_type_choice.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/utils/decorators.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/utils/error_handlers.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/utils/formatters.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/utils/serial_number_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/utils/system_function_choice.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/utils/xp_module_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/connection/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/connection/exceptions.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/actiontable/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/actiontable/actiontable.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/actiontable/msactiontable_xp20.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/actiontable/msactiontable_xp24.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/actiontable/msactiontable_xp33.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_autoreport.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_blink.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_client_config.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_connection_status.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_custom.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_datapoint.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_discover.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_lightlevel.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_linknumber.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_output.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_raw.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_receive.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/conbus/conbus_writeconfig.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/homekit/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/homekit/homekit_accessory.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/homekit/homekit_conson_config.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/log_entry.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/protocol/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/response.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/action_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/datapoint_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/event_telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/event_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/input_action_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/input_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/module_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/module_type_code.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/output_telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/reply_telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/system_function.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/system_telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/telegram_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/telegram/timeparam_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/models/write_config_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/actiontable_serializer.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/msactiontable_serializer.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/msactiontable_xp20_serializer.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/msactiontable_xp24_serializer.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/msactiontable_xp33_serializer.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/actiontable/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/actiontable/actiontable_download_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/actiontable/actiontable_list_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/actiontable/actiontable_show_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/actiontable/actiontable_upload_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/actiontable/msactiontable_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_blink_all_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_blink_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_custom_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_datapoint_queryall_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_datapoint_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_discover_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_output_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_raw_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_receive_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/conbus_scan_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/conbus/write_config_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_cache_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_config_validator.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_conson_validator.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_dimminglight.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_dimminglight_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_hap_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_lightbulb.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_module_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_outlet.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/homekit/homekit_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/log_file_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/module_type_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/protocol/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/protocol/conbus_protocol.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/protocol/protocol_factory.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/protocol/telegram_protocol.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/reverse_proxy_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/base_server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/cp20_server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/device_service_factory.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/xp130_server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/xp20_server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/xp230_server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/xp24_server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/server/xp33_server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/telegram/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/telegram/telegram_blink_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/telegram/telegram_checksum_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/telegram/telegram_datapoint_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/telegram/telegram_discover_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/telegram/telegram_link_number_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/telegram/telegram_output_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/telegram/telegram_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/telegram/telegram_version_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/utils/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/utils/checksum.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/utils/dependencies.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/utils/event_helper.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/utils/serialization.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/utils/time_utils.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/.coverage +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/conftest.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/.coverage +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/telegram_test_data.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_actiontable_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_api/.coverage +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_api/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_blink_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_checksum_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_conbus_blink_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_conbus_datapoint_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_conbus_raw_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_conbus_receive_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_discovery_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_event_telegram_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_link_number_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_module_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_output_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_reverse_proxy_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_system_reply_telegram_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_version_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_xp20_action_table_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/integration/test_xp24_action_table_integration.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_api/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/test_click_tree.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/test_conbus_actiontable_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/test_conbus_blink_commands.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/test_datapoint_type_choice.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/test_decorators.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/test_error_handlers.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/test_formatters.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/test_serial_number_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_cli/test_system_function_choice.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_connection/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_connection/test_connection_init.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_connection/test_exceptions.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_encoding/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_encoding/test_latin1_edge_cases.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_conbus.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_conbus_client_send.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_conbus_discover.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_conbus_linknumber.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_event_telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_log_entry.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_module_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_reply_telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_system_telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_system_telegram_enhancements.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_version_telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_write_config_type.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_xp20_action_table.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_xp24_action_table.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_models/test_xp24_action_telegram.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_actiontable_serializer.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_actiontable_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_actiontable_upload_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_base_server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_blink_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_checksum_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_conbus_blink_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_conbus_raw_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_conbus_reverse_proxy_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_device_service_factory.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_discovery_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_homekit_cache_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_homekit_conson_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_log_file_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_module_type_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_protocol.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_server_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_telegram_input_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_telegram_protocol.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_telegram_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_version_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_xp20_action_table_serializer.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_xp24_action_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_xp24_action_table_serializer.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_xp24_action_table_service.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_xp33_action_table_serializer.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_xp_server_services.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_utils/__init__.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_utils/test_checksum.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_utils/test_event_helper.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_utils/test_serialization.py +0 -0
- {conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_utils/test_time_utils.py +0 -0
|
@@ -55,6 +55,8 @@ class HomekitAccessoryConfig(BaseModel):
|
|
|
55
55
|
output_number: Output number for the accessory.
|
|
56
56
|
description: Description of the accessory.
|
|
57
57
|
service: Service type for the accessory.
|
|
58
|
+
on_action: on code for the accessory.
|
|
59
|
+
off_action: off code for the accessory.
|
|
58
60
|
hap_accessory: Optional HAP accessory identifier.
|
|
59
61
|
"""
|
|
60
62
|
|
|
@@ -64,6 +66,8 @@ class HomekitAccessoryConfig(BaseModel):
|
|
|
64
66
|
output_number: int
|
|
65
67
|
description: str
|
|
66
68
|
service: str
|
|
69
|
+
on_action: str
|
|
70
|
+
off_action: str
|
|
67
71
|
hap_accessory: Optional[int] = None
|
|
68
72
|
|
|
69
73
|
|
|
@@ -61,11 +61,15 @@ class SendActionEvent(BaseEvent):
|
|
|
61
61
|
serial_number: Serial number of the light bulb set.
|
|
62
62
|
output_number: Output number of the light bulb set.
|
|
63
63
|
value: Set light bulb On or Off (True/False).
|
|
64
|
+
on_action: On action E00L00I00.
|
|
65
|
+
off_action: On action E00L00I04.
|
|
64
66
|
"""
|
|
65
67
|
|
|
66
68
|
serial_number: str = Field(description="Serial number of the light bulb set")
|
|
67
69
|
output_number: int = Field(description="Output number of the light bulb set")
|
|
68
70
|
value: bool = Field(description="Set light bulb On or Off (True/False)")
|
|
71
|
+
on_action: str = Field(description="on action")
|
|
72
|
+
off_action: str = Field(description="off action")
|
|
69
73
|
|
|
70
74
|
|
|
71
75
|
class DatapointEvent(BaseEvent):
|
|
@@ -12,7 +12,6 @@ from xp.models.protocol.conbus_protocol import (
|
|
|
12
12
|
SendActionEvent,
|
|
13
13
|
SendWriteConfigEvent,
|
|
14
14
|
)
|
|
15
|
-
from xp.models.telegram.action_type import ActionType
|
|
16
15
|
from xp.models.telegram.datapoint_type import DataPointType
|
|
17
16
|
from xp.models.telegram.system_function import SystemFunction
|
|
18
17
|
from xp.services.protocol.telegram_protocol import TelegramProtocol
|
|
@@ -87,11 +86,8 @@ class HomeKitConbusService:
|
|
|
87
86
|
"""
|
|
88
87
|
self.logger.debug(f"send_action_event {event}")
|
|
89
88
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
f"S{event.serial_number}F{SystemFunction.ACTION.value}D{input_action}"
|
|
96
|
-
)
|
|
97
|
-
self.telegram_protocol.sendFrame(telegram.encode())
|
|
89
|
+
telegram = event.on_action if event.value else event.off_action
|
|
90
|
+
telegram_make = f"{telegram}M"
|
|
91
|
+
telegram_break = f"{telegram}B"
|
|
92
|
+
self.telegram_protocol.sendFrame(telegram_make.encode())
|
|
93
|
+
self.telegram_protocol.sendFrame(telegram_break.encode())
|
|
@@ -77,6 +77,8 @@ class HomeKitLightbulbService:
|
|
|
77
77
|
serial_number=event.serial_number,
|
|
78
78
|
output_number=event.output_number,
|
|
79
79
|
value=event.value,
|
|
80
|
+
on_action=event.accessory.on_action,
|
|
81
|
+
off_action=event.accessory.off_action,
|
|
80
82
|
)
|
|
81
83
|
|
|
82
84
|
self.logger.debug(f"Dispatching SendActionEvent for {event.serial_number}")
|
|
@@ -85,6 +85,8 @@ class HomeKitOutletService:
|
|
|
85
85
|
serial_number=event.serial_number,
|
|
86
86
|
output_number=event.output_number,
|
|
87
87
|
value=event.value,
|
|
88
|
+
on_action=event.accessory.on_action,
|
|
89
|
+
off_action=event.accessory.off_action,
|
|
88
90
|
)
|
|
89
91
|
|
|
90
92
|
self.logger.debug(f"Dispatching SendActionEvent for {event.serial_number}")
|
|
@@ -102,6 +102,8 @@ class TestHomekitConfigIntegration:
|
|
|
102
102
|
"output_number": 1,
|
|
103
103
|
"description": "Main Living Room Light",
|
|
104
104
|
"service": "lightbulb",
|
|
105
|
+
"on_action": "E00L01I01",
|
|
106
|
+
"off_action": "E00L01I05",
|
|
105
107
|
},
|
|
106
108
|
{
|
|
107
109
|
"name": "side_lamp",
|
|
@@ -110,6 +112,8 @@ class TestHomekitConfigIntegration:
|
|
|
110
112
|
"output_number": 2,
|
|
111
113
|
"description": "Side Lamp",
|
|
112
114
|
"service": "lightbulb",
|
|
115
|
+
"on_action": "E00L01I02",
|
|
116
|
+
"off_action": "E00L01I06",
|
|
113
117
|
},
|
|
114
118
|
{
|
|
115
119
|
"name": "kitchen_light",
|
|
@@ -118,6 +122,8 @@ class TestHomekitConfigIntegration:
|
|
|
118
122
|
"output_number": 1,
|
|
119
123
|
"description": "Kitchen Light",
|
|
120
124
|
"service": "lightbulb",
|
|
125
|
+
"on_action": "E00L02I01",
|
|
126
|
+
"off_action": "E00L02I05",
|
|
121
127
|
},
|
|
122
128
|
],
|
|
123
129
|
}
|
|
@@ -194,6 +200,8 @@ class TestHomekitConfigIntegration:
|
|
|
194
200
|
"output_number": 0, # Invalid output
|
|
195
201
|
"description": "Main Light",
|
|
196
202
|
"service": "invalid_service", # Invalid service
|
|
203
|
+
"on_action": "E00L01I01",
|
|
204
|
+
"off_action": "E00L01I05",
|
|
197
205
|
},
|
|
198
206
|
{
|
|
199
207
|
"name": "main_light", # Duplicate accessory name
|
|
@@ -202,6 +210,8 @@ class TestHomekitConfigIntegration:
|
|
|
202
210
|
"output_number": 50, # Output exceeds module capability
|
|
203
211
|
"description": "Duplicate Light",
|
|
204
212
|
"service": "lightbulb",
|
|
213
|
+
"on_action": "E00L01I02",
|
|
214
|
+
"off_action": "E00L01I06",
|
|
205
215
|
},
|
|
206
216
|
{
|
|
207
217
|
"name": "orphaned_light", # Not assigned to any room
|
|
@@ -210,6 +220,8 @@ class TestHomekitConfigIntegration:
|
|
|
210
220
|
"output_number": 3,
|
|
211
221
|
"description": "Orphaned Light",
|
|
212
222
|
"service": "lightbulb",
|
|
223
|
+
"on_action": "E00L01I03",
|
|
224
|
+
"off_action": "E00L01I07",
|
|
213
225
|
},
|
|
214
226
|
],
|
|
215
227
|
}
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/tests/unit/test_services/test_homekit_config_validator.py
RENAMED
|
@@ -41,6 +41,8 @@ class TestHomekitConfigValidator:
|
|
|
41
41
|
output_number=1,
|
|
42
42
|
description="Light 1",
|
|
43
43
|
service="lightbulb",
|
|
44
|
+
on_action="E00L01I01",
|
|
45
|
+
off_action="E00L01I05",
|
|
44
46
|
),
|
|
45
47
|
HomekitAccessoryConfig(
|
|
46
48
|
name="light2",
|
|
@@ -49,6 +51,8 @@ class TestHomekitConfigValidator:
|
|
|
49
51
|
output_number=2,
|
|
50
52
|
description="Light 2",
|
|
51
53
|
service="lightbulb",
|
|
54
|
+
on_action="E00L01I02",
|
|
55
|
+
off_action="E00L01I06",
|
|
52
56
|
),
|
|
53
57
|
]
|
|
54
58
|
|
|
@@ -82,6 +86,8 @@ class TestHomekitConfigValidator:
|
|
|
82
86
|
output_number=1,
|
|
83
87
|
description="Light 1",
|
|
84
88
|
service="lightbulb",
|
|
89
|
+
on_action="E00L01I01",
|
|
90
|
+
off_action="E00L01I05",
|
|
85
91
|
),
|
|
86
92
|
HomekitAccessoryConfig(
|
|
87
93
|
name="light1",
|
|
@@ -90,6 +96,8 @@ class TestHomekitConfigValidator:
|
|
|
90
96
|
output_number=2,
|
|
91
97
|
description="Light 2",
|
|
92
98
|
service="lightbulb",
|
|
99
|
+
on_action="E00L01I02",
|
|
100
|
+
off_action="E00L01I06",
|
|
93
101
|
),
|
|
94
102
|
]
|
|
95
103
|
config = self.create_test_homekit_config(accessories=accessories)
|
|
@@ -113,6 +121,8 @@ class TestHomekitConfigValidator:
|
|
|
113
121
|
output_number=1,
|
|
114
122
|
description="Light 1",
|
|
115
123
|
service="invalid_service",
|
|
124
|
+
on_action="E00L01I01",
|
|
125
|
+
off_action="E00L01I05",
|
|
116
126
|
)
|
|
117
127
|
]
|
|
118
128
|
config = self.create_test_homekit_config(accessories=accessories)
|
|
@@ -136,6 +146,8 @@ class TestHomekitConfigValidator:
|
|
|
136
146
|
output_number=0,
|
|
137
147
|
description="Light 1",
|
|
138
148
|
service="lightbulb",
|
|
149
|
+
on_action="E00L01I01",
|
|
150
|
+
off_action="E00L01I05",
|
|
139
151
|
),
|
|
140
152
|
HomekitAccessoryConfig(
|
|
141
153
|
name="light2",
|
|
@@ -144,6 +156,8 @@ class TestHomekitConfigValidator:
|
|
|
144
156
|
output_number=-1,
|
|
145
157
|
description="Light 2",
|
|
146
158
|
service="lightbulb",
|
|
159
|
+
on_action="E00L01I02",
|
|
160
|
+
off_action="E00L01I06",
|
|
147
161
|
),
|
|
148
162
|
]
|
|
149
163
|
config = self.create_test_homekit_config(accessories=accessories)
|
|
@@ -207,6 +221,8 @@ class TestHomekitConfigValidator:
|
|
|
207
221
|
output_number=1,
|
|
208
222
|
description="Light 1",
|
|
209
223
|
service="lightbulb",
|
|
224
|
+
on_action="E00L01I01",
|
|
225
|
+
off_action="E00L01I05",
|
|
210
226
|
),
|
|
211
227
|
HomekitAccessoryConfig(
|
|
212
228
|
name="orphaned_light",
|
|
@@ -215,6 +231,8 @@ class TestHomekitConfigValidator:
|
|
|
215
231
|
output_number=2,
|
|
216
232
|
description="Orphaned",
|
|
217
233
|
service="lightbulb",
|
|
234
|
+
on_action="E00L01I02",
|
|
235
|
+
off_action="E00L01I06",
|
|
218
236
|
),
|
|
219
237
|
]
|
|
220
238
|
rooms = [RoomConfig(name="Living Room", accessories=["light1"])]
|
|
@@ -233,6 +251,8 @@ class TestHomekitConfigValidator:
|
|
|
233
251
|
output_number=1,
|
|
234
252
|
description="Light 1",
|
|
235
253
|
service="lightbulb",
|
|
254
|
+
on_action="E00L01I01",
|
|
255
|
+
off_action="E00L01I05",
|
|
236
256
|
),
|
|
237
257
|
HomekitAccessoryConfig(
|
|
238
258
|
name="light2",
|
|
@@ -241,6 +261,8 @@ class TestHomekitConfigValidator:
|
|
|
241
261
|
output_number=2,
|
|
242
262
|
description="Light 2",
|
|
243
263
|
service="lightbulb",
|
|
264
|
+
on_action="E00L01I02",
|
|
265
|
+
off_action="E00L01I06",
|
|
244
266
|
),
|
|
245
267
|
]
|
|
246
268
|
rooms = [
|
|
@@ -263,6 +285,8 @@ class TestHomekitConfigValidator:
|
|
|
263
285
|
output_number=1,
|
|
264
286
|
description="Light 1",
|
|
265
287
|
service="lightbulb",
|
|
288
|
+
on_action="E00L01I01",
|
|
289
|
+
off_action="E00L01I05",
|
|
266
290
|
)
|
|
267
291
|
]
|
|
268
292
|
rooms = [
|
|
@@ -316,6 +340,8 @@ class TestCrossReferenceValidator:
|
|
|
316
340
|
output_number=1,
|
|
317
341
|
description="Light 1",
|
|
318
342
|
service="lightbulb",
|
|
343
|
+
on_action="E00L01I01",
|
|
344
|
+
off_action="E00L01I05",
|
|
319
345
|
),
|
|
320
346
|
HomekitAccessoryConfig(
|
|
321
347
|
name="light2",
|
|
@@ -324,6 +350,8 @@ class TestCrossReferenceValidator:
|
|
|
324
350
|
output_number=1,
|
|
325
351
|
description="Light 2",
|
|
326
352
|
service="lightbulb",
|
|
353
|
+
on_action="E00L02I01",
|
|
354
|
+
off_action="E00L02I05",
|
|
327
355
|
),
|
|
328
356
|
]
|
|
329
357
|
rooms = [RoomConfig(name="Living Room", accessories=["light1", "light2"])]
|
|
@@ -361,6 +389,8 @@ class TestCrossReferenceValidator:
|
|
|
361
389
|
output_number=1,
|
|
362
390
|
description="Invalid",
|
|
363
391
|
service="lightbulb",
|
|
392
|
+
on_action="E00L03I01",
|
|
393
|
+
off_action="E00L03I05",
|
|
364
394
|
)
|
|
365
395
|
homekit_validator.config.accessories.append(invalid_accessory)
|
|
366
396
|
|
|
@@ -394,6 +424,8 @@ class TestCrossReferenceValidator:
|
|
|
394
424
|
output_number=20,
|
|
395
425
|
description="High Output",
|
|
396
426
|
service="lightbulb",
|
|
427
|
+
on_action="E00L02I09",
|
|
428
|
+
off_action="E00L02I13",
|
|
397
429
|
)
|
|
398
430
|
homekit_validator.config.accessories.append(high_output_accessory)
|
|
399
431
|
|
|
@@ -425,6 +457,8 @@ class TestCrossReferenceValidator:
|
|
|
425
457
|
output_number=1,
|
|
426
458
|
description="Invalid Serial",
|
|
427
459
|
service="lightbulb",
|
|
460
|
+
on_action="E00L03I01",
|
|
461
|
+
off_action="E00L03I05",
|
|
428
462
|
),
|
|
429
463
|
HomekitAccessoryConfig(
|
|
430
464
|
name="invalid_output",
|
|
@@ -433,6 +467,8 @@ class TestCrossReferenceValidator:
|
|
|
433
467
|
output_number=20,
|
|
434
468
|
description="Invalid Output",
|
|
435
469
|
service="lightbulb",
|
|
470
|
+
on_action="E00L02I09",
|
|
471
|
+
off_action="E00L02I13",
|
|
436
472
|
),
|
|
437
473
|
]
|
|
438
474
|
homekit_validator.config.accessories.extend(invalid_accessories)
|
|
@@ -68,6 +68,8 @@ def mock_accessory():
|
|
|
68
68
|
output_number=2,
|
|
69
69
|
description="Test Description",
|
|
70
70
|
service="lightbulb",
|
|
71
|
+
on_action="E00L01I01",
|
|
72
|
+
off_action="E00L01I05",
|
|
71
73
|
)
|
|
72
74
|
|
|
73
75
|
|
|
@@ -357,23 +359,33 @@ class TestHomeKitConbusService:
|
|
|
357
359
|
|
|
358
360
|
def test_handle_send_action_event_on(self, mock_module, mock_accessory):
|
|
359
361
|
"""Test handle_send_action_event for turning on."""
|
|
360
|
-
event = SendActionEvent(
|
|
362
|
+
event = SendActionEvent(
|
|
363
|
+
serial_number="1234567890",
|
|
364
|
+
output_number=2,
|
|
365
|
+
value=True,
|
|
366
|
+
on_action="E00L04I02",
|
|
367
|
+
off_action="E00L04I06",
|
|
368
|
+
)
|
|
361
369
|
|
|
362
370
|
self.service.handle_send_action_event(event)
|
|
363
371
|
|
|
364
372
|
sent_data = self.telegram_protocol.sendFrame.call_args[0][0]
|
|
365
|
-
assert sent_data == b"
|
|
373
|
+
assert sent_data == b"E00L04I02B" # ON action code
|
|
366
374
|
|
|
367
375
|
def test_handle_send_action_event_off(self, mock_module, mock_accessory):
|
|
368
376
|
"""Test handle_send_action_event for turning off."""
|
|
369
377
|
event = SendActionEvent(
|
|
370
|
-
serial_number="1234567890",
|
|
378
|
+
serial_number="1234567890",
|
|
379
|
+
output_number=5,
|
|
380
|
+
value=False,
|
|
381
|
+
on_action="E00L05I05",
|
|
382
|
+
off_action="E00L05I09",
|
|
371
383
|
)
|
|
372
384
|
|
|
373
385
|
self.service.handle_send_action_event(event)
|
|
374
386
|
|
|
375
387
|
sent_data = self.telegram_protocol.sendFrame.call_args[0][0]
|
|
376
|
-
assert sent_data == b"
|
|
388
|
+
assert sent_data == b"E00L05I09B" # OFF action code
|
|
377
389
|
|
|
378
390
|
|
|
379
391
|
class TestHomeKitService:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.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.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_linknumber_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/conbus/conbus_modulenumber_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.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.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_blink_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_checksum_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_discover_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_linknumber_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/cli/commands/telegram/telegram_parse_commands.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.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
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/msactiontable_serializer.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/msactiontable_xp20_serializer.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/msactiontable_xp24_serializer.py
RENAMED
|
File without changes
|
{conson_xp-1.14.0 → conson_xp-1.15.0}/src/xp/services/actiontable/msactiontable_xp33_serializer.py
RENAMED
|
File without changes
|