ramses-rf 0.52.0__tar.gz → 0.52.1__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 (359) hide show
  1. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/PKG-INFO +1 -1
  2. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/database.py +7 -7
  3. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/device/hvac.py +2 -2
  4. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/entity_base.py +33 -34
  5. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/gateway.py +1 -0
  6. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/version.py +1 -1
  7. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/gateway.py +1 -1
  8. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/version.py +1 -1
  9. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  10. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/.github/dependabot.yml +0 -0
  11. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/.github/workflows/check-lint.yml +0 -0
  12. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/.github/workflows/check-test.yml +0 -0
  13. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/.github/workflows/check-type.yml +0 -0
  14. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/.github/workflows/publish-hatch.yml +0 -0
  15. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/.gitignore +0 -0
  16. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/.pre-commit-config.yaml +0 -0
  17. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/LICENSE +0 -0
  18. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/README-developers.md +0 -0
  19. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/README.md +0 -0
  20. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/client.py +0 -0
  21. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/misc/2411_parser.py +0 -0
  22. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/misc/fingerprints.log +0 -0
  23. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/misc/ser2net.yaml +0 -0
  24. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/misc/ti_3410/notes.sh +0 -0
  25. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/misc/ti_3410/ti_3410.fw +0 -0
  26. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/pyproject.toml +0 -0
  27. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_cli/__init__.py +0 -0
  28. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_cli/client.py +0 -0
  29. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_cli/debug.py +0 -0
  30. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_cli/discovery.py +0 -0
  31. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_cli/utils/cat_slow.py +0 -0
  32. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_cli/utils/convert.py +0 -0
  33. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/__init__.py +0 -0
  34. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/binding_fsm.py +0 -0
  35. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/const.py +0 -0
  36. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/device/__init__.py +0 -0
  37. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/device/base.py +0 -0
  38. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/device/heat.py +0 -0
  39. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/dispatcher.py +0 -0
  40. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/exceptions.py +0 -0
  41. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/helpers.py +0 -0
  42. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/py.typed +0 -0
  43. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/schemas.py +0 -0
  44. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/system/__init__.py +0 -0
  45. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/system/faultlog.py +0 -0
  46. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/system/heat.py +0 -0
  47. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/system/schedule.py +0 -0
  48. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_rf/system/zones.py +0 -0
  49. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/__init__.py +0 -0
  50. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/address.py +0 -0
  51. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/command.py +0 -0
  52. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/const.py +0 -0
  53. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/exceptions.py +0 -0
  54. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/fingerprints.py +0 -0
  55. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/frame.py +0 -0
  56. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/helpers.py +0 -0
  57. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/logger.py +0 -0
  58. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/message.py +0 -0
  59. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/opentherm.py +0 -0
  60. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/packet.py +0 -0
  61. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/parsers.py +0 -0
  62. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/protocol.py +0 -0
  63. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/protocol_fsm.py +0 -0
  64. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/py.typed +0 -0
  65. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/ramses.py +0 -0
  66. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/schemas.py +0 -0
  67. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/transport.py +0 -0
  68. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/typed_dicts.py +0 -0
  69. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/ramses_tx/typing.py +0 -0
  70. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/requirements.txt +0 -0
  71. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/requirements_dev.txt +0 -0
  72. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/_test_apis_mock.py +0 -0
  73. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/_test_mock_faultlog.py +0 -0
  74. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/_test_mock_schedule.py +0 -0
  75. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/_test_packets_bad.py +0 -0
  76. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/_test_performance_WIP.py +0 -0
  77. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/_test_state_mgt.py +0 -0
  78. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/common.py +0 -0
  79. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/mocked_devices/__init__.py +0 -0
  80. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/mocked_devices/command.py +0 -0
  81. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/mocked_devices/const.py +0 -0
  82. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/mocked_devices/device_heat.py +0 -0
  83. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/mocked_devices/device_hvac.py +0 -0
  84. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/deprecated/mocked_devices/transport.py +0 -0
  85. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/__init__.py +0 -0
  86. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/heat/ctl_bdr_91t.log +0 -0
  87. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/heat/dts_ctl_sensor.log +0 -0
  88. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/heat/hcw_ctl_sensor.log +0 -0
  89. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/heat/rnd_ctl_sensor.log +0 -0
  90. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/heat/rnd_ctl_sensor.yaml +0 -0
  91. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/heat/trv_ctl.log +0 -0
  92. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/co2_fan_itho.json +0 -0
  93. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/co2_fan_itho.log +0 -0
  94. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/co2_fan_itho.yaml +0 -0
  95. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/dis_fan_orcon.json +0 -0
  96. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/dis_fan_orcon.log +0 -0
  97. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/rem_fan_climarad.log +0 -0
  98. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/rem_fan_nuaire.json +0 -0
  99. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/rem_fan_nuaire.log +0 -0
  100. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/rem_fan_nuaire.yaml +0 -0
  101. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/rem_fan_vasco.log +0 -0
  102. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/bindings/hvac/rem_fan_ventura.log +0 -0
  103. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/devices/device_02.log +0 -0
  104. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/devices/device_04.log +0 -0
  105. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/devices/device_10.log +0 -0
  106. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/devices/device_13.log +0 -0
  107. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/devices/device_22.log +0 -0
  108. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_off.json +0 -0
  109. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_on.json +0 -0
  110. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_dev_class/hvac/packet.log +0 -0
  111. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/_trv_actuator_long/packet.log +0 -0
  112. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_off.json +0 -0
  113. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_on.json +0 -0
  114. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/packet.log +0 -0
  115. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_off.json +0 -0
  116. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_on.json +0 -0
  117. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/_ufh_circuits/packet.log +0 -0
  118. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_off.json +0 -0
  119. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_on.json +0 -0
  120. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/app_cntrl/packet.log +0 -0
  121. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_off.json +0 -0
  122. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_on.json +0 -0
  123. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/trv_actuators/packet.log +0 -0
  124. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_off.json +0 -0
  125. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_on.json +0 -0
  126. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_000/packet.log +0 -0
  127. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_off.json +0 -0
  128. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_on.json +0 -0
  129. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_001/packet.log +0 -0
  130. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_off.json +0 -0
  131. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_on.json +0 -0
  132. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_002/packet.log +0 -0
  133. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_off.json +0 -0
  134. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_on.json +0 -0
  135. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_003/packet.log +0 -0
  136. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_off.json +0 -0
  137. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_on.json +0 -0
  138. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_004/packet.log +0 -0
  139. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_off.json +0 -0
  140. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_on.json +0 -0
  141. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/10e0_xxxx.log +0 -0
  142. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/_gather.sh +0 -0
  143. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/01_EvoTouch_Colour.log +0 -0
  144. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/01_Evo_Color.log +0 -0
  145. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/01_IONA_RAI_Prototype.log +0 -0
  146. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/02_HCE80_V3.10_061117..log +0 -0
  147. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/04_HR92 Radiator Ctrl_.log +0 -0
  148. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/08_Jasper_EIM.log +0 -0
  149. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/10_R8810A_Bridge.log +0 -0
  150. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/10_R8820.log +0 -0
  151. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/30_Internet_Gateway.log +0 -0
  152. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/31_Jasper_Stat_TXXX.log +0 -0
  153. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/heat/34_T87RF2025.log +0 -0
  154. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/18_BRDG-02A55.log +0 -0
  155. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/18_HRA82.log +0 -0
  156. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/20.log +0 -0
  157. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/21_CCU-12T20.log +0 -0
  158. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/29_VMC-07RP01.log +0 -0
  159. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/29_VMC-15RP01.log +0 -0
  160. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/29_VMC-17RP01.log +0 -0
  161. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/29_VMN-07LM01.log +0 -0
  162. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/29_VMN-15LF01.log +0 -0
  163. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/29_VMN-17LMP01.log +0 -0
  164. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/29_VMS-15C16.log +0 -0
  165. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/29_VMS-17HB01.log +0 -0
  166. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/30_BRDG-02EM23.log +0 -0
  167. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/30_BRDG-02JAS01.log +0 -0
  168. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMC-15RPS34.log +0 -0
  169. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMD-15RMS64.log +0 -0
  170. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMD-15RMS86.log +0 -0
  171. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMD-17RPS01.log +0 -0
  172. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMN-23LM33.log +0 -0
  173. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMN-23LMH23.log +0 -0
  174. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMS-15CM17.log +0 -0
  175. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMS-23C33.log +0 -0
  176. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMS-23HB33.log +0 -0
  177. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/32_VMZ-15V13.log +0 -0
  178. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/37_VMD-07RPS13.log +0 -0
  179. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/37_VMI-15MC01log +0 -0
  180. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/37_VMI-15WSJ53.log +0 -0
  181. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/37_VMS-02J52.log +0 -0
  182. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/37_VMS-12C39.log +0 -0
  183. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/99_CVE-RF.log +0 -0
  184. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/fingerprints/hvac/99_VMS-17C01.log +0 -0
  185. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/helpers.py +0 -0
  186. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/logger/packet_in.log +0 -0
  187. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/logger/packet_out.log +0 -0
  188. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/logs/pkts_bad_000.log +0 -0
  189. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/logs/pkts_tba_000.log +0 -0
  190. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/logs/system_cache.json +0 -0
  191. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parser_helpers/pkt_addr_set.log +0 -0
  192. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parser_helpers/pkt_dev_class.log +0 -0
  193. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_0001_wip.log +0 -0
  194. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_0002.log +0 -0
  195. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_0004_wip.log +0 -0
  196. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_0005.log +0 -0
  197. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_0006.log +0 -0
  198. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_0008.log +0 -0
  199. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_0009.log +0 -0
  200. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_000a.log +0 -0
  201. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_000c.log +0 -0
  202. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_000e.log +0 -0
  203. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_01ff_wip.log +0 -0
  204. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_0418.log +0 -0
  205. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_042f.log +0 -0
  206. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_1030.log +0 -0
  207. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_1060.log +0 -0
  208. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_10d0.log +0 -0
  209. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_10e0.log +0 -0
  210. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_1260.log +0 -0
  211. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_1298.log +0 -0
  212. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_12a0.log +0 -0
  213. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_12c0.log +0 -0
  214. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_1300.log +0 -0
  215. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_1f09.log +0 -0
  216. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_1fc9.log +0 -0
  217. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_1fd4.log +0 -0
  218. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_2210.log +0 -0
  219. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22c9.log +0 -0
  220. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22d0.log +0 -0
  221. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22d9.log +0 -0
  222. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22e0.log +0 -0
  223. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22e5.log +0 -0
  224. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22e9.log +0 -0
  225. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22f1.log +0 -0
  226. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22f2.log +0 -0
  227. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22f3.log +0 -0
  228. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22f4.log +0 -0
  229. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_22f7.log +0 -0
  230. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_2309.log +0 -0
  231. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_2349.log +0 -0
  232. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_2411_wip.log +0 -0
  233. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_2e04.log +0 -0
  234. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_2e10_wip.log +0 -0
  235. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_30c9.log +0 -0
  236. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_3110_wip.log +0 -0
  237. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_3120.log +0 -0
  238. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_313e_wip.log +0 -0
  239. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_3150.log +0 -0
  240. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_31d9.log +0 -0
  241. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_31da.log +0 -0
  242. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_3200.log +0 -0
  243. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_3210.log +0 -0
  244. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_3220.log +0 -0
  245. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_3222.log +0 -0
  246. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_3ef0_wip.log +0 -0
  247. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_3ef1_wip.log +0 -0
  248. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_4e01.log +0 -0
  249. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_4e02.log +0 -0
  250. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_4e04.log +0 -0
  251. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/parsers/code_4e15.log +0 -0
  252. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schedules/_sched_002/packet.log +0 -0
  253. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schedules/_sched_002/schedule.json +0 -0
  254. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schedules/sched_001/packet.log +0 -0
  255. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schedules/sched_001/schedule.json +0 -0
  256. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schedules/sched_dhw/packet.log +0 -0
  257. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schedules/sched_dhw/schedule.json +0 -0
  258. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/jsn_files/schema_100.json +0 -0
  259. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/jsn_files/schema_101.json +0 -0
  260. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/jsn_files/schema_102.json +0 -0
  261. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/jsn_files/schema_103.json +0 -0
  262. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/jsn_files/schema_104.json +0 -0
  263. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/jsn_files/schema_105.json +0 -0
  264. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/jsn_files/schema_108.json +0 -0
  265. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_000.json +0 -0
  266. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_000.log +0 -0
  267. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_001.json +0 -0
  268. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_001.log +0 -0
  269. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_002.json +0 -0
  270. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_002.log +0 -0
  271. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_010.json +0 -0
  272. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_010.log +0 -0
  273. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_011.json +0 -0
  274. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_011.log +0 -0
  275. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_012.json +0 -0
  276. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_012.log +0 -0
  277. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_013.json +0 -0
  278. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_013.log +0 -0
  279. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_014.json +0 -0
  280. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_014.log +0 -0
  281. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_300.json +0 -0
  282. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_300.log +0 -0
  283. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_301.json +0 -0
  284. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_301.log +0 -0
  285. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_302.json +0 -0
  286. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_302.log +0 -0
  287. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_303.json +0 -0
  288. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_303.log +0 -0
  289. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_304.json +0 -0
  290. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_304.log +0 -0
  291. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_310.json +0 -0
  292. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/schemas/log_files/schema_310.log +0 -0
  293. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/_heat_trv_00/config.json +0 -0
  294. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/_heat_trv_00/packet.log +0 -0
  295. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/_heat_trv_00/schema.json +0 -0
  296. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/_hvac_nuaire/config.json +0 -0
  297. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/_hvac_nuaire/known_list.json +0 -0
  298. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/_hvac_nuaire/packet.log +0 -0
  299. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/_hvac_nuaire/schema.json +0 -0
  300. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/_hvac_nuaire/status.json +0 -0
  301. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_otb_00/config.json +0 -0
  302. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_otb_00/packet.log +0 -0
  303. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_otb_00/schema.json +0 -0
  304. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_simple/packet.log +0 -0
  305. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_simple/schema.json +0 -0
  306. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_ufc_00/config.json +0 -0
  307. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_ufc_00/packet.log +0 -0
  308. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_ufc_01/packet.log +0 -0
  309. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_zxdavb/config.json +0 -0
  310. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_zxdavb/known_list.json +0 -0
  311. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_zxdavb/packet.log +0 -0
  312. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/systems/heat_zxdavb/schema.json +0 -0
  313. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_api_faultlog.py +0 -0
  314. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_api_schedule.py +0 -0
  315. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_apis_binding.py +0 -0
  316. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_apis_common.py +0 -0
  317. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_apis_heat.py +0 -0
  318. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_apis_hvac.py +0 -0
  319. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_cli_utility.py +0 -0
  320. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_devices.py +0 -0
  321. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_eavesdrop_dev_class.py +0 -0
  322. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_eavesdrop_schema.py +0 -0
  323. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_helpers.py +0 -0
  324. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_parser_helpers.py +0 -0
  325. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_parsers.py +0 -0
  326. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_ramses_schema.py +0 -0
  327. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_schema_bits.py +0 -0
  328. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_schemas.py +0 -0
  329. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_systems.py +0 -0
  330. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests/test_vol_schemas.py +0 -0
  331. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/__init__.py +0 -0
  332. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/configs/config_heat.json +0 -0
  333. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/configs/config_hvac.json +0 -0
  334. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/conftest.py +0 -0
  335. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/device/__init__.py +0 -0
  336. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/device/test_hvac_ventilator.py +0 -0
  337. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/logs/test_api_faultlog.log +0 -0
  338. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_api_faultlog.py +0 -0
  339. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_api_schedule.py +0 -0
  340. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_binding_fsm.py +0 -0
  341. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_create_stack.py +0 -0
  342. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_database.py +0 -0
  343. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_dispatcher.py +0 -0
  344. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_hgi_behaviors.py +0 -0
  345. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_protocol_fsm.py +0 -0
  346. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_use_regex.py +0 -0
  347. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/test_virt_network.py +0 -0
  348. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/virtual_rf/__init__.py +0 -0
  349. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/virtual_rf/const.py +0 -0
  350. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/virtual_rf/helpers.py +0 -0
  351. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_rf/virtual_rf/virtual_rf.py +0 -0
  352. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_tx/__init__.py +0 -0
  353. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/tests_tx/test_command.py +0 -0
  354. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/wip/_test_eavesdrop_dhw_sensor.py +0 -0
  355. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/wip/_test_eavesdrop_htg_control.py +0 -0
  356. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/wip/_test_eavesdrop_ufc_circuits.py +0 -0
  357. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/wip/_test_eavesdrop_zone_sensors.py +0 -0
  358. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/wip/_test_eavesdrop_zone_type.py +0 -0
  359. {ramses_rf-0.52.0 → ramses_rf-0.52.1}/tests/wip/test_wip_cli.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ramses_rf
