boneio 1.5.0.dev22__tar.gz → 1.5.0.dev24__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.
- {boneio-1.5.0.dev22/boneio.egg-info → boneio-1.5.0.dev24}/PKG-INFO +1 -1
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/bonecli.py +3 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/cover/venetian.py +13 -14
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/cloud/registration.py +21 -21
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/migrations/v4_wled_cache.py +5 -3
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/schema_converter.py +10 -2
- boneio-1.5.0.dev24/boneio/core/config/yaml_compat.py +45 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/yaml_util.py +343 -194
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/utils/timeperiod.py +25 -8
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/actions.py +78 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/MANIFEST.sha256 +1 -0
- boneio-1.5.0.dev24/boneio/migrations/assets/wheels/pyyaml-6.0.3-cp313-cp313-linux_armv7l.whl +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/bootstrap/boneio-migrate +186 -0
- boneio-1.5.0.dev24/boneio/migrations/versions/v1_5_2_libyaml.py +109 -0
- boneio-1.5.0.dev24/boneio/migrations/versions/v1_5_3_libyaml_retry.py +102 -0
- boneio-1.5.0.dev24/boneio/version.py +2 -0
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/BindingMatrix-C993gYYe.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/BindingMatrix-HeIJ-fdc.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/ConfigEditor-CTayeo9a.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/ConfigEditor-DungnyP9.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/EditItemDialog-BitGvgVK.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/EditItemDialog-D6sMQCm4.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/EntityCard-D-pNme92.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/EntityCard-C4CsnsC3.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/FormInputToggle-CwSemBhC.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/FormInputToggle-CizPsvVx.js +1 -1
- boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/InputsView-B3IC5g5i.js +1 -0
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/LogViewer-hogJ8a1j.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/LogViewer-CvSFLDPH.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/ModbusView-DOxkfkhx.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/ModbusView-CmCpBs0W.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/OutputsView-DIF7Ld-3.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/OutputsView-CjWrKAH6.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/SensorView-NK1xZOGU.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/SensorView-DVmp-mbx.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/SudoPasswordDialog-CGdz-zg5.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/SudoPasswordDialog-D1FTg4dI.js +1 -1
- boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/SystemState-D2NXOXke.js +1 -0
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/TemplatesView-BU0uHOxT.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/TemplatesView-DVOrgw6Y.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/Tools-DqoipYLB.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/Tools-anCB88sw.js +1 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/UISettings-CYqqM4Nh.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/UISettings-Dwa6-3E-.js +3 -3
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/index-WPqx-mUk.js → boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/index-CuPeVd5n.js +2 -2
- boneio-1.5.0.dev24/boneio/webui/frontend-dist/assets/useTranslation-CVJhMndf.js +13 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/index.html +2 -2
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/sw.js +1 -1
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/config_actions.py +59 -4
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/config_core.py +12 -5
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/system.py +19 -4
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24/boneio.egg-info}/PKG-INFO +1 -1
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio.egg-info/SOURCES.txt +21 -17
- boneio-1.5.0.dev22/boneio/version.py +0 -2
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/InputsView-DGtDzZQf.js +0 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/SystemState-CbxniflZ.js +0 -1
- boneio-1.5.0.dev22/boneio/webui/frontend-dist/assets/useTranslation-C4Lw3b8M.js +0 -13
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/LICENSE +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/MANIFEST.in +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/README.md +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.2/input.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.3/input.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.4/input.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.5/input.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.5/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.5/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.5/output_cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.6/input.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.6/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.6/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.6/output_cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.7/input.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.8/input.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/1.0/input.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/cover/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/cover/cover.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/cover/time_based.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/group/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/group/output_group.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/input/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/input/binary_sensor.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/input/detectors.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/input/event.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/input/remote/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/input/remote/base.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/input/remote/esphome.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/irrigation/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/irrigation/controller.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/irrigation/water_source.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/output/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/output/basic.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/output/buzzer.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/output/mcp.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/output/pca.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/output/pcf.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/output/remote.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/sensor/virtual_energy.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/template/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/template/alarm_panel.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/template/gate_cover.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/components/template/thermostat.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/const.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/cloud/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/cloud/data/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/cloud/data/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/cloud/secrets.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/config_helper.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/migrations/v1_proxy_port.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/migrations/v2_transition.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/package-lock.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/config/package.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/discovery.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/events/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/events/bus.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/action_conditions.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/canopen.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/covers.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/display.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/inputs.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/irrigation.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/manager.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/modbus.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/outputs.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/remote.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/remote_input_registrar.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/sensors.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/templates/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/templates/alarm.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/templates/gate_cover.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/templates/thermostat.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/templates.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/manager/update.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/messaging/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/messaging/basic.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/messaging/basic_mqtt.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/messaging/composite.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/messaging/local.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/messaging/lox.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/messaging/mqtt.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/messaging/queue.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/remote/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/remote/base.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/remote/can.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/remote/esphome.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/remote/mqtt.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/remote/wled.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/remote/wled_cache.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/sensor/base.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/sensor/system.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/state/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/state/manager.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/system/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/system/host_data.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/system/monitor.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/utils/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/utils/async_updater.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/utils/conditions.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/utils/filter.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/utils/font_util.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/utils/logger.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/core/utils/util.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/24x16/adc.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/24x16/config.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/24x16/event.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/24x16/mqtt.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/24x16/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/32x10/adc.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/32x10/config.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/32x10/event.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/32x10/mqtt.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/32x10/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/48x4/adc.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/48x4/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/48x4/config.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/48x4/event.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/48x4/mqtt.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/48x4/output48x4A.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/can_master.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/can_slave.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover/adc.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover/config.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover/cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover/event.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover/mqtt.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover/outputCover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/adc.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/config.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/cover.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/event.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/adc.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/event_all.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/exceptions.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/analog/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/analog/adc.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/can/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/can/bridge.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/can/client.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/can/interface.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/can/node.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/can/node_id.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/can/test_od.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/display/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/display/early_oled.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/display/fonts/danube__.ttf +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/display/oled.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/gpio/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/gpio/expanders/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/gpio/input/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/gpio/input/base.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/gpio/input/manager.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/i2c/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/i2c/bus.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/i2c/ina219.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/i2c/ina219_driver.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/i2c/mcp9808.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/i2c/pct2075.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/onewire/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/onewire/bus.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/onewire/dallas.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/onewire/ds2482.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/sensor/temperature/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/sensor/temperature/base.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/integration/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/integration/homeassistant.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/integration/interlock.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/integration/lox_template.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/daemon.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/caddy/502.html +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/caddy/init-certs.sh +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/nginx/default.conf +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/node-red/settings.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/journald/journald.conf +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/mosquitto/boneio.conf +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/sudoers/boneio +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/systemd/boneio-oled-boot.service +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/systemd/boneio-oled-shutdown.service +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/systemd/boneio.service +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/systemd/set-hostname-once.service +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-local-bin/set-hostname-once.sh +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-sbin/oled_boot_splash.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-sbin/oled_boot_splash.sh +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-sbin/oled_msg.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-sbin/oled_msg.sh +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/bootstrap/install-helper.sh +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/bootstrap/sudoers-migrate +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/runner.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/versions/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_3_0_baseline.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_3_1_fix_oled_boot.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_3_2_cleanup_can_sudoers.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_4_0_fix_mqtt_sudoers.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_4_3_oled_shutdown.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_4_4_caddy.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_5_0_fix_oled_fifo_permissions.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_5_1_ufw_lox_udp.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/cli.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/client.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/coordinator.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/dts1964_3f.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/eht-topventil-plus.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/thessla.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/ventclear.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/wanas415.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/inverters/sofar.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/other/esp32_relay_x4_modbus.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/other/n4dsc08.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/other/r4dcb08.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/cwt.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/gdfs.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/gdfx.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/pt100.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/sht20.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/sht30.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/base.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/numeric.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/select.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/switch.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/text.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/sensor/binary.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/sensor/numeric.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/sensor/text.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/writeable/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/writeable/binary.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/entities/writeable/numeric.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/mock_coordinator.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/modbus/utils.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/models/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/models/actions.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/models/events.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/models/files.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/models/logs.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/models/mqtt.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/models/state.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/runner.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/actions.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/actions_sensor.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/actions_switch.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/condition.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/filters.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/filters_adc.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/id.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/remote_devices.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/remote_inputs.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/remote_outputs.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/schema.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/temp_unit.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/schema/update_interval.yaml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/action_validation.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/app.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/dashboard_cards.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/EntityGrid-Cawu3vXH.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/HelpLabel-BSTjOtDA.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/LongPressWrapper-BHOQV7Wq.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/NodeRedView-CkLYYTOq.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/Sparkline-BGWlVLtt.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/aiConfig-IRYCBmLm.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/aiWizardPrompt-D9OJ-cE7.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/clipboard-CCtx29e-.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/css.worker-CvXBzhp8.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/editor.worker-Cn2oRESe.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/fa-CHSdWfvR.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/formatters-zOiGPJLh.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/gi-BmJDioil.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/html.worker-BO6WuOEO.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/index-v8R9j1A8.css +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/json.worker-BkJRGcCJ.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/longPress-Dx7OCSyP.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/modbusDeviceCatalog-C2Pi10n6.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/monaco-61yH0vfd.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/monaco-Br_kD0ds.css +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/rolldown-runtime-QTnfLwEv.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/select-B2YDgQ4X.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/tabs-box-Dj36r4_e.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/ts.worker-B0J26iPs.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/utils-C8nShLO6.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/vendor-IzweXARb.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-Bd17z0YL.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/yaml.worker-BKRoXlmz.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/boneio-192.png +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/boneio-512.png +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/boneio.svg +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/workbox-4918f2f6.js +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/hvac_svg_templates.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/middleware/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/middleware/auth.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/modbus_card_templates.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/auth.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/caddy.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/can.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/config.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/config_backups.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/config_discovery.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/config_files.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/covers.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/dashboard.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/dev_fake_device.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/irrigation.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/migrations.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/modbus.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/mqtt_reference.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/nodered.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/outputs.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/remote_devices.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/sensors.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/templates.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/timezone_sudoers.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/tools.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/routes/update.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/services/__init__.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/services/logs.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/web_server.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio/webui/websocket_manager.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio.egg-info/dependency_links.txt +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio.egg-info/entry_points.txt +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio.egg-info/requires.txt +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/boneio.egg-info/top_level.txt +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/pyproject.toml +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/setup.cfg +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/setup.py +0 -0
- {boneio-1.5.0.dev22 → boneio-1.5.0.dev24}/tests/test_py313_compatibility.py +0 -0
|
@@ -217,6 +217,9 @@ def run(
|
|
|
217
217
|
_t0 = _time.monotonic()
|
|
218
218
|
setup_logging(debug_level=debug)
|
|
219
219
|
_LOGGER.info("BoneIO %s starting.", __version__)
|
|
220
|
+
from boneio.core.config.yaml_compat import log_yaml_backend
|
|
221
|
+
|
|
222
|
+
log_yaml_backend()
|
|
220
223
|
_LOGGER.debug("[STARTUP TIMING] after setup_logging: %.2fs", _time.monotonic() - _t0)
|
|
221
224
|
|
|
222
225
|
# --- Initialize OLED before anything else (independent of config) ---
|
|
@@ -182,9 +182,12 @@ class VenetianCover(BaseCover, BaseVenetianCoverABC):
|
|
|
182
182
|
self._last_update_time = time.monotonic() # Upewnij się, że aktualizacja jest wysłana na końcu ruchu
|
|
183
183
|
|
|
184
184
|
# Tilt restore: schedule tilt recovery on the event loop.
|
|
185
|
+
# _tilt_before_close is only set by _save_tilt_for_restore() when
|
|
186
|
+
# the appropriate flag (UI or action) was enabled, so its presence
|
|
187
|
+
# is the authoritative signal that restore was requested.
|
|
185
188
|
# Skip when position reached 0% (fully closed) or 100% (fully open)
|
|
186
189
|
# — at extremes, restoring tilt contradicts user intent.
|
|
187
|
-
if self.
|
|
190
|
+
if self._tilt_before_close is not None:
|
|
188
191
|
restore_tilt = self._tilt_before_close
|
|
189
192
|
self._tilt_before_close = None
|
|
190
193
|
at_extreme = self._position <= 0 or self._position >= 100
|
|
@@ -301,8 +304,8 @@ class VenetianCover(BaseCover, BaseVenetianCoverABC):
|
|
|
301
304
|
def _save_tilt_for_restore(self) -> None:
|
|
302
305
|
"""Save current tilt position for later restoration.
|
|
303
306
|
|
|
304
|
-
Called before any
|
|
305
|
-
based on the call source:
|
|
307
|
+
Called before any movement (open, close, or set_position).
|
|
308
|
+
Determines whether to save based on the call source:
|
|
306
309
|
- UI/HA calls: uses tilt_restore_after_close setting
|
|
307
310
|
- Action calls: uses _action_tilt_restore flag (set by executor)
|
|
308
311
|
"""
|
|
@@ -314,7 +317,7 @@ class VenetianCover(BaseCover, BaseVenetianCoverABC):
|
|
|
314
317
|
if should_restore and self._tilt_position > 0:
|
|
315
318
|
self._tilt_before_close = self._tilt_position
|
|
316
319
|
_LOGGER.debug(
|
|
317
|
-
"VenetianCover %s: saving tilt=%d%% before
|
|
320
|
+
"VenetianCover %s: saving tilt=%d%% before movement",
|
|
318
321
|
self._id,
|
|
319
322
|
round(self._tilt_position),
|
|
320
323
|
)
|
|
@@ -333,26 +336,22 @@ class VenetianCover(BaseCover, BaseVenetianCoverABC):
|
|
|
333
336
|
async def set_cover_position(self, position: int) -> None:
|
|
334
337
|
"""Set cover position with tilt restore support.
|
|
335
338
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
so it can be restored after the movement finishes.
|
|
339
|
+
Saves the current tilt so it can be restored after the movement
|
|
340
|
+
finishes, regardless of direction (up or down).
|
|
339
341
|
|
|
340
342
|
Args:
|
|
341
343
|
position: Target position (0-100).
|
|
342
344
|
"""
|
|
343
|
-
|
|
344
|
-
self._save_tilt_for_restore()
|
|
345
|
-
else:
|
|
346
|
-
self._tilt_before_close = None
|
|
345
|
+
self._save_tilt_for_restore()
|
|
347
346
|
await super().set_cover_position(position)
|
|
348
347
|
|
|
349
348
|
async def open(self) -> None:
|
|
350
349
|
"""Open venetian cover.
|
|
351
350
|
|
|
352
|
-
|
|
353
|
-
|
|
351
|
+
Saves the current tilt so it can be restored after the
|
|
352
|
+
opening movement finishes (same as close).
|
|
354
353
|
"""
|
|
355
|
-
self.
|
|
354
|
+
self._save_tilt_for_restore()
|
|
356
355
|
await super().open()
|
|
357
356
|
|
|
358
357
|
def update_config_times(self, config: dict) -> None:
|
|
@@ -7,18 +7,19 @@ for PWA support with custom subdomains.
|
|
|
7
7
|
|
|
8
8
|
import asyncio
|
|
9
9
|
import base64
|
|
10
|
+
from datetime import datetime, timezone
|
|
10
11
|
import hashlib
|
|
11
12
|
import hmac
|
|
13
|
+
from importlib.resources import files
|
|
12
14
|
import logging
|
|
13
15
|
import os
|
|
16
|
+
import re
|
|
14
17
|
import shutil
|
|
15
18
|
import subprocess
|
|
16
19
|
from contextlib import suppress
|
|
17
20
|
from pathlib import Path
|
|
18
|
-
from typing import TYPE_CHECKING
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
import aiohttp
|
|
22
|
+
import aiohttp
|
|
22
23
|
|
|
23
24
|
from boneio.core.cloud.secrets import MASTER_SECRET as DEFAULT_MASTER_SECRET
|
|
24
25
|
from boneio.core.system.monitor import get_network_info
|
|
@@ -152,10 +153,8 @@ class CloudRegistration:
|
|
|
152
153
|
"""
|
|
153
154
|
return {"Authorization": f"Bearer {self._compute_token()}"}
|
|
154
155
|
|
|
155
|
-
async def _get_session(self) ->
|
|
156
|
+
async def _get_session(self) -> aiohttp.ClientSession:
|
|
156
157
|
"""Get or create aiohttp session."""
|
|
157
|
-
import aiohttp
|
|
158
|
-
|
|
159
158
|
if self._session is None or self._session.closed:
|
|
160
159
|
self._session = aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=30))
|
|
161
160
|
return self._session
|
|
@@ -205,8 +204,6 @@ class CloudRegistration:
|
|
|
205
204
|
Returns:
|
|
206
205
|
True if registration was successful
|
|
207
206
|
"""
|
|
208
|
-
import aiohttp
|
|
209
|
-
|
|
210
207
|
try:
|
|
211
208
|
session = await self._get_session()
|
|
212
209
|
|
|
@@ -250,8 +247,6 @@ class CloudRegistration:
|
|
|
250
247
|
Returns:
|
|
251
248
|
True if certificate was fetched successfully
|
|
252
249
|
"""
|
|
253
|
-
import aiohttp
|
|
254
|
-
|
|
255
250
|
try:
|
|
256
251
|
session = await self._get_session()
|
|
257
252
|
|
|
@@ -327,8 +322,7 @@ class CloudRegistration:
|
|
|
327
322
|
# Output format: "notAfter=Jun 3 12:00:00 2026 GMT"
|
|
328
323
|
line = result.stdout.strip()
|
|
329
324
|
date_str = line.split("=", 1)[1]
|
|
330
|
-
|
|
331
|
-
from datetime import datetime, timezone
|
|
325
|
+
date_str = re.sub(r"\s+", " ", date_str.strip())
|
|
332
326
|
|
|
333
327
|
expiry = datetime.strptime(date_str, "%b %d %H:%M:%S %Y %Z").replace(
|
|
334
328
|
tzinfo=timezone.utc
|
|
@@ -373,8 +367,6 @@ class CloudRegistration:
|
|
|
373
367
|
"""
|
|
374
368
|
dest = CADDY_CONFIG_DIR / "init-certs-cloud.sh"
|
|
375
369
|
try:
|
|
376
|
-
from importlib.resources import files
|
|
377
|
-
|
|
378
370
|
src = files("boneio.core.cloud.data").joinpath("init-certs-cloud.sh")
|
|
379
371
|
src_bytes = src.read_bytes()
|
|
380
372
|
|
|
@@ -445,8 +437,6 @@ class CloudRegistration:
|
|
|
445
437
|
_LOGGER.info("Backed up docker-compose.yaml to %s", backup)
|
|
446
438
|
|
|
447
439
|
# Replace with bundled cloud template
|
|
448
|
-
from importlib.resources import files
|
|
449
|
-
|
|
450
440
|
cloud_src = files("boneio.core.cloud.data").joinpath("docker-compose-cloud.yaml")
|
|
451
441
|
cloud_content = cloud_src.read_text(encoding="utf-8")
|
|
452
442
|
compose_file.write_text(cloud_content)
|
|
@@ -484,8 +474,6 @@ class CloudRegistration:
|
|
|
484
474
|
if not self._check_compose_writable():
|
|
485
475
|
return False
|
|
486
476
|
|
|
487
|
-
from importlib.resources import files
|
|
488
|
-
|
|
489
477
|
src = files("boneio.core.cloud.data").joinpath("docker-compose.yaml")
|
|
490
478
|
original_content = src.read_text(encoding="utf-8")
|
|
491
479
|
|
|
@@ -515,9 +503,10 @@ class CloudRegistration:
|
|
|
515
503
|
|
|
516
504
|
async def _recreate_caddy(self) -> bool:
|
|
517
505
|
"""
|
|
518
|
-
Recreate Caddy container to apply new docker-compose config.
|
|
506
|
+
Recreate and restart Caddy container to apply new certs or docker-compose config.
|
|
519
507
|
|
|
520
|
-
Uses 'docker compose up -d caddy'
|
|
508
|
+
Uses 'docker compose up -d caddy' and 'docker compose restart caddy' to ensure
|
|
509
|
+
Caddy reloads updated SSL certificates from disk.
|
|
521
510
|
|
|
522
511
|
Returns:
|
|
523
512
|
True if recreate was successful
|
|
@@ -534,8 +523,19 @@ class CloudRegistration:
|
|
|
534
523
|
),
|
|
535
524
|
)
|
|
536
525
|
|
|
526
|
+
# Also restart caddy to ensure mounted TLS certs are reloaded from disk
|
|
527
|
+
await asyncio.get_event_loop().run_in_executor(
|
|
528
|
+
None,
|
|
529
|
+
lambda: subprocess.run(
|
|
530
|
+
["docker", "compose", "restart", "caddy"],
|
|
531
|
+
cwd=compose_dir,
|
|
532
|
+
capture_output=True,
|
|
533
|
+
timeout=60,
|
|
534
|
+
),
|
|
535
|
+
)
|
|
536
|
+
|
|
537
537
|
if result.returncode == 0:
|
|
538
|
-
_LOGGER.info("Caddy container recreated successfully")
|
|
538
|
+
_LOGGER.info("Caddy container recreated and restarted successfully")
|
|
539
539
|
return True
|
|
540
540
|
else:
|
|
541
541
|
_LOGGER.error(
|
|
@@ -39,9 +39,11 @@ def _persist_wled_cache_strip(config_file: str) -> None:
|
|
|
39
39
|
# First, find and extract WLED data from the in-memory parse
|
|
40
40
|
# to save into .wled_cache.json before removing from YAML
|
|
41
41
|
try:
|
|
42
|
-
from yaml import
|
|
42
|
+
from yaml import load
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
from boneio.core.config.yaml_compat import FastSafeLoader
|
|
45
|
+
|
|
46
|
+
class IncludeLoader(FastSafeLoader):
|
|
45
47
|
"""YAML loader that preserves !include tags."""
|
|
46
48
|
|
|
47
49
|
def _include_constructor(
|
|
@@ -70,7 +72,7 @@ def _persist_wled_cache_strip(config_file: str) -> None:
|
|
|
70
72
|
include_path = config_dir / rd_section.filename
|
|
71
73
|
if include_path.exists():
|
|
72
74
|
with open(include_path, encoding="utf-8") as f:
|
|
73
|
-
rd_list = load(f, Loader=
|
|
75
|
+
rd_list = load(f, Loader=FastSafeLoader) # noqa: S506
|
|
74
76
|
_strip_wled_fields_from_file(include_path, rd_list, config_dir)
|
|
75
77
|
return
|
|
76
78
|
|
|
@@ -6,10 +6,18 @@ import os
|
|
|
6
6
|
from typing import IO, Any, Union
|
|
7
7
|
|
|
8
8
|
import yaml
|
|
9
|
-
from yaml import
|
|
9
|
+
from yaml import load
|
|
10
10
|
|
|
11
|
+
# Prefer the libyaml-backed loader when available (~10x faster). Imported
|
|
12
|
+
# directly instead of via boneio.core.config.yaml_compat because this module
|
|
13
|
+
# must stay importable without the full boneIO dependency graph (CI).
|
|
14
|
+
try:
|
|
15
|
+
from yaml import CSafeLoader as _BaseLoader
|
|
16
|
+
except ImportError: # pragma: no cover - PyYAML built without libyaml
|
|
17
|
+
from yaml import SafeLoader as _BaseLoader # type: ignore[assignment]
|
|
11
18
|
|
|
12
|
-
|
|
19
|
+
|
|
20
|
+
class BoneIOLoader(_BaseLoader): # type: ignore[misc]
|
|
13
21
|
"""Custom YAML loader with !include constructor."""
|
|
14
22
|
|
|
15
23
|
def __init__(self, stream: Union[str, IO]):
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""PyYAML backend selection.
|
|
2
|
+
|
|
3
|
+
PyYAML ships two implementations: a pure-Python parser/emitter and a much
|
|
4
|
+
faster one backed by the C library ``libyaml`` (``CSafeLoader`` /
|
|
5
|
+
``CSafeDumper``). The C backend is roughly 10x faster at parsing and 5x
|
|
6
|
+
faster at emitting, which matters a lot on the BeagleBone Black where the
|
|
7
|
+
pure-Python parser needs several seconds for the boneIO schema.
|
|
8
|
+
|
|
9
|
+
This module exposes ``FastSafeLoader`` / ``FastSafeDumper`` which resolve to
|
|
10
|
+
the C implementation when available and fall back to the pure-Python one
|
|
11
|
+
otherwise. It intentionally imports nothing besides ``yaml`` so it can also
|
|
12
|
+
be used by standalone tooling (e.g. the schema converter run in CI).
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
|
|
17
|
+
import logging
|
|
18
|
+
|
|
19
|
+
try:
|
|
20
|
+
from yaml import CSafeDumper as FastSafeDumper
|
|
21
|
+
from yaml import CSafeLoader as FastSafeLoader
|
|
22
|
+
|
|
23
|
+
HAS_LIBYAML = True
|
|
24
|
+
except ImportError: # pragma: no cover - depends on the installed PyYAML build
|
|
25
|
+
from yaml import SafeDumper as FastSafeDumper # type: ignore[assignment]
|
|
26
|
+
from yaml import SafeLoader as FastSafeLoader # type: ignore[assignment]
|
|
27
|
+
|
|
28
|
+
HAS_LIBYAML = False
|
|
29
|
+
|
|
30
|
+
_LOGGER = logging.getLogger(__name__)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def log_yaml_backend() -> None:
|
|
34
|
+
"""Log which PyYAML backend is in use.
|
|
35
|
+
|
|
36
|
+
Call this once during startup so slow installations (PyYAML built
|
|
37
|
+
without libyaml) can be spotted in the logs.
|
|
38
|
+
"""
|
|
39
|
+
if HAS_LIBYAML:
|
|
40
|
+
_LOGGER.debug("Using libyaml (C) PyYAML backend")
|
|
41
|
+
return
|
|
42
|
+
_LOGGER.warning(
|
|
43
|
+
"PyYAML was built without libyaml — YAML parsing will be ~10x slower. "
|
|
44
|
+
"Install libyaml-dev and reinstall PyYAML to speed up config handling."
|
|
45
|
+
)
|