ramses-rf 0.51.1__tar.gz → 0.51.3__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.1 → ramses_rf-0.51.3}/PKG-INFO +1 -1
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/device/hvac.py +24 -31
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/entity_base.py +4 -1
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/version.py +1 -1
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/version.py +1 -1
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_apis_hvac.py +73 -3
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/.github/dependabot.yml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/.github/workflows/check-lint.yml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/.github/workflows/check-test.yml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/.github/workflows/check-type.yml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/.github/workflows/publish-hatch.yml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/.gitignore +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/.pre-commit-config.yaml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/LICENSE +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/README-developers.md +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/README.md +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/client.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/misc/fingerprints.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/misc/ser2net.yaml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/misc/ti_3410/notes.sh +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/misc/ti_3410/ti_3410.fw +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/pyproject.toml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_cli/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_cli/client.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_cli/debug.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_cli/discovery.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_cli/utils/cat_slow.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_cli/utils/convert.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/binding_fsm.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/const.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/database.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/device/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/device/base.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/device/heat.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/dispatcher.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/exceptions.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/gateway.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/helpers.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/py.typed +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/schemas.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/system/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/system/faultlog.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/system/heat.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/system/schedule.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_rf/system/zones.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/address.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/command.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/const.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/exceptions.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/fingerprints.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/frame.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/gateway.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/helpers.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/logger.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/message.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/opentherm.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/packet.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/parsers.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/protocol.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/protocol_fsm.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/py.typed +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/ramses.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/schemas.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/transport.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/typed_dicts.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/ramses_tx/typing.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/requirements.txt +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/requirements_dev.txt +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/_test_apis_mock.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/_test_mock_faultlog.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/_test_mock_schedule.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/_test_packets_bad.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/_test_performance_WIP.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/_test_state_mgt.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/common.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/mocked_devices/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/mocked_devices/command.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/mocked_devices/const.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/mocked_devices/device_heat.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/mocked_devices/device_hvac.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/deprecated/mocked_devices/transport.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/heat/ctl_bdr_91t.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/heat/dts_ctl_sensor.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/heat/hcw_ctl_sensor.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/heat/rnd_ctl_sensor.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/heat/rnd_ctl_sensor.yaml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/heat/trv_ctl.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/co2_fan_itho.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/co2_fan_itho.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/co2_fan_itho.yaml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/dis_fan_orcon.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/dis_fan_orcon.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/rem_fan_climarad.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/rem_fan_nuaire.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/rem_fan_nuaire.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/rem_fan_nuaire.yaml +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/rem_fan_vasco.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/bindings/hvac/rem_fan_ventura.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/devices/device_02.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/devices/device_04.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/devices/device_10.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/devices/device_13.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/devices/device_22.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_dev_class/hvac/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_trv_actuator_long/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_ufh_circuits/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/app_cntrl/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/trv_actuators/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_000/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_001/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_002/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_003/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_004/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/10e0_xxxx.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/_gather.sh +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/01_EvoTouch_Colour.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/01_Evo_Color.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/01_IONA_RAI_Prototype.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/02_HCE80_V3.10_061117..log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/04_HR92 Radiator Ctrl_.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/08_Jasper_EIM.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/10_R8810A_Bridge.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/10_R8820.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/30_Internet_Gateway.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/31_Jasper_Stat_TXXX.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/heat/34_T87RF2025.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/18_BRDG-02A55.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/18_HRA82.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/20.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/21_CCU-12T20.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/29_VMC-07RP01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/29_VMC-15RP01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/29_VMC-17RP01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/29_VMN-07LM01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/29_VMN-15LF01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/29_VMN-17LMP01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/29_VMS-15C16.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/29_VMS-17HB01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/30_BRDG-02EM23.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/30_BRDG-02JAS01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMC-15RPS34.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMD-15RMS64.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMD-15RMS86.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMD-17RPS01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMN-23LM33.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMN-23LMH23.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMS-15CM17.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMS-23C33.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMS-23HB33.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/32_VMZ-15V13.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/37_VMD-07RPS13.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/37_VMI-15MC01log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/37_VMI-15WSJ53.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/37_VMS-02J52.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/37_VMS-12C39.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/99_CVE-RF.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/fingerprints/hvac/99_VMS-17C01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/helpers.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/logger/packet_in.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/logger/packet_out.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/logs/pkts_bad_000.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/logs/pkts_tba_000.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/logs/system_cache.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parser_helpers/pkt_addr_set.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parser_helpers/pkt_dev_class.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_0001_wip.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_0002.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_0004_wip.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_0005.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_0006.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_0009.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_000a.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_000c.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_000e.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_01ff_wip.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_0418.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_042f.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_1030.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_1060.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_10d0.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_10e0.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_1260.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_1298.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_12a0.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_12c0.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_1300.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_1fc9.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_2210.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22c9.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22d0.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22d9.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22e0.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22e5.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22e9.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22f1.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22f2.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22f3.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22f4.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_22f7.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_2309.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_2349.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_2411_wip.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_2e04.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_2e10_wip.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_30c9.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_3110_wip.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_3120.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_313e_wip.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_3150.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_31d9.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_31da.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_3200.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_3210.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_3220.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_3222.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_3ef0_wip.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_3ef1_wip.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_4e01.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_4e02.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_4e04.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/parsers/code_4e15.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schedules/_sched_002/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schedules/_sched_002/schedule.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schedules/sched_001/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schedules/sched_001/schedule.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schedules/sched_dhw/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schedules/sched_dhw/schedule.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/jsn_files/schema_100.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/jsn_files/schema_101.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/jsn_files/schema_102.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/jsn_files/schema_103.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/jsn_files/schema_104.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/jsn_files/schema_105.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/jsn_files/schema_108.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_000.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_000.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_001.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_001.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_002.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_002.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_010.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_010.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_011.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_011.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_012.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_012.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_013.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_013.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_014.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_014.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_300.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_300.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_301.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_301.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_302.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_302.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_303.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_303.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_304.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_304.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_310.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/schemas/log_files/schema_310.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/_heat_trv_00/config.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/_heat_trv_00/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/_heat_trv_00/schema.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/_hvac_nuaire/config.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/_hvac_nuaire/known_list.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/_hvac_nuaire/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/_hvac_nuaire/schema.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/_hvac_nuaire/status.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_otb_00/config.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_otb_00/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_otb_00/schema.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_simple/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_simple/schema.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_ufc_00/config.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_ufc_00/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_ufc_01/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_zxdavb/config.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_zxdavb/known_list.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_zxdavb/packet.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/systems/heat_zxdavb/schema.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_api_faultlog.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_api_schedule.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_apis_binding.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_apis_common.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_apis_heat.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_cli_utility.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_devices.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_eavesdrop_dev_class.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_eavesdrop_schema.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_helpers.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_parser_helpers.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_parsers.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_ramses_schema.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_schema_bits.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_schemas.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_systems.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/test_vol_schemas.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/configs/config_heat.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/configs/config_hvac.json +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/conftest.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/logs/test_api_faultlog.log +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/test_api_faultlog.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/test_api_schedule.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/test_binding_fsm.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/test_create_stack.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/test_hgi_behaviors.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/test_protocol_fsm.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/test_use_regex.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/test_virt_network.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/virtual_rf/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/virtual_rf/const.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/virtual_rf/helpers.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_rf/virtual_rf/virtual_rf.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_tx/__init__.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests_tx/test_command.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/wip/_test_eavesdrop_dhw_sensor.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/wip/_test_eavesdrop_htg_control.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/wip/_test_eavesdrop_ufc_circuits.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/wip/_test_eavesdrop_zone_sensors.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/wip/_test_eavesdrop_zone_type.py +0 -0
- {ramses_rf-0.51.1 → ramses_rf-0.51.3}/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.3
|
|
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
|
|
@@ -378,16 +378,11 @@ class HvacVentilator(FilterChange): # FAN: RP/31DA, I/31D[9A]
|
|
|
378
378
|
@property
|
|
379
379
|
def bypass_position(self) -> float | str | None:
|
|
380
380
|
"""
|
|
381
|
-
Position info is found in 22F7 and in 31DA.
|
|
381
|
+
Position info is found in 22F7 and in 31DA. The most recent packet is returned.
|
|
382
382
|
:return: bypass position as percentage: 0.0 (closed) or 1.0 (open), on error: "x_faulted"
|
|
383
383
|
"""
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
if v is not None: # skip none (to fetch other code)
|
|
387
|
-
assert isinstance(v, (float | str))
|
|
388
|
-
return v
|
|
389
|
-
# if both packets exist and both have the key, return the most recent
|
|
390
|
-
return None
|
|
384
|
+
# if both packets exist and both have the key, returns the most recent
|
|
385
|
+
return self._msg_value((Code._22F7, Code._31DA), key=SZ_BYPASS_POSITION)
|
|
391
386
|
|
|
392
387
|
@property
|
|
393
388
|
def bypass_state(self) -> str | None:
|
|
@@ -426,13 +421,6 @@ class HvacVentilator(FilterChange): # FAN: RP/31DA, I/31D[9A]
|
|
|
426
421
|
|
|
427
422
|
@property
|
|
428
423
|
def exhaust_temp(self) -> float | None:
|
|
429
|
-
if Code._12A0 in self._msgs and isinstance(
|
|
430
|
-
self._msgs[Code._12A0].payload, list
|
|
431
|
-
): # FAN Ventura sends RH/temps as a list, use element [2] for exhaust temp
|
|
432
|
-
if v := self._msgs[Code._12A0].payload[2].get(SZ_TEMPERATURE):
|
|
433
|
-
assert isinstance(v, (float | type(None)))
|
|
434
|
-
return v
|
|
435
|
-
return None
|
|
436
424
|
return self._msg_value(Code._31DA, key=SZ_EXHAUST_TEMP)
|
|
437
425
|
|
|
438
426
|
@property
|
|
@@ -482,32 +470,24 @@ class HvacVentilator(FilterChange): # FAN: RP/31DA, I/31D[9A]
|
|
|
482
470
|
"""
|
|
483
471
|
if Code._12A0 in self._msgs and isinstance(
|
|
484
472
|
self._msgs[Code._12A0].payload, list
|
|
485
|
-
): # FAN Ventura sends a list
|
|
473
|
+
): # FAN Ventura sends RH/temps as a list; element [0] contains indoor_hum
|
|
486
474
|
if v := self._msgs[Code._12A0].payload[0].get(SZ_INDOOR_HUMIDITY):
|
|
487
475
|
assert isinstance(v, (float | type(None)))
|
|
488
476
|
return v
|
|
489
|
-
|
|
490
|
-
for code in [c for c in (Code._12A0, Code._31DA) if c in self._msgs]:
|
|
491
|
-
if v := self._msgs[code].payload.get(SZ_INDOOR_HUMIDITY):
|
|
492
|
-
if v is not None: # skip none (to check the other code)
|
|
493
|
-
assert isinstance(v, float)
|
|
494
|
-
return v
|
|
495
|
-
return None
|
|
477
|
+
return self._msg_value((Code._12A0, Code._31DA), key=SZ_INDOOR_HUMIDITY)
|
|
496
478
|
|
|
497
479
|
@property
|
|
498
480
|
def indoor_temp(self) -> float | None:
|
|
481
|
+
return self._msg_value(Code._31DA, key=SZ_INDOOR_TEMP)
|
|
482
|
+
|
|
483
|
+
@property
|
|
484
|
+
def outdoor_humidity(self) -> float | None:
|
|
499
485
|
if Code._12A0 in self._msgs and isinstance(
|
|
500
486
|
self._msgs[Code._12A0].payload, list
|
|
501
|
-
): # FAN Ventura sends RH/temps as a list; element [
|
|
502
|
-
if v := self._msgs[Code._12A0].payload[
|
|
487
|
+
): # FAN Ventura sends RH/temps as a list; element [1] contains outdoor_hum
|
|
488
|
+
if v := self._msgs[Code._12A0].payload[1].get(SZ_OUTDOOR_HUMIDITY):
|
|
503
489
|
assert isinstance(v, (float | type(None)))
|
|
504
490
|
return v
|
|
505
|
-
else:
|
|
506
|
-
return self._msg_value(Code._31DA, key=SZ_INDOOR_TEMP)
|
|
507
|
-
return None
|
|
508
|
-
|
|
509
|
-
@property
|
|
510
|
-
def outdoor_humidity(self) -> float | None:
|
|
511
491
|
return self._msg_value(Code._31DA, key=SZ_OUTDOOR_HUMIDITY)
|
|
512
492
|
|
|
513
493
|
@property
|
|
@@ -540,6 +520,13 @@ class HvacVentilator(FilterChange): # FAN: RP/31DA, I/31D[9A]
|
|
|
540
520
|
|
|
541
521
|
@property
|
|
542
522
|
def supply_temp(self) -> float | None:
|
|
523
|
+
if Code._12A0 in self._msgs and isinstance(
|
|
524
|
+
self._msgs[Code._12A0].payload, list
|
|
525
|
+
): # FAN Ventura sends RH/temps as a list;
|
|
526
|
+
# pass element [0] in place of supply_temp, which is always None in VenturaV1x 31DA
|
|
527
|
+
if v := self._msgs[Code._12A0].payload[1].get(SZ_TEMPERATURE):
|
|
528
|
+
assert isinstance(v, (float | type(None)))
|
|
529
|
+
return v
|
|
543
530
|
return self._msg_value(Code._31DA, key=SZ_SUPPLY_TEMP)
|
|
544
531
|
|
|
545
532
|
@property
|
|
@@ -557,6 +544,12 @@ class HvacVentilator(FilterChange): # FAN: RP/31DA, I/31D[9A]
|
|
|
557
544
|
|
|
558
545
|
@property
|
|
559
546
|
def temperature(self) -> float | None: # Celsius
|
|
547
|
+
if Code._12A0 in self._msgs and isinstance(
|
|
548
|
+
self._msgs[Code._12A0].payload, list
|
|
549
|
+
): # FAN Ventura sends RH/temps as a list; use element [1]
|
|
550
|
+
if v := self._msgs[Code._12A0].payload[0].get(SZ_TEMPERATURE):
|
|
551
|
+
assert isinstance(v, (float | type(None)))
|
|
552
|
+
return v
|
|
560
553
|
# ClimaRad minibox FAN sends (indoor) temp in 12A0
|
|
561
554
|
return self._msg_value(Code._12A0, key=SZ_TEMPERATURE)
|
|
562
555
|
|
|
@@ -300,7 +300,10 @@ class _MessageDB(_Entity):
|
|
|
300
300
|
if isinstance(code, str | tuple): # a code or a tuple of codes
|
|
301
301
|
return self._msg_value_code(code, *args, **kwargs)
|
|
302
302
|
# raise RuntimeError
|
|
303
|
-
|
|
303
|
+
assert isinstance(code, Message), (
|
|
304
|
+
f"Invalid format: _msg_value({code})"
|
|
305
|
+
) # catch invalidly formatted code, only Message
|
|
306
|
+
return self._msg_value_msg(code, *args, **kwargs)
|
|
304
307
|
|
|
305
308
|
def _msg_value_code(
|
|
306
309
|
self,
|
|
@@ -11,7 +11,7 @@ from ramses_tx.packet import Packet
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def _test_api(api: Callable, packets: dict[str]) -> None: # NOTE: incl. addr_set check
|
|
14
|
-
"""Test a verb|code pair that has a Command constructor."""
|
|
14
|
+
"""Test a verb|code pair that has a Command constructor, src and dst."""
|
|
15
15
|
|
|
16
16
|
for pkt_line, kwargs in packets.items():
|
|
17
17
|
pkt = _create_pkt_from_frame(pkt_line)
|
|
@@ -22,6 +22,20 @@ def _test_api(api: Callable, packets: dict[str]) -> None: # NOTE: incl. addr_se
|
|
|
22
22
|
_test_api_from_msg(api, msg)
|
|
23
23
|
|
|
24
24
|
|
|
25
|
+
def _test_api_one(
|
|
26
|
+
api: Callable, packets: dict[str]
|
|
27
|
+
) -> None: # NOTE: incl. addr_set check
|
|
28
|
+
"""Test a verb|code pair that has a Command constructor and src, but no dst."""
|
|
29
|
+
|
|
30
|
+
for pkt_line, kwargs in packets.items():
|
|
31
|
+
pkt = _create_pkt_from_frame(pkt_line)
|
|
32
|
+
|
|
33
|
+
msg = Message(pkt)
|
|
34
|
+
|
|
35
|
+
_test_api_one_from_kwargs(api, pkt, **kwargs)
|
|
36
|
+
_test_api_one_from_msg(api, msg)
|
|
37
|
+
|
|
38
|
+
|
|
25
39
|
def _create_pkt_from_frame(pkt_line: str) -> Packet:
|
|
26
40
|
"""Create a pkt from a pkt_line and assert their frames match."""
|
|
27
41
|
|
|
@@ -31,7 +45,8 @@ def _create_pkt_from_frame(pkt_line: str) -> Packet:
|
|
|
31
45
|
|
|
32
46
|
|
|
33
47
|
def _test_api_from_msg(api: Callable, msg: Message) -> Command:
|
|
34
|
-
"""Create a cmd from a msg and assert they're equal
|
|
48
|
+
"""Create a cmd from a msg with a src_id, and assert they're equal
|
|
49
|
+
(*also* asserts payload)."""
|
|
35
50
|
|
|
36
51
|
cmd: Command = api(
|
|
37
52
|
msg.dst.id,
|
|
@@ -44,12 +59,39 @@ def _test_api_from_msg(api: Callable, msg: Message) -> Command:
|
|
|
44
59
|
return cmd
|
|
45
60
|
|
|
46
61
|
|
|
62
|
+
def _test_api_one_from_msg(api: Callable, msg: Message) -> Command:
|
|
63
|
+
"""Create a cmd from a msg and assert they're equal (*also* asserts payload)."""
|
|
64
|
+
|
|
65
|
+
cmd: Command = api(
|
|
66
|
+
msg.dst.id,
|
|
67
|
+
**{k: v for k, v in msg.payload.items()}, # if k[:1] != "_"},
|
|
68
|
+
# requirement turned off as it skips required item like _unknown_fan_info_flags
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
assert cmd == msg._pkt # must have exact same addr set
|
|
72
|
+
|
|
73
|
+
return cmd
|
|
74
|
+
|
|
75
|
+
|
|
47
76
|
def _test_api_from_kwargs(api: Callable, pkt: Packet, **kwargs: Any) -> None:
|
|
77
|
+
"""
|
|
78
|
+
Test comparing a created packet to an expected result.
|
|
79
|
+
|
|
80
|
+
:param api: Command lookup by Verb|Code
|
|
81
|
+
:param pkt: expected result to match
|
|
82
|
+
:param kwargs: arguments for the Command
|
|
83
|
+
"""
|
|
48
84
|
cmd = api(HRU, src_id=REM, **kwargs)
|
|
49
85
|
|
|
50
86
|
assert str(cmd) == str(pkt)
|
|
51
87
|
|
|
52
88
|
|
|
89
|
+
def _test_api_one_from_kwargs(api: Callable, pkt: Packet, **kwargs: Any) -> None:
|
|
90
|
+
cmd = api(HRU, **kwargs)
|
|
91
|
+
|
|
92
|
+
assert str(cmd) == str(pkt)
|
|
93
|
+
|
|
94
|
+
|
|
53
95
|
def test_set() -> None:
|
|
54
96
|
for test_pkts in (SET_22F1_KWARGS, SET_22F7_KWARGS):
|
|
55
97
|
pkt = list(test_pkts)[0]
|
|
@@ -57,7 +99,7 @@ def test_set() -> None:
|
|
|
57
99
|
_test_api(api, test_pkts)
|
|
58
100
|
|
|
59
101
|
|
|
60
|
-
HRU = "32:155617"
|
|
102
|
+
HRU = "32:155617" # also used as a FAN
|
|
61
103
|
REM = "37:171871"
|
|
62
104
|
NUL = "--:------"
|
|
63
105
|
|
|
@@ -108,3 +150,31 @@ SET_22F7_KWARGS = {
|
|
|
108
150
|
f"002 W --- {REM} {HRU} {NUL} 22F7 002 0000": {"bypass_mode": "off"},
|
|
109
151
|
f"002 W --- {REM} {HRU} {NUL} 22F7 002 00C8": {"bypass_mode": "on"},
|
|
110
152
|
}
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
# new tests
|
|
156
|
+
def test_get() -> None:
|
|
157
|
+
for test_pkts in (GET_12A0_KWARGS, GET_1298_KWARGS):
|
|
158
|
+
pkt = list(test_pkts)[0]
|
|
159
|
+
api = CODE_API_MAP[f"{pkt[4:6]}|{pkt[41:45]}"]
|
|
160
|
+
_test_api_one(api, test_pkts)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
GET_12A0_KWARGS = {
|
|
164
|
+
f"000 I --- {HRU} {NUL} {HRU} 12A0 002 00EF": {
|
|
165
|
+
"indoor_humidity": None
|
|
166
|
+
}, # shouldn't be OK
|
|
167
|
+
#
|
|
168
|
+
f"082 I --- {HRU} {NUL} {HRU} 12A0 002 0037": {"indoor_humidity": 0.55},
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
GET_1298_KWARGS = {
|
|
172
|
+
f"064 I --- {HRU} {NUL} {HRU} 1298 003 000322": {"co2_level": 802},
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
# TODO Add tests to get states from 31DA
|
|
176
|
+
# (verifies SQLite refactoring)
|
|
177
|
+
# set up HVAC system first from messages
|
|
178
|
+
#
|
|
179
|
+
# Example: current_temperature(self) in ramses_cc.climate.py
|
|
180
|
+
# simulates requesting Climate self._device.indoor_temp from a system
|
|
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
|
|
File without changes
|
|
File without changes
|
{ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/_trv_actuator_long/packet.log
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ramses_rf-0.51.1 → ramses_rf-0.51.3}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_000/packet.log
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_001/packet.log
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_002/packet.log
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_003/packet.log
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ramses_rf-0.51.1 → ramses_rf-0.51.3}/tests/tests/eavesdrop_schema/zone_sensors_004/packet.log
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|