3
- Version: 0.52.0
3
+ Version: 0.52.1
4
4
  Summary: A stateful RAMSES-II protocol decoder & analyser.
5
5
  Project-URL: Homepage, https://github.com/ramses-rf/ramses_rf
6
6
  Project-URL: Bug Tracker, https://github.com/ramses-rf/ramses_rf/issues
@@ -224,16 +224,16 @@ class MessageIndex:
224
224
  pass # self._lock.release()
225
225
 
226
226
  if (
227
- dup and msg.src is not msg.src
228
- ): # when src==dst, expect to add duplicate, don't check
229
- _LOGGER.warning(
227
+ dup and msg.src is not msg.dst and not msg.dst.id.startswith("18:") # HGI
228
+ ): # when src==dst, expect to add duplicate, don't warn
229
+ _LOGGER.debug(
230
230
  "Overwrote dtm (%s) for %s: %s (contrived log?)",
231
231
  msg.dtm,
232
232
  msg._pkt._hdr,
233
233
  dup[0]._pkt,
234
234
  )
235
235
  if old is not None:
236
- _LOGGER.info("Old msg replaced: %s", old)
236
+ _LOGGER.debug("Old msg replaced: %s", old)
237
237
 
238
238
  return old
239
239
 
@@ -305,7 +305,7 @@ class MessageIndex:
305
305
  payload_keys(msg.payload),
