boneio 1.5.0.dev23__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.dev23/boneio.egg-info → boneio-1.5.0.dev24}/PKG-INFO +1 -1
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/cloud/registration.py +21 -21
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/bootstrap/boneio-migrate +15 -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.dev23 → boneio-1.5.0.dev24/boneio.egg-info}/PKG-INFO +1 -1
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio.egg-info/SOURCES.txt +1 -0
- boneio-1.5.0.dev23/boneio/version.py +0 -2
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/LICENSE +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/MANIFEST.in +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/README.md +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.2/input.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.3/input.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.4/input.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.5/input.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.5/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.5/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.5/output_cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.6/input.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.6/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.6/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.6/output_cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.7/input.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.8/input.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/1.0/input.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/boards/1.0/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/bonecli.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/cover/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/cover/cover.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/cover/time_based.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/cover/venetian.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/group/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/group/output_group.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/input/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/input/binary_sensor.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/input/detectors.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/input/event.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/input/remote/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/input/remote/base.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/input/remote/esphome.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/irrigation/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/irrigation/controller.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/irrigation/water_source.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/output/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/output/basic.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/output/buzzer.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/output/mcp.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/output/pca.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/output/pcf.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/output/remote.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/sensor/virtual_energy.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/template/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/template/alarm_panel.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/template/gate_cover.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/components/template/thermostat.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/const.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/cloud/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/cloud/data/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/cloud/data/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/cloud/secrets.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/config_helper.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/migrations/v1_proxy_port.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/migrations/v2_transition.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/migrations/v4_wled_cache.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/package-lock.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/package.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/schema_converter.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/yaml_compat.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/config/yaml_util.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/discovery.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/events/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/events/bus.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/action_conditions.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/canopen.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/covers.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/display.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/inputs.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/irrigation.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/manager.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/modbus.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/outputs.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/remote.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/remote_input_registrar.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/sensors.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/templates/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/templates/alarm.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/templates/gate_cover.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/templates/thermostat.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/templates.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/manager/update.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/messaging/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/messaging/basic.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/messaging/basic_mqtt.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/messaging/composite.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/messaging/local.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/messaging/lox.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/messaging/mqtt.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/messaging/queue.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/remote/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/remote/base.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/remote/can.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/remote/esphome.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/remote/mqtt.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/remote/wled.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/remote/wled_cache.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/sensor/base.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/sensor/system.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/state/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/state/manager.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/system/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/system/host_data.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/system/monitor.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/utils/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/utils/async_updater.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/utils/conditions.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/utils/filter.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/utils/font_util.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/utils/logger.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/utils/timeperiod.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/core/utils/util.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/24x16/adc.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/24x16/config.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/24x16/event.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/24x16/mqtt.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/24x16/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/32x10/adc.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/32x10/config.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/32x10/event.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/32x10/mqtt.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/32x10/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/48x4/adc.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/48x4/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/48x4/config.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/48x4/event.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/48x4/mqtt.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/48x4/output48x4A.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/can_master.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/can_slave.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover/adc.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover/config.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover/cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover/event.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover/mqtt.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover/outputCover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/adc.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/config.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/cover.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/event.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/adc.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/event_all.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/exceptions.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/analog/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/analog/adc.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/can/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/can/bridge.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/can/client.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/can/interface.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/can/node.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/can/node_id.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/can/test_od.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/display/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/display/early_oled.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/display/fonts/danube__.ttf +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/display/oled.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/gpio/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/gpio/expanders/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/gpio/input/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/gpio/input/base.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/gpio/input/manager.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/i2c/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/i2c/bus.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/i2c/ina219.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/i2c/ina219_driver.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/i2c/mcp9808.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/i2c/pct2075.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/onewire/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/onewire/bus.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/onewire/dallas.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/onewire/ds2482.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/sensor/temperature/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/sensor/temperature/base.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/integration/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/integration/homeassistant.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/integration/interlock.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/integration/lox_template.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/actions.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/MANIFEST.sha256 +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/daemon.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/caddy/502.html +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/caddy/init-certs.sh +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/nginx/default.conf +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/docker/nodered/node-red/settings.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/journald/journald.conf +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/mosquitto/boneio.conf +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/sudoers/boneio +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/systemd/boneio-oled-boot.service +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/systemd/boneio-oled-shutdown.service +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/systemd/boneio.service +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/systemd/set-hostname-once.service +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-local-bin/set-hostname-once.sh +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-sbin/oled_boot_splash.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-sbin/oled_boot_splash.sh +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-sbin/oled_msg.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/usr-sbin/oled_msg.sh +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/assets/wheels/pyyaml-6.0.3-cp313-cp313-linux_armv7l.whl +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/bootstrap/install-helper.sh +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/bootstrap/sudoers-migrate +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/runner.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_3_0_baseline.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_3_1_fix_oled_boot.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_3_2_cleanup_can_sudoers.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_4_0_fix_mqtt_sudoers.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_4_3_oled_shutdown.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_4_4_caddy.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_5_0_fix_oled_fifo_permissions.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_5_1_ufw_lox_udp.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/migrations/versions/v1_5_2_libyaml.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/cli.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/client.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/coordinator.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/dts1964_3f.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/eht-topventil-plus.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/thessla.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/ventclear.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/hvac/wanas415.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/inverters/sofar.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/other/esp32_relay_x4_modbus.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/other/n4dsc08.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/other/r4dcb08.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/cwt.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/gdfs.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/gdfx.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/pt100.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/sht20.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/devices/sensors/sht30.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/base.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/numeric.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/select.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/switch.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/derived/text.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/sensor/binary.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/sensor/numeric.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/sensor/text.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/writeable/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/writeable/binary.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/entities/writeable/numeric.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/mock_coordinator.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/modbus/utils.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/models/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/models/actions.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/models/events.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/models/files.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/models/logs.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/models/mqtt.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/models/state.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/runner.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/actions.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/actions_sensor.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/actions_switch.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/condition.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/filters.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/filters_adc.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/id.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/remote_devices.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/remote_inputs.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/remote_outputs.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/schema.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/temp_unit.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/schema/update_interval.yaml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/action_validation.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/app.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/dashboard_cards.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/BindingMatrix-HeIJ-fdc.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/ConfigEditor-DungnyP9.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/EditItemDialog-D6sMQCm4.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/EntityCard-C4CsnsC3.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/EntityGrid-Cawu3vXH.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/FormInputToggle-CizPsvVx.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/HelpLabel-BSTjOtDA.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/InputsView-B3IC5g5i.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/LogViewer-CvSFLDPH.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/LongPressWrapper-BHOQV7Wq.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/ModbusView-CmCpBs0W.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/NodeRedView-CkLYYTOq.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/OutputsView-CjWrKAH6.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/SensorView-DVmp-mbx.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/Sparkline-BGWlVLtt.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/SudoPasswordDialog-D1FTg4dI.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/SystemState-D2NXOXke.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/TemplatesView-DVOrgw6Y.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/Tools-anCB88sw.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/UISettings-Dwa6-3E-.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/aiConfig-IRYCBmLm.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/aiWizardPrompt-D9OJ-cE7.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/clipboard-CCtx29e-.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/css.worker-CvXBzhp8.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/editor.worker-Cn2oRESe.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/fa-CHSdWfvR.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/formatters-zOiGPJLh.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/gi-BmJDioil.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/html.worker-BO6WuOEO.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/index-CuPeVd5n.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/index-v8R9j1A8.css +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/json.worker-BkJRGcCJ.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/longPress-Dx7OCSyP.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/modbusDeviceCatalog-C2Pi10n6.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/monaco-61yH0vfd.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/monaco-Br_kD0ds.css +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/rolldown-runtime-QTnfLwEv.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/select-B2YDgQ4X.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/tabs-box-Dj36r4_e.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/ts.worker-B0J26iPs.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/useTranslation-CVJhMndf.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/utils-C8nShLO6.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/vendor-IzweXARb.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-Bd17z0YL.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/assets/yaml.worker-BKRoXlmz.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/boneio-192.png +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/boneio-512.png +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/boneio.svg +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/index.html +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/sw.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/frontend-dist/workbox-4918f2f6.js +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/hvac_svg_templates.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/middleware/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/middleware/auth.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/modbus_card_templates.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/auth.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/caddy.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/can.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/config.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/config_actions.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/config_backups.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/config_core.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/config_discovery.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/config_files.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/covers.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/dashboard.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/dev_fake_device.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/irrigation.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/migrations.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/modbus.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/mqtt_reference.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/nodered.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/outputs.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/remote_devices.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/sensors.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/system.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/templates.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/timezone_sudoers.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/tools.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/routes/update.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/services/__init__.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/services/logs.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/web_server.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio/webui/websocket_manager.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio.egg-info/dependency_links.txt +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio.egg-info/entry_points.txt +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio.egg-info/requires.txt +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/boneio.egg-info/top_level.txt +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/pyproject.toml +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/setup.cfg +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/setup.py +0 -0
- {boneio-1.5.0.dev23 → boneio-1.5.0.dev24}/tests/test_py313_compatibility.py +0 -0
|
@@ -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(
|
|
@@ -589,13 +589,18 @@ def main() -> int:
|
|
|
589
589
|
|
|
590
590
|
_LOGGER.info("Applying migration version=%s (%d actions)", version, len(actions))
|
|
591
591
|
|
|
592
|
+
succeeded_count = 0
|
|
593
|
+
optional_failed_count = 0
|
|
594
|
+
|
|
592
595
|
for i, action in enumerate(actions, start=1):
|
|
593
596
|
action_type = action.get("action", "?")
|
|
594
597
|
_LOGGER.info("[%d/%d] %s", i, len(actions), action_type)
|
|
595
598
|
try:
|
|
596
599
|
dispatch_action(action, assets_base)
|
|
600
|
+
succeeded_count += 1
|
|
597
601
|
except Exception as exc:
|
|
598
602
|
if action.get("optional"):
|
|
603
|
+
optional_failed_count += 1
|
|
599
604
|
_LOGGER.warning(
|
|
600
605
|
"[%d/%d] Optional action %s failed, continuing: %s",
|
|
601
606
|
i, len(actions), action_type, exc,
|
|
@@ -604,6 +609,16 @@ def main() -> int:
|
|
|
604
609
|
_LOGGER.error("[%d/%d] Action %s failed: %s", i, len(actions), action_type, exc)
|
|
605
610
|
return 1
|
|
606
611
|
|
|
612
|
+
# If every action was optional and every one failed, the migration
|
|
613
|
+
# achieved nothing — do NOT mark it as applied so it will be retried.
|
|
614
|
+
if actions and succeeded_count == 0:
|
|
615
|
+
_LOGGER.error(
|
|
616
|
+
"Migration %s: all %d action(s) failed (optional_failed=%d). "
|
|
617
|
+
"NOT marking as applied — will retry on next startup.",
|
|
618
|
+
version, len(actions), optional_failed_count,
|
|
619
|
+
)
|
|
620
|
+
return 2
|
|
621
|
+
|
|
607
622
|
write_applied_flag(version)
|
|
608
623
|
_LOGGER.info("Migration %s completed successfully.", version)
|
|
609
624
|
return 0
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"""Retry libyaml installation for devices with a false v1.5.2 applied flag.
|
|
2
|
+
|
|
3
|
+
v1.5.2 could be falsely marked as applied when all optional actions
|
|
4
|
+
failed (bug fixed in the boneio-migrate helper). This migration
|
|
5
|
+
repeats the same libyaml install so that affected devices get a
|
|
6
|
+
second attempt automatically.
|
|
7
|
+
|
|
8
|
+
See also: ``v1_5_2_libyaml.py`` for the original migration.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import getpass
|
|
14
|
+
import logging
|
|
15
|
+
import sys
|
|
16
|
+
import sysconfig
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
from boneio.migrations.actions import AptInstall, MigrationAction, PipInstallWheel
|
|
20
|
+
|
|
21
|
+
_LOGGER = logging.getLogger(__name__)
|
|
22
|
+
|
|
23
|
+
VERSION = "1.5.3"
|
|
24
|
+
DESCRIPTION = "Retry libyaml install (fix false v1.5.2 applied flag)"
|
|
25
|
+
REQUIRES_ROOT = True
|
|
26
|
+
|
|
27
|
+
ASSETS_DIR = Path(__file__).parent.parent / "assets"
|
|
28
|
+
WHEELS_SUBDIR = "wheels"
|
|
29
|
+
|
|
30
|
+
# Expression evaluated by the target interpreter to detect the C backend
|
|
31
|
+
_LIBYAML_CHECK = "__import__('yaml').__with_libyaml__"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def _wheel_glob() -> str:
|
|
35
|
+
"""Build the wheel filename pattern for the running interpreter.
|
|
36
|
+
|
|
37
|
+
Uses a case-insensitive prefix because pip normalises the project
|
|
38
|
+
name to lowercase (``pyyaml-*``) while the canonical PyPI name is
|
|
39
|
+
``PyYAML``.
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
A glob pattern such as ``[Pp][Yy][Yy][Aa][Mm][Ll]-*-cp313-*linux_armv7l*.whl``.
|
|
43
|
+
"""
|
|
44
|
+
py_tag = f"cp{sys.version_info.major}{sys.version_info.minor}"
|
|
45
|
+
platform_tag = sysconfig.get_platform().replace("-", "_").replace(".", "_")
|
|
46
|
+
# Case-insensitive prefix: matches both "PyYAML" and "pyyaml"
|
|
47
|
+
ci_prefix = "[Pp][Yy][Yy][Aa][Mm][Ll]"
|
|
48
|
+
return f"{ci_prefix}-*-{py_tag}-*{platform_tag}*.whl"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def _find_wheel() -> str | None:
|
|
52
|
+
"""Locate a bundled PyYAML wheel matching this interpreter.
|
|
53
|
+
|
|
54
|
+
Returns:
|
|
55
|
+
Path of the wheel relative to the assets directory, or None when no
|
|
56
|
+
matching wheel is shipped for this Python version / architecture.
|
|
57
|
+
"""
|
|
58
|
+
wheels_dir = ASSETS_DIR / WHEELS_SUBDIR
|
|
59
|
+
if not wheels_dir.is_dir():
|
|
60
|
+
return None
|
|
61
|
+
matches = sorted(wheels_dir.glob(_wheel_glob()))
|
|
62
|
+
if not matches:
|
|
63
|
+
return None
|
|
64
|
+
return f"{WHEELS_SUBDIR}/{matches[0].name}"
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def plan() -> list[MigrationAction]:
|
|
68
|
+
"""Return the ordered list of migration actions.
|
|
69
|
+
|
|
70
|
+
Returns:
|
|
71
|
+
List of :class:`MigrationAction` to apply in order. Empty when the
|
|
72
|
+
C backend is already active or no matching wheel is bundled.
|
|
73
|
+
"""
|
|
74
|
+
try:
|
|
75
|
+
import yaml
|
|
76
|
+
|
|
77
|
+
if yaml.__with_libyaml__:
|
|
78
|
+
_LOGGER.debug("PyYAML already uses libyaml, nothing to do.")
|
|
79
|
+
return []
|
|
80
|
+
except ImportError:
|
|
81
|
+
return []
|
|
82
|
+
|
|
83
|
+
wheel = _find_wheel()
|
|
84
|
+
if wheel is None:
|
|
85
|
+
_LOGGER.warning(
|
|
86
|
+
"No bundled PyYAML wheel matching %s — keeping the pure-Python parser.",
|
|
87
|
+
_wheel_glob(),
|
|
88
|
+
)
|
|
89
|
+
return []
|
|
90
|
+
|
|
91
|
+
return [
|
|
92
|
+
# Runtime library the wheel links against; usually already present.
|
|
93
|
+
AptInstall(packages=["libyaml-0-2"], optional=True),
|
|
94
|
+
PipInstallWheel(
|
|
95
|
+
wheel=wheel,
|
|
96
|
+
python=sys.executable,
|
|
97
|
+
run_as=getpass.getuser(),
|
|
98
|
+
skip_if=_LIBYAML_CHECK,
|
|
99
|
+
verify=_LIBYAML_CHECK,
|
|
100
|
+
optional=True,
|
|
101
|
+
),
|
|
102
|
+
]
|
|
@@ -288,6 +288,7 @@ boneio/migrations/versions/v1_4_4_caddy.py
|
|
|
288
288
|
boneio/migrations/versions/v1_5_0_fix_oled_fifo_permissions.py
|
|
289
289
|
boneio/migrations/versions/v1_5_1_ufw_lox_udp.py
|
|
290
290
|
boneio/migrations/versions/v1_5_2_libyaml.py
|
|
291
|
+
boneio/migrations/versions/v1_5_3_libyaml_retry.py
|
|
291
292
|
boneio/modbus/__init__.py
|
|
292
293
|
boneio/modbus/cli.py
|
|
293
294
|
boneio/modbus/client.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|