boneio 1.5.0.dev19__tar.gz → 1.5.0.dev23__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.dev19/boneio.egg-info → boneio-1.5.0.dev23}/PKG-INFO +1 -1
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/bonecli.py +3 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/cover/venetian.py +13 -14
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/config_helper.py +20 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/migrations/v4_wled_cache.py +5 -3
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/schema_converter.py +10 -2
- boneio-1.5.0.dev23/boneio/core/config/yaml_compat.py +45 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/yaml_util.py +343 -204
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/update.py +34 -11
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/utils/timeperiod.py +25 -8
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/actions.py +78 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/MANIFEST.sha256 +1 -0
- boneio-1.5.0.dev23/boneio/migrations/assets/wheels/pyyaml-6.0.3-cp313-cp313-linux_armv7l.whl +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/bootstrap/boneio-migrate +171 -0
- boneio-1.5.0.dev23/boneio/migrations/versions/v1_5_2_libyaml.py +109 -0
- boneio-1.5.0.dev23/boneio/version.py +2 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/app.py +2 -0
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/BindingMatrix-DmyWCMNb.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/BindingMatrix-HeIJ-fdc.js +1 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/ConfigEditor-BAXTl2Rs.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/ConfigEditor-DungnyP9.js +1 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/EditItemDialog-CLpXjO90.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/EditItemDialog-D6sMQCm4.js +1 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/EntityCard-DgrDzRn5.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/EntityCard-C4CsnsC3.js +1 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/FormInputToggle-By7IBPoD.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/FormInputToggle-CizPsvVx.js +1 -1
- boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/InputsView-B3IC5g5i.js +1 -0
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/LogViewer-AtJtZKbz.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/LogViewer-CvSFLDPH.js +1 -1
- boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/ModbusView-CmCpBs0W.js +1 -0
- boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/NodeRedView-CkLYYTOq.js +1 -0
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/OutputsView-BluYJemi.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/OutputsView-CjWrKAH6.js +1 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/SensorView-DnC4uYwq.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/SensorView-DVmp-mbx.js +1 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/SudoPasswordDialog-yTmGumTo.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/SudoPasswordDialog-D1FTg4dI.js +1 -1
- boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/SystemState-D2NXOXke.js +1 -0
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/TemplatesView-DBVRo-gj.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/TemplatesView-DVOrgw6Y.js +1 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/Tools-BS0gldWu.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/Tools-anCB88sw.js +1 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/UISettings-kqx8rpLh.js → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/UISettings-Dwa6-3E-.js +3 -3
- boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/index-CuPeVd5n.js +2 -0
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/index-DSu6P6gO.css → boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/index-v8R9j1A8.css +1 -1
- boneio-1.5.0.dev23/boneio/webui/frontend-dist/assets/useTranslation-CVJhMndf.js +13 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/index.html +3 -3
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/sw.js +1 -1
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/__init__.py +2 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/config_actions.py +60 -5
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/config_core.py +43 -7
- boneio-1.5.0.dev23/boneio/webui/routes/nodered.py +664 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/system.py +19 -4
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/update.py +3 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23/boneio.egg-info}/PKG-INFO +1 -1
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio.egg-info/SOURCES.txt +23 -19
- boneio-1.5.0.dev19/boneio/version.py +0 -2
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/InputsView-C5ZT682k.js +0 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/ModbusView-BZSEfskf.js +0 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/NodeRedView-BlDlL0KN.js +0 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/SystemState-BgmyfxEC.js +0 -1
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/index-Bg7Ob9oF.js +0 -2
- boneio-1.5.0.dev19/boneio/webui/frontend-dist/assets/useTranslation-B0a29mDE.js +0 -13
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/LICENSE +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/MANIFEST.in +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/README.md +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.2/input.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.2/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.2/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.2/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.2/output_cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.3/input.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.3/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.3/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.3/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.3/output_cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.4/input.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.4/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.4/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.4/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.4/output_cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.5/input.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.5/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.5/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.5/output_cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.6/input.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.6/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.6/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.6/output_cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.7/input.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.7/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.7/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.7/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.7/output_cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.8/input.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.8/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.8/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.8/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.8/output_cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/1.0/input.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/1.0/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/1.0/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/1.0/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/1.0/output_cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/boards/1.0/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/cover/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/cover/cover.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/cover/time_based.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/group/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/group/output_group.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/input/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/input/binary_sensor.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/input/detectors.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/input/event.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/input/remote/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/input/remote/base.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/input/remote/esphome.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/irrigation/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/irrigation/controller.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/irrigation/water_source.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/output/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/output/basic.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/output/buzzer.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/output/mcp.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/output/pca.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/output/pcf.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/output/remote.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/sensor/virtual_energy.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/template/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/template/alarm_panel.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/template/gate_cover.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/components/template/thermostat.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/const.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/cloud/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/cloud/data/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/cloud/data/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/cloud/registration.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/cloud/secrets.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/migrations/v1_proxy_port.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/migrations/v2_transition.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/package-lock.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/config/package.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/discovery.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/events/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/events/bus.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/action_conditions.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/canopen.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/covers.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/display.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/inputs.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/irrigation.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/manager.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/modbus.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/outputs.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/remote.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/remote_input_registrar.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/sensors.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/templates/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/templates/alarm.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/templates/gate_cover.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/templates/thermostat.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/manager/templates.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/messaging/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/messaging/basic.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/messaging/basic_mqtt.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/messaging/composite.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/messaging/local.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/messaging/lox.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/messaging/mqtt.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/messaging/queue.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/remote/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/remote/base.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/remote/can.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/remote/esphome.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/remote/mqtt.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/remote/wled.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/remote/wled_cache.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/sensor/base.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/sensor/system.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/state/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/state/manager.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/system/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/system/host_data.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/system/monitor.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/utils/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/utils/async_updater.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/utils/conditions.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/utils/filter.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/utils/font_util.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/utils/logger.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/core/utils/util.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/24x16/adc.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/24x16/config.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/24x16/event.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/24x16/mqtt.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/24x16/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/32x10/adc.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/32x10/config.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/32x10/event.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/32x10/mqtt.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/32x10/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/48x4/adc.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/48x4/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/48x4/config.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/48x4/event.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/48x4/mqtt.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/48x4/output48x4A.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/can_master.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/can_slave.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover/adc.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover/config.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover/cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover/event.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover/mqtt.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover/outputCover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover_mix/adc.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover_mix/config.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover_mix/cover.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover_mix/event.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/adc.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/event_all.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/exceptions.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/analog/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/analog/adc.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/can/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/can/bridge.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/can/client.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/can/interface.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/can/node.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/can/node_id.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/can/test_od.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/display/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/display/early_oled.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/display/fonts/danube__.ttf +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/display/oled.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/gpio/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/gpio/expanders/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/gpio/input/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/gpio/input/base.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/gpio/input/manager.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/i2c/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/i2c/bus.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/i2c/ina219.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/i2c/ina219_driver.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/i2c/mcp9808.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/i2c/pct2075.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/onewire/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/onewire/bus.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/onewire/dallas.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/onewire/ds2482.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/sensor/temperature/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/sensor/temperature/base.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/integration/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/integration/homeassistant.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/integration/interlock.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/integration/lox_template.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/docker/daemon.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/docker/nodered/caddy/502.html +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/docker/nodered/caddy/init-certs.sh +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/docker/nodered/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/docker/nodered/nginx/default.conf +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/docker/nodered/node-red/settings.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/journald/journald.conf +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/mosquitto/boneio.conf +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/sudoers/boneio +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/systemd/boneio-oled-boot.service +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/systemd/boneio-oled-shutdown.service +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/systemd/boneio.service +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/systemd/set-hostname-once.service +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/usr-local-bin/set-hostname-once.sh +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/usr-sbin/oled_boot_splash.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/usr-sbin/oled_boot_splash.sh +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/usr-sbin/oled_msg.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/assets/usr-sbin/oled_msg.sh +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/bootstrap/install-helper.sh +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/bootstrap/sudoers-migrate +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/runner.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/versions/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/versions/v1_3_0_baseline.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/versions/v1_3_1_fix_oled_boot.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/versions/v1_3_2_cleanup_can_sudoers.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/versions/v1_4_0_fix_mqtt_sudoers.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/versions/v1_4_3_oled_shutdown.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/versions/v1_4_4_caddy.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/versions/v1_5_0_fix_oled_fifo_permissions.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/migrations/versions/v1_5_1_ufw_lox_udp.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/cli.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/client.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/coordinator.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/energy_meters/dts1964_3f.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/hvac/eht-topventil-plus.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/hvac/thessla.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/hvac/ventclear.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/hvac/wanas415.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/inverters/sofar.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/other/esp32_relay_x4_modbus.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/other/n4dsc08.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/other/r4dcb08.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/sensors/cwt.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/sensors/gdfs.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/sensors/gdfx.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/sensors/pt100.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/sensors/sht20.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/devices/sensors/sht30.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/base.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/derived/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/derived/numeric.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/derived/select.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/derived/switch.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/derived/text.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/sensor/binary.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/sensor/numeric.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/sensor/text.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/writeable/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/writeable/binary.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/entities/writeable/numeric.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/mock_coordinator.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/modbus/utils.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/models/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/models/actions.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/models/events.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/models/files.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/models/logs.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/models/mqtt.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/models/state.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/runner.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/actions.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/actions_sensor.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/actions_switch.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/condition.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/filters.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/filters_adc.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/id.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/remote_devices.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/remote_inputs.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/remote_outputs.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/schema.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/temp_unit.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/schema/update_interval.yaml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/action_validation.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/dashboard_cards.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/EntityGrid-Cawu3vXH.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/HelpLabel-BSTjOtDA.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/LongPressWrapper-BHOQV7Wq.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/Sparkline-BGWlVLtt.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/aiConfig-IRYCBmLm.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/aiWizardPrompt-D9OJ-cE7.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/clipboard-CCtx29e-.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/css.worker-CvXBzhp8.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/editor.worker-Cn2oRESe.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/fa-CHSdWfvR.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/formatters-zOiGPJLh.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/gi-BmJDioil.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/html.worker-BO6WuOEO.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/json.worker-BkJRGcCJ.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/longPress-Dx7OCSyP.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/modbusDeviceCatalog-C2Pi10n6.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/monaco-61yH0vfd.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/monaco-Br_kD0ds.css +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/rolldown-runtime-QTnfLwEv.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/select-B2YDgQ4X.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/tabs-box-Dj36r4_e.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/ts.worker-B0J26iPs.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/utils-C8nShLO6.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/vendor-IzweXARb.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-Bd17z0YL.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/assets/yaml.worker-BKRoXlmz.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/boneio-192.png +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/boneio-512.png +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/boneio.svg +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/frontend-dist/workbox-4918f2f6.js +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/hvac_svg_templates.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/middleware/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/middleware/auth.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/modbus_card_templates.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/auth.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/caddy.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/can.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/config.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/config_backups.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/config_discovery.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/config_files.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/covers.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/dashboard.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/dev_fake_device.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/irrigation.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/migrations.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/modbus.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/mqtt_reference.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/outputs.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/remote_devices.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/sensors.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/templates.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/timezone_sudoers.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/routes/tools.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/services/__init__.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/services/logs.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/web_server.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio/webui/websocket_manager.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio.egg-info/dependency_links.txt +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio.egg-info/entry_points.txt +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio.egg-info/requires.txt +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/boneio.egg-info/top_level.txt +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/pyproject.toml +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/setup.cfg +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/setup.py +0 -0
- {boneio-1.5.0.dev19 → boneio-1.5.0.dev23}/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:
|
|
@@ -448,6 +448,26 @@ class ConfigHelper:
|
|
|
448
448
|
|
|
449
449
|
return merged
|
|
450
450
|
|
|
451
|
+
def update_config_section(self, section: str, data: object) -> None:
|
|
452
|
+
"""Update a single section in the in-memory config cache.
|
|
453
|
+
|
|
454
|
+
Fast path: modifies the cached dict directly without reloading
|
|
455
|
+
YAML from disk. If the cache is not populated yet, this is a
|
|
456
|
+
no-op — the next ``get_config()`` call will load from file.
|
|
457
|
+
|
|
458
|
+
Args:
|
|
459
|
+
section: Top-level config key (e.g. ``"event"``, ``"output"``).
|
|
460
|
+
data: New value for that section (typically a ``list[dict]``).
|
|
461
|
+
"""
|
|
462
|
+
if self._config_cache is None:
|
|
463
|
+
_LOGGER.debug(
|
|
464
|
+
"Config cache not populated, skipping in-place update for '%s'",
|
|
465
|
+
section,
|
|
466
|
+
)
|
|
467
|
+
return
|
|
468
|
+
self._config_cache[section] = data
|
|
469
|
+
_LOGGER.debug("Updated config section '%s' in-place", section)
|
|
470
|
+
|
|
451
471
|
def get_section(self, section_name: str, force_reload: bool = False) -> Any:
|
|
452
472
|
"""Get a specific configuration section.
|
|
453
473
|
|
|
@@ -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
|
+
)
|