306
306
  ),
307
307
  )
308
- _LOGGER.info(f"Added {msg} to gwy.msg_db")
308
+ _LOGGER.debug(f"Added {msg} to gwy.msg_db")
309
309
 
310
310
  return _old_msgs[0] if _old_msgs else None
311
311
 
@@ -468,7 +468,7 @@ class MessageIndex:
468
468
  if ts in self._msgs:
469
469
  lst.append(self._msgs[ts])
470
470
  else: # happens in tests with artificial msg from heat
471
- _LOGGER.warning("MessageIndex timestamp %s not in device messages", ts)
471
+ _LOGGER.info("MessageIndex timestamp %s not in device messages", ts)
472
472
  return tuple(lst)
473
473
 
474
474
  def get_rp_codes(self, parameters: tuple[str, ...]) -> list[Code]:
@@ -529,7 +529,7 @@ class MessageIndex:
529
529
  # if include_expired or not self._msgs[ts].HAS_EXPIRED: # not working
530
530
  lst.append(self._msgs[ts])
531
531
  else: # happens in tests with dummy msg from heat init
532
- _LOGGER.warning("MessageIndex ts %s not in device messages", ts)
532
+ _LOGGER.info("MessageIndex ts %s not in device messages", ts)
533
533
  return tuple(lst)
