boneIO 0.9.4__tar.gz → 0.9.4.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-0.9.4 → boneio-0.9.4.dev2}/PKG-INFO +1 -1
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/config.yaml +1 -1
- boneio-0.9.4.dev2/boneio/helper/queue.py +32 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/manager.py +2 -6
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/mqtt_client.py +15 -14
- boneio-0.9.4.dev2/boneio/version.py +2 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/pyproject.toml +1 -1
- boneio-0.9.4/boneio/example_config/all_binary_sensor.yaml +0 -106
- boneio-0.9.4/boneio/helper/queue.py +0 -58
- boneio-0.9.4/boneio/version.py +0 -2
- {boneio-0.9.4 → boneio-0.9.4.dev2}/LICENSE +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/README.md +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/boards/0.7/input.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/boards/0.7/output_32_10.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/boards/0.8/cover.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/boards/0.8/cover_mix.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/boards/0.8/input.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/boards/0.8/output_32_10.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/bonecli.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/const.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/cover.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/adc.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/binary_sensor.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/binary_sensor_v_0_7.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/cover.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/event.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/event_all.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/event_v_0_7.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/led32x4A.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/output24x16A.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/output24x16A_v0.3.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/output32x10A.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/output32x10A_new.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/example_config/output32x5A.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/fonts/danube__.ttf +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/group/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/group/output.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/async_updater.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/click_timer.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/config.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/events.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/exceptions.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/filter.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/gpio.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/gpiod.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/ha_discovery.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/loader.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/logger.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/message_bus.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/mqtt.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/oled.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/onewire/W1ThermSensor.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/onewire/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/onewire/ds2482.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/onewire/onewire.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/pcf8575.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/schema_converter.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/sensor/ina_219_smbus.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/state_manager.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/stats.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/timeperiod.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/util.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/helper/yaml_util.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/input/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/input/gpio.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/input/gpio_new.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/client.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/cwt.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/dts1964_3f.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/liquid-sensor.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/modbuscli.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/orno-or-we-517.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/pt100.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/r4dcb08.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/sdm120.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/sdm630.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/sensor.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/sht20.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/sht30.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/single_sensor.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/socomec_e03.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/socomec_e23.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/sofar.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/modbus/utils.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/models/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/models/files.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/models/logs.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/oled.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/relay/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/relay/basic.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/relay/gpio.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/relay/mcp.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/relay/pca.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/relay/pcf.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/runner.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/schema/actions.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/schema/actions_sensor.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/schema/actions_switch.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/schema/filters.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/schema/filters_adc.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/schema/id.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/schema/schema.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/schema/temp_unit.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/schema/update_interval.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/adc.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/gpio.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/gpio_new.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/ina219.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/serial_number.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/temp/__init__.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/temp/dallas.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/temp/lm75.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/sensor/temp/mcp9808.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/app.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/abap-BrgZPUOV.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/apex-DyP6w7ZV.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/azcli-BaLxmfj-.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/bat-CFOPXBzS.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/bicep-BfEKNvv3.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/cameligo-BFG1Mk7z.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/clojure-DTECt2xU.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/codicon-DCmgc-ay.ttf +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/coffee-CDGzqUPQ.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/cpp-CLLBncYj.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/csharp-dUCx_-0o.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/csp-5Rap-vPy.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/css-D3h14YRZ.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/cssMode-CtnT2jQE.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/cypher-DrQuvNYM.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/dart-CFKIUWau.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/dockerfile-Zznr-cwX.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/ecl-Ce3n6wWz.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/editor.worker-D5ngByhL.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/elixir-deUWdS0T.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/flow9-i9-g7ZhI.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/freemarker2-DGuhXH41.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/fsharp-CzKuDChf.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/go-Cphgjts3.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/graphql-Cg7bfA9N.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/handlebars-DB9ioYEj.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/hcl-0cvrggvQ.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/html-B1N3G2t2.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/htmlMode-Bu4tsIzC.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/index-BLdVcyHp.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/index-CCgG6NMg.css +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/ini-Drc7WvVn.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/java-B_fMsGYe.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/javascript-Bc9neA1Z.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/json.worker-F0ZGA5Zk.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/jsonMode-CKQTb-28.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/julia-Bqgm2twL.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/kotlin-BSkB5QuD.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/less-BsTHnhdd.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/lexon-YWi4-JPR.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/liquid-CTaX0gqb.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/lua-nf6ki56Z.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/m3-Cpb6xl2v.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/markdown-DSZPf7rp.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/mdx-5o2ITl9M.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/mips-B_c3zf-v.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/msdax-rUNN04Wq.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/mysql-DDwshQtU.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/objective-c-B5zXfXm9.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/pascal-CXOwvkN_.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/pascaligo-Bc-ZgV77.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/perl-CwNk8-XU.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/pgsql-tGk8EFnU.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/php-CpIb_Oan.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/pla-B03wrqEc.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/postiats-BKlk5iyT.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/powerquery-Bhzvs7bI.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/powershell-Dd3NCNK9.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/protobuf-COyEY5Pt.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/pug-BaJupSGV.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/python-Db8FWkCf.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/qsharp-DXyYeYxl.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/r-CdQndTaG.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/razor-CLTS28q7.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/redis-CVwtpugi.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/redshift-25W9uPmb.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/restructuredtext-DfzH4Xui.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/ruby-Cp1zYvxS.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/rust-D5C2fndG.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/sb-CDntyWJ8.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/scala-BoFRg7Ot.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/scheme-Bio4gycK.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/scss-4Ik7cdeQ.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/shell-CX-rkNHf.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/solidity-Tw7wswEv.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/sophia-C5WLch3f.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/sparql-DHaeiCBh.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/sql-CCSDG5nI.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/st-pnP8ivHi.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/swift-DwJ7jVG9.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/systemverilog-B9Xyijhd.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/tcl-DnHyzjbg.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/tsMode-CrhZjPZD.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/twig-CPajHgWi.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/typescript-BEFA7MWI.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/typespec-D-MeaMDU.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/vb-DgyLZaXg.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/wgsl-BIv9DU6q.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/xml-z_iSgMVJ.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/yaml-3ScDl3Sa.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/assets/yaml.worker-C2uymlqn.js +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/boneio.svg +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/frontend-dist/index.html +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/adc.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/binary_sensor.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/boneio.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/config.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/cover.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/dallas.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/ds2482.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/event.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/ina219.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/lm75.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/logger.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/mcp23017.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/mcp9808.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/modbus.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/modbus_sensors.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/mqtt.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/oled.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/output.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/output_group.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/pca9685.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/pcf8575.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/sensor.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/schema/web.schema.json +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/web_server.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/boneio/webui/websocket_manager.py +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/tests/32_5_config.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/tests/bandit.yaml +0 -0
- {boneio-0.9.4 → boneio-0.9.4.dev2}/tests/relay_32_5.py +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Special unique implementation of asyncio.Queue for boneIO.
|
|
3
|
+
If MQTT is down then regular queue can append multiple ON/OFF for same topic.
|
|
4
|
+
After re-connection it would send all messages. It's not necessary, last payload of same topic is enough.
|
|
5
|
+
"""
|
|
6
|
+
import asyncio
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class UniqueQueue(asyncio.Queue):
|
|
10
|
+
"""Unique implementation of asyncio.Queue."""
|
|
11
|
+
|
|
12
|
+
def _init(self, maxsize):
|
|
13
|
+
"""Create unique dict of tuple[0]."""
|
|
14
|
+
super()._init(maxsize=maxsize)
|
|
15
|
+
self._unique_set = {}
|
|
16
|
+
|
|
17
|
+
def _put(self, item):
|
|
18
|
+
"""If item does not exists add it.
|
|
19
|
+
If exists remove old one and put new one in the beginning of the queue."""
|
|
20
|
+
if item[0] not in self._unique_set:
|
|
21
|
+
super()._put(item)
|
|
22
|
+
self._unique_set[item[0]] = item
|
|
23
|
+
else:
|
|
24
|
+
self._queue.remove(self._unique_set[item[0]])
|
|
25
|
+
super()._put(item)
|
|
26
|
+
self._unique_set[item[0]] = item
|
|
27
|
+
|
|
28
|
+
def _get(self):
|
|
29
|
+
"""Get item and remove it."""
|
|
30
|
+
item = super()._get()
|
|
31
|
+
del self._unique_set[item[0]]
|
|
32
|
+
return item
|
|
@@ -778,17 +778,13 @@ class Manager:
|
|
|
778
778
|
"""Callback for receiving action from Mqtt."""
|
|
779
779
|
_LOGGER.debug("Processing topic %s with message %s.", topic, message)
|
|
780
780
|
if topic.startswith(
|
|
781
|
-
f"{self._config_helper.
|
|
781
|
+
f"{self._config_helper.topic_prefix}/status"
|
|
782
782
|
):
|
|
783
783
|
if message == ONLINE:
|
|
784
784
|
self.resend_autodiscovery()
|
|
785
785
|
self._event_bus.signal_ha_online()
|
|
786
786
|
return
|
|
787
|
-
|
|
788
|
-
assert topic.startswith(self._config_helper.cmd_topic_prefix)
|
|
789
|
-
except AssertionError as err:
|
|
790
|
-
_LOGGER.error("Wrong topic %s. Error %s", topic, err)
|
|
791
|
-
return
|
|
787
|
+
assert topic.startswith(self._config_helper.cmd_topic_prefix)
|
|
792
788
|
topic_parts_raw = topic[
|
|
793
789
|
len(self._config_helper.cmd_topic_prefix) :
|
|
794
790
|
].split("/")
|
|
@@ -19,10 +19,10 @@ from paho.mqtt.properties import Properties
|
|
|
19
19
|
from paho.mqtt.subscribeoptions import SubscribeOptions
|
|
20
20
|
|
|
21
21
|
from boneio.const import OFFLINE, PAHO, STATE
|
|
22
|
+
from boneio.helper import UniqueQueue
|
|
22
23
|
from boneio.helper.config import ConfigHelper
|
|
23
24
|
from boneio.helper.events import GracefulExit
|
|
24
25
|
from boneio.helper.message_bus import MessageBus
|
|
25
|
-
from boneio.helper.queue import UniqueQueue
|
|
26
26
|
from boneio.manager import Manager
|
|
27
27
|
|
|
28
28
|
_LOGGER = logging.getLogger(__name__)
|
|
@@ -174,7 +174,7 @@ class MQTTClient(MessageBus):
|
|
|
174
174
|
await self._subscribe_manager(self._manager)
|
|
175
175
|
except MqttError as err:
|
|
176
176
|
self.reconnect_interval = min(
|
|
177
|
-
self.reconnect_interval * 2,
|
|
177
|
+
self.reconnect_interval * 2, 600
|
|
178
178
|
)
|
|
179
179
|
_LOGGER.error(
|
|
180
180
|
"MQTT error: %s. Reconnecting in %s seconds",
|
|
@@ -182,7 +182,6 @@ class MQTTClient(MessageBus):
|
|
|
182
182
|
self.reconnect_interval,
|
|
183
183
|
)
|
|
184
184
|
self._connection_established = False
|
|
185
|
-
self.publish_queue.set_connected(False)
|
|
186
185
|
await asyncio.sleep(self.reconnect_interval)
|
|
187
186
|
self.create_client() # reset connect/reconnect futures
|
|
188
187
|
except (asyncio.CancelledError, GracefulExit):
|
|
@@ -195,20 +194,22 @@ class MQTTClient(MessageBus):
|
|
|
195
194
|
|
|
196
195
|
async def _subscribe_manager(self, manager: Manager) -> None:
|
|
197
196
|
"""Connect and subscribe to manager topics + host stats."""
|
|
197
|
+
# Create a new future for this run
|
|
198
|
+
self._cancel_future = asyncio.Future()
|
|
199
|
+
|
|
200
|
+
async def wait_for_cancel():
|
|
201
|
+
await self._cancel_future
|
|
202
|
+
# When future completes, raise CancelledError to stop other tasks
|
|
203
|
+
raise asyncio.CancelledError("Stop requested")
|
|
204
|
+
|
|
198
205
|
async with AsyncExitStack() as stack:
|
|
199
|
-
await stack.enter_async_context(self.asyncio_client)
|
|
200
|
-
self._connection_established = True
|
|
201
|
-
self.publish_queue.set_connected(True)
|
|
202
|
-
# Create a new future for this run
|
|
203
|
-
self._cancel_future = asyncio.Future()
|
|
204
|
-
|
|
205
|
-
async def wait_for_cancel():
|
|
206
|
-
await self._cancel_future
|
|
207
|
-
# When future completes, raise CancelledError to stop other tasks
|
|
208
|
-
raise asyncio.CancelledError("Stop requested")
|
|
209
|
-
|
|
210
206
|
tasks: Set[asyncio.Task] = set()
|
|
211
207
|
|
|
208
|
+
# Connect to the MQTT broker.
|
|
209
|
+
await stack.enter_async_context(self.asyncio_client)
|
|
210
|
+
# Reset the reconnect interval after successful connection.
|
|
211
|
+
self.reconnect_interval = 1
|
|
212
|
+
|
|
212
213
|
publish_task = asyncio.create_task(self._handle_publish())
|
|
213
214
|
tasks.add(publish_task)
|
|
214
215
|
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
- id: IN_01
|
|
2
|
-
boneio_input: IN_01
|
|
3
|
-
actions:
|
|
4
|
-
pressed:
|
|
5
|
-
- action: output
|
|
6
|
-
pin: OUT_01
|
|
7
|
-
- id: IN_02
|
|
8
|
-
boneio_input: IN_02
|
|
9
|
-
actions:
|
|
10
|
-
pressed:
|
|
11
|
-
- action: output
|
|
12
|
-
pin: OUT_02
|
|
13
|
-
# - id: IN_03
|
|
14
|
-
# boneio_input: IN_03
|
|
15
|
-
# - id: IN_04
|
|
16
|
-
# boneio_input: IN_04
|
|
17
|
-
# - id: IN_05
|
|
18
|
-
# boneio_input: IN_05
|
|
19
|
-
# - id: IN_06
|
|
20
|
-
# boneio_input: IN_06
|
|
21
|
-
# - id: IN_07
|
|
22
|
-
# boneio_input: IN_07
|
|
23
|
-
# - id: IN_08
|
|
24
|
-
# boneio_input: IN_08
|
|
25
|
-
# - id: IN_09
|
|
26
|
-
# boneio_input: IN_09
|
|
27
|
-
# - id: IN_10
|
|
28
|
-
# boneio_input: IN_10
|
|
29
|
-
# - id: IN_11
|
|
30
|
-
# boneio_input: IN_11
|
|
31
|
-
# - id: IN_12
|
|
32
|
-
# boneio_input: IN_12
|
|
33
|
-
# - id: IN_13
|
|
34
|
-
# boneio_input: IN_13
|
|
35
|
-
# - id: IN_14
|
|
36
|
-
# boneio_input: IN_14
|
|
37
|
-
# - id: IN_15
|
|
38
|
-
# boneio_input: IN_15
|
|
39
|
-
# - id: IN_16
|
|
40
|
-
# boneio_input: IN_16
|
|
41
|
-
# - id: IN_17
|
|
42
|
-
# boneio_input: IN_17
|
|
43
|
-
# - id: IN_18
|
|
44
|
-
# boneio_input: IN_18
|
|
45
|
-
# - id: IN_19
|
|
46
|
-
# boneio_input: IN_19
|
|
47
|
-
# - id: IN_20
|
|
48
|
-
# boneio_input: IN_20
|
|
49
|
-
# - id: IN_21
|
|
50
|
-
# boneio_input: IN_21
|
|
51
|
-
# - id: IN_22
|
|
52
|
-
# boneio_input: IN_22
|
|
53
|
-
# - id: IN_23
|
|
54
|
-
# boneio_input: IN_23
|
|
55
|
-
# - id: IN_24
|
|
56
|
-
# boneio_input: IN_24
|
|
57
|
-
# - id: IN_25
|
|
58
|
-
# boneio_input: IN_25
|
|
59
|
-
# - id: IN_26
|
|
60
|
-
# boneio_input: IN_26
|
|
61
|
-
# - id: IN_27
|
|
62
|
-
# boneio_input: IN_27
|
|
63
|
-
# - id: IN_28
|
|
64
|
-
# boneio_input: IN_28
|
|
65
|
-
# - id: IN_29
|
|
66
|
-
# boneio_input: IN_29
|
|
67
|
-
# - id: IN_30
|
|
68
|
-
# boneio_input: IN_30
|
|
69
|
-
# - id: IN_31
|
|
70
|
-
# boneio_input: IN_31
|
|
71
|
-
# - id: IN_32
|
|
72
|
-
# boneio_input: IN_32
|
|
73
|
-
# - id: IN_33
|
|
74
|
-
# boneio_input: IN_33
|
|
75
|
-
# - id: IN_34
|
|
76
|
-
# boneio_input: IN_34
|
|
77
|
-
# - id: IN_35
|
|
78
|
-
# boneio_input: IN_35
|
|
79
|
-
# - id: IN_36
|
|
80
|
-
# boneio_input: IN_36
|
|
81
|
-
# - id: IN_37
|
|
82
|
-
# boneio_input: IN_37
|
|
83
|
-
# - id: IN_38
|
|
84
|
-
# boneio_input: IN_38
|
|
85
|
-
# - id: IN_39
|
|
86
|
-
# boneio_input: IN_39
|
|
87
|
-
# - id: IN_40
|
|
88
|
-
# boneio_input: IN_40
|
|
89
|
-
# - id: IN_41
|
|
90
|
-
# boneio_input: IN_41
|
|
91
|
-
# - id: IN_42
|
|
92
|
-
# boneio_input: IN_42
|
|
93
|
-
# - id: IN_43
|
|
94
|
-
# boneio_input: IN_43
|
|
95
|
-
# - id: IN_44
|
|
96
|
-
# boneio_input: IN_44
|
|
97
|
-
# - id: IN_45
|
|
98
|
-
# boneio_input: IN_45
|
|
99
|
-
# - id: IN_46
|
|
100
|
-
# boneio_input: IN_46
|
|
101
|
-
# - id: IN_47
|
|
102
|
-
# boneio_input: IN_47
|
|
103
|
-
# - id: IN_48
|
|
104
|
-
# boneio_input: IN_48
|
|
105
|
-
# - id: IN_49
|
|
106
|
-
# boneio_input: IN_49
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Special unique implementation of asyncio.Queue for boneIO.
|
|
3
|
-
If MQTT is down then regular queue can append multiple ON/OFF for same topic.
|
|
4
|
-
After re-connection it would send all messages. It's not necessary, last payload of same topic is enough.
|
|
5
|
-
"""
|
|
6
|
-
import asyncio
|
|
7
|
-
from typing import Any, Dict, Tuple
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class UniqueQueue(asyncio.Queue):
|
|
11
|
-
"""Unique implementation of asyncio.Queue that handles MQTT connection state."""
|
|
12
|
-
|
|
13
|
-
def __init__(self, maxsize: int = 0):
|
|
14
|
-
"""Initialize the queue."""
|
|
15
|
-
super().__init__(maxsize=maxsize)
|
|
16
|
-
self._unique_items: Dict[str, Tuple[Any, ...]] = {}
|
|
17
|
-
self._is_connected = False
|
|
18
|
-
|
|
19
|
-
def set_connected(self, state: bool) -> None:
|
|
20
|
-
"""Set the connection state."""
|
|
21
|
-
self._is_connected = state
|
|
22
|
-
|
|
23
|
-
def _init(self, maxsize: int) -> None:
|
|
24
|
-
"""Initialize the internal queue storage."""
|
|
25
|
-
super()._init(maxsize=maxsize)
|
|
26
|
-
self._unique_items = {}
|
|
27
|
-
|
|
28
|
-
def _put(self, item: Tuple[str, Any, bool]) -> None:
|
|
29
|
-
"""Put an item into the queue.
|
|
30
|
-
|
|
31
|
-
If MQTT is not connected:
|
|
32
|
-
- If topic exists, replace the old message
|
|
33
|
-
- If topic doesn't exist, add new message
|
|
34
|
-
If MQTT is connected:
|
|
35
|
-
- Add all messages to queue
|
|
36
|
-
|
|
37
|
-
Args:
|
|
38
|
-
item: Tuple of (topic, payload, retain)
|
|
39
|
-
"""
|
|
40
|
-
topic = item[0]
|
|
41
|
-
|
|
42
|
-
if not self._is_connected:
|
|
43
|
-
# When disconnected, replace existing messages for same topic
|
|
44
|
-
if topic in self._unique_items:
|
|
45
|
-
self._queue.remove(self._unique_items[topic])
|
|
46
|
-
super()._put(item)
|
|
47
|
-
self._unique_items[topic] = item
|
|
48
|
-
else:
|
|
49
|
-
# When connected, queue all messages
|
|
50
|
-
super()._put(item)
|
|
51
|
-
self._unique_items[topic] = item
|
|
52
|
-
|
|
53
|
-
def _get(self) -> Tuple[str, Any, bool]:
|
|
54
|
-
"""Get an item from the queue and remove it from unique items tracking."""
|
|
55
|
-
item = super()._get()
|
|
56
|
-
if item[0] in self._unique_items:
|
|
57
|
-
del self._unique_items[item[0]]
|
|
58
|
-
return item
|
boneio-0.9.4/boneio/version.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|