myPyllant 0.9.2__tar.gz → 0.9.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.github/workflows/build-test.yaml +17 -11
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.pre-commit-config.yaml +12 -9
- mypyllant-0.9.4/Dockerfile +16 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/PKG-INFO +10 -14
- {mypyllant-0.9.2 → mypyllant-0.9.4}/README.md +9 -13
- {mypyllant-0.9.2 → mypyllant-0.9.4}/pyproject.toml +30 -1
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/api.py +5 -5
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/const.py +1 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/enums.py +6 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/http_client.py +2 -2
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/models.py +28 -2
- mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b/current_system.json +96 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b/device_buckets.json +130 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b/diagnostic_trouble_codes.json +32 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b/energy_management.json +18 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b/rbr.json +3 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b/rts.json +3 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b/ship_self.json +9 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b/system.json +295 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/homes.json +28 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d/control_identifier.json +3 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e/connection_status.json +3 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e/mpc.json +3 -0
- mypyllant-0.9.4/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e/time_zone.json +3 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/find_countries.py +3 -3
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/test_api.py +11 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/utils.py +6 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/utils.py +8 -7
- mypyllant-0.9.4/uv.lock +1603 -0
- mypyllant-0.9.2/Dockerfile +0 -15
- mypyllant-0.9.2/dev-requirements.txt +0 -17
- mypyllant-0.9.2/run_venv.sh +0 -9
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.devcontainer.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.dockerignore +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.github/dependabot.yml +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.github/workflows/docker.yaml +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.gitignore +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.vscode/settings.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/.vscode/tasks.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/LICENSE +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/logo.png +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/scripts/precommit +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/scripts/setup +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/__init__.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/export.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/py.typed +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/report.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/sample.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/__init__.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/conftest.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/connection_status.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/mpc.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/rbr.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/rooms.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/rts.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/fc9ac9ea562b2a82a48708045a7c628e33c0de4b/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense/homes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ambisense2.yaml +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/connection_status.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/energy_management.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/mpc.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/rbr.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/rooms.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/rts.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/ship_self.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/d6f61ab2a0ad4fb8d70e8b7c4faade70f6d2e9fe/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_cooling/homes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/connection_status.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/energy_management.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/mpc.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/rbr.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/rooms.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/rts.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/ship_self.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/547b5314b17a38830125171aa35b04ad87ef2de6/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/heatpump_heat_curve/homes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/no_cooling.yaml +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/no_system/1835c08766437e41a9c69bdf454e0ec8bfb0e82f/connection_status.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/no_system/1835c08766437e41a9c69bdf454e0ec8bfb0e82f/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/no_system/1835c08766437e41a9c69bdf454e0ec8bfb0e82f/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/no_system/1835c08766437e41a9c69bdf454e0ec8bfb0e82f/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/no_system/1835c08766437e41a9c69bdf454e0ec8bfb0e82f/firmware_update_required.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/no_system/1835c08766437e41a9c69bdf454e0ec8bfb0e82f/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/no_system/1835c08766437e41a9c69bdf454e0ec8bfb0e82f/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/no_system/homes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/one_system_two_heatpumps/7571042b8af21b829bda040425f77a76706b03d7/connection_status.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/one_system_two_heatpumps/7571042b8af21b829bda040425f77a76706b03d7/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/one_system_two_heatpumps/7571042b8af21b829bda040425f77a76706b03d7/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/one_system_two_heatpumps/7571042b8af21b829bda040425f77a76706b03d7/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/one_system_two_heatpumps/7571042b8af21b829bda040425f77a76706b03d7/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/one_system_two_heatpumps/7571042b8af21b829bda040425f77a76706b03d7/mpc.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/one_system_two_heatpumps/7571042b8af21b829bda040425f77a76706b03d7/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/one_system_two_heatpumps/7571042b8af21b829bda040425f77a76706b03d7/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/one_system_two_heatpumps/homes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/3692f21be10859c90ac96ada644badd442d5f9c2/connection_status.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/3692f21be10859c90ac96ada644badd442d5f9c2/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/3692f21be10859c90ac96ada644badd442d5f9c2/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/3692f21be10859c90ac96ada644badd442d5f9c2/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/3692f21be10859c90ac96ada644badd442d5f9c2/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/3692f21be10859c90ac96ada644badd442d5f9c2/mpc.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/3692f21be10859c90ac96ada644badd442d5f9c2/rts.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/3692f21be10859c90ac96ada644badd442d5f9c2/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/3692f21be10859c90ac96ada644badd442d5f9c2/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/rts/homes.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532 → mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b}/connection_status.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532 → mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b}/control_identifier.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532 → mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b}/mpc.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532 → mypyllant-0.9.4/src/myPyllant/tests/data/systemflow_and_energymanagerstate/dbe49b89a27d4cea8ca1d00634c4a01b}/time_zone.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e → mypyllant-0.9.4/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532}/connection_status.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e → mypyllant-0.9.4/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532}/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e → mypyllant-0.9.4/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532}/mpc.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532/system.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e → mypyllant-0.9.4/src/myPyllant/tests/data/two_systems/e763593de7370e8d6f90fea50daacd9883e2e532}/time_zone.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e → mypyllant-0.9.4/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e}/connection_status.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e → mypyllant-0.9.4/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e}/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d → mypyllant-0.9.4/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e}/mpc.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e/system.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e → mypyllant-0.9.4/src/myPyllant/tests/data/two_systems/eed6a6500c47dc8f433846e845bb662e13fe469e}/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/two_systems/homes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e/claims.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d → mypyllant-0.9.4/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e}/connection_status.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d → mypyllant-0.9.4/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e}/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ventilation/7f73f3852ea7775da288da3e6dc2fac2f298ea3e/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/ventilation/homes.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670 → mypyllant-0.9.4/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d}/connection_status.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670 → mypyllant-0.9.4/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d}/mpc.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d/rts.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vr940f/ab2f4a951a7e71431585d56871d447d4ba8be78d/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vr940f/homes.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e → mypyllant-0.9.4/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670}/connection_status.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e → mypyllant-0.9.4/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670}/mpc.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700/214ff1c13404bfd2d9350da3bfe86d45b9a7d670/time_zone.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700/homes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_dhw.yaml +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e/control_identifier.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e/current_system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e/device_buckets.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e/diagnostic_trouble_codes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e/rts.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_flexotherm/4d6354e40143a24b8caa0666a79f705b3df9e59e/system.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_flexotherm/homes.json +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_mpc_rts.yaml +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/data/vrc700_ventilation.yaml +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/generate_test_data.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/run_function_test.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/test_countries.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/test_export.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/test_generate_test_data.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/test_models.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/test_sample.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/test_utils.py +0 -0
- {mypyllant-0.9.2 → mypyllant-0.9.4}/src/myPyllant/tests/update_sample.py +0 -0
|
@@ -12,33 +12,39 @@ jobs:
|
|
|
12
12
|
permissions:
|
|
13
13
|
id-token: write
|
|
14
14
|
steps:
|
|
15
|
-
- uses: actions/checkout@
|
|
16
|
-
|
|
15
|
+
- uses: actions/checkout@v5
|
|
16
|
+
|
|
17
|
+
- name: "Set up Python"
|
|
17
18
|
uses: actions/setup-python@v5
|
|
18
19
|
with:
|
|
19
|
-
python-version: "
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
python-version-file: "pyproject.toml"
|
|
21
|
+
|
|
22
|
+
- name: Install uv
|
|
23
|
+
uses: astral-sh/setup-uv@v6
|
|
24
|
+
|
|
25
|
+
- name: Install the project
|
|
26
|
+
run: uv sync --locked --all-extras --dev
|
|
27
|
+
|
|
26
28
|
- uses: pre-commit/action@v3.0.0
|
|
27
29
|
env:
|
|
28
30
|
SKIP: pytest
|
|
31
|
+
|
|
29
32
|
- name: set pythonpath
|
|
30
33
|
run: |
|
|
31
34
|
echo "PYTHONPATH=${PYTHONPATH}:${PWD}/src" >> $GITHUB_ENV
|
|
35
|
+
|
|
32
36
|
- name: Test with pytest
|
|
33
37
|
run: |
|
|
34
|
-
pytest
|
|
38
|
+
uv run pytest
|
|
39
|
+
|
|
35
40
|
- name: Build a binary wheel and a source tarball
|
|
36
41
|
run: >-
|
|
37
|
-
|
|
42
|
+
uv run -m
|
|
38
43
|
build
|
|
39
44
|
--sdist
|
|
40
45
|
--wheel
|
|
41
46
|
--outdir dist/
|
|
47
|
+
|
|
42
48
|
- name: Publish distribution to PyPI
|
|
43
49
|
if: startsWith(github.ref, 'refs/tags')
|
|
44
50
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
repos:
|
|
2
|
+
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
3
|
+
# uv version.
|
|
4
|
+
rev: 0.8.24
|
|
5
|
+
hooks:
|
|
6
|
+
- id: uv-lock
|
|
2
7
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
-
rev: v0.
|
|
8
|
+
rev: v0.13.3
|
|
4
9
|
hooks:
|
|
5
10
|
- id: ruff
|
|
6
11
|
args: [ --fix ]
|
|
7
12
|
- id: ruff-format
|
|
8
13
|
- repo: https://github.com/codespell-project/codespell
|
|
9
|
-
rev: v2.
|
|
14
|
+
rev: v2.4.1
|
|
10
15
|
hooks:
|
|
11
16
|
- id: codespell
|
|
12
17
|
args:
|
|
@@ -15,7 +20,7 @@ repos:
|
|
|
15
20
|
- --quiet-level=2
|
|
16
21
|
exclude_types: [ csv, json ]
|
|
17
22
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
18
|
-
rev:
|
|
23
|
+
rev: v6.0.0
|
|
19
24
|
hooks:
|
|
20
25
|
- id: check-executables-have-shebangs
|
|
21
26
|
- id: check-json
|
|
@@ -30,24 +35,22 @@ repos:
|
|
|
30
35
|
hooks:
|
|
31
36
|
- id: mypy
|
|
32
37
|
name: mypy
|
|
33
|
-
entry:
|
|
38
|
+
entry: uv run mypy
|
|
34
39
|
args:
|
|
35
|
-
- mypy
|
|
36
40
|
- --pretty
|
|
37
41
|
- --show-error-codes
|
|
38
42
|
- --show-error-context
|
|
39
43
|
- --check-untyped-defs
|
|
40
|
-
language:
|
|
44
|
+
language: system
|
|
41
45
|
pass_filenames: true
|
|
42
46
|
files: ^src/.+\.py$
|
|
43
47
|
exclude: ^src/myPyllant/tests/
|
|
44
48
|
- id: pytest
|
|
45
49
|
name: pytest
|
|
46
|
-
entry:
|
|
50
|
+
entry: uv run pytest
|
|
47
51
|
args:
|
|
48
|
-
- pytest
|
|
49
52
|
- --no-cov
|
|
50
53
|
- -n4
|
|
51
|
-
language:
|
|
54
|
+
language: system
|
|
52
55
|
pass_filenames: false
|
|
53
56
|
files: ^src/.+\.(py|json|yaml)$
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
FROM python:3.13-slim
|
|
2
|
+
|
|
3
|
+
WORKDIR /build
|
|
4
|
+
|
|
5
|
+
RUN apt update \
|
|
6
|
+
&& apt install -y git pipx \
|
|
7
|
+
&& rm -rf /var/lib/apt/lists/* \
|
|
8
|
+
&& pipx install uv
|
|
9
|
+
|
|
10
|
+
ENV PATH="$PATH:/root/.local/bin"
|
|
11
|
+
|
|
12
|
+
COPY . .
|
|
13
|
+
|
|
14
|
+
RUN uv run pre-commit install
|
|
15
|
+
|
|
16
|
+
CMD uv run pytest
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: myPyllant
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.4
|
|
4
4
|
Summary: A Python library to interact with the API behind the myVAILLANT app
|
|
5
5
|
Project-URL: Homepage, https://github.com/signalkraft/myPyllant
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/signalkraft/myPyllant/issues
|
|
@@ -44,7 +44,7 @@ pip install myPyllant
|
|
|
44
44
|
..or use Docker, if you just want to use it as a CLI tool:
|
|
45
45
|
|
|
46
46
|
```shell
|
|
47
|
-
docker run -ti ghcr.io/signalkraft/mypyllant:latest
|
|
47
|
+
docker run -ti ghcr.io/signalkraft/mypyllant:latest uv run -m myPyllant.export user password brand --country country
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
## Usage
|
|
@@ -143,21 +143,17 @@ See https://github.com/signalkraft/mypyllant-component/blob/main/README.md#teste
|
|
|
143
143
|
|
|
144
144
|
## Contributing
|
|
145
145
|
|
|
146
|
-
>
|
|
146
|
+
> [!WARNING]
|
|
147
147
|
>
|
|
148
|
-
> You need at least Python 3.10
|
|
148
|
+
> You need at least Python 3.10 and [uv installed](https://docs.astral.sh/uv/getting-started/installation/)
|
|
149
149
|
|
|
150
150
|
I'm happy to accept PRs, if you run the pre-commit checks and test your changes:
|
|
151
151
|
|
|
152
152
|
```shell
|
|
153
153
|
git clone https://github.com/signalkraft/myPyllant.git
|
|
154
154
|
cd myPyllant
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
pip install -r dev-requirements.txt
|
|
158
|
-
pip install -e .
|
|
159
|
-
pre-commit install
|
|
160
|
-
pytest
|
|
155
|
+
uv run pre-commit install
|
|
156
|
+
uv run pytest
|
|
161
157
|
```
|
|
162
158
|
|
|
163
159
|
### Supporting new Countries
|
|
@@ -166,7 +162,7 @@ The myVAILLANT app uses Keycloak and OIDC for authentication, with a realm for e
|
|
|
166
162
|
There is a script to check which countries are supported:
|
|
167
163
|
|
|
168
164
|
```shell
|
|
169
|
-
|
|
165
|
+
uv run -m myPyllant.tests.find_countries
|
|
170
166
|
```
|
|
171
167
|
|
|
172
168
|
Copy the resulting dictionary into [src/myPyllant/const.py](src/myPyllant/const.py)
|
|
@@ -176,14 +172,14 @@ Copy the resulting dictionary into [src/myPyllant/const.py](src/myPyllant/const.
|
|
|
176
172
|
Because the myVAILLANT API isn't documented, you can help the development of this library by contributing test data:
|
|
177
173
|
|
|
178
174
|
```shell
|
|
179
|
-
|
|
180
|
-
|
|
175
|
+
uv run -m myPyllant.tests.generate_test_data -h
|
|
176
|
+
uv run -m myPyllant.tests.generate_test_data username password brand --country country
|
|
181
177
|
```
|
|
182
178
|
|
|
183
179
|
..or use Docker:
|
|
184
180
|
|
|
185
181
|
```shell
|
|
186
|
-
docker run -v $(pwd)/test_data:/build/src/myPyllant/tests/json -ti ghcr.io/signalkraft/mypyllant:latest
|
|
182
|
+
docker run -v $(pwd)/test_data:/build/src/myPyllant/tests/json -ti ghcr.io/signalkraft/mypyllant:latest uv run -m myPyllant.tests.generate_test_data username password brand --country country
|
|
187
183
|
```
|
|
188
184
|
|
|
189
185
|
With docker, the results will be put into `test_data/`.
|
|
@@ -28,7 +28,7 @@ pip install myPyllant
|
|
|
28
28
|
..or use Docker, if you just want to use it as a CLI tool:
|
|
29
29
|
|
|
30
30
|
```shell
|
|
31
|
-
docker run -ti ghcr.io/signalkraft/mypyllant:latest
|
|
31
|
+
docker run -ti ghcr.io/signalkraft/mypyllant:latest uv run -m myPyllant.export user password brand --country country
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
## Usage
|
|
@@ -127,21 +127,17 @@ See https://github.com/signalkraft/mypyllant-component/blob/main/README.md#teste
|
|
|
127
127
|
|
|
128
128
|
## Contributing
|
|
129
129
|
|
|
130
|
-
>
|
|
130
|
+
> [!WARNING]
|
|
131
131
|
>
|
|
132
|
-
> You need at least Python 3.10
|
|
132
|
+
> You need at least Python 3.10 and [uv installed](https://docs.astral.sh/uv/getting-started/installation/)
|
|
133
133
|
|
|
134
134
|
I'm happy to accept PRs, if you run the pre-commit checks and test your changes:
|
|
135
135
|
|
|
136
136
|
```shell
|
|
137
137
|
git clone https://github.com/signalkraft/myPyllant.git
|
|
138
138
|
cd myPyllant
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
pip install -r dev-requirements.txt
|
|
142
|
-
pip install -e .
|
|
143
|
-
pre-commit install
|
|
144
|
-
pytest
|
|
139
|
+
uv run pre-commit install
|
|
140
|
+
uv run pytest
|
|
145
141
|
```
|
|
146
142
|
|
|
147
143
|
### Supporting new Countries
|
|
@@ -150,7 +146,7 @@ The myVAILLANT app uses Keycloak and OIDC for authentication, with a realm for e
|
|
|
150
146
|
There is a script to check which countries are supported:
|
|
151
147
|
|
|
152
148
|
```shell
|
|
153
|
-
|
|
149
|
+
uv run -m myPyllant.tests.find_countries
|
|
154
150
|
```
|
|
155
151
|
|
|
156
152
|
Copy the resulting dictionary into [src/myPyllant/const.py](src/myPyllant/const.py)
|
|
@@ -160,14 +156,14 @@ Copy the resulting dictionary into [src/myPyllant/const.py](src/myPyllant/const.
|
|
|
160
156
|
Because the myVAILLANT API isn't documented, you can help the development of this library by contributing test data:
|
|
161
157
|
|
|
162
158
|
```shell
|
|
163
|
-
|
|
164
|
-
|
|
159
|
+
uv run -m myPyllant.tests.generate_test_data -h
|
|
160
|
+
uv run -m myPyllant.tests.generate_test_data username password brand --country country
|
|
165
161
|
```
|
|
166
162
|
|
|
167
163
|
..or use Docker:
|
|
168
164
|
|
|
169
165
|
```shell
|
|
170
|
-
docker run -v $(pwd)/test_data:/build/src/myPyllant/tests/json -ti ghcr.io/signalkraft/mypyllant:latest
|
|
166
|
+
docker run -v $(pwd)/test_data:/build/src/myPyllant/tests/json -ti ghcr.io/signalkraft/mypyllant:latest uv run -m myPyllant.tests.generate_test_data username password brand --country country
|
|
171
167
|
```
|
|
172
168
|
|
|
173
169
|
With docker, the results will be put into `test_data/`.
|
|
@@ -17,6 +17,35 @@ dependencies = [
|
|
|
17
17
|
]
|
|
18
18
|
dynamic = ["version"]
|
|
19
19
|
|
|
20
|
+
[dependency-groups]
|
|
21
|
+
dev = [
|
|
22
|
+
{include-group = "lint"},
|
|
23
|
+
{include-group = "test"}
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
test = [
|
|
27
|
+
"aioresponses~=0.7.7",
|
|
28
|
+
"pytest>=8.3.0",
|
|
29
|
+
"aiohttp>=3.8.0",
|
|
30
|
+
"pytest-aiohttp~=1.0.5",
|
|
31
|
+
"pytest-asyncio~=0.24.0",
|
|
32
|
+
"pytest-cov~=5.0.0",
|
|
33
|
+
"pytest-mock~=3.14.0",
|
|
34
|
+
"pytest-xdist>=3.3.0",
|
|
35
|
+
"build~=1.2.1",
|
|
36
|
+
"freezegun~=1.5.1",
|
|
37
|
+
"country_list~=1.1.0",
|
|
38
|
+
"requests~=2.31.0",
|
|
39
|
+
"pydantic>=2.10,<3.0",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
lint = [
|
|
43
|
+
"pre-commit~=4.0.1",
|
|
44
|
+
"mypy~=1.13.0",
|
|
45
|
+
"types-requests~=2.32.0.20240712",
|
|
46
|
+
"types-PyYAML~=6.0.12.20240917",
|
|
47
|
+
]
|
|
48
|
+
|
|
20
49
|
[project.urls]
|
|
21
50
|
"Homepage" = "https://github.com/signalkraft/myPyllant"
|
|
22
51
|
"Bug Tracker" = "https://github.com/signalkraft/myPyllant/issues"
|
|
@@ -44,7 +73,7 @@ filterwarnings = ["ignore:Inheritance class CountingClientSession from ClientSes
|
|
|
44
73
|
omit = ["*/tests/*"]
|
|
45
74
|
|
|
46
75
|
[tool.mypy]
|
|
47
|
-
python_version = "3.
|
|
76
|
+
python_version = "3.13"
|
|
48
77
|
pretty = true
|
|
49
78
|
follow_imports = "silent"
|
|
50
79
|
warn_incomplete_stub = true
|
|
@@ -201,7 +201,7 @@ class MyPyllantAPI:
|
|
|
201
201
|
if "Location" not in resp.headers:
|
|
202
202
|
raise AuthenticationFailed("Login failed")
|
|
203
203
|
logger.debug(
|
|
204
|
-
f
|
|
204
|
+
f"Got location from authorize endpoint: {resp.headers['Location']}"
|
|
205
205
|
)
|
|
206
206
|
parsed_url = urlparse(resp.headers["Location"])
|
|
207
207
|
code = parse_qs(parsed_url.query)["code"]
|
|
@@ -930,9 +930,9 @@ class MyPyllantAPI:
|
|
|
930
930
|
)
|
|
931
931
|
|
|
932
932
|
if start and end:
|
|
933
|
-
system.configuration["system"][
|
|
934
|
-
|
|
935
|
-
|
|
933
|
+
system.configuration["system"]["manual_cooling_start_date"] = (
|
|
934
|
+
datetime_format(start)
|
|
935
|
+
)
|
|
936
936
|
system.configuration["system"]["manual_cooling_end_date"] = datetime_format(
|
|
937
937
|
end
|
|
938
938
|
)
|
|
@@ -1243,7 +1243,7 @@ class MyPyllantAPI:
|
|
|
1243
1243
|
try:
|
|
1244
1244
|
tz = (await response.json())["timeZone"]
|
|
1245
1245
|
return ZoneInfo(key=tz)
|
|
1246
|
-
except KeyError:
|
|
1246
|
+
except (KeyError, TypeError):
|
|
1247
1247
|
logger.warning("Couldn't get timezone from API")
|
|
1248
1248
|
return None
|
|
1249
1249
|
|
|
@@ -25,9 +25,9 @@ class CountingClientSession(aiohttp.ClientSession):
|
|
|
25
25
|
super().__init__(*args, **kwargs)
|
|
26
26
|
self.request_count = 0
|
|
27
27
|
|
|
28
|
-
async def _request(self, method,
|
|
28
|
+
async def _request(self, method, str_or_url, **kwargs):
|
|
29
29
|
self.request_count += 1
|
|
30
|
-
return await super()._request(method,
|
|
30
|
+
return await super()._request(method, str_or_url, **kwargs)
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
async def on_request_start(session, context, params: aiohttp.TraceRequestStartParams):
|
|
@@ -27,6 +27,7 @@ from myPyllant.enums import (
|
|
|
27
27
|
AmbisenseRoomOperationMode,
|
|
28
28
|
VentilationOperationModeVRC700,
|
|
29
29
|
ZoneOperatingType,
|
|
30
|
+
EnergyManagerState,
|
|
30
31
|
)
|
|
31
32
|
from myPyllant.utils import datetime_parse, prepare_field_value_for_dict
|
|
32
33
|
|
|
@@ -551,7 +552,9 @@ class DomesticHotWater(MyPyllantDataClass):
|
|
|
551
552
|
system_id: str
|
|
552
553
|
index: int
|
|
553
554
|
control_identifier: ControlIdentifier
|
|
554
|
-
current_special_function:
|
|
555
|
+
current_special_function: (
|
|
556
|
+
DHWCurrentSpecialFunction | DHWCurrentSpecialFunctionVRC700
|
|
557
|
+
)
|
|
555
558
|
max_setpoint: float
|
|
556
559
|
min_setpoint: float
|
|
557
560
|
operation_mode_dhw: DHWOperationMode | DHWOperationModeVRC700
|
|
@@ -596,7 +599,9 @@ class Ventilation(MyPyllantDataClass):
|
|
|
596
599
|
control_identifier: ControlIdentifier
|
|
597
600
|
maximum_day_fan_stage: int
|
|
598
601
|
maximum_night_fan_stage: int
|
|
599
|
-
operation_mode_ventilation:
|
|
602
|
+
operation_mode_ventilation: (
|
|
603
|
+
VentilationOperationMode | VentilationOperationModeVRC700
|
|
604
|
+
)
|
|
600
605
|
time_program_ventilation: dict
|
|
601
606
|
|
|
602
607
|
@classmethod
|
|
@@ -1139,6 +1144,27 @@ class System(MyPyllantDataClass):
|
|
|
1139
1144
|
)
|
|
1140
1145
|
return None
|
|
1141
1146
|
|
|
1147
|
+
@property
|
|
1148
|
+
def system_flow_temperature(self) -> float | None:
|
|
1149
|
+
try:
|
|
1150
|
+
return self.state["system"]["system_flow_temperature"]
|
|
1151
|
+
except KeyError:
|
|
1152
|
+
logger.debug(
|
|
1153
|
+
"Could not get system flow temperature from system control state"
|
|
1154
|
+
)
|
|
1155
|
+
return None
|
|
1156
|
+
|
|
1157
|
+
@property
|
|
1158
|
+
def energy_manager_state(self) -> EnergyManagerState | None:
|
|
1159
|
+
try:
|
|
1160
|
+
return EnergyManagerState(self.state["system"]["energy_manager_state"])
|
|
1161
|
+
except (KeyError, ValueError) as e:
|
|
1162
|
+
logger.debug(
|
|
1163
|
+
"Could not get energy manager state from system control state",
|
|
1164
|
+
exc_info=e,
|
|
1165
|
+
)
|
|
1166
|
+
return None
|
|
1167
|
+
|
|
1142
1168
|
@property
|
|
1143
1169
|
def is_cooling_allowed(self) -> bool:
|
|
1144
1170
|
return any([z.is_cooling_allowed for z in self.zones]) or any(
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"system_type": "HYBRID",
|
|
3
|
+
"has_emf_capable_devices": true,
|
|
4
|
+
"primary_heat_generator": {
|
|
5
|
+
"device_uuid": "40f450aeeee14302bf9e13e01b9d6a0c",
|
|
6
|
+
"ebus_id": "HMU03",
|
|
7
|
+
"spn": 351,
|
|
8
|
+
"bus_coupler_address": 0,
|
|
9
|
+
"article_number": "0010021122",
|
|
10
|
+
"emfValid": true,
|
|
11
|
+
"device_serial_number": "18f34e048e8f49309cb175459642e894",
|
|
12
|
+
"device_type": "HEATPUMP",
|
|
13
|
+
"first_data": "2025-03-07T10:07:08.286Z",
|
|
14
|
+
"last_data": "2025-04-05T21:33:38.372Z",
|
|
15
|
+
"data": [
|
|
16
|
+
{
|
|
17
|
+
"operation_mode": "DOMESTIC_HOT_WATER",
|
|
18
|
+
"value_type": "CONSUMED_ELECTRICAL_ENERGY",
|
|
19
|
+
"calculated": false,
|
|
20
|
+
"from": "2025-03-07T10:07:08.63Z",
|
|
21
|
+
"to": "2025-04-05T21:33:36.965Z"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"operation_mode": "HEATING",
|
|
25
|
+
"value_type": "CONSUMED_ELECTRICAL_ENERGY",
|
|
26
|
+
"calculated": false,
|
|
27
|
+
"from": "2025-03-07T10:07:08.286Z",
|
|
28
|
+
"to": "2025-04-05T21:33:36.606Z"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"operation_mode": "DOMESTIC_HOT_WATER",
|
|
32
|
+
"value_type": "EARNED_ENVIRONMENT_ENERGY",
|
|
33
|
+
"calculated": false,
|
|
34
|
+
"from": "2025-03-07T10:07:09.473Z",
|
|
35
|
+
"to": "2025-04-05T21:33:37.997Z"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"operation_mode": "HEATING",
|
|
39
|
+
"value_type": "EARNED_ENVIRONMENT_ENERGY",
|
|
40
|
+
"calculated": false,
|
|
41
|
+
"from": "2025-03-07T10:07:09.301Z",
|
|
42
|
+
"to": "2025-04-05T21:33:37.715Z"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"operation_mode": "HEATING",
|
|
46
|
+
"value_type": "HEAT_GENERATED",
|
|
47
|
+
"calculated": true,
|
|
48
|
+
"from": "2025-03-07T10:07:09.301Z",
|
|
49
|
+
"to": "2025-04-05T21:33:36.606Z"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"operation_mode": "DOMESTIC_HOT_WATER",
|
|
53
|
+
"value_type": "HEAT_GENERATED",
|
|
54
|
+
"calculated": true,
|
|
55
|
+
"from": "2025-03-07T10:07:09.473Z",
|
|
56
|
+
"to": "2025-04-05T21:33:36.965Z"
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"product_name": "aroTHERM plus"
|
|
60
|
+
},
|
|
61
|
+
"secondary_heat_generators": [
|
|
62
|
+
{
|
|
63
|
+
"device_uuid": "b0855086cd0145eb96f35d9d9d038b20",
|
|
64
|
+
"ebus_id": "BAI00",
|
|
65
|
+
"spn": 375,
|
|
66
|
+
"bus_coupler_address": 24,
|
|
67
|
+
"article_number": "0010023697",
|
|
68
|
+
"emfValid": true,
|
|
69
|
+
"device_serial_number": "529ea1aefc90483f906fc0f844966902",
|
|
70
|
+
"device_type": "BOILER",
|
|
71
|
+
"first_data": "2025-03-07T10:07:10.739Z",
|
|
72
|
+
"last_data": "2025-04-05T21:33:42.044Z",
|
|
73
|
+
"data": [
|
|
74
|
+
{
|
|
75
|
+
"operation_mode": "DOMESTIC_HOT_WATER",
|
|
76
|
+
"value_type": "CONSUMED_ELECTRICAL_ENERGY",
|
|
77
|
+
"calculated": false,
|
|
78
|
+
"from": "2025-03-07T10:07:11.801Z",
|
|
79
|
+
"to": "2025-04-05T21:33:42.044Z"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"operation_mode": "HEATING",
|
|
83
|
+
"value_type": "CONSUMED_ELECTRICAL_ENERGY",
|
|
84
|
+
"calculated": false,
|
|
85
|
+
"from": "2025-03-07T10:07:11.426Z",
|
|
86
|
+
"to": "2025-04-05T21:33:41.403Z"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"product_name": "eloBLOCK VE 28 / 14 EU I"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"electric_backup_heater": null,
|
|
93
|
+
"solar_station": null,
|
|
94
|
+
"ventilation": null,
|
|
95
|
+
"gateway": null
|
|
96
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"startDate": "2024-10-29T00:00:00Z",
|
|
3
|
+
"endDate": "2024-10-30T00:00:00Z",
|
|
4
|
+
"resolution": "HOUR",
|
|
5
|
+
"operationMode": "COOLING",
|
|
6
|
+
"energyType": "CONSUMED_ELECTRICAL_ENERGY",
|
|
7
|
+
"totalConsumption": 0.0,
|
|
8
|
+
"data": [
|
|
9
|
+
{
|
|
10
|
+
"startDate": "2024-10-29T00:00:00Z",
|
|
11
|
+
"endDate": "2024-10-29T01:00:00Z",
|
|
12
|
+
"value": 0.0
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"startDate": "2024-10-29T01:00:00Z",
|
|
16
|
+
"endDate": "2024-10-29T02:00:00Z",
|
|
17
|
+
"value": 0.0
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"startDate": "2024-10-29T02:00:00Z",
|
|
21
|
+
"endDate": "2024-10-29T03:00:00Z",
|
|
22
|
+
"value": 0.0
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"startDate": "2024-10-29T03:00:00Z",
|
|
26
|
+
"endDate": "2024-10-29T04:00:00Z",
|
|
27
|
+
"value": 0.0
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"startDate": "2024-10-29T04:00:00Z",
|
|
31
|
+
"endDate": "2024-10-29T05:00:00Z",
|
|
32
|
+
"value": 0.0
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"startDate": "2024-10-29T05:00:00Z",
|
|
36
|
+
"endDate": "2024-10-29T06:00:00Z",
|
|
37
|
+
"value": 0.0
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"startDate": "2024-10-29T06:00:00Z",
|
|
41
|
+
"endDate": "2024-10-29T07:00:00Z",
|
|
42
|
+
"value": 0.0
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"startDate": "2024-10-29T07:00:00Z",
|
|
46
|
+
"endDate": "2024-10-29T08:00:00Z",
|
|
47
|
+
"value": 0.0
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"startDate": "2024-10-29T08:00:00Z",
|
|
51
|
+
"endDate": "2024-10-29T09:00:00Z",
|
|
52
|
+
"value": 0.0
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"startDate": "2024-10-29T09:00:00Z",
|
|
56
|
+
"endDate": "2024-10-29T10:00:00Z",
|
|
57
|
+
"value": 0.0
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"startDate": "2024-10-29T10:00:00Z",
|
|
61
|
+
"endDate": "2024-10-29T11:00:00Z",
|
|
62
|
+
"value": 0.0
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"startDate": "2024-10-29T11:00:00Z",
|
|
66
|
+
"endDate": "2024-10-29T12:00:00Z",
|
|
67
|
+
"value": 0.0
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"startDate": "2024-10-29T12:00:00Z",
|
|
71
|
+
"endDate": "2024-10-29T13:00:00Z",
|
|
72
|
+
"value": 0.0
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"startDate": "2024-10-29T13:00:00Z",
|
|
76
|
+
"endDate": "2024-10-29T14:00:00Z",
|
|
77
|
+
"value": 0.0
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"startDate": "2024-10-29T14:00:00Z",
|
|
81
|
+
"endDate": "2024-10-29T15:00:00Z",
|
|
82
|
+
"value": 0.0
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"startDate": "2024-10-29T15:00:00Z",
|
|
86
|
+
"endDate": "2024-10-29T16:00:00Z",
|
|
87
|
+
"value": 0.0
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"startDate": "2024-10-29T16:00:00Z",
|
|
91
|
+
"endDate": "2024-10-29T17:00:00Z",
|
|
92
|
+
"value": 0.0
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"startDate": "2024-10-29T17:00:00Z",
|
|
96
|
+
"endDate": "2024-10-29T18:00:00Z",
|
|
97
|
+
"value": 0.0
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"startDate": "2024-10-29T18:00:00Z",
|
|
101
|
+
"endDate": "2024-10-29T19:00:00Z",
|
|
102
|
+
"value": 0.0
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"startDate": "2024-10-29T19:00:00Z",
|
|
106
|
+
"endDate": "2024-10-29T20:00:00Z",
|
|
107
|
+
"value": 0.0
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"startDate": "2024-10-29T20:00:00Z",
|
|
111
|
+
"endDate": "2024-10-29T21:00:00Z",
|
|
112
|
+
"value": 0.0
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"startDate": "2024-10-29T21:00:00Z",
|
|
116
|
+
"endDate": "2024-10-29T22:00:00Z",
|
|
117
|
+
"value": 0.0
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"startDate": "2024-10-29T22:00:00Z",
|
|
121
|
+
"endDate": "2024-10-29T23:00:00Z",
|
|
122
|
+
"value": 0.0
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"startDate": "2024-10-29T23:00:00Z",
|
|
126
|
+
"endDate": "2024-10-30T00:00:00Z",
|
|
127
|
+
"value": 0.0
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"serialNumber": "668e137808d84713adccc7181de2927f",
|
|
4
|
+
"articleNumber": "0020260914",
|
|
5
|
+
"codes": []
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"serialNumber": "18f34e048e8f49309cb175459642e894",
|
|
9
|
+
"articleNumber": "0010021122",
|
|
10
|
+
"codes": []
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"serialNumber": "696a1d22482a4cd3b2af6073e332ebca",
|
|
14
|
+
"articleNumber": "8000015501",
|
|
15
|
+
"codes": []
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"serialNumber": "016bf4d685ba47fdb610c104ba30bbbb",
|
|
19
|
+
"articleNumber": "0010031643",
|
|
20
|
+
"codes": []
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"serialNumber": "690deeb5034641d09a8db61aa79ce906",
|
|
24
|
+
"articleNumber": "0020184846",
|
|
25
|
+
"codes": []
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"serialNumber": "529ea1aefc90483f906fc0f844966902",
|
|
29
|
+
"articleNumber": "0010023697",
|
|
30
|
+
"codes": []
|
|
31
|
+
}
|
|
32
|
+
]
|