534
534
 
535
535
  def clr(self) -> None:
@@ -927,7 +927,7 @@ class HvacVentilator(FilterChange): # FAN: RP/31DA, I/31D[9A], 2411
927
927
  """
928
928
  res_mode: list = self._msg_qry(sql)
929
929
  # SQLite query on MessageIndex
930
- _LOGGER.info(f"{res_mode} # FAN_MODE FETCHED from MessageIndex")
930
+ _LOGGER.debug(f"{res_mode} # FAN_MODE FETCHED from MessageIndex")
931
931
 
932
932
  sql = f"""
933
933
  SELECT code from messages WHERE verb in (' I', 'RP')
@@ -936,7 +936,7 @@ class HvacVentilator(FilterChange): # FAN: RP/31DA, I/31D[9A], 2411
936
936
  """
937
937
  res_rate: list = self._msg_qry(sql)
938
938
  # SQLite query on MessageIndex
939
- _LOGGER.info(
939
+ _LOGGER.debug(
940
940
  f"{res_rate} # FAN_RATE FETCHED from MessageIndex"
941
941
  ) # DEBUG always empty?
942
942
 
@@ -67,7 +67,8 @@ if TYPE_CHECKING:
67
67
 
68
68
 
69
69
  _QOS_TX_LIMIT = 12 # TODO: needs work
70
- _ID_SLICE = 12 # was 9 for base address only, 12 for _02 sub/params_test?
70
+ _ID_SLICE = 9 # base address only, legacy _msgs 9
71
+ _SQL_SLICE = 12 # msg_db dst field query 12
71
72
  _SZ_LAST_PKT: Final = "last_msg"
72
73
  _SZ_NEXT_DUE: Final = "next_due"
73
74
  _SZ_TIMEOUT: Final = "timeout"
@@ -193,18 +194,18 @@ class _MessageDB(_Entity):
193
194
  self._msgs_: dict[
194
195
  Code, Message
195
196
  ] = {} # TODO(eb): deprecated, used in test, remove Q1 2026
196
- if not self._gwy.msg_db: # TODO(eb): deprecated since 0.52.0, remove Q1 2026
197
+ if not self._gwy.msg_db: # TODO(eb): deprecated since 0.52.1, remove Q1 2026
197
198
  self._msgz_: dict[
198
199
  Code, dict[VerbT, dict[bool | str | None, Message]]
199
200
  ] = {} # code/verb/ctx,
200
201
 
201
- # As of 0.52.0 we use SQLite MessageIndex, see ramses_rf/database.py
202
+ # As of 0.52.1 we use SQLite MessageIndex, see ramses_rf/database.py
202
203
  # _msgz_ (nested) was only used in this module. Note:
203
204
  # _msgz (now rebuilt from _msgs) also used in: client, base, device.heat
204
205
 
205
206
  def _handle_msg(self, msg: Message) -> None:
206
207
  """Store a msg in the DBs.
