boneio 1.5.0.dev13__tar.gz → 1.5.0.dev14__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.dev13/boneio.egg-info → boneio-1.5.0.dev14}/PKG-INFO +1 -1
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/yaml_util.py +53 -5
- boneio-1.5.0.dev14/boneio/version.py +2 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/config.py +14 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14/boneio.egg-info}/PKG-INFO +1 -1
- boneio-1.5.0.dev13/boneio/version.py +0 -2
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/LICENSE +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/MANIFEST.in +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/README.md +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.2/input.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.2/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.2/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.2/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.2/output_cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.3/input.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.3/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.3/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.3/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.3/output_cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.4/input.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.4/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.4/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.4/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.4/output_cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.5/input.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.5/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.5/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.5/output_cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.6/input.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.6/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.6/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.6/output_cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.7/input.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.7/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.7/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.7/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.7/output_cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.8/input.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.8/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.8/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.8/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.8/output_cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/1.0/input.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/1.0/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/1.0/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/1.0/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/1.0/output_cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/boards/1.0/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/bonecli.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/cover/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/cover/cover.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/cover/time_based.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/cover/venetian.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/group/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/group/output_group.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/input/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/input/binary_sensor.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/input/detectors.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/input/event.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/input/remote/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/input/remote/base.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/input/remote/esphome.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/irrigation/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/irrigation/controller.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/irrigation/water_source.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/output/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/output/basic.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/output/buzzer.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/output/mcp.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/output/pca.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/output/pcf.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/output/remote.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/sensor/virtual_energy.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/template/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/template/alarm_panel.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/template/gate_cover.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/components/template/thermostat.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/const.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/cloud/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/cloud/data/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/cloud/data/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/cloud/registration.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/cloud/secrets.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/config_helper.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/migrations/v1_proxy_port.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/migrations/v2_transition.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/migrations/v4_wled_cache.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/package-lock.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/package.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/config/schema_converter.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/discovery.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/events/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/events/bus.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/action_conditions.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/canopen.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/covers.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/display.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/inputs.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/irrigation.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/manager.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/modbus.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/outputs.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/remote.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/remote_input_registrar.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/sensors.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/templates/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/templates/alarm.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/templates/gate_cover.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/templates/thermostat.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/templates.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/manager/update.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/messaging/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/messaging/basic.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/messaging/basic_mqtt.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/messaging/composite.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/messaging/local.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/messaging/lox.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/messaging/mqtt.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/messaging/queue.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/remote/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/remote/base.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/remote/can.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/remote/esphome.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/remote/mqtt.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/remote/wled.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/remote/wled_cache.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/sensor/base.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/sensor/system.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/state/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/state/manager.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/system/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/system/host_data.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/system/monitor.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/utils/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/utils/async_updater.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/utils/conditions.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/utils/filter.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/utils/font_util.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/utils/logger.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/utils/timeperiod.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/core/utils/util.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/24x16/adc.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/24x16/config.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/24x16/event.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/24x16/mqtt.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/24x16/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/32x10/adc.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/32x10/config.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/32x10/event.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/32x10/mqtt.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/32x10/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/48x4/adc.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/48x4/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/48x4/config.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/48x4/event.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/48x4/mqtt.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/48x4/output48x4A.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/can_master.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/can_slave.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover/adc.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover/config.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover/cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover/event.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover/mqtt.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover/outputCover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover_mix/adc.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover_mix/config.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover_mix/cover.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover_mix/event.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/adc.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/event_all.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/exceptions.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/analog/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/analog/adc.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/can/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/can/bridge.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/can/client.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/can/interface.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/can/node.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/can/node_id.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/can/test_od.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/display/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/display/early_oled.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/display/fonts/danube__.ttf +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/display/oled.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/gpio/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/gpio/expanders/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/gpio/input/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/gpio/input/base.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/gpio/input/manager.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/i2c/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/i2c/bus.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/i2c/ina219.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/i2c/ina219_driver.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/i2c/mcp9808.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/i2c/pct2075.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/onewire/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/onewire/bus.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/onewire/dallas.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/onewire/ds2482.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/sensor/temperature/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/sensor/temperature/base.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/integration/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/integration/homeassistant.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/integration/interlock.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/integration/lox_template.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/actions.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/MANIFEST.sha256 +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/docker/daemon.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/docker/nodered/caddy/502.html +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/docker/nodered/caddy/init-certs.sh +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/docker/nodered/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/docker/nodered/nginx/default.conf +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/docker/nodered/node-red/settings.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/journald/journald.conf +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/mosquitto/boneio.conf +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/sudoers/boneio +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/systemd/boneio-oled-boot.service +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/systemd/boneio-oled-shutdown.service +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/systemd/boneio.service +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/systemd/set-hostname-once.service +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/usr-local-bin/set-hostname-once.sh +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/usr-sbin/oled_boot_splash.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/usr-sbin/oled_boot_splash.sh +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/usr-sbin/oled_msg.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/assets/usr-sbin/oled_msg.sh +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/bootstrap/boneio-migrate +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/bootstrap/install-helper.sh +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/bootstrap/sudoers-migrate +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/runner.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/versions/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/versions/v1_3_0_baseline.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/versions/v1_3_1_fix_oled_boot.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/versions/v1_3_2_cleanup_can_sudoers.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/versions/v1_4_0_fix_mqtt_sudoers.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/versions/v1_4_3_oled_shutdown.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/versions/v1_4_4_caddy.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/versions/v1_5_0_fix_oled_fifo_permissions.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/migrations/versions/v1_5_1_ufw_lox_udp.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/cli.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/client.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/coordinator.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/energy_meters/dts1964_3f.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/hvac/eht-topventil-plus.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/hvac/thessla.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/hvac/ventclear.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/hvac/wanas415.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/inverters/sofar.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/other/esp32_relay_x4_modbus.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/other/n4dsc08.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/other/r4dcb08.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/sensors/cwt.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/sensors/gdfs.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/sensors/gdfx.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/sensors/pt100.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/sensors/sht20.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/devices/sensors/sht30.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/base.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/derived/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/derived/numeric.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/derived/select.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/derived/switch.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/derived/text.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/sensor/binary.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/sensor/numeric.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/sensor/text.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/writeable/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/writeable/binary.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/entities/writeable/numeric.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/mock_coordinator.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/modbus/utils.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/models/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/models/actions.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/models/events.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/models/files.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/models/logs.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/models/mqtt.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/models/state.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/runner.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/actions.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/actions_sensor.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/actions_switch.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/condition.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/filters.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/filters_adc.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/id.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/remote_devices.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/remote_inputs.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/remote_outputs.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/schema.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/temp_unit.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/schema/update_interval.yaml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/action_validation.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/app.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/dashboard_cards.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/BindingMatrix-aj3riWWZ.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/ConfigEditor-Blrg9Au1.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/EditItemDialog-cJc7C25R.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/EntityCard-CVnjkl2Y.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/EntityGrid-B6mC4OZ8.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/HelpView-tDBff8mq.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/InputsView-C09ulmeN.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/LogViewer-U1DEZ2mc.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/LongPressWrapper-B-jkbdNk.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/ModbusView-MqeWOSDT.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/NodeRedView-CNPh9Kak.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/OutputsView-uXH9nyRR.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/SearchableEntityPicker-Dr9uF-oT.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/SensorView-DW85dbP7.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/Sparkline-P3-zEZpz.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/SudoPasswordDialog-C9jQ6QtB.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/SystemState-A6TNdNT0.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/TemplatesView-Bmu7KfpS.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/Tools-C-qgHesX.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/UISettings-B_Vt1ikn.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/aiConfig-IRYCBmLm.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/aiWizardPrompt-D9OJ-cE7.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/basePath-CxHj-SSK.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/clipboard-CCtx29e-.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/css.worker-CvXBzhp8.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/dialog-Dj_HN1ZA.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/editor.worker-Cn2oRESe.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/formatters-zOiGPJLh.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/gi-Dt8p1sub.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/html.worker-BO6WuOEO.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/index-CpB8cnDC.css +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/index-CyBZuJ67.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/json.worker-BkJRGcCJ.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/modbusDeviceCatalog-D8uh5ILp.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/monaco-61yH0vfd.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/monaco-Br_kD0ds.css +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/rolldown-runtime-QTnfLwEv.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/select-Bxh-o8g9.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/tabs-box-Bjw4Iwcm.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/ts.worker-B0J26iPs.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/useTranslation-DWIecEyP.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/utils-BmlJVtvk.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/vendor-DjFmndpd.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-Bd17z0YL.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/assets/yaml.worker-BKRoXlmz.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/boneio-192.png +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/boneio-512.png +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/boneio.svg +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/index.html +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/sw.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/frontend-dist/workbox-4918f2f6.js +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/hvac_svg_templates.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/middleware/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/middleware/auth.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/modbus_card_templates.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/auth.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/caddy.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/can.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/covers.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/dashboard.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/dev_fake_device.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/irrigation.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/migrations.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/modbus.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/outputs.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/remote_devices.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/sensors.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/system.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/templates.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/timezone_sudoers.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/tools.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/routes/update.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/services/__init__.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/services/logs.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/web_server.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio/webui/websocket_manager.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio.egg-info/SOURCES.txt +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio.egg-info/dependency_links.txt +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio.egg-info/entry_points.txt +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio.egg-info/requires.txt +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/boneio.egg-info/top_level.txt +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/pyproject.toml +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/setup.cfg +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/setup.py +0 -0
- {boneio-1.5.0.dev13 → boneio-1.5.0.dev14}/tests/test_py313_compatibility.py +0 -0
|
@@ -1227,11 +1227,17 @@ def update_config_section(config_file: str, section: str, data: dict | list) ->
|
|
|
1227
1227
|
Returns:
|
|
1228
1228
|
dict: Status response with success/error message
|
|
1229
1229
|
"""
|
|
1230
|
+
import time
|
|
1230
1231
|
from pathlib import Path
|
|
1231
1232
|
|
|
1233
|
+
t_start = time.perf_counter()
|
|
1232
1234
|
config_dir = Path(config_file).parent
|
|
1233
1235
|
|
|
1234
|
-
|
|
1236
|
+
data_size = len(str(data)) if data else 0
|
|
1237
|
+
_LOGGER.info(
|
|
1238
|
+
"[SAVE] START section='%s' data_size=%d bytes",
|
|
1239
|
+
section, data_size,
|
|
1240
|
+
)
|
|
1235
1241
|
|
|
1236
1242
|
# Special handling for mcp23017 - convert hex strings to integers
|
|
1237
1243
|
# This ensures YAML writes them as integers which are then read back as hex
|
|
@@ -1259,8 +1265,12 @@ def update_config_section(config_file: str, section: str, data: dict | list) ->
|
|
|
1259
1265
|
wled.pop(field, None)
|
|
1260
1266
|
|
|
1261
1267
|
# Strip default values to keep YAML clean
|
|
1268
|
+
t_strip = time.perf_counter()
|
|
1262
1269
|
cleaned_data = strip_default_values(data, {}, section)
|
|
1263
|
-
_LOGGER.info(
|
|
1270
|
+
_LOGGER.info(
|
|
1271
|
+
"[SAVE] strip_default_values took %.3fs",
|
|
1272
|
+
time.perf_counter() - t_strip,
|
|
1273
|
+
)
|
|
1264
1274
|
|
|
1265
1275
|
# Custom YAML loader that preserves !include tags
|
|
1266
1276
|
class IncludeLoader(SafeLoader):
|
|
@@ -1277,8 +1287,13 @@ def update_config_section(config_file: str, section: str, data: dict | list) ->
|
|
|
1277
1287
|
|
|
1278
1288
|
try:
|
|
1279
1289
|
# Read current config.yaml with custom loader
|
|
1290
|
+
t_load = time.perf_counter()
|
|
1280
1291
|
with open(config_file, encoding="utf-8") as f:
|
|
1281
1292
|
config_content = load(f, Loader=IncludeLoader)
|
|
1293
|
+
_LOGGER.info(
|
|
1294
|
+
"[SAVE] yaml.load(config.yaml) took %.3fs",
|
|
1295
|
+
time.perf_counter() - t_load,
|
|
1296
|
+
)
|
|
1282
1297
|
|
|
1283
1298
|
if config_content is None:
|
|
1284
1299
|
config_content = {}
|
|
@@ -1296,13 +1311,21 @@ def update_config_section(config_file: str, section: str, data: dict | list) ->
|
|
|
1296
1311
|
_LOGGER.info(f"Section '{section}' uses !include '{include_filename}', updating {include_file_path}")
|
|
1297
1312
|
|
|
1298
1313
|
# Save cleaned data to the included file
|
|
1314
|
+
t_dump = time.perf_counter()
|
|
1299
1315
|
content = dump(
|
|
1300
1316
|
cleaned_data, Dumper=TimePeriodDumper, default_flow_style=False, allow_unicode=True, sort_keys=False
|
|
1301
1317
|
)
|
|
1318
|
+
_LOGGER.info(
|
|
1319
|
+
"[SAVE] yaml.dump(!include data) took %.3fs (%d bytes)",
|
|
1320
|
+
time.perf_counter() - t_dump, len(content),
|
|
1321
|
+
)
|
|
1322
|
+
t_write = time.perf_counter()
|
|
1302
1323
|
with open(include_file_path, "w", encoding="utf-8") as f:
|
|
1303
1324
|
f.write(content)
|
|
1304
|
-
|
|
1305
|
-
|
|
1325
|
+
_LOGGER.info(
|
|
1326
|
+
"[SAVE] file write (!include) took %.3fs",
|
|
1327
|
+
time.perf_counter() - t_write,
|
|
1328
|
+
)
|
|
1306
1329
|
|
|
1307
1330
|
else:
|
|
1308
1331
|
# It's a regular section - replace in config.yaml
|
|
@@ -1311,14 +1334,20 @@ def update_config_section(config_file: str, section: str, data: dict | list) ->
|
|
|
1311
1334
|
|
|
1312
1335
|
# Save updated config.yaml (need to handle !include when saving)
|
|
1313
1336
|
# Read original file as text to preserve !include syntax
|
|
1337
|
+
t_reread = time.perf_counter()
|
|
1314
1338
|
with open(config_file, encoding="utf-8") as f:
|
|
1315
1339
|
original_lines = f.readlines()
|
|
1340
|
+
_LOGGER.info(
|
|
1341
|
+
"[SAVE] re-read config as text took %.3fs (%d lines)",
|
|
1342
|
+
time.perf_counter() - t_reread, len(original_lines),
|
|
1343
|
+
)
|
|
1316
1344
|
|
|
1317
1345
|
# Find and replace the section in the original text
|
|
1318
1346
|
updated_lines = []
|
|
1319
1347
|
in_section = False
|
|
1320
1348
|
section_indent = 0
|
|
1321
1349
|
|
|
1350
|
+
t_dump = time.perf_counter()
|
|
1322
1351
|
for line in original_lines:
|
|
1323
1352
|
stripped = line.strip()
|
|
1324
1353
|
# Check if this line starts the target section
|
|
@@ -1352,12 +1381,21 @@ def update_config_section(config_file: str, section: str, data: dict | list) ->
|
|
|
1352
1381
|
# Skip lines that are part of the old section
|
|
1353
1382
|
else:
|
|
1354
1383
|
updated_lines.append(line)
|
|
1384
|
+
_LOGGER.info(
|
|
1385
|
+
"[SAVE] yaml.dump(section) + line replace took %.3fs",
|
|
1386
|
+
time.perf_counter() - t_dump,
|
|
1387
|
+
)
|
|
1355
1388
|
|
|
1356
1389
|
# Write updated config
|
|
1390
|
+
t_write = time.perf_counter()
|
|
1357
1391
|
with open(config_file, "w", encoding="utf-8") as f:
|
|
1358
1392
|
f.writelines(updated_lines)
|
|
1393
|
+
_LOGGER.info(
|
|
1394
|
+
"[SAVE] file write (config.yaml) took %.3fs",
|
|
1395
|
+
time.perf_counter() - t_write,
|
|
1396
|
+
)
|
|
1359
1397
|
|
|
1360
|
-
_LOGGER.info(
|
|
1398
|
+
_LOGGER.info("[SAVE] section '%s' inline update done", section)
|
|
1361
1399
|
else:
|
|
1362
1400
|
# Section doesn't exist - add it to config.yaml
|
|
1363
1401
|
_LOGGER.info(f"Section '{section}' doesn't exist, adding to config.yaml")
|
|
@@ -1375,6 +1413,16 @@ def update_config_section(config_file: str, section: str, data: dict | list) ->
|
|
|
1375
1413
|
|
|
1376
1414
|
_LOGGER.info(f"Successfully added new section '{section}' to config.yaml")
|
|
1377
1415
|
|
|
1416
|
+
t_total = time.perf_counter() - t_start
|
|
1417
|
+
_LOGGER.info(
|
|
1418
|
+
"[SAVE] DONE section='%s' total=%.3fs",
|
|
1419
|
+
section, t_total,
|
|
1420
|
+
)
|
|
1421
|
+
if t_total > 1.0:
|
|
1422
|
+
_LOGGER.warning(
|
|
1423
|
+
"[SAVE] SLOW save detected: section='%s' took %.3fs",
|
|
1424
|
+
section, t_total,
|
|
1425
|
+
)
|
|
1378
1426
|
return {"status": "success", "message": f"Section '{section}' saved successfully"}
|
|
1379
1427
|
|
|
1380
1428
|
except Exception as e:
|
|
@@ -498,6 +498,10 @@ async def update_section_content(section: str, data: dict | list = Body(...)):
|
|
|
498
498
|
)
|
|
499
499
|
|
|
500
500
|
try:
|
|
501
|
+
import time as _time
|
|
502
|
+
|
|
503
|
+
t_route_start = _time.perf_counter()
|
|
504
|
+
|
|
501
505
|
app_state = _get_app_state()
|
|
502
506
|
# Offload synchronous YAML read/write/dump to a thread pool.
|
|
503
507
|
# On BeagleBone ARM, large configs (e.g. 7 WLED devices with 200+
|
|
@@ -512,6 +516,12 @@ async def update_section_content(section: str, data: dict | list = Body(...)):
|
|
|
512
516
|
section,
|
|
513
517
|
data,
|
|
514
518
|
)
|
|
519
|
+
t_after_executor = _time.perf_counter()
|
|
520
|
+
_LOGGER.info(
|
|
521
|
+
"[ROUTE] run_in_executor took %.3fs for section='%s'",
|
|
522
|
+
t_after_executor - t_route_start, section,
|
|
523
|
+
)
|
|
524
|
+
|
|
515
525
|
if result["status"] == "error":
|
|
516
526
|
raise HTTPException(status_code=500, detail=result["message"])
|
|
517
527
|
|
|
@@ -530,6 +540,10 @@ async def update_section_content(section: str, data: dict | list = Body(...)):
|
|
|
530
540
|
except Exception as e:
|
|
531
541
|
_LOGGER.warning("Failed to hot-apply entity labels: %s", e)
|
|
532
542
|
|
|
543
|
+
_LOGGER.info(
|
|
544
|
+
"[ROUTE] total PUT /config/%s took %.3fs",
|
|
545
|
+
section, _time.perf_counter() - t_route_start,
|
|
546
|
+
)
|
|
533
547
|
return result
|
|
534
548
|
|
|
535
549
|
except Exception as e:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|