boneIO 1.1.0__tar.gz → 1.1.0.dev2__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.1.0/boneio.egg-info → boneio-1.1.0.dev2}/PKG-INFO +1 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/config/config_helper.py +0 -8
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/manager/inputs.py +0 -8
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/manager/manager.py +3 -32
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/manager/remote.py +4 -113
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/remote/__init__.py +0 -9
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/remote/base.py +0 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/integration/homeassistant.py +2 -45
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/runner.py +2 -3
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/actions.yaml +0 -18
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/remote_devices.yaml +3 -106
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/schema.yaml +0 -15
- boneio-1.1.0.dev2/boneio/version.py +2 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/app.py +0 -2
- boneio-1.1.0/boneio/webui/frontend-dist/assets/cssMode-SLqjH3qK.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/cssMode-Ca1DAf9-.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/freemarker2-DXMvZO7c.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/freemarker2-C5IgNKwL.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/handlebars-DldmTvGn.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/handlebars-coN2SbcA.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/html-BeFUXNc_.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/html-DauOMz0u.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/htmlMode-D4OnYTmf.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/htmlMode-CmodurAE.js +1 -1
- boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/index-BGHXdp7U.css +1 -0
- boneio-1.1.0/boneio/webui/frontend-dist/assets/index-AE1j15fF.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/index-CeFOvpPM.js +225 -225
- boneio-1.1.0/boneio/webui/frontend-dist/assets/javascript-tD5AV0w8.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/javascript-N6k9oxRy.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/jsonMode-D8KZNSNi.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/jsonMode-DCkYHItT.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/liquid-B4w537sW.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/liquid-CuYEfgul.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/mdx-DB1izvJl.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/mdx-DEiUIP8w.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/python-CG6dl7EF.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/python-DBpf3_HZ.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/razor-BqVac-Wv.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/razor-S1P72cEP.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/tsMode-CvBEEAxI.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/tsMode-A2L2Jxa9.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/typescript-BIvQiQJr.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/typescript-CupJHRfY.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/xml-BtFDS-MH.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/xml-DDPTy55c.js +1 -1
- boneio-1.1.0/boneio/webui/frontend-dist/assets/yaml-D0Bwrhp9.js → boneio-1.1.0.dev2/boneio/webui/frontend-dist/assets/yaml-CuImUjrc.js +1 -1
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/index.html +2 -2
- {boneio-1.1.0/boneio/webui/schema → boneio-1.1.0.dev2/boneio/webui/frontend-dist/schem}/adc.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/areas.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/binary_sensor.schema.json +6 -38
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/config.schema.json +93 -437
- {boneio-1.1.0/boneio/webui/schema → boneio-1.1.0.dev2/boneio/webui/frontend-dist/schem}/cover.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/ds2482.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/event.schema.json +16 -128
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/ina219.schema.json +6 -6
- {boneio-1.1.0/boneio/webui/schema → boneio-1.1.0.dev2/boneio/webui/frontend-dist/schem}/lm75.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/mcp23017.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/mcp9808.schema.json +4 -4
- {boneio-1.1.0/boneio/webui/schema → boneio-1.1.0.dev2/boneio/webui/frontend-dist/schem}/modbus_devices.schema.json +6 -15
- {boneio-1.1.0/boneio/webui/schema → boneio-1.1.0.dev2/boneio/webui/frontend-dist/schem}/mqtt.schema.json +0 -13
- {boneio-1.1.0/boneio/webui/schema → boneio-1.1.0.dev2/boneio/webui/frontend-dist/schem}/oled.schema.json +4 -4
- {boneio-1.1.0/boneio/webui/schema → boneio-1.1.0.dev2/boneio/webui/frontend-dist/schem}/output.schema.json +4 -4
- {boneio-1.1.0/boneio/webui/schema → boneio-1.1.0.dev2/boneio/webui/frontend-dist/schem}/output_group.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/pca9685.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/pcf8575.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/remote_devices.schema.json +13 -191
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/sensor.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/virtual_energy_sensor.schema.json +2 -2
- {boneio-1.1.0/boneio/webui/schema → boneio-1.1.0.dev2/boneio/webui/frontend-dist/schem}/web.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/config.py +0 -3
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/remote_devices.py +0 -84
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/update.py +1 -42
- {boneio-1.1.0/boneio/webui/frontend-dist/schem → boneio-1.1.0.dev2/boneio/webui/schema}/adc.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/areas.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/binary_sensor.schema.json +6 -38
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/config.schema.json +93 -437
- {boneio-1.1.0/boneio/webui/frontend-dist/schem → boneio-1.1.0.dev2/boneio/webui/schema}/cover.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/ds2482.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/event.schema.json +16 -128
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/ina219.schema.json +6 -6
- {boneio-1.1.0/boneio/webui/frontend-dist/schem → boneio-1.1.0.dev2/boneio/webui/schema}/lm75.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/mcp23017.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/mcp9808.schema.json +4 -4
- {boneio-1.1.0/boneio/webui/frontend-dist/schem → boneio-1.1.0.dev2/boneio/webui/schema}/modbus_devices.schema.json +6 -15
- {boneio-1.1.0/boneio/webui/frontend-dist/schem → boneio-1.1.0.dev2/boneio/webui/schema}/mqtt.schema.json +0 -13
- {boneio-1.1.0/boneio/webui/frontend-dist/schem → boneio-1.1.0.dev2/boneio/webui/schema}/oled.schema.json +4 -4
- {boneio-1.1.0/boneio/webui/frontend-dist/schem → boneio-1.1.0.dev2/boneio/webui/schema}/output.schema.json +4 -4
- {boneio-1.1.0/boneio/webui/frontend-dist/schem → boneio-1.1.0.dev2/boneio/webui/schema}/output_group.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/pca9685.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/pcf8575.schema.json +2 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/remote_devices.schema.json +13 -191
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/sensor.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/virtual_energy_sensor.schema.json +2 -2
- {boneio-1.1.0/boneio/webui/frontend-dist/schem → boneio-1.1.0.dev2/boneio/webui/schema}/web.schema.json +4 -4
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/web_server.py +29 -34
- {boneio-1.1.0 → boneio-1.1.0.dev2/boneio.egg-info}/PKG-INFO +1 -2
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio.egg-info/SOURCES.txt +17 -22
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio.egg-info/requires.txt +0 -1
- {boneio-1.1.0 → boneio-1.1.0.dev2}/pyproject.toml +0 -1
- boneio-1.1.0/boneio/core/manager/update.py +0 -341
- boneio-1.1.0/boneio/core/remote/wled.py +0 -572
- boneio-1.1.0/boneio/modbus/devices/energy_meters/le-03mw.json +0 -365
- boneio-1.1.0/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -365
- boneio-1.1.0/boneio/modbus/devices/other/n4dsc08.json +0 -132
- boneio-1.1.0/boneio/version.py +0 -2
- boneio-1.1.0/boneio/webui/frontend-dist/assets/index-D0XGmf2O.css +0 -1
- {boneio-1.1.0 → boneio-1.1.0.dev2}/LICENSE +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/MANIFEST.in +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/README.md +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.2/input.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.2/output_24_16.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.2/output_32_10.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.2/output_32_5.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.2/output_cover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.3/input.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.3/output_24_16.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.3/output_32_10.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.3/output_32_5.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.3/output_cover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.4/input.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.4/output_24_16.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.4/output_32_10.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.4/output_32_5.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.4/output_cover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.5/input.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.5/output_24_16.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.5/output_32_10.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.5/output_cover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.6/input.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.6/output_24_16.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.6/output_32_10.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.6/output_cover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.7/input.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.7/output_24_16.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.7/output_32_10.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.7/output_cover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.8/input.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.8/output_24_16.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.8/output_32_10.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.8/output_cover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/bonecli.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/cover/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/cover/cover.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/cover/previous.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/cover/time_based.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/cover/venetian.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/group/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/group/output_group.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/input/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/input/binary_sensor.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/input/detectors.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/input/event.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/output/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/output/basic.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/output/mcp.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/output/pca.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/output/pcf.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/sensor/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/components/sensor/virtual_energy.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/const.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/config/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/config/package-lock.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/config/package.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/config/schema_converter.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/config/yaml_util.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/discovery.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/events/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/events/bus.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/manager/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/manager/covers.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/manager/display.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/manager/modbus.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/manager/outputs.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/manager/sensors.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/messaging/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/messaging/basic.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/messaging/basic_mqtt.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/messaging/local.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/messaging/mqtt.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/messaging/queue.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/remote/esphome.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/remote/mqtt.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/sensor/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/sensor/base.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/sensor/system.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/state/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/state/manager.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/system/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/system/host_data.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/system/monitor.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/utils/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/utils/async_updater.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/utils/filter.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/utils/font_util.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/utils/logger.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/utils/timeperiod.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/core/utils/util.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/24x16/adc.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/24x16/config.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/24x16/event.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/24x16/mqtt.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/24x16/output24x16A.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/32x10/adc.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/32x10/config.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/32x10/event.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/32x10/mqtt.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/32x10/output32x10A.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover/adc.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover/binary_sensor.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover/config.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover/cover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover/event.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover/mqtt.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover/outputCover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover_mix/adc.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover_mix/config.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover_mix/cover.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover_mix/event.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/adc.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/event_all.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/exceptions.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/analog/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/analog/adc.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/display/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/display/fonts/danube__.ttf +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/display/oled.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/gpio/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/gpio/expanders/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/gpio/input/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/gpio/input/base.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/gpio/input/manager.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/i2c/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/i2c/bus.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/i2c/ina219.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/i2c/ina219_driver.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/i2c/mcp9808.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/i2c/pct2075.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/onewire/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/onewire/bus.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/onewire/dallas.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/onewire/ds2482.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/sensor/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/sensor/temperature/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/sensor/temperature/base.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/integration/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/integration/interlock.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/cli.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/client.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/coordinator.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/hvac/ventclear.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/inverters/sofar.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/inverters/thessla.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/other/r4dcb08.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/other/wanas415.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/sensors/cwt.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/sensors/dts1964_3f.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/sensors/pt100.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/sensors/sht20.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/devices/sensors/sht30.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/base.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/derived/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/derived/numeric.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/derived/select.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/derived/switch.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/derived/text.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/sensor/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/sensor/binary.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/sensor/numeric.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/sensor/text.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/writeable/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/writeable/binary.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/entities/writeable/numeric.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/modbus/utils.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/models/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/models/actions.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/models/events.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/models/files.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/models/logs.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/models/mqtt.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/models/state.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/actions_sensor.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/actions_switch.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/filters.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/filters_adc.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/id.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/temp_unit.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/schema/update_interval.yaml +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/abap-CRCWOmpq.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/apex-DnsZk_dE.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/azcli-1IWB1ccx.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/bat-DPkNLes8.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/bicep-Corcdgou.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/cameligo-CGrWLZr3.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/clojure-D9WOWImG.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/codicon-DCmgc-ay.ttf +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/coffee-B7EJu28W.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/cpp-SEyurbux.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/csharp-BoL64M5l.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/csp-C46ZqvIl.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/css-DQU6DXDx.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/cypher-D84EuPTj.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/dart-D8lhlL1r.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/dockerfile-DLk6rpji.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/ecl-BO6FnfXk.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/editor.worker-DsAeyiJ5.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/elixir-BRjLKONM.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/flow9-Cac8vKd7.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/fsharp-fd1GTHhf.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/go-O9LJTZXk.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/graphql-LQdxqEYJ.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/hcl-DxDQ3s82.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/ini-BvajGCUy.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/java-SYsfObOQ.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/json.worker-DaRII17c.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/julia-DQXNmw_w.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/kotlin-qQ0MG-9I.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/less-GGFNNJHn.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/lexon-Canl7DCW.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/lua-D28Ae8-K.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/m3-DPitgjJI.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/markdown-B811l8j2.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/mips-CdjsipkG.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/msdax-CYqgjx_P.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/mysql-BHd6q0vd.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/objective-c-B1aVtJYH.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/pascal-BhNW15KB.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/pascaligo-5jv8CcQD.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/perl-DlYyT36c.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/pgsql-Dy0bjov7.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/php-120yhfDK.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/pla-CjnFlu4u.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/postiats-CQpG440k.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/powerquery-DdJtto1Z.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/powershell-Bu_VLpJB.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/protobuf-IBS6jZEB.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/pug-kFxLfcjb.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/qsharp-q7JyzKFN.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/r-BIFz-_sK.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/redis-CHOsPHWR.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/redshift-CBifECDb.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/restructuredtext-CghPJEOS.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/ruby-CYWGW-b1.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/rust-DMDD0SHb.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/sb-BYAiYHFx.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/scala-Bqvq8jcR.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/scheme-Dhb-2j9p.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/scss-CTwUZ5N7.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/shell-CsDZo4DB.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/solidity-CME5AdoB.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/sophia-RYC1BQQz.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/sparql-KEyrF7De.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/sql-BdTr02Mf.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/st-C7iG7M4S.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/swift-D7IUmUK8.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/systemverilog-DgMryOEJ.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/tcl-PloMZuKG.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/twig-BfRIq3la.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/typespec-CzxlYoT_.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/vb-BwAE3J76.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/wgsl-B_1kOXbF.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/assets/yaml.worker-BTE-_K6g.js +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/boneio.svg +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/boneio.schema.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/dallas.schema.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/logger.schema.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/frontend-dist/schem/modbus.schema.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/middleware/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/middleware/auth.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/auth.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/caddy.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/covers.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/modbus.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/outputs.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/sensors.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/routes/system.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/boneio.schema.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/dallas.schema.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/logger.schema.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/schema/modbus.schema.json +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/services/__init__.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/services/logs.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio/webui/websocket_manager.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio.egg-info/dependency_links.txt +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio.egg-info/entry_points.txt +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/boneio.egg-info/top_level.txt +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/setup.cfg +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/setup.py +0 -0
- {boneio-1.1.0 → boneio-1.1.0.dev2}/tests/test_py313_compatibility.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: boneio
|
|
3
|
-
Version: 1.1.0
|
|
3
|
+
Version: 1.1.0.dev2
|
|
4
4
|
Summary: Python App for BoneIO
|
|
5
5
|
Author-email: Paweł Szafer <pszafer@gmail.com>
|
|
6
6
|
License: GNU General Public License v3.0
|
|
@@ -13,7 +13,6 @@ Description-Content-Type: text/markdown
|
|
|
13
13
|
License-File: LICENSE
|
|
14
14
|
Requires-Dist: smbus2==0.4.3
|
|
15
15
|
Requires-Dist: aiomqtt==2.4.0
|
|
16
|
-
Requires-Dist: aiohttp==3.13.3
|
|
17
16
|
Requires-Dist: Cerberus==1.3.7
|
|
18
17
|
Requires-Dist: colorlog==6.9.0
|
|
19
18
|
Requires-Dist: luma-core==2.5.1
|
|
@@ -45,7 +45,6 @@ class ConfigHelper:
|
|
|
45
45
|
config_file_path: str | None = None,
|
|
46
46
|
send_boneio_autodiscovery: bool = True,
|
|
47
47
|
receive_boneio_autodiscovery: bool = True,
|
|
48
|
-
update_channel: str = "stable",
|
|
49
48
|
):
|
|
50
49
|
self._name = name
|
|
51
50
|
|
|
@@ -64,7 +63,6 @@ class ConfigHelper:
|
|
|
64
63
|
self._ha_discovery_prefix = ha_discovery_prefix
|
|
65
64
|
self._send_boneio_autodiscovery = send_boneio_autodiscovery
|
|
66
65
|
self._receive_boneio_autodiscovery = receive_boneio_autodiscovery
|
|
67
|
-
self._update_channel = update_channel
|
|
68
66
|
self._device_type = device_type
|
|
69
67
|
self._web_port = web_port
|
|
70
68
|
self._proxy_port = proxy_port
|
|
@@ -81,7 +79,6 @@ class ConfigHelper:
|
|
|
81
79
|
TEXT_SENSOR: {},
|
|
82
80
|
SELECT: {},
|
|
83
81
|
NUMERIC: {},
|
|
84
|
-
"update": {}
|
|
85
82
|
}
|
|
86
83
|
self.manager_ready: bool = False
|
|
87
84
|
self._network_info = network_info
|
|
@@ -184,11 +181,6 @@ class ConfigHelper:
|
|
|
184
181
|
"""Check if BoneIO autodiscovery receiving is enabled."""
|
|
185
182
|
return self._receive_boneio_autodiscovery
|
|
186
183
|
|
|
187
|
-
@property
|
|
188
|
-
def update_channel(self) -> str:
|
|
189
|
-
"""Get update channel (stable or dev)."""
|
|
190
|
-
return self._update_channel
|
|
191
|
-
|
|
192
184
|
@property
|
|
193
185
|
def device_type(self) -> str:
|
|
194
186
|
return self._device_type
|
|
@@ -687,14 +687,6 @@ class InputManager:
|
|
|
687
687
|
# Send event to MQTT for Home Assistant
|
|
688
688
|
self._publish_input_event_to_mqtt(input_instance, event)
|
|
689
689
|
|
|
690
|
-
# If publish_only is set, skip action execution (used for initial state sync)
|
|
691
|
-
if event.publish_only:
|
|
692
|
-
_LOGGER.debug(
|
|
693
|
-
"Skipping action execution for %s (publish_only=True)",
|
|
694
|
-
event.entity_id
|
|
695
|
-
)
|
|
696
|
-
return
|
|
697
|
-
|
|
698
690
|
# Execute actions with duration threshold support
|
|
699
691
|
if actions and event.click_type == LONG:
|
|
700
692
|
# Get executed_actions from detector state
|
|
@@ -39,7 +39,6 @@ from boneio.core.manager.modbus import ModbusManager
|
|
|
39
39
|
from boneio.core.manager.outputs import OutputManager
|
|
40
40
|
from boneio.core.manager.sensors import SensorManager
|
|
41
41
|
from boneio.core.manager.remote import RemoteDeviceManager
|
|
42
|
-
from boneio.core.manager.update import UpdateManager
|
|
43
42
|
from boneio.core.discovery import BlackDiscoveryPublisher
|
|
44
43
|
from boneio.core.messaging import MessageBus
|
|
45
44
|
from boneio.core.state import StateManager
|
|
@@ -205,11 +204,6 @@ class Manager:
|
|
|
205
204
|
message_bus=message_bus,
|
|
206
205
|
)
|
|
207
206
|
|
|
208
|
-
# 9. UpdateManager (checks for software updates and publishes to HA)
|
|
209
|
-
self.update_manager = UpdateManager(
|
|
210
|
-
manager=self,
|
|
211
|
-
)
|
|
212
|
-
|
|
213
207
|
# Configure virtual energy sensors (must be after outputs are initialized)
|
|
214
208
|
self.sensors.configure_virtual_energy_sensors()
|
|
215
209
|
|
|
@@ -329,7 +323,6 @@ class Manager:
|
|
|
329
323
|
await self.sensors.send_ha_autodiscovery()
|
|
330
324
|
await self.modbus.send_ha_autodiscovery()
|
|
331
325
|
await self.display.send_ha_autodiscovery()
|
|
332
|
-
await self.update_manager.send_ha_autodiscovery()
|
|
333
326
|
|
|
334
327
|
def send_ha_autodiscovery(
|
|
335
328
|
self,
|
|
@@ -387,9 +380,6 @@ class Manager:
|
|
|
387
380
|
availability_msg_func = ha_cover_availabilty_message
|
|
388
381
|
elif ha_type == BUTTON:
|
|
389
382
|
availability_msg_func = ha_button_availabilty_message
|
|
390
|
-
elif ha_type == "update":
|
|
391
|
-
from boneio.integration.homeassistant import ha_update_availability_message
|
|
392
|
-
availability_msg_func = ha_update_availability_message
|
|
393
383
|
|
|
394
384
|
# Use availability_msg_func from kwargs if provided (for sensors)
|
|
395
385
|
if 'availability_msg_func' in kwargs:
|
|
@@ -410,16 +400,6 @@ class Manager:
|
|
|
410
400
|
)
|
|
411
401
|
self.send_message(topic=topic, payload=payload, retain=True)
|
|
412
402
|
|
|
413
|
-
async def _handle_update_install_command(self, topic: str, payload: str) -> None:
|
|
414
|
-
"""Handle update install command from Home Assistant.
|
|
415
|
-
|
|
416
|
-
Args:
|
|
417
|
-
topic: MQTT topic
|
|
418
|
-
payload: MQTT payload (should be "INSTALL")
|
|
419
|
-
"""
|
|
420
|
-
_LOGGER.info("Received update install command: %s", payload)
|
|
421
|
-
await self.update_manager.handle_install_command(payload)
|
|
422
|
-
|
|
423
403
|
def parse_actions(self, pin: str, actions: dict) -> dict:
|
|
424
404
|
"""Parse actions configuration.
|
|
425
405
|
|
|
@@ -718,7 +698,7 @@ class Manager:
|
|
|
718
698
|
)
|
|
719
699
|
|
|
720
700
|
elif action == REMOTE_OUTPUT:
|
|
721
|
-
# Control output on remote device
|
|
701
|
+
# Control output on remote device
|
|
722
702
|
remote_device_id = action_definition.get("remote_device")
|
|
723
703
|
output_id = action_definition.get("output_id")
|
|
724
704
|
action_output = action_definition.get("action_output", "TOGGLE")
|
|
@@ -726,14 +706,6 @@ class Manager:
|
|
|
726
706
|
device_id=remote_device_id,
|
|
727
707
|
output_id=output_id,
|
|
728
708
|
action=action_output,
|
|
729
|
-
brightness=action_definition.get("brightness"),
|
|
730
|
-
color_temp=action_definition.get("color_temp"),
|
|
731
|
-
rgb=action_definition.get("rgb"),
|
|
732
|
-
transition=action_definition.get("transition"),
|
|
733
|
-
effect=action_definition.get("effect"),
|
|
734
|
-
palette=action_definition.get("palette"),
|
|
735
|
-
effect_speed=action_definition.get("effect_speed"),
|
|
736
|
-
effect_intensity=action_definition.get("effect_intensity"),
|
|
737
709
|
)
|
|
738
710
|
|
|
739
711
|
elif action == REMOTE_COVER:
|
|
@@ -768,17 +740,16 @@ class Manager:
|
|
|
768
740
|
configure_logger(log_config, debug=0)
|
|
769
741
|
_LOGGER.info("Logger configuration reloaded successfully")
|
|
770
742
|
|
|
771
|
-
|
|
743
|
+
def _reload_remote_devices(self) -> None:
|
|
772
744
|
"""Reload remote devices configuration from config file.
|
|
773
745
|
|
|
774
746
|
This allows hot-reloading of remote devices without restarting the application.
|
|
775
|
-
Handles ESPHome connections properly (stops old, starts new).
|
|
776
747
|
"""
|
|
777
748
|
config = self._config_helper.get_config()
|
|
778
749
|
remote_devices_config = config.get("remote_devices", [])
|
|
779
750
|
|
|
780
751
|
_LOGGER.info("Reloading remote devices configuration")
|
|
781
|
-
|
|
752
|
+
self.remote_devices.reload(remote_devices_config)
|
|
782
753
|
_LOGGER.info("Remote devices configuration reloaded successfully")
|
|
783
754
|
|
|
784
755
|
async def publish_discovery(self) -> None:
|
|
@@ -18,7 +18,6 @@ from boneio.core.remote.base import (
|
|
|
18
18
|
)
|
|
19
19
|
from boneio.core.remote.mqtt import MQTTRemoteDevice
|
|
20
20
|
from boneio.core.remote.esphome import ESPHomeRemoteDevice, ESPHOME_API_AVAILABLE
|
|
21
|
-
from boneio.core.remote.wled import WLEDRemoteDevice
|
|
22
21
|
|
|
23
22
|
if TYPE_CHECKING:
|
|
24
23
|
from boneio.core.messaging import MessageBus
|
|
@@ -177,8 +176,6 @@ class RemoteDeviceManager:
|
|
|
177
176
|
return None
|
|
178
177
|
elif protocol == RemoteDeviceProtocol.ESPHOME_API:
|
|
179
178
|
return self._create_esphome_device(device_id, name, config)
|
|
180
|
-
elif protocol == RemoteDeviceProtocol.WLED:
|
|
181
|
-
return self._create_wled_device(device_id, name, config)
|
|
182
179
|
else:
|
|
183
180
|
_LOGGER.error("Unsupported protocol '%s' for device '%s'", protocol, device_id)
|
|
184
181
|
return None
|
|
@@ -262,40 +259,6 @@ class RemoteDeviceManager:
|
|
|
262
259
|
covers=covers,
|
|
263
260
|
)
|
|
264
261
|
|
|
265
|
-
def _create_wled_device(
|
|
266
|
-
self,
|
|
267
|
-
device_id: str,
|
|
268
|
-
name: str,
|
|
269
|
-
config: dict[str, Any],
|
|
270
|
-
) -> WLEDRemoteDevice | None:
|
|
271
|
-
"""Create WLED remote device.
|
|
272
|
-
|
|
273
|
-
Args:
|
|
274
|
-
device_id: Device ID
|
|
275
|
-
name: Device name
|
|
276
|
-
config: Full device configuration
|
|
277
|
-
|
|
278
|
-
Returns:
|
|
279
|
-
WLEDRemoteDevice instance or None if creation failed
|
|
280
|
-
"""
|
|
281
|
-
wled_config = config.get("wled", {})
|
|
282
|
-
host = wled_config.get("host")
|
|
283
|
-
|
|
284
|
-
if not host:
|
|
285
|
-
_LOGGER.error("WLED device '%s' missing 'host' in wled config", device_id)
|
|
286
|
-
return None
|
|
287
|
-
|
|
288
|
-
port = wled_config.get("port", 80)
|
|
289
|
-
segments = wled_config.get("segments", [])
|
|
290
|
-
|
|
291
|
-
return WLEDRemoteDevice(
|
|
292
|
-
id=device_id,
|
|
293
|
-
name=name,
|
|
294
|
-
host=host,
|
|
295
|
-
port=port,
|
|
296
|
-
segments=segments,
|
|
297
|
-
)
|
|
298
|
-
|
|
299
262
|
async def start_all_connections(self, delay_seconds: float = 10.0) -> None:
|
|
300
263
|
"""Start persistent connections for all ESPHome devices.
|
|
301
264
|
|
|
@@ -369,32 +332,19 @@ class RemoteDeviceManager:
|
|
|
369
332
|
output_id: str,
|
|
370
333
|
action: str,
|
|
371
334
|
brightness: int | None = None,
|
|
372
|
-
color_temp: int | None = None,
|
|
373
|
-
rgb: list[int] | tuple[int, int, int] | None = None,
|
|
374
335
|
transition: float | None = None,
|
|
375
|
-
effect: int | None = None,
|
|
376
|
-
palette: int | None = None,
|
|
377
|
-
effect_speed: int | None = None,
|
|
378
|
-
effect_intensity: int | None = None,
|
|
379
336
|
) -> bool:
|
|
380
|
-
"""Control output on remote device (BoneIO MQTT
|
|
337
|
+
"""Control output on remote device (BoneIO MQTT or ESPHome API).
|
|
381
338
|
|
|
382
339
|
Automatically detects device protocol and routes to appropriate method.
|
|
383
340
|
For ESPHome devices, output_id can be a switch or light entity.
|
|
384
|
-
For WLED devices, output_id can be "main" or segment ID.
|
|
385
341
|
|
|
386
342
|
Args:
|
|
387
343
|
device_id: ID of the remote device
|
|
388
344
|
output_id: ID of the output/switch/light to control
|
|
389
345
|
action: Action to perform (ON, OFF, TOGGLE, BRIGHTNESS_UP, BRIGHTNESS_DOWN, SET_BRIGHTNESS)
|
|
390
|
-
brightness: Brightness level (0-255) - for ESPHome
|
|
391
|
-
|
|
392
|
-
rgb: RGB color as [R, G, B] list or tuple (0-255 each) - for ESPHome/WLED lights
|
|
393
|
-
transition: Transition time in seconds - for ESPHome/WLED lights
|
|
394
|
-
effect: WLED effect ID
|
|
395
|
-
palette: WLED color palette ID
|
|
396
|
-
effect_speed: WLED effect speed (0-255)
|
|
397
|
-
effect_intensity: WLED effect intensity (0-255)
|
|
346
|
+
brightness: Brightness level (0-255) - only for ESPHome lights
|
|
347
|
+
transition: Transition time in seconds - only for ESPHome lights
|
|
398
348
|
|
|
399
349
|
Returns:
|
|
400
350
|
True if command was sent successfully
|
|
@@ -409,16 +359,10 @@ class RemoteDeviceManager:
|
|
|
409
359
|
# Check if output_id is a light
|
|
410
360
|
if device.has_light(output_id):
|
|
411
361
|
_LOGGER.debug("Controlling ESPHome light '%s' on device '%s'", output_id, device_id)
|
|
412
|
-
# Convert rgb list to tuple[int, int, int] if needed
|
|
413
|
-
rgb_tuple: tuple[int, int, int] | None = None
|
|
414
|
-
if rgb and len(rgb) >= 3:
|
|
415
|
-
rgb_tuple = (int(rgb[0]), int(rgb[1]), int(rgb[2]))
|
|
416
362
|
return await device.control_light(
|
|
417
363
|
light_id=output_id,
|
|
418
364
|
action=action,
|
|
419
365
|
brightness=brightness,
|
|
420
|
-
color_temp=color_temp,
|
|
421
|
-
rgb=rgb_tuple,
|
|
422
366
|
transition=transition if transition is not None else 0.0,
|
|
423
367
|
)
|
|
424
368
|
# Otherwise treat as switch
|
|
@@ -428,27 +372,6 @@ class RemoteDeviceManager:
|
|
|
428
372
|
action=action,
|
|
429
373
|
)
|
|
430
374
|
|
|
431
|
-
# For WLED devices, use HTTP JSON API
|
|
432
|
-
if isinstance(device, WLEDRemoteDevice):
|
|
433
|
-
_LOGGER.debug("Controlling WLED '%s' segment '%s' on device '%s'", output_id, action, device_id)
|
|
434
|
-
# Parse segment_id - "main" means whole device, otherwise it's segment ID
|
|
435
|
-
segment_id = None if output_id == "main" else int(output_id)
|
|
436
|
-
# Convert rgb list to tuple if needed
|
|
437
|
-
wled_rgb: tuple[int, int, int] | None = None
|
|
438
|
-
if rgb and len(rgb) >= 3:
|
|
439
|
-
wled_rgb = (int(rgb[0]), int(rgb[1]), int(rgb[2]))
|
|
440
|
-
return await device.control_light(
|
|
441
|
-
segment_id=segment_id,
|
|
442
|
-
action=action,
|
|
443
|
-
brightness=brightness,
|
|
444
|
-
rgb=wled_rgb,
|
|
445
|
-
transition=transition if transition is not None else 0.0,
|
|
446
|
-
effect=effect,
|
|
447
|
-
palette=palette,
|
|
448
|
-
effect_speed=effect_speed,
|
|
449
|
-
effect_intensity=effect_intensity,
|
|
450
|
-
)
|
|
451
|
-
|
|
452
375
|
# For MQTT devices, use standard control_output
|
|
453
376
|
return await device.control_output(
|
|
454
377
|
output_id=output_id,
|
|
@@ -497,52 +420,20 @@ class RemoteDeviceManager:
|
|
|
497
420
|
**kwargs,
|
|
498
421
|
)
|
|
499
422
|
|
|
500
|
-
|
|
423
|
+
def reload(self, remote_devices_config: list[dict[str, Any]] | None = None) -> None:
|
|
501
424
|
"""Reload remote devices from config.
|
|
502
425
|
|
|
503
|
-
Stops existing ESPHome connections, reconfigures devices,
|
|
504
|
-
and starts new ESPHome connections.
|
|
505
|
-
|
|
506
426
|
Args:
|
|
507
427
|
remote_devices_config: New list of remote device configurations
|
|
508
428
|
"""
|
|
509
429
|
_LOGGER.info("Reloading remote devices configuration")
|
|
510
|
-
|
|
511
|
-
# Stop existing ESPHome connections first
|
|
512
|
-
await self.stop_all_connections()
|
|
513
|
-
|
|
514
430
|
self._devices.clear()
|
|
515
431
|
|
|
516
432
|
if remote_devices_config:
|
|
517
433
|
self._configure_devices(remote_devices_config)
|
|
518
434
|
|
|
519
|
-
# Start ESPHome connections immediately (no delay for reload)
|
|
520
|
-
await self._start_esphome_connections_immediate()
|
|
521
|
-
|
|
522
435
|
_LOGGER.info("Reloaded %d remote devices", len(self._devices))
|
|
523
436
|
|
|
524
|
-
async def _start_esphome_connections_immediate(self) -> None:
|
|
525
|
-
"""Start ESPHome connections immediately without delay.
|
|
526
|
-
|
|
527
|
-
Used during reload when we want connections to start right away.
|
|
528
|
-
"""
|
|
529
|
-
esphome_devices = [
|
|
530
|
-
(device_id, device)
|
|
531
|
-
for device_id, device in self._devices.items()
|
|
532
|
-
if isinstance(device, ESPHomeRemoteDevice)
|
|
533
|
-
]
|
|
534
|
-
|
|
535
|
-
if not esphome_devices:
|
|
536
|
-
return
|
|
537
|
-
|
|
538
|
-
_LOGGER.info("Starting %d ESPHome connection(s)...", len(esphome_devices))
|
|
539
|
-
for device_id, device in esphome_devices:
|
|
540
|
-
try:
|
|
541
|
-
await device.start_connection()
|
|
542
|
-
_LOGGER.info("Started connection for ESPHome device '%s'", device_id)
|
|
543
|
-
except Exception as e:
|
|
544
|
-
_LOGGER.error("Failed to start connection for ESPHome device '%s': %s", device_id, e)
|
|
545
|
-
|
|
546
437
|
def to_dict(self) -> dict[str, Any]:
|
|
547
438
|
"""Convert to dictionary representation.
|
|
548
439
|
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Supports multiple protocols:
|
|
4
4
|
- MQTT: Standard MQTT communication (boneIO Black, ESPHome, etc.)
|
|
5
5
|
- ESPHome API: Native ESPHome API via TCP/IP
|
|
6
|
-
- WLED: WLED HTTP JSON API for LED strips
|
|
7
6
|
- CAN: CAN bus communication (future)
|
|
8
7
|
- Loxone: Loxone Miniserver integration (future)
|
|
9
8
|
"""
|
|
@@ -17,11 +16,6 @@ from boneio.core.remote.esphome import (
|
|
|
17
16
|
ESPHOME_API_AVAILABLE,
|
|
18
17
|
ZEROCONF_AVAILABLE,
|
|
19
18
|
)
|
|
20
|
-
from boneio.core.remote.wled import (
|
|
21
|
-
WLEDRemoteDevice,
|
|
22
|
-
scan_wled_devices,
|
|
23
|
-
discover_wled_info,
|
|
24
|
-
)
|
|
25
19
|
|
|
26
20
|
__all__ = [
|
|
27
21
|
"RemoteDevice",
|
|
@@ -32,7 +26,4 @@ __all__ = [
|
|
|
32
26
|
"scan_esphome_devices",
|
|
33
27
|
"ESPHOME_API_AVAILABLE",
|
|
34
28
|
"ZEROCONF_AVAILABLE",
|
|
35
|
-
"WLEDRemoteDevice",
|
|
36
|
-
"scan_wled_devices",
|
|
37
|
-
"discover_wled_info",
|
|
38
29
|
]
|
|
@@ -25,7 +25,6 @@ class RemoteDeviceProtocol(str, Enum):
|
|
|
25
25
|
LOXONE = "loxone"
|
|
26
26
|
ESPHOME_UDP = "esphome_udp"
|
|
27
27
|
ESPHOME_API = "esphome_api"
|
|
28
|
-
WLED = "wled"
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
class RemoteDeviceType(str, Enum):
|
|
@@ -34,7 +33,6 @@ class RemoteDeviceType(str, Enum):
|
|
|
34
33
|
BONEIO_BLACK = "boneio_black"
|
|
35
34
|
ESPHOME = "esphome"
|
|
36
35
|
LOXONE_MINISERVER = "loxone_miniserver"
|
|
37
|
-
WLED = "wled"
|
|
38
36
|
GENERIC = "generic"
|
|
39
37
|
|
|
40
38
|
|
|
@@ -19,6 +19,7 @@ from boneio.const import (
|
|
|
19
19
|
COVER,
|
|
20
20
|
DOUBLE,
|
|
21
21
|
INPUT,
|
|
22
|
+
INPUT_SENSOR,
|
|
22
23
|
IP,
|
|
23
24
|
LONG,
|
|
24
25
|
NUMERIC,
|
|
@@ -320,7 +321,7 @@ def ha_binary_sensor_availabilty_message(
|
|
|
320
321
|
id: str, name: str, config_helper: ConfigHelper, model: str = "boneIO Relay Board", **kwargs
|
|
321
322
|
):
|
|
322
323
|
"""Create availability topic for HA."""
|
|
323
|
-
msg = ha_availabilty_message(device_type=
|
|
324
|
+
msg = ha_availabilty_message(device_type=INPUT_SENSOR, config_helper=config_helper, id=id, name=name, model=model, entity_type="binary_sensor", **kwargs)
|
|
324
325
|
msg["payload_on"] = "pressed"
|
|
325
326
|
msg["payload_off"] = "released"
|
|
326
327
|
return msg
|
|
@@ -661,47 +662,3 @@ def ha_cover_with_tilt_availabilty_message(
|
|
|
661
662
|
"position_template": '{{ value_json.position }}',
|
|
662
663
|
"tilt_status_template": '{{ value_json.tilt }}',
|
|
663
664
|
}
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
def ha_update_availability_message(
|
|
667
|
-
id: str, name: str, config_helper: ConfigHelper, **kwargs
|
|
668
|
-
) -> HomeAssistantDiscoveryMessage:
|
|
669
|
-
"""Create Update availability topic for HA.
|
|
670
|
-
|
|
671
|
-
Args:
|
|
672
|
-
id: Entity ID
|
|
673
|
-
name: Entity name
|
|
674
|
-
config_helper: ConfigHelper instance
|
|
675
|
-
**kwargs: Additional fields (e.g., device_class, entity_category)
|
|
676
|
-
|
|
677
|
-
Returns:
|
|
678
|
-
HA discovery message for Update entity
|
|
679
|
-
"""
|
|
680
|
-
topic = config_helper.topic_prefix
|
|
681
|
-
|
|
682
|
-
# Default kwargs for Update entity
|
|
683
|
-
default_kwargs = {
|
|
684
|
-
"device_class": "firmware",
|
|
685
|
-
"entity_category": "diagnostic",
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
msg = ha_availabilty_message(
|
|
689
|
-
device_type="update",
|
|
690
|
-
entity_type="update",
|
|
691
|
-
config_helper=config_helper,
|
|
692
|
-
id=id,
|
|
693
|
-
name=name,
|
|
694
|
-
**{**default_kwargs, **kwargs}
|
|
695
|
-
)
|
|
696
|
-
|
|
697
|
-
result = {
|
|
698
|
-
**msg,
|
|
699
|
-
"state_topic": f"{topic}/update/state",
|
|
700
|
-
"command_topic": f"{topic}/update/install",
|
|
701
|
-
"payload_install": "INSTALL",
|
|
702
|
-
"icon": "mdi:update",
|
|
703
|
-
}
|
|
704
|
-
|
|
705
|
-
_LOGGER.debug("Update HA discovery message: %s", result)
|
|
706
|
-
|
|
707
|
-
return result
|
|
@@ -120,7 +120,6 @@ async def async_run(
|
|
|
120
120
|
config_file_path=config_file,
|
|
121
121
|
send_boneio_autodiscovery=mqtt_config.get("send_boneio_autodiscovery", True),
|
|
122
122
|
receive_boneio_autodiscovery=mqtt_config.get("receive_boneio_autodiscovery", True),
|
|
123
|
-
update_channel=mqtt_config.get("update_channel", "stable"),
|
|
124
123
|
)
|
|
125
124
|
|
|
126
125
|
# Load areas configuration
|
|
@@ -201,8 +200,8 @@ async def async_run(
|
|
|
201
200
|
|
|
202
201
|
# Publish discovery after message bus is started
|
|
203
202
|
if isinstance(message_bus, MQTTClient):
|
|
204
|
-
# Wait a bit for MQTT connection to establish
|
|
205
|
-
await asyncio.sleep(
|
|
203
|
+
# Wait a bit for MQTT connection to establish
|
|
204
|
+
await asyncio.sleep(2)
|
|
206
205
|
_LOGGER.info("Publishing device discovery information")
|
|
207
206
|
await manager.publish_discovery()
|
|
208
207
|
|
|
@@ -140,24 +140,6 @@ schema:
|
|
|
140
140
|
description: |
|
|
141
141
|
Brightness level for SET_BRIGHTNESS action or initial brightness for ON action.
|
|
142
142
|
Only used for ESPHome light entities. 0 = off, 255 = full brightness.
|
|
143
|
-
color_temp:
|
|
144
|
-
type: integer
|
|
145
|
-
required: False
|
|
146
|
-
meta:
|
|
147
|
-
label: Color Temperature (mireds)
|
|
148
|
-
description: |
|
|
149
|
-
Color temperature in mireds. Only for ESPHome lights with color temperature support.
|
|
150
|
-
Lower values = cooler (bluer), higher values = warmer (yellower).
|
|
151
|
-
Typical range: 153 (6500K cool) to 500 (2000K warm).
|
|
152
|
-
rgb:
|
|
153
|
-
type: list
|
|
154
|
-
required: False
|
|
155
|
-
meta:
|
|
156
|
-
label: RGB Color [R, G, B]
|
|
157
|
-
description: |
|
|
158
|
-
RGB color as list [red, green, blue], each value 0-255.
|
|
159
|
-
Only for ESPHome lights with RGB support.
|
|
160
|
-
Example: [255, 0, 0] for red, [0, 255, 0] for green, [0, 0, 255] for blue.
|
|
161
143
|
transition:
|
|
162
144
|
type: float
|
|
163
145
|
required: False
|
|
@@ -29,9 +29,9 @@ schema:
|
|
|
29
29
|
protocol:
|
|
30
30
|
type: string
|
|
31
31
|
required: True
|
|
32
|
-
# Supported: mqtt, esphome_api
|
|
32
|
+
# Supported: mqtt, esphome_api
|
|
33
33
|
# Future: 'loxone', 'esphome_udp', 'can'
|
|
34
|
-
allowed: ['mqtt', 'esphome_api'
|
|
34
|
+
allowed: ['mqtt', 'esphome_api']
|
|
35
35
|
meta:
|
|
36
36
|
label: Protocol
|
|
37
37
|
description: |
|
|
@@ -41,7 +41,7 @@ schema:
|
|
|
41
41
|
type: string
|
|
42
42
|
required: False
|
|
43
43
|
default: "boneio_black"
|
|
44
|
-
allowed: ['boneio_black', 'esphome', '
|
|
44
|
+
allowed: ['boneio_black', 'esphome', 'generic']
|
|
45
45
|
meta:
|
|
46
46
|
label: Device Type
|
|
47
47
|
description: |
|
|
@@ -328,109 +328,6 @@ schema:
|
|
|
328
328
|
meta:
|
|
329
329
|
label: Supports Tilt
|
|
330
330
|
|
|
331
|
-
# WLED Protocol Parameters
|
|
332
|
-
wled:
|
|
333
|
-
type: dict
|
|
334
|
-
required: False
|
|
335
|
-
dependencies:
|
|
336
|
-
protocol: ['wled']
|
|
337
|
-
meta:
|
|
338
|
-
label: WLED Settings
|
|
339
|
-
description: |
|
|
340
|
-
WLED HTTP JSON API connection settings.
|
|
341
|
-
Segments can be auto-discovered from the device.
|
|
342
|
-
schema:
|
|
343
|
-
host:
|
|
344
|
-
type: string
|
|
345
|
-
required: True
|
|
346
|
-
meta:
|
|
347
|
-
label: Host
|
|
348
|
-
description: "IP address or hostname of WLED device (e.g. wled-salon.local)"
|
|
349
|
-
port:
|
|
350
|
-
type: integer
|
|
351
|
-
required: False
|
|
352
|
-
default: 80
|
|
353
|
-
meta:
|
|
354
|
-
label: Port
|
|
355
|
-
segments:
|
|
356
|
-
type: list
|
|
357
|
-
required: False
|
|
358
|
-
meta:
|
|
359
|
-
label: Available Segments
|
|
360
|
-
description: "List of LED segments discovered or manually configured"
|
|
361
|
-
schema:
|
|
362
|
-
type: dict
|
|
363
|
-
schema:
|
|
364
|
-
id:
|
|
365
|
-
type: integer
|
|
366
|
-
required: True
|
|
367
|
-
meta:
|
|
368
|
-
label: Segment ID
|
|
369
|
-
name:
|
|
370
|
-
type: string
|
|
371
|
-
required: False
|
|
372
|
-
meta:
|
|
373
|
-
label: Segment Name
|
|
374
|
-
start:
|
|
375
|
-
type: integer
|
|
376
|
-
required: False
|
|
377
|
-
meta:
|
|
378
|
-
label: Start LED
|
|
379
|
-
stop:
|
|
380
|
-
type: integer
|
|
381
|
-
required: False
|
|
382
|
-
meta:
|
|
383
|
-
label: Stop LED
|
|
384
|
-
len:
|
|
385
|
-
type: integer
|
|
386
|
-
required: False
|
|
387
|
-
meta:
|
|
388
|
-
label: LED Count
|
|
389
|
-
supports_rgb:
|
|
390
|
-
type: boolean
|
|
391
|
-
required: False
|
|
392
|
-
default: true
|
|
393
|
-
meta:
|
|
394
|
-
label: Supports RGB Color
|
|
395
|
-
effects:
|
|
396
|
-
type: list
|
|
397
|
-
required: False
|
|
398
|
-
meta:
|
|
399
|
-
label: Available Effects
|
|
400
|
-
description: "List of WLED effects discovered from the device"
|
|
401
|
-
schema:
|
|
402
|
-
type: dict
|
|
403
|
-
schema:
|
|
404
|
-
id:
|
|
405
|
-
type: integer
|
|
406
|
-
required: True
|
|
407
|
-
meta:
|
|
408
|
-
label: Effect ID
|
|
409
|
-
name:
|
|
410
|
-
type: string
|
|
411
|
-
required: True
|
|
412
|
-
meta:
|
|
413
|
-
label: Effect Name
|
|
414
|
-
palettes:
|
|
415
|
-
type: list
|
|
416
|
-
required: False
|
|
417
|
-
meta:
|
|
418
|
-
label: Available Palettes
|
|
419
|
-
description: "List of WLED color palettes discovered from the device"
|
|
420
|
-
schema:
|
|
421
|
-
type: dict
|
|
422
|
-
schema:
|
|
423
|
-
id:
|
|
424
|
-
type: integer
|
|
425
|
-
required: True
|
|
426
|
-
meta:
|
|
427
|
-
label: Palette ID
|
|
428
|
-
name:
|
|
429
|
-
type: string
|
|
430
|
-
required: True
|
|
431
|
-
meta:
|
|
432
|
-
label: Palette Name
|
|
433
|
-
|
|
434
331
|
# # Loxone Parameters (future)
|
|
435
332
|
# loxone:
|
|
436
333
|
# type: dict
|
|
@@ -87,18 +87,6 @@ mqtt:
|
|
|
87
87
|
description: |
|
|
88
88
|
When enabled, this device subscribes to BoneIO autodiscovery topics
|
|
89
89
|
(boneio/+/discovery/#) and automatically discovers neighboring BoneIO devices.
|
|
90
|
-
update_channel:
|
|
91
|
-
type: string
|
|
92
|
-
default: stable
|
|
93
|
-
allowed:
|
|
94
|
-
- stable
|
|
95
|
-
- dev
|
|
96
|
-
meta:
|
|
97
|
-
label: Update channel
|
|
98
|
-
description: |
|
|
99
|
-
Which releases to show in Home Assistant Update entity:
|
|
100
|
-
- stable: Only stable releases (recommended)
|
|
101
|
-
- dev: Include development/pre-release versions
|
|
102
90
|
|
|
103
91
|
web:
|
|
104
92
|
type: dict
|
|
@@ -314,9 +302,6 @@ modbus_devices:
|
|
|
314
302
|
'orno-or-we-517',
|
|
315
303
|
'pt100',
|
|
316
304
|
'fujitsu-ac',
|
|
317
|
-
'le-03mw',
|
|
318
|
-
'le-03mwct',
|
|
319
|
-
'n4dsc08',
|
|
320
305
|
'r4dcb08',
|
|
321
306
|
'sdm120',
|
|
322
307
|
'sdm630',
|