207
- Uses SQLite MessageIndex since 0.52.0
208
+ Uses SQLite MessageIndex since 0.52.1
208
209
  """
209
210
 
210
211
  if not (
@@ -232,11 +233,11 @@ class _MessageDB(_Entity):
232
233
  # Result in test log: lookup fails
233
234
  # msg.src = 01:073976 (CTL)
234
235
  # Added msg from 01:073976 (CTL) with code 0005 to _gwy.msg_db
235
- # query is for: 01:073976 < no suffix
236
+ # query is for: 01:073976 < no suffix, extended lookup to [:12] chars
236
237
 
237
238
  # ignore any replaced message that might be returned
238
239
  else: # TODO(eb): remove Q1 2026
239
- if msg.code not in self._msgz_: # deprecated since 0.52.0
240
+ if msg.code not in self._msgz_: # deprecated since 0.52.1
240
241
  # Store msg verb + ctx by code in nested self._msgz_ Dict
241
242
  self._msgz_[msg.code] = {msg.verb: {msg._pkt._ctx: msg}}
242
243
  elif msg.verb not in self._msgz_[msg.code]:
@@ -247,7 +248,7 @@ class _MessageDB(_Entity):
247
248
  self._msgz_[msg.code][msg.verb][msg._pkt._ctx] = msg
248
249
 
249
250
  # Also store msg by code in flat self._msgs_ dict (stores the latest I/RP msgs by code)
250
- # TODO(eb): deprecated since 0.52.0, remove next block _msgs_ Q1 2026
251
+ # TODO(eb): deprecated since 0.52.1, remove next block _msgs_ Q1 2026
251
252
  if msg.verb in (I_, RP): # drop RQ's
252
253
  # if msg.code == Code._3150 and msg.src.id.startswith(
253
254
  # "02:"
@@ -399,7 +400,7 @@ class _MessageDB(_Entity):
399
400
 
400
401
  assert isinstance(code, Message), (
401
402
  f"Invalid format: _msg_value({code})"
402
- ) # catch invalidly formatted code, only handle Message
403
+ ) # catch invalidly formatted code, only handle Message from here
403
404
  return self._msg_value_msg(code, *args, **kwargs)
404
405
 
405
406
  def _msg_value_code(
@@ -410,7 +411,7 @@ class _MessageDB(_Entity):
410
411
  **kwargs: Any,
411
412
  ) -> dict | list | None:
412
413
  """
