boneio 1.5.0.dev18__tar.gz → 1.5.0.dev19__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.dev18/boneio.egg-info → boneio-1.5.0.dev19}/PKG-INFO +1 -1
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/update.py +51 -17
- boneio-1.5.0.dev19/boneio/version.py +2 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19/boneio.egg-info}/PKG-INFO +1 -1
- boneio-1.5.0.dev18/boneio/version.py +0 -2
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/LICENSE +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/MANIFEST.in +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/README.md +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.2/input.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.2/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.2/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.2/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.2/output_cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.3/input.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.3/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.3/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.3/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.3/output_cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.4/input.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.4/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.4/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.4/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.4/output_cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.5/input.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.5/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.5/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.5/output_cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.6/input.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.6/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.6/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.6/output_cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.7/input.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.7/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.7/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.7/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.7/output_cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.8/input.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.8/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.8/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.8/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.8/output_cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/1.0/input.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/1.0/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/1.0/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/1.0/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/1.0/output_cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/boards/1.0/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/bonecli.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/cover/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/cover/cover.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/cover/time_based.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/cover/venetian.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/group/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/group/output_group.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/input/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/input/binary_sensor.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/input/detectors.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/input/event.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/input/remote/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/input/remote/base.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/input/remote/esphome.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/irrigation/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/irrigation/controller.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/irrigation/water_source.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/output/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/output/basic.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/output/buzzer.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/output/mcp.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/output/pca.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/output/pcf.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/output/remote.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/sensor/virtual_energy.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/template/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/template/alarm_panel.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/template/gate_cover.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/components/template/thermostat.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/const.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/cloud/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/cloud/data/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/cloud/data/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/cloud/registration.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/cloud/secrets.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/config_helper.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/migrations/v1_proxy_port.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/migrations/v2_transition.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/migrations/v4_wled_cache.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/package-lock.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/package.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/schema_converter.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/config/yaml_util.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/discovery.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/events/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/events/bus.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/action_conditions.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/canopen.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/covers.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/display.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/inputs.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/irrigation.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/manager.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/modbus.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/outputs.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/remote.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/remote_input_registrar.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/sensors.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/templates/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/templates/alarm.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/templates/gate_cover.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/templates/thermostat.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/manager/templates.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/messaging/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/messaging/basic.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/messaging/basic_mqtt.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/messaging/composite.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/messaging/local.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/messaging/lox.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/messaging/mqtt.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/messaging/queue.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/remote/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/remote/base.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/remote/can.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/remote/esphome.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/remote/mqtt.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/remote/wled.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/remote/wled_cache.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/sensor/base.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/sensor/system.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/state/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/state/manager.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/system/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/system/host_data.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/system/monitor.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/utils/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/utils/async_updater.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/utils/conditions.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/utils/filter.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/utils/font_util.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/utils/logger.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/utils/timeperiod.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/core/utils/util.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/24x16/adc.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/24x16/config.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/24x16/event.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/24x16/mqtt.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/24x16/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/32x10/adc.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/32x10/config.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/32x10/event.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/32x10/mqtt.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/32x10/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/48x4/adc.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/48x4/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/48x4/config.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/48x4/event.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/48x4/mqtt.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/48x4/output48x4A.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/can_master.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/can_slave.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover/adc.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover/config.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover/cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover/event.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover/mqtt.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover/outputCover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover_mix/adc.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover_mix/config.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover_mix/cover.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover_mix/event.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/adc.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/event_all.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/exceptions.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/analog/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/analog/adc.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/can/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/can/bridge.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/can/client.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/can/interface.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/can/node.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/can/node_id.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/can/test_od.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/display/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/display/early_oled.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/display/fonts/danube__.ttf +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/display/oled.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/gpio/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/gpio/expanders/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/gpio/input/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/gpio/input/base.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/gpio/input/manager.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/i2c/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/i2c/bus.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/i2c/ina219.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/i2c/ina219_driver.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/i2c/mcp9808.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/i2c/pct2075.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/onewire/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/onewire/bus.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/onewire/dallas.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/onewire/ds2482.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/sensor/temperature/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/sensor/temperature/base.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/integration/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/integration/homeassistant.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/integration/interlock.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/integration/lox_template.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/actions.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/MANIFEST.sha256 +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/docker/daemon.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/docker/nodered/caddy/502.html +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/docker/nodered/caddy/init-certs.sh +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/docker/nodered/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/docker/nodered/nginx/default.conf +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/docker/nodered/node-red/settings.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/journald/journald.conf +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/mosquitto/boneio.conf +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/sudoers/boneio +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/systemd/boneio-oled-boot.service +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/systemd/boneio-oled-shutdown.service +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/systemd/boneio.service +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/systemd/set-hostname-once.service +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/usr-local-bin/set-hostname-once.sh +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/usr-sbin/oled_boot_splash.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/usr-sbin/oled_boot_splash.sh +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/usr-sbin/oled_msg.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/assets/usr-sbin/oled_msg.sh +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/bootstrap/boneio-migrate +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/bootstrap/install-helper.sh +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/bootstrap/sudoers-migrate +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/runner.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/versions/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/versions/v1_3_0_baseline.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/versions/v1_3_1_fix_oled_boot.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/versions/v1_3_2_cleanup_can_sudoers.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/versions/v1_4_0_fix_mqtt_sudoers.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/versions/v1_4_3_oled_shutdown.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/versions/v1_4_4_caddy.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/versions/v1_5_0_fix_oled_fifo_permissions.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/migrations/versions/v1_5_1_ufw_lox_udp.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/cli.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/client.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/coordinator.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/energy_meters/dts1964_3f.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/hvac/eht-topventil-plus.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/hvac/thessla.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/hvac/ventclear.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/hvac/wanas415.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/inverters/sofar.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/other/esp32_relay_x4_modbus.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/other/n4dsc08.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/other/r4dcb08.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/sensors/cwt.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/sensors/gdfs.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/sensors/gdfx.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/sensors/pt100.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/sensors/sht20.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/devices/sensors/sht30.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/base.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/derived/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/derived/numeric.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/derived/select.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/derived/switch.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/derived/text.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/sensor/binary.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/sensor/numeric.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/sensor/text.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/writeable/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/writeable/binary.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/entities/writeable/numeric.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/mock_coordinator.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/modbus/utils.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/models/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/models/actions.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/models/events.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/models/files.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/models/logs.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/models/mqtt.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/models/state.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/runner.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/actions.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/actions_sensor.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/actions_switch.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/condition.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/filters.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/filters_adc.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/id.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/remote_devices.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/remote_inputs.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/remote_outputs.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/schema.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/temp_unit.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/schema/update_interval.yaml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/action_validation.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/app.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/dashboard_cards.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/BindingMatrix-DmyWCMNb.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/ConfigEditor-BAXTl2Rs.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/EditItemDialog-CLpXjO90.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/EntityCard-DgrDzRn5.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/EntityGrid-Cawu3vXH.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/FormInputToggle-By7IBPoD.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/HelpLabel-BSTjOtDA.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/InputsView-C5ZT682k.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/LogViewer-AtJtZKbz.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/LongPressWrapper-BHOQV7Wq.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/ModbusView-BZSEfskf.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/NodeRedView-BlDlL0KN.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/OutputsView-BluYJemi.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/SensorView-DnC4uYwq.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/Sparkline-BGWlVLtt.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/SudoPasswordDialog-yTmGumTo.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/SystemState-BgmyfxEC.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/TemplatesView-DBVRo-gj.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/Tools-BS0gldWu.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/UISettings-kqx8rpLh.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/aiConfig-IRYCBmLm.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/aiWizardPrompt-D9OJ-cE7.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/clipboard-CCtx29e-.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/css.worker-CvXBzhp8.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/editor.worker-Cn2oRESe.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/fa-CHSdWfvR.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/formatters-zOiGPJLh.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/gi-BmJDioil.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/html.worker-BO6WuOEO.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/index-Bg7Ob9oF.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/index-DSu6P6gO.css +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/json.worker-BkJRGcCJ.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/longPress-Dx7OCSyP.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/modbusDeviceCatalog-C2Pi10n6.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/monaco-61yH0vfd.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/monaco-Br_kD0ds.css +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/rolldown-runtime-QTnfLwEv.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/select-B2YDgQ4X.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/tabs-box-Dj36r4_e.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/ts.worker-B0J26iPs.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/useTranslation-B0a29mDE.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/utils-C8nShLO6.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/vendor-IzweXARb.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-Bd17z0YL.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/assets/yaml.worker-BKRoXlmz.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/boneio-192.png +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/boneio-512.png +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/boneio.svg +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/index.html +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/sw.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/frontend-dist/workbox-4918f2f6.js +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/hvac_svg_templates.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/middleware/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/middleware/auth.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/modbus_card_templates.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/auth.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/caddy.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/can.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/config.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/config_actions.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/config_backups.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/config_core.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/config_discovery.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/config_files.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/covers.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/dashboard.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/dev_fake_device.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/irrigation.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/migrations.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/modbus.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/mqtt_reference.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/outputs.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/remote_devices.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/sensors.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/system.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/templates.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/timezone_sudoers.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/tools.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/routes/update.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/services/__init__.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/services/logs.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/web_server.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio/webui/websocket_manager.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio.egg-info/SOURCES.txt +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio.egg-info/dependency_links.txt +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio.egg-info/entry_points.txt +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio.egg-info/requires.txt +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/boneio.egg-info/top_level.txt +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/pyproject.toml +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/setup.cfg +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/setup.py +0 -0
- {boneio-1.5.0.dev18 → boneio-1.5.0.dev19}/tests/test_py313_compatibility.py +0 -0
|
@@ -420,6 +420,39 @@ class UpdateManager(AsyncUpdater):
|
|
|
420
420
|
)
|
|
421
421
|
if on_progress:
|
|
422
422
|
on_progress(progress, step, log_msg)
|
|
423
|
+
# Yield to event loop so MQTT messages are actually flushed
|
|
424
|
+
await asyncio.sleep(0.1)
|
|
425
|
+
|
|
426
|
+
async def _run_subprocess(
|
|
427
|
+
cmd: list[str], timeout: float = 300
|
|
428
|
+
) -> tuple[int, str, str]:
|
|
429
|
+
"""Run a subprocess asynchronously without blocking the event loop.
|
|
430
|
+
|
|
431
|
+
Args:
|
|
432
|
+
cmd: Command and arguments to run.
|
|
433
|
+
timeout: Maximum time in seconds before killing the process.
|
|
434
|
+
|
|
435
|
+
Returns:
|
|
436
|
+
Tuple of (return_code, stdout, stderr).
|
|
437
|
+
"""
|
|
438
|
+
proc = await asyncio.create_subprocess_exec(
|
|
439
|
+
*cmd,
|
|
440
|
+
stdout=asyncio.subprocess.PIPE,
|
|
441
|
+
stderr=asyncio.subprocess.PIPE,
|
|
442
|
+
)
|
|
443
|
+
try:
|
|
444
|
+
stdout_bytes, stderr_bytes = await asyncio.wait_for(
|
|
445
|
+
proc.communicate(), timeout=timeout
|
|
446
|
+
)
|
|
447
|
+
except asyncio.TimeoutError:
|
|
448
|
+
proc.kill()
|
|
449
|
+
await proc.communicate()
|
|
450
|
+
raise subprocess.TimeoutExpired(cmd, timeout)
|
|
451
|
+
return (
|
|
452
|
+
proc.returncode or 0,
|
|
453
|
+
stdout_bytes.decode() if stdout_bytes else "",
|
|
454
|
+
stderr_bytes.decode() if stderr_bytes else "",
|
|
455
|
+
)
|
|
423
456
|
|
|
424
457
|
try:
|
|
425
458
|
await _report(5, "Finding virtual environment...")
|
|
@@ -450,12 +483,12 @@ class UpdateManager(AsyncUpdater):
|
|
|
450
483
|
await _report(15, "Preparing update...", f"Current version: {current_version}")
|
|
451
484
|
await _report(30, "Upgrading pip...")
|
|
452
485
|
|
|
453
|
-
# Upgrade pip first
|
|
454
|
-
|
|
455
|
-
[pip_path, "install", "--upgrade", "pip"],
|
|
486
|
+
# Upgrade pip first (async — does not block event loop)
|
|
487
|
+
returncode, _, _ = await _run_subprocess(
|
|
488
|
+
[pip_path, "install", "--upgrade", "pip"], timeout=120
|
|
456
489
|
)
|
|
457
490
|
|
|
458
|
-
if
|
|
491
|
+
if returncode == 0:
|
|
459
492
|
await _report(40, "Pip upgraded", "pip upgraded successfully")
|
|
460
493
|
else:
|
|
461
494
|
await _report(40, "Pip upgrade skipped", "pip upgrade failed, continuing...")
|
|
@@ -489,7 +522,8 @@ class UpdateManager(AsyncUpdater):
|
|
|
489
522
|
# Retry logic: PyPI may not have the version available immediately
|
|
490
523
|
max_retries = 3
|
|
491
524
|
retry_delay = 30 # seconds
|
|
492
|
-
|
|
525
|
+
returncode = 1
|
|
526
|
+
stderr_output = ""
|
|
493
527
|
|
|
494
528
|
for attempt in range(1, max_retries + 1):
|
|
495
529
|
await _report(
|
|
@@ -498,12 +532,13 @@ class UpdateManager(AsyncUpdater):
|
|
|
498
532
|
f"Running: {' '.join(pip_cmd)}",
|
|
499
533
|
)
|
|
500
534
|
|
|
501
|
-
|
|
535
|
+
# Async subprocess — event loop stays responsive for MQTT
|
|
536
|
+
returncode, _, stderr_output = await _run_subprocess(pip_cmd, timeout=300)
|
|
502
537
|
|
|
503
|
-
if
|
|
538
|
+
if returncode == 0:
|
|
504
539
|
break
|
|
505
540
|
|
|
506
|
-
_LOGGER.warning("pip install attempt %d/%d failed: %s", attempt, max_retries,
|
|
541
|
+
_LOGGER.warning("pip install attempt %d/%d failed: %s", attempt, max_retries, stderr_output.strip())
|
|
507
542
|
|
|
508
543
|
if attempt < max_retries:
|
|
509
544
|
await _report(
|
|
@@ -513,8 +548,8 @@ class UpdateManager(AsyncUpdater):
|
|
|
513
548
|
)
|
|
514
549
|
await asyncio.sleep(retry_delay)
|
|
515
550
|
|
|
516
|
-
if
|
|
517
|
-
error_msg =
|
|
551
|
+
if returncode != 0:
|
|
552
|
+
error_msg = stderr_output.strip() or "Unknown error"
|
|
518
553
|
_LOGGER.error("pip install failed after %d attempts: %s", max_retries, error_msg)
|
|
519
554
|
await _report(0, "Update failed", error_msg)
|
|
520
555
|
return
|
|
@@ -522,14 +557,13 @@ class UpdateManager(AsyncUpdater):
|
|
|
522
557
|
await _report(80, "BoneIO updated", "Package installed successfully")
|
|
523
558
|
await _report(85, "Verifying installation...")
|
|
524
559
|
|
|
525
|
-
# Verify installed version
|
|
526
|
-
|
|
560
|
+
# Verify installed version (async)
|
|
561
|
+
_, show_stdout, _ = await _run_subprocess([pip_path, "show", "boneio"], timeout=30)
|
|
527
562
|
new_version = current_version
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
break
|
|
563
|
+
for line in show_stdout.split("\n"):
|
|
564
|
+
if line.startswith("Version:"):
|
|
565
|
+
new_version = line.split(":")[1].strip()
|
|
566
|
+
break
|
|
533
567
|
|
|
534
568
|
_LOGGER.info("Update successful: %s -> %s. Restarting in 2 seconds...", current_version, new_version)
|
|
535
569
|
|
|
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
|
|
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
|