ramses-rf 0.51.4__tar.gz → 0.51.5__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.4 → ramses_rf-0.51.5}/PKG-INFO +1 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/const.py +2 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/device/hvac.py +14 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/dispatcher.py +6 -6
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/entity_base.py +1 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/system/heat.py +3 -3
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/system/zones.py +3 -3
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/version.py +1 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/const.py +2 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/helpers.py +1 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/parsers.py +19 -14
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/transport.py +15 -11
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/version.py +1 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/10e0_xxxx.log +2 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/34_T87RF2025.log +2 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/29_VMC-15RP01.log +4 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMD-15RMS86.log +1 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMN-23LMH23.log +1 -1
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_10e0.log +8 -5
- ramses_rf-0.51.5/tests/tests/parsers/code_2210.log +26 -0
- ramses_rf-0.51.4/tests/tests/parsers/code_2210.log +0 -21
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/.github/dependabot.yml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/.github/workflows/check-lint.yml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/.github/workflows/check-test.yml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/.github/workflows/check-type.yml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/.github/workflows/publish-hatch.yml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/.gitignore +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/.pre-commit-config.yaml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/LICENSE +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/README-developers.md +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/README.md +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/client.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/misc/fingerprints.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/misc/ser2net.yaml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/misc/ti_3410/notes.sh +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/misc/ti_3410/ti_3410.fw +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/pyproject.toml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_cli/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_cli/client.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_cli/debug.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_cli/discovery.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_cli/utils/cat_slow.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_cli/utils/convert.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/binding_fsm.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/database.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/device/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/device/base.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/device/heat.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/exceptions.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/gateway.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/helpers.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/py.typed +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/schemas.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/system/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/system/faultlog.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_rf/system/schedule.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/address.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/command.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/exceptions.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/fingerprints.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/frame.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/gateway.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/logger.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/message.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/opentherm.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/packet.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/protocol.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/protocol_fsm.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/py.typed +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/ramses.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/schemas.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/typed_dicts.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/ramses_tx/typing.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/requirements.txt +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/requirements_dev.txt +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/_test_apis_mock.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/_test_mock_faultlog.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/_test_mock_schedule.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/_test_packets_bad.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/_test_performance_WIP.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/_test_state_mgt.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/common.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/mocked_devices/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/mocked_devices/command.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/mocked_devices/const.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/mocked_devices/device_heat.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/mocked_devices/device_hvac.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/deprecated/mocked_devices/transport.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/heat/ctl_bdr_91t.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/heat/dts_ctl_sensor.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/heat/hcw_ctl_sensor.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/heat/rnd_ctl_sensor.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/heat/rnd_ctl_sensor.yaml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/heat/trv_ctl.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/co2_fan_itho.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/co2_fan_itho.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/co2_fan_itho.yaml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/dis_fan_orcon.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/dis_fan_orcon.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/rem_fan_climarad.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/rem_fan_nuaire.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/rem_fan_nuaire.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/rem_fan_nuaire.yaml +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/rem_fan_vasco.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/bindings/hvac/rem_fan_ventura.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/devices/device_02.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/devices/device_04.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/devices/device_10.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/devices/device_13.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/devices/device_22.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_dev_class/hvac/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/_trv_actuator_long/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/_ufh_circuits/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/app_cntrl/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/trv_actuators/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_000/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_001/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_002/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_003/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_004/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_off.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_on.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/_gather.sh +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/01_EvoTouch_Colour.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/01_Evo_Color.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/01_IONA_RAI_Prototype.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/02_HCE80_V3.10_061117..log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/04_HR92 Radiator Ctrl_.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/08_Jasper_EIM.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/10_R8810A_Bridge.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/10_R8820.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/30_Internet_Gateway.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/heat/31_Jasper_Stat_TXXX.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/18_BRDG-02A55.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/18_HRA82.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/20.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/21_CCU-12T20.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/29_VMC-07RP01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/29_VMC-17RP01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/29_VMN-07LM01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/29_VMN-15LF01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/29_VMN-17LMP01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/29_VMS-15C16.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/29_VMS-17HB01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/30_BRDG-02EM23.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/30_BRDG-02JAS01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMC-15RPS34.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMD-15RMS64.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMD-17RPS01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMN-23LM33.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMS-15CM17.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMS-23C33.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMS-23HB33.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/32_VMZ-15V13.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/37_VMD-07RPS13.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/37_VMI-15MC01log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/37_VMI-15WSJ53.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/37_VMS-02J52.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/37_VMS-12C39.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/99_CVE-RF.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/fingerprints/hvac/99_VMS-17C01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/helpers.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/logger/packet_in.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/logger/packet_out.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/logs/pkts_bad_000.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/logs/pkts_tba_000.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/logs/system_cache.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parser_helpers/pkt_addr_set.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parser_helpers/pkt_dev_class.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_0001_wip.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_0002.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_0004_wip.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_0005.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_0006.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_0009.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_000a.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_000c.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_000e.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_01ff_wip.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_0418.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_042f.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_1030.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_1060.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_10d0.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_1260.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_1298.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_12a0.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_12c0.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_1300.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_1f09.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_1fc9.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22c9.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22d0.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22d9.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22e0.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22e5.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22e9.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22f1.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22f2.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22f3.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22f4.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_22f7.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_2309.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_2349.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_2411_wip.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_2e04.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_2e10_wip.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_30c9.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_3110_wip.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_3120.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_313e_wip.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_3150.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_31d9.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_31da.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_3200.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_3210.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_3220.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_3222.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_3ef0_wip.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_3ef1_wip.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_4e01.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_4e02.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_4e04.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/parsers/code_4e15.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schedules/_sched_002/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schedules/_sched_002/schedule.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schedules/sched_001/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schedules/sched_001/schedule.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schedules/sched_dhw/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schedules/sched_dhw/schedule.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/jsn_files/schema_100.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/jsn_files/schema_101.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/jsn_files/schema_102.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/jsn_files/schema_103.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/jsn_files/schema_104.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/jsn_files/schema_105.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/jsn_files/schema_108.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_000.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_000.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_001.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_001.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_002.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_002.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_010.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_010.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_011.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_011.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_012.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_012.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_013.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_013.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_014.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_014.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_300.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_300.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_301.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_301.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_302.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_302.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_303.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_303.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_304.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_304.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_310.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/schemas/log_files/schema_310.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/_heat_trv_00/config.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/_heat_trv_00/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/_heat_trv_00/schema.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/_hvac_nuaire/config.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/_hvac_nuaire/known_list.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/_hvac_nuaire/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/_hvac_nuaire/schema.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/_hvac_nuaire/status.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_otb_00/config.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_otb_00/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_otb_00/schema.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_simple/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_simple/schema.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_ufc_00/config.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_ufc_00/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_ufc_01/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_zxdavb/config.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_zxdavb/known_list.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_zxdavb/packet.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/systems/heat_zxdavb/schema.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_api_faultlog.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_api_schedule.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_apis_binding.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_apis_common.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_apis_heat.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_apis_hvac.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_cli_utility.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_devices.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_eavesdrop_dev_class.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_eavesdrop_schema.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_helpers.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_parser_helpers.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_parsers.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_ramses_schema.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_schema_bits.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_schemas.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_systems.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests/test_vol_schemas.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/configs/config_heat.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/configs/config_hvac.json +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/conftest.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/logs/test_api_faultlog.log +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/test_api_faultlog.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/test_api_schedule.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/test_binding_fsm.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/test_create_stack.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/test_hgi_behaviors.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/test_protocol_fsm.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/test_use_regex.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/test_virt_network.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/virtual_rf/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/virtual_rf/const.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/virtual_rf/helpers.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_rf/virtual_rf/virtual_rf.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_tx/__init__.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/tests_tx/test_command.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/wip/_test_eavesdrop_dhw_sensor.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/wip/_test_eavesdrop_htg_control.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/wip/_test_eavesdrop_ufc_circuits.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/wip/_test_eavesdrop_zone_sensors.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/tests/wip/_test_eavesdrop_zone_type.py +0 -0
- {ramses_rf-0.51.4 → ramses_rf-0.51.5}/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.5
|
|
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
|
|
@@ -61,6 +61,8 @@ from ramses_tx.const import ( # noqa: F401
|
|
|
61
61
|
SZ_REMAINING_DAYS as SZ_REMAINING_DAYS,
|
|
62
62
|
SZ_REMAINING_MINS as SZ_REMAINING_MINS,
|
|
63
63
|
SZ_REMAINING_PERCENT as SZ_REMAINING_PERCENT,
|
|
64
|
+
SZ_REQ_REASON as SZ_REQ_REASON,
|
|
65
|
+
SZ_REQ_SPEED as SZ_REQ_SPEED,
|
|
64
66
|
SZ_SCHEDULE as SZ_SCHEDULE,
|
|
65
67
|
SZ_SENSOR as SZ_SENSOR,
|
|
66
68
|
SZ_SETPOINT as SZ_SETPOINT,
|
|
@@ -31,6 +31,8 @@ from ramses_rf.const import (
|
|
|
31
31
|
SZ_REMAINING_DAYS,
|
|
32
32
|
SZ_REMAINING_MINS,
|
|
33
33
|
SZ_REMAINING_PERCENT,
|
|
34
|
+
SZ_REQ_REASON,
|
|
35
|
+
SZ_REQ_SPEED,
|
|
34
36
|
SZ_SPEED_CAPABILITIES,
|
|
35
37
|
SZ_SUPPLY_FAN_SPEED,
|
|
36
38
|
SZ_SUPPLY_FLOW,
|
|
@@ -506,6 +508,18 @@ class HvacVentilator(FilterChange): # FAN: RP/31DA, I/31D[9A]
|
|
|
506
508
|
def remaining_mins(self) -> int | None:
|
|
507
509
|
return self._msg_value(Code._31DA, key=SZ_REMAINING_MINS)
|
|
508
510
|
|
|
511
|
+
@property
|
|
512
|
+
def request_fan_speed(self) -> float | None:
|
|
513
|
+
return self._msg_value(Code._2210, key=SZ_REQ_SPEED)
|
|
514
|
+
|
|
515
|
+
@property
|
|
516
|
+
def request_src(self) -> str | None:
|
|
517
|
+
"""
|
|
518
|
+
Orcon, others?
|
|
519
|
+
:return: source sensor of auto speed request: IDL, CO2 or HUM
|
|
520
|
+
"""
|
|
521
|
+
return self._msg_value(Code._2210, key=SZ_REQ_REASON)
|
|
522
|
+
|
|
509
523
|
@property
|
|
510
524
|
def speed_cap(self) -> int | None:
|
|
511
525
|
return self._msg_value(Code._31DA, key=SZ_SPEED_CAPABILITIES)
|
|
@@ -91,7 +91,7 @@ def _create_devices_from_addrs(gwy: Gateway, this: Message) -> None:
|
|
|
91
91
|
if not gwy.config.enable_eavesdrop:
|
|
92
92
|
return
|
|
93
93
|
|
|
94
|
-
if not isinstance(this.dst, Device) and this.src
|
|
94
|
+
if not isinstance(this.dst, Device) and this.src != gwy.hgi: # type: ignore[unreachable]
|
|
95
95
|
with contextlib.suppress(LookupError):
|
|
96
96
|
this.dst = gwy.get_device(this.dst.id) # type: ignore[assignment]
|
|
97
97
|
|
|
@@ -188,9 +188,9 @@ def process_msg(gwy: Gateway, msg: Message) -> None:
|
|
|
188
188
|
def logger_xxxx(msg: Message) -> None:
|
|
189
189
|
if _DBG_FORCE_LOG_MESSAGES:
|
|
190
190
|
_LOGGER.warning(msg)
|
|
191
|
-
elif msg.src
|
|
191
|
+
elif msg.src != gwy.hgi or (msg.code != Code._PUZZ and msg.verb != RQ):
|
|
192
192
|
_LOGGER.info(msg)
|
|
193
|
-
elif msg.src
|
|
193
|
+
elif msg.src != gwy.hgi or msg.verb != RQ:
|
|
194
194
|
_LOGGER.info(msg)
|
|
195
195
|
elif _LOGGER.getEffectiveLevel() == logging.DEBUG:
|
|
196
196
|
_LOGGER.info(msg)
|
|
@@ -215,7 +215,7 @@ def process_msg(gwy: Gateway, msg: Message) -> None:
|
|
|
215
215
|
if (
|
|
216
216
|
msg.src._SLUG != DevType.HGI # avoid: msg.src.id != gwy.hgi.id
|
|
217
217
|
and msg.verb != I_
|
|
218
|
-
and msg.dst
|
|
218
|
+
and msg.dst != msg.src
|
|
219
219
|
):
|
|
220
220
|
# HGI80 can do what it likes
|
|
221
221
|
# receiving an I isn't currently in the schema & so can't yet be tested
|
|
@@ -234,10 +234,10 @@ def process_msg(gwy: Gateway, msg: Message) -> None:
|
|
|
234
234
|
# TODO: only be for fully-faked (not Fakable) dst (it picks up via RF if not)
|
|
235
235
|
|
|
236
236
|
if msg.code == Code._1FC9 and msg.payload[SZ_PHASE] == SZ_OFFER:
|
|
237
|
-
devices = [d for d in gwy.devices if d
|
|
237
|
+
devices = [d for d in gwy.devices if d != msg.src and d._is_binding]
|
|
238
238
|
|
|
239
239
|
elif msg.dst == ALL_DEV_ADDR: # some offers use dst=63:, so after 1FC9 offer
|
|
240
|
-
devices = [d for d in gwy.devices if d
|
|
240
|
+
devices = [d for d in gwy.devices if d != msg.src and d.is_faked]
|
|
241
241
|
|
|
242
242
|
elif msg.dst is not msg.src and isinstance(msg.dst, Fakeable): # type: ignore[unreachable]
|
|
243
243
|
# to eavesdrop pkts from other devices, but relevant to this device
|
|
@@ -387,7 +387,7 @@ class _MessageDB(_Entity):
|
|
|
387
387
|
codes = {
|
|
388
388
|
k: (CODES_SCHEMA[k][SZ_NAME] if k in CODES_SCHEMA else None)
|
|
389
389
|
for k in sorted(self._msgs)
|
|
390
|
-
if self._msgs[k].src
|
|
390
|
+
if self._msgs[k].src == (self if hasattr(self, "addr") else self.ctl)
|
|
391
391
|
}
|
|
392
392
|
|
|
393
393
|
return {"_sent": list(codes.keys())}
|
|
@@ -193,19 +193,19 @@ class SystemBase(Parent, Entity): # 3B00 (multi-relay)
|
|
|
193
193
|
this.code in (Code._22D9, Code._3220) and this.verb == RQ
|
|
194
194
|
): # TODO: RPs too?
|
|
195
195
|
# dst could be an Address...
|
|
196
|
-
if this.src
|
|
196
|
+
if this.src == self.ctl and isinstance(this.dst, OtbGateway): # type: ignore[unreachable]
|
|
197
197
|
app_cntrl = this.dst # type: ignore[unreachable]
|
|
198
198
|
|
|
199
199
|
elif this.code == Code._3EF0 and this.verb == RQ:
|
|
200
200
|
# dst could be an Address...
|
|
201
|
-
if this.src
|
|
201
|
+
if this.src == self.ctl and isinstance(
|
|
202
202
|
this.dst, # type: ignore[unreachable]
|
|
203
203
|
BdrSwitch | OtbGateway,
|
|
204
204
|
):
|
|
205
205
|
app_cntrl = this.dst # type: ignore[unreachable]
|
|
206
206
|
|
|
207
207
|
elif this.code == Code._3B00 and this.verb == I_ and prev is not None:
|
|
208
|
-
if this.src
|
|
208
|
+
if this.src == self.ctl and isinstance(prev.src, BdrSwitch): # type: ignore[unreachable]
|
|
209
209
|
if prev.code == this.code and prev.verb == this.verb: # type: ignore[unreachable]
|
|
210
210
|
app_cntrl = prev.src
|
|
211
211
|
|
|
@@ -266,7 +266,7 @@ class DhwZone(ZoneSchedule): # CS92A
|
|
|
266
266
|
# self._get_dhw(sensor=this.dst)
|
|
267
267
|
|
|
268
268
|
assert (
|
|
269
|
-
msg.src
|
|
269
|
+
msg.src == self.ctl
|
|
270
270
|
and msg.code in (Code._0005, Code._000C, Code._10A0, Code._1260, Code._1F41)
|
|
271
271
|
or msg.payload.get(SZ_DOMAIN_ID) in (F9, FA)
|
|
272
272
|
or msg.payload.get(SZ_ZONE_IDX) == "HW"
|
|
@@ -633,13 +633,13 @@ class Zone(ZoneSchedule):
|
|
|
633
633
|
self._update_schema(**{SZ_CLASS: ZON_ROLE_MAP[ZoneRole.UFH]})
|
|
634
634
|
|
|
635
635
|
assert (
|
|
636
|
-
msg.src
|
|
636
|
+
msg.src == self.ctl or msg.src.type == DEV_TYPE_MAP.UFC
|
|
637
637
|
) and ( # DEX
|
|
638
638
|
isinstance(msg.payload, dict)
|
|
639
639
|
or [d for d in msg.payload if d.get(SZ_ZONE_IDX) == self.idx]
|
|
640
640
|
), f"msg inappropriately routed to {self}"
|
|
641
641
|
|
|
642
|
-
assert (msg.src
|
|
642
|
+
assert (msg.src == self.ctl or msg.src.type == DEV_TYPE_MAP.UFC) and ( # DEX
|
|
643
643
|
isinstance(msg.payload, list)
|
|
644
644
|
or msg.code == Code._0005
|
|
645
645
|
or msg.payload.get(SZ_ZONE_IDX) == self.idx
|
|
@@ -88,6 +88,8 @@ SZ_REL_HUMIDITY: Final = "rel_humidity"
|
|
|
88
88
|
SZ_REMAINING_DAYS: Final = "days_remaining"
|
|
89
89
|
SZ_REMAINING_MINS: Final = "remaining_mins"
|
|
90
90
|
SZ_REMAINING_PERCENT: Final = "percent_remaining"
|
|
91
|
+
SZ_REQ_REASON: Final = "req_reason"
|
|
92
|
+
SZ_REQ_SPEED: Final = "req_speed"
|
|
91
93
|
SZ_SUPPLY_FAN_SPEED: Final = "supply_fan_speed"
|
|
92
94
|
SZ_SUPPLY_FLOW: Final = "supply_flow"
|
|
93
95
|
SZ_SUPPLY_TEMP: Final = "supply_temp"
|
|
@@ -757,7 +757,7 @@ def parse_fan_info(value: HexStr2) -> PayDictT.FAN_INFO:
|
|
|
757
757
|
}
|
|
758
758
|
|
|
759
759
|
|
|
760
|
-
# 31DA[38:40]
|
|
760
|
+
# 31DA[38:40], also 2210
|
|
761
761
|
def parse_exhaust_fan_speed(value: HexStr2) -> PayDictT.EXHAUST_FAN_SPEED:
|
|
762
762
|
"""Return the exhaust fan speed (% of max speed)."""
|
|
763
763
|
return _parse_fan_speed(SZ_EXHAUST_FAN_SPEED, value) # type: ignore[return-value]
|
|
@@ -72,6 +72,7 @@ from .const import (
|
|
|
72
72
|
SZ_RELAY_DEMAND,
|
|
73
73
|
SZ_REMAINING_DAYS,
|
|
74
74
|
SZ_REMAINING_PERCENT,
|
|
75
|
+
SZ_REQ_REASON,
|
|
75
76
|
SZ_SETPOINT,
|
|
76
77
|
SZ_SETPOINT_BOUNDS,
|
|
77
78
|
SZ_SYSTEM_MODE,
|
|
@@ -1378,22 +1379,18 @@ def parser_1fd4(payload: str, msg: Message) -> PayDictT._1FD4:
|
|
|
1378
1379
|
return {"ticker": int(payload[2:], 16)}
|
|
1379
1380
|
|
|
1380
1381
|
|
|
1381
|
-
# WIP:
|
|
1382
|
+
# WIP: HVAC auto requests (confirmed for Orcon, others?)
|
|
1382
1383
|
def parser_2210(payload: str, msg: Message) -> dict[str, Any]:
|
|
1383
1384
|
try:
|
|
1384
1385
|
assert msg.verb in (RP, I_) or payload == "00"
|
|
1385
|
-
assert payload[10:12] == payload[38:40]
|
|
1386
|
-
10:12
|
|
1387
|
-
|
|
1388
|
-
"58",
|
|
1389
|
-
"64",
|
|
1390
|
-
"96",
|
|
1391
|
-
"FF",
|
|
1392
|
-
), f"expected req.speed? (58|64|96|FF), not {payload[10:12]}"
|
|
1386
|
+
assert payload[10:12] == payload[38:40], (
|
|
1387
|
+
f"expected byte 19 {payload[10:12]}, not {payload[38:40]}"
|
|
1388
|
+
) # auto requested fan speed %. Identical [38:40] is for supply?
|
|
1393
1389
|
assert payload[20:22] == payload[48:50] and payload[20:22] in (
|
|
1394
|
-
"00",
|
|
1395
|
-
"
|
|
1396
|
-
|
|
1390
|
+
"00", # idle
|
|
1391
|
+
"02", # requested by CO2 level/sensor
|
|
1392
|
+
"03", # requested by humidity level/sensor
|
|
1393
|
+
), f"expected req_reason (00|02|03), not {payload[20:22]}"
|
|
1397
1394
|
assert payload[78:80] in ("00", "02"), (
|
|
1398
1395
|
f"expected byte 39 (00|02), not {payload[78:80]}"
|
|
1399
1396
|
)
|
|
@@ -1407,9 +1404,17 @@ def parser_2210(payload: str, msg: Message) -> dict[str, Any]:
|
|
|
1407
1404
|
except AssertionError as err:
|
|
1408
1405
|
_LOGGER.warning(f"{msg!r} < {_INFORM_DEV_MSG} ({err})")
|
|
1409
1406
|
|
|
1407
|
+
_req = "IDL"
|
|
1408
|
+
if payload[20:22] == "02":
|
|
1409
|
+
_req = "CO2"
|
|
1410
|
+
elif payload[20:22] == "03":
|
|
1411
|
+
_req = "HUM"
|
|
1412
|
+
|
|
1410
1413
|
return {
|
|
1411
|
-
|
|
1412
|
-
|
|
1414
|
+
**parse_exhaust_fan_speed(
|
|
1415
|
+
payload[10:12]
|
|
1416
|
+
), # for Orcon: 29 hex == 41 decimal divided by 2 gives 20.5 (%)
|
|
1417
|
+
SZ_REQ_REASON: _req,
|
|
1413
1418
|
"unknown_78": payload[78:80],
|
|
1414
1419
|
"unknown_80": payload[80:82],
|
|
1415
1420
|
"unknown_82": payload[82:],
|
|
@@ -1073,7 +1073,7 @@ class MqttTransport(_FullTransport, _MqttTransportAbstractor):
|
|
|
1073
1073
|
self._connecting = True
|
|
1074
1074
|
try:
|
|
1075
1075
|
self.client.connect_async(
|
|
1076
|
-
self._broker_url.hostname
|
|
1076
|
+
str(self._broker_url.hostname or "localhost"),
|
|
1077
1077
|
self._broker_url.port or 1883,
|
|
1078
1078
|
60,
|
|
1079
1079
|
)
|
|
@@ -1172,10 +1172,18 @@ class MqttTransport(_FullTransport, _MqttTransportAbstractor):
|
|
|
1172
1172
|
self,
|
|
1173
1173
|
client: mqtt.Client,
|
|
1174
1174
|
userdata: Any,
|
|
1175
|
-
|
|
1176
|
-
|
|
1175
|
+
*args: Any,
|
|
1176
|
+
**kwargs: Any,
|
|
1177
1177
|
) -> None:
|
|
1178
|
-
|
|
1178
|
+
# Handle different paho-mqtt callback signatures
|
|
1179
|
+
reason_code = args[0] if len(args) >= 1 else None
|
|
1180
|
+
|
|
1181
|
+
reason_name = (
|
|
1182
|
+
reason_code.getName()
|
|
1183
|
+
if reason_code is not None and hasattr(reason_code, "getName")
|
|
1184
|
+
else str(reason_code)
|
|
1185
|
+
)
|
|
1186
|
+
_LOGGER.warning(f"MQTT disconnected: {reason_name}")
|
|
1179
1187
|
|
|
1180
1188
|
was_connected = self._connected
|
|
1181
1189
|
self._connected = False
|
|
@@ -1191,13 +1199,9 @@ class MqttTransport(_FullTransport, _MqttTransportAbstractor):
|
|
|
1191
1199
|
self._protocol.pause_writing()
|
|
1192
1200
|
|
|
1193
1201
|
# Only attempt reconnection if we didn't deliberately disconnect
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
self._schedule_reconnect()
|
|
1198
|
-
elif reason_code.is_failure and not self._closing:
|
|
1199
|
-
# Connection failed, also schedule reconnection
|
|
1200
|
-
_LOGGER.debug("MQTT connection failed - scheduling reconnection")
|
|
1202
|
+
|
|
1203
|
+
if not self._closing:
|
|
1204
|
+
# Schedule reconnection for any disconnect (unexpected or failure)
|
|
1201
1205
|
self._schedule_reconnect()
|
|
1202
1206
|
|
|
1203
1207
|
def _create_connection(self, msg: mqtt.MQTTMessage) -> None:
|
|
@@ -193,8 +193,9 @@
|
|
|
193
193
|
2021-07-10T10:47:13.404100 ... RP --- 32:168090 18:000730 --:------ 10E0 038 000001C85802016CFFFFFFFFFFFF0C0707E0564D532D32334842333300000000000000000000
|
|
194
194
|
2021-10-11T14:21:14.518500 ... I --- 32:168240 63:262142 --:------ 10E0 038 000001C85803016CFFFFFFFFFFFF0C0907E0564D532D32334842333300000000000000000000
|
|
195
195
|
2022-01-01T00:00:00.000000 000 I --- 32:172522 63:262142 --:------ 10E0 029 000001C85901016CFFFFFFFFFFFF1F0507E0564D4E2D32334C4D333300 # {'description': 'VMN-23LM33', 'date_2': '0000-00-00', 'date_1': '2016-05-31', 'manufacturer_sub_id': 'C8', 'product_id': '59', 'oem_code': '6C'} # '_signature': '0001C85901016CFFFF',
|
|
196
|
-
2022-02-19T18:00:35.234656 062 I --- 32:206250 63:262142 --:------ 10E0 030 000001C85A01016CFFFFFFFFFFFF010607E0564D4E2D32334C4D48323300 # VMN-23LMH23
|
|
196
|
+
2022-02-19T18:00:35.234656 062 I --- 32:206250 63:262142 --:------ 10E0 030 000001C85A01016CFFFFFFFFFFFF010607E0564D4E2D32334C4D48323300 # {'description': 'VMN-23LMH23', 'manufacturer_sub_id': 'C8', 'product_id': '5A', 'oem_code': '6C', 'date_1': '2016-06-01', 'date_2': '0000-00-00'}
|
|
197
197
|
2022-11-10T20:43:45.452809 060 I --- 32:236773 63:262142 --:------ 10E0 030 000001C85F0E0267FFFFFFFFFFFFFFFFFFFF564D432D3135525053333400 # {'description': 'VMC-15RPS34', 'date_2': '0000-00-00', 'date_1': '0000-00-00', 'manufacturer_sub_id': 'C8', 'product_id': '5F', 'oem_code': '67'} # Orcon MVS-15?
|
|
198
|
+
2024-03-04T16:54:24.502000 ... I --- 29:206851 63:262142 --:------ 10E0 029 000001C826090367FFFFFFFFFFFFFFFFFFFF564D432D31355250303100 # {'description': 'VMC-15RP01', 'manufacturer_sub_id': 'C8', 'oem_code': '67', 'product_id': '26', 'date_1': '0000-00-00', 'date_2': '0000-00-00'} # Orcon MVS-15RHB fan
|
|
198
199
|
2021-12-20T08:24:09.117900 ... I --- 34:021943 63:262142 --:------ 10E0 038 000001C8380A0100F1FF0C0107E1030B07DE5438375246323032350000000000000000000000
|
|
199
200
|
2021-11-08T15:26:00.654600 ... I --- 34:041323 63:262142 --:------ 10E0 038 000001C8380F0100F1FF1E0407E4030507E15438375246323032350000000000000000000000
|
|
200
201
|
2019-12-22T14:26:07.736118 045 I --- 34:044201 63:262142 --:------ 10E0 038 000001C8380F0100F1FF1D0807E2030507E15438375246323032350000000000000000000000
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
# Honeywell Round thermostat, oem_code '00' / sub-id 'C8' - heat
|
|
1
2
|
|
|
2
3
|
2022-08-20T12:03:31.051414 ... I --- 34:018143 63:262142 --:------ 10E0 038 000001C8380F0100F1FF1B0107E4030507E15438375246323032350000000000000000000000
|
|
3
|
-
2021-12-20T08:24:09.117900 ... I --- 34:021943 63:262142 --:------ 10E0 038 000001C8380A0100F1FF0C0107E1030B07DE5438375246323032350000000000000000000000
|
|
4
|
+
2021-12-20T08:24:09.117900 ... I --- 34:021943 63:262142 --:------ 10E0 038 000001C8380A0100F1FF0C0107E1030B07DE5438375246323032350000000000000000000000 # {'description': 'T87RF2025', 'manufacturer_sub_id': 'C8', 'product_id': '38', 'oem_code': '00', 'date_1': '2014-11-03', 'date_2': '2017-01-12'}
|
|
4
5
|
2021-11-08T15:26:00.654600 ... I --- 34:041323 63:262142 --:------ 10E0 038 000001C8380F0100F1FF1E0407E4030507E15438375246323032350000000000000000000000
|
|
5
6
|
2019-12-22T14:26:07.736118 045 I --- 34:044201 63:262142 --:------ 10E0 038 000001C8380F0100F1FF1D0807E2030507E15438375246323032350000000000000000000000
|
|
6
7
|
2019-12-22T13:26:13.854200 ... I --- 34:044203 63:262142 --:------ 10E0 038 000001C8380F0100F1FF1D0807E2030507E15438375246323032350000000000000000000000
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
2023-01-26T08:47:34.307872 ... I --- 29:207706 63:262142 --:------ 10E0 029 000001C8260D0467FFFFFFFFFFFFFFFFFFFF564D432D31355250303100
|
|
2
|
+
2023-01-26T08:47:34.307872 ... I --- 29:207706 63:262142 --:------ 10E0 029 000001C8260D0467FFFFFFFFFFFFFFFFFFFF564D432D31355250303100 # 10E0| I|29:207706
|
|
3
3
|
2022-02-05T08:05:56.604400 ... I --- 29:215374 63:262142 --:------ 10E0 029 000001C8260A0367FFFFFFFFFFFFFFFFFFFF564D432D31355250303100
|
|
4
4
|
2022-08-16T20:07:50.411731 080 I --- 29:226075 63:262142 --:------ 10E0 029 000001C8260D0467FFFFFFFFFFFFFFFFFFFF564D432D31355250303100
|
|
5
5
|
2021-07-01T13:00:09.215900 ... I --- 29:237552 63:262142 --:------ 10E0 029 000001C8260D0467FFFFFFFFFFFFFFFFFFFF564D432D31355250303100
|
|
6
|
+
|
|
7
|
+
# Orcon MVS-15RHB fan from Hans-Mep
|
|
8
|
+
2024-03-04T16:54:24.502000 ... I --- 29:206851 63:262142 --:------ 10E0 029 000001C826090367FFFFFFFFFFFFFFFFFFFF564D432D31355250303100 # {'description': 'VMC-15RP01', 'manufacturer_sub_id': 'C8', 'oem_code': '67', 'product_id': '26', 'date_1': '0000-00-00', 'date_2': '0000-00-00'} # Orcon MVS-15RHB fan
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# Orcon HRU VMD-15RMS86
|
|
2
2
|
2021-10-26T21:51:43.143100 ... I --- 32:132125 63:262142 --:------ 10E0 038 000001C8950B0A67FEFFFFFFFFFF150107E5564D442D3135524D533836000000000000000000
|
|
3
3
|
2022-08-21T10:23:55.127583 076 RP --- 32:134446 37:171685 --:------ 10E0 038 000001C8950B0A67FEFFFFFFFFFF150107E5564D442D3135524D533836000000000000000000
|
|
4
4
|
2022-08-18T23:09:54.528026 ... I --- 32:143293 63:262142 --:------ 10E0 038 000001C8950B0A67FEFFFFFFFFFF150107E5564D442D3135524D533836000000000000000000 # 10E0| I|32:143293
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
# Confirmed:
|
|
6
|
-
2022-02-19T18:00:35.234656 062 I --- 32:206250 63:262142 --:------ 10E0 030 000001C85A01016CFFFFFFFFFFFF010607E0564D4E2D32334C4D48323300
|
|
6
|
+
2022-02-19T18:00:35.234656 062 I --- 32:206250 63:262142 --:------ 10E0 030 000001C85A01016CFFFFFFFFFFFF010607E0564D4E2D32334C4D48323300 # {'description': 'VMN-23LMH23', 'manufacturer_sub_id': 'C8', 'product_id': '5A', 'oem_code': '6C', 'date_1': '2016-06-01', 'date_2': '0000-00-00'}
|
|
7
7
|
2023-04-27T16:21:21.263244 ... I --- 32:208628 63:262142 --:------ 10E0 030 000001C85A01016CFFFFFFFFFFFF010607E0564D4E2D32334C4D48323300
|
|
8
8
|
|
|
9
9
|
|
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
# The payload changes as the firmware is updated & date_2 is updated
|
|
11
|
-
2019-12-21T18:29:44.104610 057 RP --- 01:145038 18:056026 --:------ 10E0 038 000002FF0163FFFFFFFF140B07E1010807DD45766F20436F6C6F720000000000000000000000 # {'oem_code': 'FF', 'manufacturer_sub_id': 'FF', 'product_id': '01', 'date_1': '2013-08-01', 'date_2': '2017-11-20'
|
|
12
|
-
2020-05-14T15:41:48.743111 045 RP --- 01:145038 18:013393 --:------ 10E0 038 000002FF0163FFFFFFFF640307E4010807DD45766F20436F6C6F720000000000000000000000 # {'oem_code': 'FF', 'manufacturer_sub_id': 'FF', 'product_id': '01', 'date_1': '2013-08-01', 'date_2': '2020-03-04'
|
|
13
|
-
2021-01-25T23:23:00.520205 051 RP --- 01:145038 18:140805 --:------ 10E0 038 000002FF0163FFFFFFFF0B0807E4010807DD45766F20436F6C6F720000000000000000000000 # {'oem_code': 'FF', 'manufacturer_sub_id': 'FF', 'product_id': '01', 'date_1': '2013-08-01', 'date_2': '2020-08-11'
|
|
14
|
-
|
|
11
|
+
2019-12-21T18:29:44.104610 057 RP --- 01:145038 18:056026 --:------ 10E0 038 000002FF0163FFFFFFFF140B07E1010807DD45766F20436F6C6F720000000000000000000000 # {'description': 'Evo Color', 'oem_code': 'FF', 'manufacturer_sub_id': 'FF', 'product_id': '01', 'date_1': '2013-08-01', 'date_2': '2017-11-20'}
|
|
12
|
+
2020-05-14T15:41:48.743111 045 RP --- 01:145038 18:013393 --:------ 10E0 038 000002FF0163FFFFFFFF640307E4010807DD45766F20436F6C6F720000000000000000000000 # {'description': 'Evo Color', 'oem_code': 'FF', 'manufacturer_sub_id': 'FF', 'product_id': '01', 'date_1': '2013-08-01', 'date_2': '2020-03-04'}
|
|
13
|
+
2021-01-25T23:23:00.520205 051 RP --- 01:145038 18:140805 --:------ 10E0 038 000002FF0163FFFFFFFF0B0807E4010807DD45766F20436F6C6F720000000000000000000000 # {'description': 'Evo Color', 'oem_code': 'FF', 'manufacturer_sub_id': 'FF', 'product_id': '01', 'date_1': '2013-08-01', 'date_2': '2020-08-11'}
|
|
15
14
|
|
|
16
15
|
#
|
|
17
16
|
# oem_code 'FF' - Honeywell/Resideo CH/DHW
|
|
@@ -82,6 +81,8 @@
|
|
|
82
81
|
|
|
83
82
|
|
|
84
83
|
#
|
|
84
|
+
# oem_code '00' / sub-id 'C8' - heat
|
|
85
|
+
2021-12-20T08:24:09.117900 ... I --- 34:021943 63:262142 --:------ 10E0 038 000001C8380A0100F1FF0C0107E1030B07DE5438375246323032350000000000000000000000 # {'description': 'T87RF2025', 'manufacturer_sub_id': 'C8', 'product_id': '38', 'oem_code': '00', 'date_1': '2014-11-03', 'date_2': '2017-01-12'}
|
|
85
86
|
# oem_code '00' / sub-id 'C9', 30:069468 is a BUVA Boxstream
|
|
86
87
|
2023-11-04T12:34:14.007611 062 I --- 30:068457 63:262142 --:------ 10E0 038 000001C9001B0000FEFEFFFFFFFF0E0507E2425244472D30324A415330310000000000000000 # {'description': 'BRDG-02JAS01', 'manufacturer_sub_id': 'C9', 'product_id': '00', 'date_2': '0000-00-00', 'date_1': '2018-05-14', 'oem_code': '00'}
|
|
87
88
|
2022-01-01T00:00:00.000000 000 I --- 30:069468 63:262142 --:------ 10E0 038 000001C9001B0000FEFEFFFFFFFF0E0507E2425244472D30324A415330310000000000000000 # {'description': 'BRDG-02JAS01', 'manufacturer_sub_id': 'C9', 'product_id': '00', 'date_1': '2018-05-14', 'date_2': '0000-00-00', 'oem_code': '00'} # BUVA Boxstrea,
|
|
@@ -122,12 +123,14 @@
|
|
|
122
123
|
2019-11-27T22:39:00.000000 ... I --- 32:139773 63:262142 --:------ 10E0 038 000001C8A2050367FEFFFFFFFFFF1D0807E6564D442D3135524D5338362D3200000000000000 # {'description': 'VMD-15RMS86-2', 'manufacturer_sub_id': 'C8', 'product_id': 'A2', 'oem_code': '67', 'date_1': '2022-08-29', 'date_2': '0000-00-00'} # {"_SLUG": "HRU", "make": "Orcon", "model": "HRC 425"}
|
|
123
124
|
2019-11-27T22:39:00.000000 ... I --- 32:137102 63:262142 --:------ 10E0 030 000001C85E0B0567FFFFFFFFFFFFFFFFFFFF564D442D3135525053373500 # {'description': 'VMD-15RPS75', 'manufacturer_sub_id': 'C8', 'product_id': '5E', 'oem_code': '67', 'date_1': '0000-00-00', 'date_2': '0000-00-00'} # {"_SLUG": "HRU", "make": "Orcon", "model": "HRC 235"}
|
|
124
125
|
|
|
126
|
+
2024-03-04T16:54:24.502000 ... I --- 29:206851 63:262142 --:------ 10E0 029 000001C826090367FFFFFFFFFFFFFFFFFFFF564D432D31355250303100 # {'description': 'VMC-15RP01', 'manufacturer_sub_id': 'C8', 'oem_code': '67', 'product_id': '26', 'date_1': '0000-00-00', 'date_2': '0000-00-00'} # Orcon MVS-15RHB fan
|
|
127
|
+
|
|
125
128
|
# oem_code '6C' - Nuaire HVAC
|
|
126
129
|
2019-11-27T22:39:12.877929 061 RP --- 30:082155 18:013393 --:------ 10E0 038 000001C90011006CFEFFFFFFFFFF090907E0425244472D30324A415330310000000000000000 # {'description': 'BRDG-02JAS01', 'manufacturer_sub_id': 'C9', 'product_id': '00', 'oem_code': '6C', 'date_2': '0000-00-00', 'date_1': '2016-09-09'} # {"_SLUG": "PIV", "make": "Nuaire", "model": "Drimaster Eco-Heat-HC"}
|
|
127
130
|
2023-04-13T10:43:39.077524 073 I --- 30:098165 63:262142 --:------ 10E0 038 000001C9001D006CFEFEFFFFFFFF120707E3425244472D30324A415330310000000000000000 # {'description': 'BRDG-02JAS01', 'manufacturer_sub_id': 'C9', 'product_id': '00', 'oem_code': '6C', 'date_2': '0000-00-00', 'date_1': '2019-07-18'} # {"_SLUG": "PIV", "make": "Nuaire", "model": "Drimaster Eco-Heat-HC"}
|
|
128
131
|
2021-10-24T15:45:16.525879 055 I --- 32:168090 63:262142 --:------ 10E0 038 000001C85802016CFFFFFFFFFFFF0C0707E0564D532D32334842333300000000000000000000 # {'description': 'VMS-23HB33', 'manufacturer_sub_id': 'C8', 'product_id': '58', 'oem_code': '6C', 'date_2': '0000-00-00', 'date_1': '2016-07-12'} # {"_SLUG": "HUM", "make": "Nuaire", "model": "Drimaster RelHum Sensor"}
|
|
129
132
|
2022-01-01T00:00:00.000000 000 I --- 32:172522 63:262142 --:------ 10E0 029 000001C85901016CFFFFFFFFFFFF1F0507E0564D4E2D32334C4D333300 # {'description': 'VMN-23LM33', 'manufacturer_sub_id': 'C8', 'product_id': '59', 'oem_code': '6C', 'date_2': '0000-00-00', 'date_1': '2016-05-31'} # {"_SLUG": "???", "make": "Nuaire", "model": None}
|
|
130
|
-
|
|
133
|
+
2022-02-19T18:00:35.234656 062 I --- 32:206250 63:262142 --:------ 10E0 030 000001C85A01016CFFFFFFFFFFFF010607E0564D4E2D32334C4D48323300 # {'description': 'VMN-23LMH23', 'manufacturer_sub_id': 'C8', 'product_id': '5A', 'oem_code': '6C', 'date_1': '2016-06-01', 'date_2': '0000-00-00'}
|
|
131
134
|
|
|
132
135
|
#
|
|
133
136
|
# WIP
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# HVAC - not well understood
|
|
2
|
+
|
|
3
|
+
# system with Orcon HRC 425 SmartComfort
|
|
4
|
+
2023-11-12T00:00:11.000000 ... RP --- 32:153258 18:005904 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000000800 # {'exhaust_fan_speed': None, 'req_reason': 'IDL', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
5
|
+
2023-11-12T00:00:22.000000 ... RP --- 32:153258 18:005904 --:------ 2210 042 00FF00FFFF960000000003FFFFFFFFFF00FFFF960000000003FFFFFFFFFFFFFFFF000000000000000800 # {'exhaust_fan_speed': 0.75, 'req_reason': 'HUM', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
6
|
+
2023-11-12T00:00:33.000000 ... RP --- 32:139773 18:072982 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000020800 # {'exhaust_fan_speed': None, 'req_reason': 'IDL', 'unknown_78': '02', 'unknown_80': '08', 'unknown_82': '00'}
|
|
7
|
+
|
|
8
|
+
# ClimaRad Ventura V1x
|
|
9
|
+
2024-10-20T00:00:00.000000 ... I --- 37:153226 --:------ 37:153226 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000000140 # {'exhaust_fan_speed': None, 'req_reason': 'IDL', 'unknown_78': '00', 'unknown_80': '01', 'unknown_82': '40'}
|
|
10
|
+
2025-03-20T09:22:30.692000 000 RQ --- 18:130140 37:153226 --:------ 2210 001 00 # {}
|
|
11
|
+
2025-03-20T09:22:30.732000 053 RP --- 37:153226 18:130140 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000000140 # {'exhaust_fan_speed': None, 'req_reason': 'IDL', 'unknown_78': '00', 'unknown_80': '01', 'unknown_82': '40'}
|
|
12
|
+
|
|
13
|
+
# Orcon HVAC from issue #164 by @hermanbanken
|
|
14
|
+
2025-01-13T00:00:00.000000 ... RP --- 32:133288 18:101036 --:------ 2210 042 00FF00FFFF580000000003FFFFFFFFFF00FFFF580000000003FFFFFFFFFFFFFFFF000000000000000800 # {'exhaust_fan_speed': 0.44, 'req_reason': 'HUM', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
15
|
+
|
|
16
|
+
# Orcon RF15 control unit (log from remyderuysscher via ramses_cc issue 65)
|
|
17
|
+
2022-06-26T00:00:00.000001 ... RP --- 32:155021 18:071957 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000020800 # {'exhaust_fan_speed': None, 'req_reason': 'IDL', '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 # {'exhaust_fan_speed': 0.5, 'req_reason': 'HUM', '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 # {'exhaust_fan_speed': None, 'req_reason': 'IDL', '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 # {'exhaust_fan_speed': None, 'req_reason': 'IDL', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
22
|
+
# Orcon HRU, reported as VMD-15RMS86 from Kars-de-Jong
|
|
23
|
+
2025-08-29T11:43:01.693447 043 RP --- 32:123456 18:123456 --:------ 2210 042 00FF00FFFF440000000002FFFFFFFFFF00FFFF440000000002FFFFFFFFFFFFFFFF000000000000000800 # {'exhaust_fan_speed': 0.34, 'req_reason': 'CO2', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
24
|
+
2025-08-29T12:13:01.786453 042 RP --- 32:123456 18:123456 --:------ 2210 042 00FF00FFFF6C0000000002FFFFFFFFFF00FFFF6C0000000002FFFFFFFFFFFFFFFF000000000000000800 # {'exhaust_fan_speed': 0.54, 'req_reason': 'CO2', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
25
|
+
2025-08-29T21:51:48.094451 043 RP --- 32:123456 18:123456 --:------ 2210 042 00FF00FFFF2D0000000002FFFFFFFFFF00FFFF2D0000000002FFFFFFFFFFFFFFFF000000000000000800 # {'exhaust_fan_speed': 0.225, 'req_reason': 'CO2', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
26
|
+
2025-08-29T22:21:48.189311 043 RP --- 32:123456 18:123456 --:------ 2210 042 00FF00FFFF430000000002FFFFFFFFFF00FFFF430000000002FFFFFFFFFFFFFFFF000000000000000800 # {'exhaust_fan_speed': 0.335, 'req_reason': 'CO2', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# HVAC - not well understood
|
|
2
|
-
|
|
3
|
-
# system with Orcon HRC 425 SmartComfort
|
|
4
|
-
2023-11-12T00:00:11.000000 ... RP --- 32:153258 18:005904 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000000800 # {'unknown_10': 'FF', 'unknown_20': '00', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
5
|
-
2023-11-12T00:00:22.000000 ... RP --- 32:153258 18:005904 --:------ 2210 042 00FF00FFFF960000000003FFFFFFFFFF00FFFF960000000003FFFFFFFFFFFFFFFF000000000000000800 # {'unknown_10': '96', 'unknown_20': '03', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
6
|
-
2023-11-12T00:00:33.000000 ... RP --- 32:139773 18:072982 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000020800 # {'unknown_10': 'FF', 'unknown_20': '00', 'unknown_78': '02', 'unknown_80': '08', 'unknown_82': '00'}
|
|
7
|
-
|
|
8
|
-
# ClimaRad Ventura V1x
|
|
9
|
-
2024-10-20T00:00:00.000000 ... I --- 37:153226 --:------ 37:153226 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000000140 # {'unknown_10': 'FF', 'unknown_20': '00', 'unknown_78': '00', 'unknown_80': '01', 'unknown_82': '40'}
|
|
10
|
-
2025-03-20T09:22:30.692000 000 RQ --- 18:130140 37:153226 --:------ 2210 001 00 # {}
|
|
11
|
-
2025-03-20T09:22:30.732000 053 RP --- 37:153226 18:130140 --:------ 2210 042 00FF00FFFFFF0000000000FFFFFFFFFF00FFFFFF0000000000FFFFFFFFFFFFFFFF000000000000000140 # {'unknown_10': 'FF', 'unknown_20': '00', 'unknown_78': '00', 'unknown_80': '01', 'unknown_82': '40'}
|
|
12
|
-
|
|
13
|
-
# Orcon HVAC from issue #164 by @hermanbanken
|
|
14
|
-
2025-01-13T00:00:00.000000 ... RP --- 32:133288 18:101036 --:------ 2210 042 00FF00FFFF580000000003FFFFFFFFFF00FFFF580000000003FFFFFFFFFFFFFFFF000000000000000800 # {'unknown_10': '58', 'unknown_20': '03', 'unknown_78': '00', 'unknown_80': '08', 'unknown_82': '00'}
|
|
15
|
-
|
|
16
|
-
# Orcon RF15 control unit (log from remyderuysscher via ramses_cc issue 65)
|
|
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
|