413
- Query the message database using the SQLite index for the most recent
414
+ Query the message dict or the SQLite index for the most recent
414
415
  key: value pairs(s) for a given code.
415
416
 
416
417
  :param code: filter messages by Code or a tuple of Codes, optional
@@ -442,9 +443,8 @@ class _MessageDB(_Entity):
442
443
 
443
444
  elif isinstance(code, tuple):
444
445
  msgs = [m for m in self._msgs.values() if m.code in code]
445
- msg = (
446
- max(msgs) if msgs else None
447
- ) # return highest = latest? value found in code:value pairs
446
+ msg = max(msgs) if msgs else None
447
+ # return highest = latest? value found in code:value pairs
448
448
  else:
449
449
  msg = self._msgs.get(code)
450
450
 
@@ -458,7 +458,7 @@ class _MessageDB(_Entity):
458
458
  domain_id: str | None = None,
459
459
  ) -> dict | list | None:
460
460
  """
461
- Get from a Message all or a specific key with its value,
461
+ Get from a Message all or a specific key with its value(s),
462
462
  optionally filtering for a zone or a domain
463
463
 
464
464
  :param msg: a Message to inspect
@@ -500,17 +500,17 @@ class _MessageDB(_Entity):
500
500
  or (idx == SZ_DOMAIN_ID)
501
501
  ), (
502
502
  f"full dict:{msg_dict}, payload:{msg.payload} < Coding error: key='{idx}', val='{val}'"
503
- ) # should not be there (BUG TODO(eb): but it is when using SQLite MessageIndex)
503
+ ) # should not be there (TODO(eb): BUG but occurs when using SQLite MessageIndex)
504
504
 
505
- if key == "*": # from a SQLite wildcard query, return first=only? k,v
506
- return msg_dict
507
- if key:
508
- return msg_dict.get(key)
509
- return {
510
- k: v
511
- for k, v in msg_dict.items()
512
- if k not in ("dhw_idx", SZ_DOMAIN_ID, SZ_ZONE_IDX) and k[:1] != "_"
513
- }
505
+ if (
506
+ key == "*" or not key
507
+ ): # from a SQLite wildcard query, return first=only? k,v
508
+ return {
509
+ k: v
510
+ for k, v in msg_dict.items()
511
+ if k not in ("dhw_idx", SZ_DOMAIN_ID, SZ_ZONE_IDX) and k[:1] != "_"
512
+ }
513
+ return msg_dict.get(key)
514
514
 
515
515
  # SQLite methods, since 0.52.0
516
516
 
@@ -518,7 +518,6 @@ class _MessageDB(_Entity):
518
518
  """
