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.
Files changed (314) hide show
  1. {conson_xp-1.29.0 → conson_xp-1.33.0}/PKG-INFO +27 -1
  2. {conson_xp-1.29.0 → conson_xp-1.33.0}/README.md +26 -0
  3. {conson_xp-1.29.0 → conson_xp-1.33.0}/pyproject.toml +1 -1
  4. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/__init__.py +1 -1
  5. conson_xp-1.33.0/src/xp/cli/commands/conbus/conbus_export_commands.py +88 -0
  6. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/main.py +4 -2
  7. conson_xp-1.33.0/src/xp/models/conbus/conbus_export.py +31 -0
  8. conson_xp-1.33.0/src/xp/services/conbus/conbus_export_service.py +452 -0
  9. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/dependencies.py +9 -0
  10. {conson_xp-1.29.0 → conson_xp-1.33.0}/LICENSE +0 -0
  11. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/__init__.py +0 -0
  12. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/__main__.py +0 -0
  13. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/__init__.py +0 -0
  14. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/__init__.py +0 -0
  15. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus.py +0 -0
  16. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_actiontable_commands.py +0 -0
  17. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_autoreport_commands.py +0 -0
  18. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_blink_commands.py +0 -0
  19. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_config_commands.py +0 -0
  20. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_custom_commands.py +0 -0
  21. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_datapoint_commands.py +0 -0
  22. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_discover_commands.py +0 -0
  23. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_event_commands.py +0 -0
  24. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_lightlevel_commands.py +0 -0
  25. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_linknumber_commands.py +0 -0
  26. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_modulenumber_commands.py +0 -0
  27. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_msactiontable_commands.py +0 -0
  28. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_output_commands.py +0 -0
  29. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_raw_commands.py +0 -0
  30. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_receive_commands.py +0 -0
  31. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/conbus/conbus_scan_commands.py +0 -0
  32. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/file_commands.py +0 -0
  33. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/homekit/__init__.py +0 -0
  34. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/homekit/homekit.py +0 -0
  35. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/homekit/homekit_start_commands.py +0 -0
  36. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/module_commands.py +0 -0
  37. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/reverse_proxy_commands.py +0 -0
  38. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/server/__init__.py +0 -0
  39. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/server/server_commands.py +0 -0
  40. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/__init__.py +0 -0
  41. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram.py +0 -0
  42. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_blink_commands.py +0 -0
  43. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_checksum_commands.py +0 -0
  44. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_discover_commands.py +0 -0
  45. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_linknumber_commands.py +0 -0
  46. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_parse_commands.py +0 -0
  47. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/telegram/telegram_version_commands.py +0 -0
  48. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/term/__init__.py +0 -0
  49. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/term/term.py +0 -0
  50. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/commands/term/term_commands.py +0 -0
  51. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/__init__.py +0 -0
  52. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/click_tree.py +0 -0
  53. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/datapoint_type_choice.py +0 -0
  54. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/decorators.py +0 -0
  55. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/error_handlers.py +0 -0
  56. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/formatters.py +0 -0
  57. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/module_type_choice.py +0 -0
  58. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/serial_number_type.py +0 -0
  59. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/system_function_choice.py +0 -0
  60. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/cli/utils/xp_module_type.py +0 -0
  61. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/connection/__init__.py +0 -0
  62. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/connection/exceptions.py +0 -0
  63. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/__init__.py +0 -0
  64. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/__init__.py +0 -0
  65. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/actiontable.py +0 -0
  66. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/msactiontable_xp20.py +0 -0
  67. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/msactiontable_xp24.py +0 -0
  68. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/actiontable/msactiontable_xp33.py +0 -0
  69. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/__init__.py +0 -0
  70. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus.py +0 -0
  71. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_autoreport.py +0 -0
  72. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_blink.py +0 -0
  73. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_client_config.py +0 -0
  74. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_connection_status.py +0 -0
  75. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_custom.py +0 -0
  76. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_datapoint.py +0 -0
  77. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_discover.py +0 -0
  78. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_event_list.py +0 -0
  79. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_event_raw.py +0 -0
  80. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_lightlevel.py +0 -0
  81. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_linknumber.py +0 -0
  82. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_logger_config.py +0 -0
  83. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_output.py +0 -0
  84. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_raw.py +0 -0
  85. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_receive.py +0 -0
  86. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/conbus/conbus_writeconfig.py +0 -0
  87. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/homekit/__init__.py +0 -0
  88. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/homekit/homekit_accessory.py +0 -0
  89. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/homekit/homekit_config.py +0 -0
  90. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/homekit/homekit_conson_config.py +0 -0
  91. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/log_entry.py +0 -0
  92. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/protocol/__init__.py +0 -0
  93. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/protocol/conbus_protocol.py +0 -0
  94. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/response.py +0 -0
  95. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/__init__.py +0 -0
  96. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/action_type.py +0 -0
  97. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/datapoint_type.py +0 -0
  98. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/event_telegram.py +0 -0
  99. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/event_type.py +0 -0
  100. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/input_action_type.py +0 -0
  101. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/input_type.py +0 -0
  102. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/module_type.py +0 -0
  103. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/module_type_code.py +0 -0
  104. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/output_telegram.py +0 -0
  105. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/reply_telegram.py +0 -0
  106. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/system_function.py +0 -0
  107. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/system_telegram.py +0 -0
  108. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/telegram.py +0 -0
  109. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/telegram_type.py +0 -0
  110. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/telegram/timeparam_type.py +0 -0
  111. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/__init__.py +0 -0
  112. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/connection_state.py +0 -0
  113. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/module_state.py +0 -0
  114. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/protocol_keys_config.py +0 -0
  115. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/status_message.py +0 -0
  116. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/term/telegram_display.py +0 -0
  117. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/models/write_config_type.py +0 -0
  118. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/__init__.py +0 -0
  119. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/__init__.py +0 -0
  120. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/actiontable_serializer.py +0 -0
  121. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/msactiontable_serializer.py +0 -0
  122. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/msactiontable_xp20_serializer.py +0 -0
  123. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/msactiontable_xp24_serializer.py +0 -0
  124. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/actiontable/msactiontable_xp33_serializer.py +0 -0
  125. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/__init__.py +0 -0
  126. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/__init__.py +0 -0
  127. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/actiontable_download_service.py +0 -0
  128. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/actiontable_list_service.py +0 -0
  129. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/actiontable_show_service.py +0 -0
  130. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/actiontable_upload_service.py +0 -0
  131. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/actiontable/msactiontable_service.py +0 -0
  132. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_blink_all_service.py +0 -0
  133. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_blink_service.py +0 -0
  134. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_custom_service.py +0 -0
  135. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_datapoint_queryall_service.py +0 -0
  136. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_datapoint_service.py +0 -0
  137. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_discover_service.py +0 -0
  138. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_event_list_service.py +0 -0
  139. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_event_raw_service.py +0 -0
  140. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_output_service.py +0 -0
  141. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_raw_service.py +0 -0
  142. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_receive_service.py +0 -0
  143. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/conbus_scan_service.py +0 -0
  144. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/conbus/write_config_service.py +0 -0
  145. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/__init__.py +0 -0
  146. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_cache_service.py +0 -0
  147. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_conbus_service.py +0 -0
  148. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_config_validator.py +0 -0
  149. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_conson_validator.py +0 -0
  150. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_dimminglight.py +0 -0
  151. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_dimminglight_service.py +0 -0
  152. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_hap_service.py +0 -0
  153. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_lightbulb.py +0 -0
  154. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_lightbulb_service.py +0 -0
  155. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_module_service.py +0 -0
  156. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_outlet.py +0 -0
  157. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_outlet_service.py +0 -0
  158. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/homekit/homekit_service.py +0 -0
  159. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/log_file_service.py +0 -0
  160. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/module_type_service.py +0 -0
  161. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/__init__.py +0 -0
  162. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/conbus_event_protocol.py +0 -0
  163. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/conbus_protocol.py +0 -0
  164. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/protocol_factory.py +0 -0
  165. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/protocol/telegram_protocol.py +0 -0
  166. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/reverse_proxy_service.py +0 -0
  167. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/__init__.py +0 -0
  168. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/base_server_service.py +0 -0
  169. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/client_buffer_manager.py +0 -0
  170. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/cp20_server_service.py +0 -0
  171. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/device_service_factory.py +0 -0
  172. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/server_service.py +0 -0
  173. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp130_server_service.py +0 -0
  174. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp20_server_service.py +0 -0
  175. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp230_server_service.py +0 -0
  176. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp24_server_service.py +0 -0
  177. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/server/xp33_server_service.py +0 -0
  178. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/__init__.py +0 -0
  179. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_blink_service.py +0 -0
  180. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_checksum_service.py +0 -0
  181. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_datapoint_service.py +0 -0
  182. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_discover_service.py +0 -0
  183. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_link_number_service.py +0 -0
  184. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_output_service.py +0 -0
  185. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_service.py +0 -0
  186. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/telegram/telegram_version_service.py +0 -0
  187. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/term/__init__.py +0 -0
  188. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/term/protocol_monitor_service.py +0 -0
  189. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/services/term/state_monitor_service.py +0 -0
  190. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/__init__.py +0 -0
  191. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/protocol.py +0 -0
  192. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/protocol.tcss +0 -0
  193. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/state.py +0 -0
  194. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/state.tcss +0 -0
  195. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/__init__.py +0 -0
  196. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/help_menu.py +0 -0
  197. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/modules_list.py +0 -0
  198. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/protocol_log.py +0 -0
  199. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/term/widgets/status_footer.py +0 -0
  200. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/__init__.py +0 -0
  201. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/checksum.py +0 -0
  202. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/event_helper.py +0 -0
  203. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/logging.py +0 -0
  204. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/serialization.py +0 -0
  205. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/state_machine.py +0 -0
  206. {conson_xp-1.29.0 → conson_xp-1.33.0}/src/xp/utils/time_utils.py +0 -0
  207. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/.coverage +0 -0
  208. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/__init__.py +0 -0
  209. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/conftest.py +0 -0
  210. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/.coverage +0 -0
  211. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/__init__.py +0 -0
  212. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/telegram_test_data.py +0 -0
  213. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_actiontable_integration.py +0 -0
  214. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_api/.coverage +0 -0
  215. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_api/__init__.py +0 -0
  216. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_blink_integration.py +0 -0
  217. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_checksum_integration.py +0 -0
  218. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_conbus_blink_integration.py +0 -0
  219. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_conbus_datapoint_integration.py +0 -0
  220. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_conbus_raw_integration.py +0 -0
  221. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_conbus_receive_integration.py +0 -0
  222. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_discovery_integration.py +0 -0
  223. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_event_telegram_integration.py +0 -0
  224. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_homekit_config_integration.py +0 -0
  225. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_link_number_integration.py +0 -0
  226. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_module_integration.py +0 -0
  227. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_output_integration.py +0 -0
  228. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_reverse_proxy_integration.py +0 -0
  229. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_system_reply_telegram_integration.py +0 -0
  230. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_term_logging_integration.py +0 -0
  231. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_version_integration.py +0 -0
  232. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_xp20_action_table_integration.py +0 -0
  233. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/integration/test_xp24_action_table_integration.py +0 -0
  234. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/__init__.py +0 -0
  235. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_api/__init__.py +0 -0
  236. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/__init__.py +0 -0
  237. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_click_tree.py +0 -0
  238. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_conbus_actiontable_commands.py +0 -0
  239. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_conbus_blink_commands.py +0 -0
  240. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_datapoint_type_choice.py +0 -0
  241. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_decorators.py +0 -0
  242. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_error_handlers.py +0 -0
  243. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_formatters.py +0 -0
  244. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_serial_number_type.py +0 -0
  245. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_system_function_choice.py +0 -0
  246. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_cli/test_term_commands.py +0 -0
  247. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_connection/__init__.py +0 -0
  248. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_connection/test_connection_init.py +0 -0
  249. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_connection/test_exceptions.py +0 -0
  250. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_encoding/__init__.py +0 -0
  251. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_encoding/test_latin1_edge_cases.py +0 -0
  252. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/__init__.py +0 -0
  253. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_conbus.py +0 -0
  254. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_conbus_client_send.py +0 -0
  255. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_conbus_discover.py +0 -0
  256. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_conbus_linknumber.py +0 -0
  257. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_event_telegram.py +0 -0
  258. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_log_entry.py +0 -0
  259. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_logger_config.py +0 -0
  260. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_module_type.py +0 -0
  261. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_reply_telegram.py +0 -0
  262. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_system_telegram.py +0 -0
  263. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_system_telegram_enhancements.py +0 -0
  264. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_version_telegram.py +0 -0
  265. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_write_config_type.py +0 -0
  266. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_xp20_action_table.py +0 -0
  267. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_xp24_action_table.py +0 -0
  268. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_models/test_xp24_action_telegram.py +0 -0
  269. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/__init__.py +0 -0
  270. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_actiontable_serializer.py +0 -0
  271. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_actiontable_service.py +0 -0
  272. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_actiontable_upload_service.py +0 -0
  273. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_base_server_service.py +0 -0
  274. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_blink_service.py +0 -0
  275. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_checksum_service.py +0 -0
  276. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_client_buffer_manager.py +0 -0
  277. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_blink_service.py +0 -0
  278. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_event_list_service.py +0 -0
  279. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_event_protocol.py +0 -0
  280. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_event_raw_service.py +0 -0
  281. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_raw_service.py +0 -0
  282. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_receive_service.py +0 -0
  283. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_conbus_reverse_proxy_service.py +0 -0
  284. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_device_service_factory.py +0 -0
  285. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_discovery_service.py +0 -0
  286. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_homekit_cache_service.py +0 -0
  287. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_homekit_config_validator.py +0 -0
  288. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_homekit_conson_service.py +0 -0
  289. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_homekit_services.py +0 -0
  290. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_log_file_service.py +0 -0
  291. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_module_type_service.py +0 -0
  292. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_protocol.py +0 -0
  293. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_protocol_monitor_service.py +0 -0
  294. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_server_service.py +0 -0
  295. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_state_monitor_service.py +0 -0
  296. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_telegram_input_service.py +0 -0
  297. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_telegram_output_service.py +0 -0
  298. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_telegram_protocol.py +0 -0
  299. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_telegram_service.py +0 -0
  300. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_version_service.py +0 -0
  301. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp20_action_table_serializer.py +0 -0
  302. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp24_action_service.py +0 -0
  303. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp24_action_table_serializer.py +0 -0
  304. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp24_action_table_service.py +0 -0
  305. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp33_action_table_serializer.py +0 -0
  306. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_services/test_xp_server_services.py +0 -0
  307. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_tui/__init__.py +0 -0
  308. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_tui/test_protocol_log.py +0 -0
  309. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/__init__.py +0 -0
  310. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/test_checksum.py +0 -0
  311. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/test_event_helper.py +0 -0
  312. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/test_logging.py +0 -0
  313. {conson_xp-1.29.0 → conson_xp-1.33.0}/tests/unit/test_utils/test_serialization.py +0 -0
  314. {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.29.0
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
@@ -22,7 +22,7 @@ dependencies = [
22
22
  ]
23
23
  requires-python = ">=3.11"
24
24
  readme = "README.md"
25
- version = "1.29.0"
25
+ version = "1.33.0"
26
26
 
27
27
  [project.license]
28
28
  file = "LICENSE"
@@ -3,7 +3,7 @@
3
3
  conson-xp package.
4
4
  """
5
5
 
6
- __version__ = "1.29.0"
6
+ __version__ = "1.33.0"
7
7
  __manufacturer__ = "salchichon"
8
8
  __model__ = "xp.cli"
9
9
  __serial__ = "2025.09.23.000"
@@ -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)