ramses-rf 0.51.3__tar.gz → 0.51.4__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.
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/PKG-INFO +1 -1
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/version.py +1 -1
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/parsers.py +15 -6
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/ramses.py +1 -1
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/transport.py +74 -11
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/version.py +1 -1
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/rem_fan_ventura.log +19 -4
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_042f.log +3 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_10e0.log +1 -0
- ramses_rf-0.51.4/tests/tests/parsers/code_1f09.log +4 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_1fc9.log +2 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_2210.log +4 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/.github/dependabot.yml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/.github/workflows/check-lint.yml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/.github/workflows/check-test.yml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/.github/workflows/check-type.yml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/.github/workflows/publish-hatch.yml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/.gitignore +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/.pre-commit-config.yaml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/LICENSE +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/README-developers.md +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/README.md +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/client.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/misc/fingerprints.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/misc/ser2net.yaml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/misc/ti_3410/notes.sh +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/misc/ti_3410/ti_3410.fw +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/pyproject.toml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_cli/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_cli/client.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_cli/debug.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_cli/discovery.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_cli/utils/cat_slow.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_cli/utils/convert.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/binding_fsm.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/const.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/database.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/device/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/device/base.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/device/heat.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/device/hvac.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/dispatcher.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/entity_base.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/exceptions.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/gateway.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/helpers.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/py.typed +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/schemas.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/system/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/system/faultlog.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/system/heat.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/system/schedule.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_rf/system/zones.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/address.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/command.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/const.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/exceptions.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/fingerprints.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/frame.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/gateway.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/helpers.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/logger.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/message.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/opentherm.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/packet.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/protocol.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/protocol_fsm.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/py.typed +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/schemas.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/typed_dicts.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/ramses_tx/typing.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/requirements.txt +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/requirements_dev.txt +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/_test_apis_mock.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/_test_mock_faultlog.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/_test_mock_schedule.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/_test_packets_bad.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/_test_performance_WIP.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/_test_state_mgt.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/common.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/mocked_devices/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/mocked_devices/command.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/mocked_devices/const.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/mocked_devices/device_heat.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/mocked_devices/device_hvac.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/deprecated/mocked_devices/transport.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/heat/ctl_bdr_91t.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/heat/dts_ctl_sensor.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/heat/hcw_ctl_sensor.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/heat/rnd_ctl_sensor.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/heat/rnd_ctl_sensor.yaml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/heat/trv_ctl.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/co2_fan_itho.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/co2_fan_itho.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/co2_fan_itho.yaml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/dis_fan_orcon.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/dis_fan_orcon.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/rem_fan_climarad.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/rem_fan_nuaire.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/rem_fan_nuaire.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/rem_fan_nuaire.yaml +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/bindings/hvac/rem_fan_vasco.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/devices/device_02.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/devices/device_04.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/devices/device_10.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/devices/device_13.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/devices/device_22.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_dev_class/hvac/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_trv_actuator_long/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_ufh_circuits/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/app_cntrl/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/trv_actuators/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_000/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_001/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_002/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_003/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_004/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/10e0_xxxx.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/_gather.sh +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/01_EvoTouch_Colour.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/01_Evo_Color.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/01_IONA_RAI_Prototype.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/02_HCE80_V3.10_061117..log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/04_HR92 Radiator Ctrl_.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/08_Jasper_EIM.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/10_R8810A_Bridge.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/10_R8820.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/30_Internet_Gateway.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/31_Jasper_Stat_TXXX.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/heat/34_T87RF2025.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/18_BRDG-02A55.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/18_HRA82.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/20.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/21_CCU-12T20.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/29_VMC-07RP01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/29_VMC-15RP01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/29_VMC-17RP01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/29_VMN-07LM01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/29_VMN-15LF01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/29_VMN-17LMP01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/29_VMS-15C16.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/29_VMS-17HB01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/30_BRDG-02EM23.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/30_BRDG-02JAS01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMC-15RPS34.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMD-15RMS64.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMD-15RMS86.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMD-17RPS01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMN-23LM33.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMN-23LMH23.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMS-15CM17.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMS-23C33.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMS-23HB33.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/32_VMZ-15V13.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/37_VMD-07RPS13.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/37_VMI-15MC01log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/37_VMI-15WSJ53.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/37_VMS-02J52.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/37_VMS-12C39.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/99_CVE-RF.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/fingerprints/hvac/99_VMS-17C01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/helpers.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/logger/packet_in.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/logger/packet_out.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/logs/pkts_bad_000.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/logs/pkts_tba_000.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/logs/system_cache.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parser_helpers/pkt_addr_set.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parser_helpers/pkt_dev_class.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_0001_wip.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_0002.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_0004_wip.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_0005.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_0006.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_0009.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_000a.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_000c.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_000e.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_01ff_wip.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_0418.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_1030.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_1060.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_10d0.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_1260.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_1298.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_12a0.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_12c0.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_1300.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22c9.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22d0.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22d9.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22e0.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22e5.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22e9.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22f1.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22f2.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22f3.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22f4.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_22f7.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_2309.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_2349.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_2411_wip.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_2e04.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_2e10_wip.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_30c9.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_3110_wip.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_3120.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_313e_wip.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_3150.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_31d9.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_31da.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_3200.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_3210.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_3220.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_3222.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_3ef0_wip.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_3ef1_wip.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_4e01.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_4e02.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_4e04.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/parsers/code_4e15.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schedules/_sched_002/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schedules/_sched_002/schedule.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schedules/sched_001/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schedules/sched_001/schedule.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schedules/sched_dhw/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schedules/sched_dhw/schedule.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/jsn_files/schema_100.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/jsn_files/schema_101.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/jsn_files/schema_102.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/jsn_files/schema_103.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/jsn_files/schema_104.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/jsn_files/schema_105.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/jsn_files/schema_108.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_000.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_000.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_001.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_001.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_002.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_002.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_010.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_010.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_011.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_011.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_012.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_012.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_013.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_013.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_014.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_014.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_300.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_300.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_301.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_301.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_302.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_302.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_303.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_303.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_304.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_304.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_310.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/schemas/log_files/schema_310.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/_heat_trv_00/config.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/_heat_trv_00/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/_heat_trv_00/schema.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/_hvac_nuaire/config.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/_hvac_nuaire/known_list.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/_hvac_nuaire/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/_hvac_nuaire/schema.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/_hvac_nuaire/status.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_otb_00/config.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_otb_00/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_otb_00/schema.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_simple/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_simple/schema.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_ufc_00/config.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_ufc_00/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_ufc_01/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_zxdavb/config.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_zxdavb/known_list.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_zxdavb/packet.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/systems/heat_zxdavb/schema.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_api_faultlog.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_api_schedule.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_apis_binding.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_apis_common.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_apis_heat.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_apis_hvac.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_cli_utility.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_devices.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_eavesdrop_dev_class.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_eavesdrop_schema.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_helpers.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_parser_helpers.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_parsers.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_ramses_schema.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_schema_bits.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_schemas.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_systems.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/test_vol_schemas.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/configs/config_heat.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/configs/config_hvac.json +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/conftest.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/logs/test_api_faultlog.log +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/test_api_faultlog.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/test_api_schedule.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/test_binding_fsm.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/test_create_stack.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/test_hgi_behaviors.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/test_protocol_fsm.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/test_use_regex.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/test_virt_network.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/virtual_rf/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/virtual_rf/const.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/virtual_rf/helpers.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_rf/virtual_rf/virtual_rf.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_tx/__init__.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests_tx/test_command.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/wip/_test_eavesdrop_dhw_sensor.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/wip/_test_eavesdrop_htg_control.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/wip/_test_eavesdrop_ufc_circuits.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/wip/_test_eavesdrop_zone_sensors.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/wip/_test_eavesdrop_zone_type.py +0 -0
- {ramses_rf-0.51.3 → ramses_rf-0.51.4}/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.51.
|
|
3
|
+
Version: 0.51.4
|
|
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
|
|
@@ -1382,18 +1382,27 @@ def parser_1fd4(payload: str, msg: Message) -> PayDictT._1FD4:
|
|
|
1382
1382
|
def parser_2210(payload: str, msg: Message) -> dict[str, Any]:
|
|
1383
1383
|
try:
|
|
1384
1384
|
assert msg.verb in (RP, I_) or payload == "00"
|
|
1385
|
-
assert payload[10:12] == payload[38:40] and payload[
|
|
1385
|
+
assert payload[10:12] == payload[38:40] and payload[
|
|
1386
|
+
10:12
|
|
1387
|
+
] in ( # auto requested fan speed step?
|
|
1386
1388
|
"58",
|
|
1389
|
+
"64",
|
|
1387
1390
|
"96",
|
|
1388
1391
|
"FF",
|
|
1389
|
-
), f"expected (58|96|FF), not {payload[10:12]}"
|
|
1392
|
+
), f"expected req.speed? (58|64|96|FF), not {payload[10:12]}"
|
|
1390
1393
|
assert payload[20:22] == payload[48:50] and payload[20:22] in (
|
|
1391
1394
|
"00",
|
|
1392
1395
|
"03",
|
|
1393
|
-
), f"expected (00|03), not {payload[
|
|
1394
|
-
assert payload[78:80] in ("00", "02"),
|
|
1395
|
-
|
|
1396
|
-
|
|
1396
|
+
), f"expected byte 10 (00|03), not {payload[20:22]}"
|
|
1397
|
+
assert payload[78:80] in ("00", "02"), (
|
|
1398
|
+
f"expected byte 39 (00|02), not {payload[78:80]}"
|
|
1399
|
+
)
|
|
1400
|
+
assert payload[80:82] in ("01", "08"), (
|
|
1401
|
+
f"expected byte 40 (01|08), not {payload[80:82]}"
|
|
1402
|
+
)
|
|
1403
|
+
assert payload[82:] in ("00", "40"), (
|
|
1404
|
+
f"expected byte 41- (00|40), not {payload[82:]}"
|
|
1405
|
+
)
|
|
1397
1406
|
|
|
1398
1407
|
except AssertionError as err:
|
|
1399
1408
|
_LOGGER.warning(f"{msg!r} < {_INFORM_DEV_MSG} ({err})")
|
|
@@ -1059,7 +1059,7 @@ _DEV_KLASSES_HVAC: dict[str, dict[Code, dict[VerbT, Any]]] = {
|
|
|
1059
1059
|
Code._12C8: {I_: {}},
|
|
1060
1060
|
Code._1470: {RP: {}},
|
|
1061
1061
|
Code._1F09: {I_: {}, RP: {}},
|
|
1062
|
-
Code._1FC9: {W_: {}},
|
|
1062
|
+
Code._1FC9: {I_: {}, W_: {}},
|
|
1063
1063
|
Code._2210: {I_: {}, RP: {}},
|
|
1064
1064
|
Code._22E0: {RP: {}},
|
|
1065
1065
|
Code._22E5: {RP: {}},
|
|
@@ -778,7 +778,8 @@ class FileTransport(_ReadTransport, _FileTransportAbstractor):
|
|
|
778
778
|
while not self._reading:
|
|
779
779
|
await asyncio.sleep(0.001)
|
|
780
780
|
self._frame_read(dtm_str, pkt_line)
|
|
781
|
-
|
|
781
|
+
await asyncio.sleep(0)
|
|
782
|
+
# NOTE: instable without, big performance penalty if delay >0
|
|
782
783
|
|
|
783
784
|
elif isinstance(self._pkt_source, str): # file_name, used in client parse
|
|
784
785
|
# open file file_name before reading
|
|
@@ -794,7 +795,8 @@ class FileTransport(_ReadTransport, _FileTransportAbstractor):
|
|
|
794
795
|
] != "#":
|
|
795
796
|
self._frame_read(dtm_pkt_line[:26], dtm_pkt_line[27:])
|
|
796
797
|
# this is where the parsing magic happens!
|
|
797
|
-
|
|
798
|
+
await asyncio.sleep(0)
|
|
799
|
+
# NOTE: instable without, big performance penalty if delay >0
|
|
798
800
|
except FileNotFoundError as err:
|
|
799
801
|
_LOGGER.warning(f"Correct the packet file name; {err}")
|
|
800
802
|
elif isinstance(self._pkt_source, TextIOWrapper): # used by client monitor
|
|
@@ -804,7 +806,8 @@ class FileTransport(_ReadTransport, _FileTransportAbstractor):
|
|
|
804
806
|
# can be blank lines in annotated log files
|
|
805
807
|
if (dtm_pkt_line := dtm_pkt_line.strip()) and dtm_pkt_line[:1] != "#":
|
|
806
808
|
self._frame_read(dtm_pkt_line[:26], dtm_pkt_line[27:])
|
|
807
|
-
await asyncio.sleep(0)
|
|
809
|
+
await asyncio.sleep(0)
|
|
810
|
+
# NOTE: instable without, big performance penalty if delay >0
|
|
808
811
|
else:
|
|
809
812
|
raise exc.TransportSourceInvalid(
|
|
810
813
|
f"Packet source is not dict, TextIOWrapper or str: {self._pkt_source:!r}"
|
|
@@ -1035,6 +1038,7 @@ class MqttTransport(_FullTransport, _MqttTransportAbstractor):
|
|
|
1035
1038
|
|
|
1036
1039
|
self._connected = False
|
|
1037
1040
|
self._connecting = False
|
|
1041
|
+
self._connection_established = False # Track if initial connection was made
|
|
1038
1042
|
self._extra[SZ_IS_EVOFW3] = True
|
|
1039
1043
|
|
|
1040
1044
|
# Reconnection settings
|
|
@@ -1136,8 +1140,21 @@ class MqttTransport(_FullTransport, _MqttTransportAbstractor):
|
|
|
1136
1140
|
self._reconnect_task.cancel()
|
|
1137
1141
|
self._reconnect_task = None
|
|
1138
1142
|
|
|
1143
|
+
# Subscribe to base topic to see 'online' messages
|
|
1139
1144
|
self.client.subscribe(self._topic_base) # hope to see 'online' message
|
|
1140
1145
|
|
|
1146
|
+
# Also subscribe to data topics with wildcard for reliability after reconnect
|
|
1147
|
+
# This ensures we get data even if we miss the 'online' message
|
|
1148
|
+
if self._topic_base.endswith("/+"):
|
|
1149
|
+
data_wildcard = self._topic_base.replace("/+", "/+/rx")
|
|
1150
|
+
self.client.subscribe(data_wildcard, qos=self._mqtt_qos)
|
|
1151
|
+
_LOGGER.debug(f"Subscribed to data wildcard: {data_wildcard}")
|
|
1152
|
+
|
|
1153
|
+
# If we already have specific topics, re-subscribe to them
|
|
1154
|
+
if hasattr(self, "_topic_sub") and self._topic_sub:
|
|
1155
|
+
self.client.subscribe(self._topic_sub, qos=self._mqtt_qos)
|
|
1156
|
+
_LOGGER.debug(f"Re-subscribed to specific topic: {self._topic_sub}")
|
|
1157
|
+
|
|
1141
1158
|
def _on_connect_fail(
|
|
1142
1159
|
self,
|
|
1143
1160
|
client: mqtt.Client,
|
|
@@ -1160,14 +1177,27 @@ class MqttTransport(_FullTransport, _MqttTransportAbstractor):
|
|
|
1160
1177
|
) -> None:
|
|
1161
1178
|
_LOGGER.warning(f"MQTT disconnected: {reason_code.getName()}")
|
|
1162
1179
|
|
|
1180
|
+
was_connected = self._connected
|
|
1163
1181
|
self._connected = False
|
|
1164
1182
|
|
|
1183
|
+
# If we were previously connected and had established communication,
|
|
1184
|
+
# notify that the device is now offline
|
|
1185
|
+
if was_connected and hasattr(self, "_topic_sub") and self._topic_sub:
|
|
1186
|
+
device_topic = self._topic_sub[:-3] # Remove "/rx" suffix
|
|
1187
|
+
_LOGGER.warning(f"{self}: the MQTT device is offline: {device_topic}")
|
|
1188
|
+
|
|
1189
|
+
# Pause writing since device is offline
|
|
1190
|
+
if hasattr(self, "_protocol"):
|
|
1191
|
+
self._protocol.pause_writing()
|
|
1192
|
+
|
|
1165
1193
|
# Only attempt reconnection if we didn't deliberately disconnect
|
|
1166
1194
|
if not self._closing and not reason_code.is_failure:
|
|
1167
1195
|
# This was an unexpected disconnect, schedule reconnection
|
|
1196
|
+
_LOGGER.debug("MQTT unexpected disconnect - scheduling reconnection")
|
|
1168
1197
|
self._schedule_reconnect()
|
|
1169
1198
|
elif reason_code.is_failure and not self._closing:
|
|
1170
1199
|
# Connection failed, also schedule reconnection
|
|
1200
|
+
_LOGGER.debug("MQTT connection failed - scheduling reconnection")
|
|
1171
1201
|
self._schedule_reconnect()
|
|
1172
1202
|
|
|
1173
1203
|
def _create_connection(self, msg: mqtt.MQTTMessage) -> None:
|
|
@@ -1191,7 +1221,12 @@ class MqttTransport(_FullTransport, _MqttTransportAbstractor):
|
|
|
1191
1221
|
|
|
1192
1222
|
self.client.subscribe(self._topic_sub, qos=self._mqtt_qos)
|
|
1193
1223
|
|
|
1194
|
-
|
|
1224
|
+
# Only call connection_made on first connection, not reconnections
|
|
1225
|
+
if not self._connection_established:
|
|
1226
|
+
self._connection_established = True
|
|
1227
|
+
self._make_connection(gwy_id=msg.topic[-9:]) # type: ignore[arg-type]
|
|
1228
|
+
else:
|
|
1229
|
+
_LOGGER.info("MQTT reconnected - protocol connection already established")
|
|
1195
1230
|
|
|
1196
1231
|
# NOTE: self._frame_read() invoked from here
|
|
1197
1232
|
def _on_message(
|
|
@@ -1211,23 +1246,51 @@ class MqttTransport(_FullTransport, _MqttTransportAbstractor):
|
|
|
1211
1246
|
_LOGGER.info("Rx: %s", msg.payload)
|
|
1212
1247
|
|
|
1213
1248
|
if msg.topic[-3:] != "/rx": # then, e.g. 'RAMSES/GATEWAY/18:017804'
|
|
1214
|
-
if msg.payload == b"offline"
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1249
|
+
if msg.payload == b"offline":
|
|
1250
|
+
# Check if this offline message is for our current device
|
|
1251
|
+
if (
|
|
1252
|
+
hasattr(self, "_topic_sub")
|
|
1253
|
+
and self._topic_sub
|
|
1254
|
+
and msg.topic == self._topic_sub[:-3]
|
|
1255
|
+
) or not hasattr(self, "_topic_sub"):
|
|
1256
|
+
_LOGGER.warning(
|
|
1257
|
+
f"{self}: the ESP device is offline (via LWT): {msg.topic}"
|
|
1258
|
+
)
|
|
1259
|
+
# Don't set _connected = False here - that's for MQTT connection, not ESP device
|
|
1260
|
+
if hasattr(self, "_protocol"):
|
|
1261
|
+
self._protocol.pause_writing()
|
|
1220
1262
|
|
|
1221
1263
|
# BUG: using create task (self._loop.ct() & asyncio.ct()) causes the
|
|
1222
1264
|
# BUG: event look to close early
|
|
1223
1265
|
elif msg.payload == b"online":
|
|
1224
1266
|
_LOGGER.info(
|
|
1225
|
-
f"{self}: the
|
|
1267
|
+
f"{self}: the ESP device is online (via status): {msg.topic}"
|
|
1226
1268
|
)
|
|
1227
1269
|
self._create_connection(msg)
|
|
1228
1270
|
|
|
1229
1271
|
return
|
|
1230
1272
|
|
|
1273
|
+
# Handle data messages - if we don't have connection established yet but get data,
|
|
1274
|
+
# we can infer the gateway from the topic
|
|
1275
|
+
if not self._connection_established and msg.topic.endswith("/rx"):
|
|
1276
|
+
# Extract gateway ID from topic like "RAMSES/GATEWAY/18:123456/rx"
|
|
1277
|
+
topic_parts = msg.topic.split("/")
|
|
1278
|
+
if len(topic_parts) >= 3 and topic_parts[-2] not in ("+", "*"):
|
|
1279
|
+
gateway_id = topic_parts[-2] # Should be something like "18:123456"
|
|
1280
|
+
_LOGGER.info(
|
|
1281
|
+
f"Inferring gateway connection from data topic: {gateway_id}"
|
|
1282
|
+
)
|
|
1283
|
+
|
|
1284
|
+
# Set up topics and connection
|
|
1285
|
+
self._topic_pub = f"{'/'.join(topic_parts[:-1])}/tx"
|
|
1286
|
+
self._topic_sub = msg.topic
|
|
1287
|
+
self._extra[SZ_ACTIVE_HGI] = gateway_id
|
|
1288
|
+
|
|
1289
|
+
# Mark as connected and establish protocol connection
|
|
1290
|
+
self._connected = True
|
|
1291
|
+
self._connection_established = True
|
|
1292
|
+
self._make_connection(gwy_id=gateway_id) # type: ignore[arg-type]
|
|
1293
|
+
|
|
1231
1294
|
try:
|
|
1232
1295
|
payload = json.loads(msg.payload)
|
|
1233
1296
|
except json.JSONDecodeError:
|
|
@@ -6,15 +6,30 @@
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
####################################################################################################
|
|
9
|
-
#
|
|
9
|
+
# 1A. For reference, 10E0s (if any), oem_code='65' (Note: REM/FAN won't RP|10E0):
|
|
10
10
|
2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote
|
|
11
11
|
2024-10-09T11:50:24.287879 123 I --- 37:153226 63:262142 --:------ 10E0 038 000001C8830C0A65FEFFFFFFFFFF110C07E4564D442D30375250533133000000000000000000 # {'description': 'VMD-07RPS13', 'manufacturer_sub_id': 'C8', 'product_id': '83', 'date_1': '2020-12-17', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad VenturaV1x
|
|
12
|
-
|
|
12
|
+
2025-08-22T01:24:57.945961 058 I --- 18:154951 63:262142 --:------ 10E0 038 000001C8490F0065FEFEFFFFFFFF120607E4425244472D303252313300000000000000000000 # {'description': 'BRDG-02R13', 'manufacturer_sub_id': 'C8', 'product_id': '49', 'date_1': '2020-06-18', 'date_2': '0000-00-00', 'oem_code': '65'} # Airios RF Bridge, set for ClimaRad oem 65
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
####################################################################################################
|
|
16
|
-
#
|
|
17
|
-
#
|
|
16
|
+
# 2A. The handshake - Ventura/slave to RF Bridge (oem 65)
|
|
17
|
+
# Ventura in binding mode: press 2 buttons above Auto for 4 secs > flashing red symbol
|
|
18
|
+
# RF Bridge only active after 15 minutes power on (firmware update period)
|
|
19
|
+
2025-08-17T15:43:38.086338 064 I --- 18:154951 --:------ 18:154951 1FC9 018 0022F44A5D476510E04A5D47001FC94A5D47 # {'phase': 'offer', 'bindings': [['00', '22F4', '18:154951'], ['65', '10E0', '18:154951'], ['00', '1FC9', '18:154951']]}
|
|
20
|
+
|
|
21
|
+
2025-08-17T15:43:39.118990 061 W --- 37:153226 18:154951 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]}
|
|
22
|
+
# system sync from bridge, unrelated?:
|
|
23
|
+
2025-08-17T15:44:55.418472 061 I --- 18:154951 --:------ 18:154951 1F09 003 0006B3 # {}
|
|
24
|
+
# second 1FC9 from slave
|
|
25
|
+
2025-08-17T15:46:04.045829 060 I --- 37:153226 --:------ 37:153226 1FC9 030 0031D996568A0031E096568A002E1096568A6510E096568A001FC996568A # {}
|
|
26
|
+
|
|
27
|
+
# A subsequent slave|I|10E0 *is required* for a successful bind???:
|
|
28
|
+
2025-08-17T15:46:40.363292 059 I --- 37:153226 63:262142 --:------ 10E0 038 000001C8830C0A65FEFFFFFFFFFF110C07E4564D442D30375250533133000000000000000000 # {'oem_code': '65', 'manufacturer_sub_id': 'C8', 'product_id': '83', 'date_1': '2020-12-17', 'date_2': '0000-00-00', 'description': 'VMD-07RPS13'}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# 2B. The handshake - REM faked in ramses_rf to Ventura (NB: FAN|W|1FC9|00):
|
|
32
|
+
# actual REM 1FC9 packet gets no response. Ventura is known to only bind to a CO2 sensor or an RF Bridge (oem 65)
|
|
18
33
|
2024-11-09T18:33:29.744238 ... I --- 29:123160 --:------ 29:123160 1FC9 018 0022F175E1180010E075E118001FC975E118
|
|
19
34
|
# extended 1FC9. Added 1298 and 22F4, got response from HRU
|
|
20
35
|
2024-11-09T18:32:41.837359 000 I --- 29:123160 --:------ 29:123160 1FC9 024 00129875E1180022F175E1180022F475E118001FC975E118 # {}
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
2024-01-01T12:00:00.000000 --- I --- 32:168090 --:------ 32:168090 042F 009 000000100F00105050
|
|
10
10
|
2024-01-01T12:00:00.000000 --- I --- 32:166025 --:------ 32:166025 042F 009 00050E0B0C00111470
|
|
11
11
|
|
|
12
|
+
# Airios RF Bridge BRDG-02R13
|
|
13
|
+
2025-08-22T01:24:57.744252 058 I --- 18:154951 --:------ 18:154951 042F 009 0003020B0B000F0000 # {'counter_1': '0x0302', 'counter_3': '0x0B0B', 'counter_5': '0x000F', 'unknown_7': '0x0000'}
|
|
14
|
+
|
|
12
15
|
|
|
13
16
|
### HVAC, see: https://github.com/ramses-rf/ramses_rf/pull/135
|
|
14
17
|
|
|
@@ -100,6 +100,7 @@
|
|
|
100
100
|
2022-11-03T22:50:34.060486 ... I --- 37:255297 63:262142 --:------ 10E0 038 00000100290A0201FFFFFFFFFFFF140407E5564D532D31324842313600000000000000000000 # {'description': 'VMS-12HB16', 'manufacturer_sub_id': '00', 'product_id': '29', 'date_2': '0000-00-00', 'date_1': '2021-04-20', 'oem_code': '01'} #
|
|
101
101
|
|
|
102
102
|
# oem_code '65' - ClimaRad HVAC
|
|
103
|
+
2025-08-22T01:24:57.945961 058 I --- 18:154951 63:262142 --:------ 10E0 038 000001C8490F0065FEFEFFFFFFFF120607E4425244472D303252313300000000000000000000 # {'description': 'BRDG-02R13', 'manufacturer_sub_id': 'C8', 'product_id': '49', 'date_1': '2020-06-18', 'date_2': '0000-00-00', 'oem_code': '65'} # Airios RF Bridge, set for ClimaRad oem 65
|
|
103
104
|
2024-10-09T11:50:24.287879 123 I --- 37:153226 63:262142 --:------ 10E0 038 000001C8830C0A65FEFFFFFFFFFF110C07E4564D442D30375250533133000000000000000000 # {'description': 'VMD-07RPS13', 'manufacturer_sub_id': 'C8', 'product_id': '83', 'date_1': '2020-12-17', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad VenturaV1x
|
|
104
105
|
2024-10-16T18:43:52.761437 087 I --- 29:099029 63:262142 --:------ 10E0 029 000001C81D150765FFFFFFFFFFFFFFFFFFFF564D432D30375250303100 # {'description': 'VMC-07RP01', 'manufacturer_sub_id': 'C8', 'product_id': '1D', 'date_1': '0000-00-00', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad MiniBox Fan
|
|
105
106
|
2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote
|
|
@@ -123,3 +123,5 @@
|
|
|
123
123
|
2024-11-09T18:33:29.759645 ... W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set?
|
|
124
124
|
2024-11-09T18:33:29.763814 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]}
|
|
125
125
|
2024-11-11T14:36:41.745628 ... I --- 29:123160 37:153226 --:------ 1FC9 006 001FC975E118 # {'phase': 'confirm', 'bindings': [['00', '1FC9', '29:123160']]} # made up by ramses_rf, config was "21"
|
|
126
|
+
# ClimaRad Ventura V1x reply binding to RF Bridge
|
|
127
|
+
2025-08-17T14:36:00.000000 ... I --- 37:153226 --:------ 37:153226 1FC9 030 0031D996568A0031E096568A002E1096568A6510E096568A001FC996568A # {'phase': 'offer', 'bindings': [['00', '31D9', '37:153226'], ['00', '31E0', '37:153226'], ['00', '2E10', '37:153226'], ['65', '10E0', '37:153226'], ['00', '1FC9', '37:153226']]}
|
|
@@ -15,3 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
# Orcon RF15 control unit (log from remyderuysscher via ramses_cc issue 65)
|
|
17
17
|
2022-06-26T00:00:00.000001 ... RP --- 32:155021 18:071957 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000020800 # {'unknown_10': 'FF', 'unknown_20': '00', 'unknown_78': '02', 'unknown_80': '08', 'unknown_82': '00'}
|
|
18
|
+
# Orcon HRC-400-EcoMax (log from AbeltjeNL via ramses_rf issue 247) unknown_10=64 when showering/auto, normally=FF
|
|
19
|
+
2025-08-19T19:39:30.000000 074 RP --- 32:139370 18:025584 --:------ 2210 042 00FF00FFFF640000000003FFFFFFFFFF00FFFF640000000003FFFFFFFFFFFFFFFF000000000000000800 # {'unknown_10': '64', 'unknown_20': '03', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
20
|
+
2025-08-19T19:39:30.910438 074 RP --- 32:139370 18:025584 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000000800 # {'unknown_10': 'FF', 'unknown_20': '00', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
21
|
+
2025-08-19T20:09:31.032118 074 RP --- 32:139370 18:025584 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000000800 # {'unknown_10': 'FF', 'unknown_20': '00', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|
{ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_trv_actuator_long/packet.log
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ramses_rf-0.51.3 → ramses_rf-0.51.4}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/packet.log
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|