519
519
  Retrieve from the MessageIndex a list of Code keys involving this device.
520
520
 
521
- :param kwargs: not used as of 0.52.0
522
521
  :return: list of Codes or empty list when query returned empty
523
522
  """
524
523
  if self._gwy.msg_db:
@@ -530,7 +529,7 @@ class _MessageDB(_Entity):
530
529
  res: list[Code] = []
531
530
 
532
531
  for rec in self._gwy.msg_db.qry_field(
533
- sql, (self.id[:_ID_SLICE], self.id[:_ID_SLICE])
532
+ sql, (self.id[:_SQL_SLICE], self.id[:_SQL_SLICE])
534
533
  ):
535
534
  _LOGGER.debug("Fetched from index: %s", rec[0])
536
535
  # Example: "Fetched from index: code 1FD4"
@@ -581,7 +580,7 @@ class _MessageDB(_Entity):
581
580
  res = None
582
581
 
583
582
  for rec in self._gwy.msg_db.qry_field(
584
- sql, (vb, self.id[:_ID_SLICE], self.id[:_ID_SLICE], code_qry, key)
583
+ sql, (vb, self.id[:_SQL_SLICE], self.id[:_SQL_SLICE], code_qry, key)
585
584
  ):
586
585
  _LOGGER.debug("Fetched from index: %s", rec)
587
586
  assert isinstance(rec[0], dt) # mypy hint
@@ -605,7 +604,7 @@ class _MessageDB(_Entity):
605
604
 
606
605
  :param code: (optional) a single message Code to use, e.g. 31DA
607
606
  :param key: (optional) message keyword to fetch the value for, e.g. SZ_HUMIDITY or * (wildcard)
608
- :param kwargs: not used as of 0.52.0
607
+ :param kwargs: not used as of 0.52.1
609
608
  :return: a single string or float value or None when qry returned empty
610
609
  """
611
610
  val_msg: dict | list | None = None
@@ -642,7 +641,7 @@ class _MessageDB(_Entity):
642
641
  # """SELECT code from messages WHERE verb in (' I', 'RP') AND (src = ? OR dst = ?)
643
642
  # AND (code = '31DA' OR ...) AND (plk LIKE '%{SZ_FAN_INFO}%' OR ...)""" = 2 params
644
643
  for rec in self._gwy.msg_db.qry_field(
645
- sql, (self.id[:_ID_SLICE], self.id[:_ID_SLICE])
644
+ sql, (self.id[:_SQL_SLICE], self.id[:_SQL_SLICE])
646
645
  ):
647
646
  _pl = self._msgs[Code(rec[0])].payload
648
647
  # add payload dict to res(ults)
@@ -698,7 +697,7 @@ class _MessageDB(_Entity):
698
697
  _msg_dict = { # ? use ctx (context) instead of just the address?
699
698
  m.code: m
700
699
  for m in self._gwy.msg_db.qry(
701
- sql, (self.id[:_ID_SLICE], self.id[:_ID_SLICE])
700
+ sql, (self.id[:_SQL_SLICE], self.id[:_SQL_SLICE])
702
701
  ) # e.g. 01:123456_HW
703
702
  }
704
703
  # if CTL, remove 3150, 3220 heat_demand, both are only stored on children
@@ -774,12 +773,12 @@ class _Discovery(_MessageDB):
774
773
  code: CODES_SCHEMA[code][SZ_NAME]
775
774
  for code in sorted(
776
775
  self._gwy.msg_db.get_rp_codes(
777
- (self.id[:_ID_SLICE], self.id[:_ID_SLICE])
776
+ (self.id[:_SQL_SLICE], self.id[:_SQL_SLICE])
778
777
  )
779
778
  )
780
779
  if self._is_not_deprecated_cmd(code)
781
780
  }
782
- return { # TODO(eb): deprecated since 0.52.0, remove Q1 2026
781
+ return { # TODO(eb): deprecated since 0.52.1, remove Q1 2026
783
782
  code: (CODES_SCHEMA[code][SZ_NAME] if code in CODES_SCHEMA else None)
784
783
  for code in sorted(self._msgz)
785
784
  if self._msgz[code].get(RP) and self._is_not_deprecated_cmd(code)
@@ -806,7 +805,7 @@ class _Discovery(_MessageDB):
806
805
  AND (src = ? OR dst = ?)
807
806
  """
808
807
  for rec in self._gwy.msg_db.qry_field(
809
- sql, (self.id[:_ID_SLICE], self.id[:_ID_SLICE])
808
+ sql, (self.id[:_SQL_SLICE], self.id[:_SQL_SLICE])
810
809
  ):
811
810
  _LOGGER.debug("Fetched OT ctx from index: %s", rec[0])
812
811
  res.append(rec[0])
@@ -937,8 +936,8 @@ class _Discovery(_MessageDB):
937
936
  sql,
938
937
  (
939
938
  task[_SZ_COMMAND].code,
940
- self.tcs.id[:_ID_SLICE],
941
- self.tcs.id[:_ID_SLICE],
939
+ self.tcs.id[:_ID_SLICE], # OK? not _SQL_SLICE?
940
+ self.tcs.id[:_ID_SLICE], # OK? not _SQL_SLICE?
942
941
  ),
943
942
  )[0] # expect 1 Message in returned tuple
944
943
  else: # TODO(eb) remove next Q1 2026
@@ -175,6 +175,7 @@ class Gateway(Engine):
175
175
 
176
176
  # initialize SQLite index, set in _tx/Engine
177
177
  if self._sqlite_index: # TODO(eb): default to ON in Q4 2025
178
+ _LOGGER.info("Ramses RF starts SQLite MessageIndex")
178
179
  self.create_sqlite_message_index() # if activated in ramses_cc > Engine
179
180
 
180
181
  # temporarily turn on discovery, remember original state
@@ -1,4 +1,4 @@
1
1
  """RAMSES RF - a RAMSES-II protocol decoder & analyser (application layer)."""
2
2
 
3
- __version__ = "0.52.0"
3
+ __version__ = "0.52.1"
4
4
  VERSION = __version__
@@ -113,7 +113,7 @@ class Engine:
113
113
  self._include,
114
114
  self._exclude,
115
115
  )
116
- self._sqlite_index = kwargs.pop(SZ_SQLITE_INDEX)
116
+ self._sqlite_index = kwargs.pop(SZ_SQLITE_INDEX, False) # default True?
117
117
  self._kwargs: dict[str, Any] = kwargs # HACK
118
118
 
119
119
  self._engine_lock = Lock() # FIXME: threading lock, or asyncio lock?
@@ -1,4 +1,4 @@
1
1
  """RAMSES RF - a RAMSES-II protocol decoder & analyser (transport layer)."""
2
2
 
3
- __version__ = "0.52.0"
3
+ __version__ = "0.52.1"
4
4
  VERSION = __version__
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes