boneio 1.2.0.dev26__tar.gz → 1.3.0__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.
Files changed (536) hide show
  1. {boneio-1.2.0.dev26/boneio.egg-info → boneio-1.3.0}/PKG-INFO +2 -1
  2. boneio-1.3.0/boneio/boards/0.7/output_48_4.yaml +250 -0
  3. boneio-1.3.0/boneio/boards/0.8/output_48_4.yaml +250 -0
  4. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/bonecli.py +82 -17
  5. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/cover/cover.py +33 -17
  6. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/cover/time_based.py +23 -8
  7. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/group/output_group.py +5 -0
  8. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/input/binary_sensor.py +1 -2
  9. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/input/detectors.py +54 -8
  10. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/input/event.py +16 -2
  11. boneio-1.3.0/boneio/components/irrigation/__init__.py +6 -0
  12. boneio-1.3.0/boneio/components/irrigation/controller.py +899 -0
  13. boneio-1.3.0/boneio/components/irrigation/water_source.py +64 -0
  14. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/output/basic.py +99 -9
  15. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/sensor/virtual_energy.py +101 -80
  16. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/template/alarm_panel.py +7 -7
  17. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/template/gate_cover.py +10 -10
  18. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/template/thermostat.py +6 -6
  19. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/const.py +7 -0
  20. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/cloud/registration.py +46 -36
  21. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/config/config_helper.py +39 -9
  22. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/config/migrations/__init__.py +16 -5
  23. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/config/migrations/v1_proxy_port.py +1 -1
  24. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/config/migrations/v2_transition.py +1 -1
  25. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/config/schema_converter.py +2 -4
  26. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/config/yaml_util.py +498 -245
  27. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/discovery.py +99 -71
  28. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/events/bus.py +1 -1
  29. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/__init__.py +2 -0
  30. boneio-1.3.0/boneio/core/manager/action_conditions.py +351 -0
  31. boneio-1.3.0/boneio/core/manager/canopen.py +705 -0
  32. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/covers.py +144 -96
  33. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/display.py +87 -4
  34. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/inputs.py +183 -189
  35. boneio-1.3.0/boneio/core/manager/irrigation.py +582 -0
  36. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/manager.py +543 -208
  37. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/modbus.py +5 -4
  38. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/outputs.py +90 -9
  39. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/remote.py +259 -266
  40. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/sensors.py +426 -232
  41. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/templates/__init__.py +2 -2
  42. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/templates/alarm.py +3 -3
  43. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/templates/gate_cover.py +2 -2
  44. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/templates/thermostat.py +2 -2
  45. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/templates.py +4 -4
  46. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/manager/update.py +313 -204
  47. boneio-1.3.0/boneio/core/messaging/__init__.py +21 -0
  48. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/messaging/basic.py +2 -2
  49. boneio-1.3.0/boneio/core/messaging/composite.py +85 -0
  50. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/messaging/local.py +2 -2
  51. boneio-1.3.0/boneio/core/messaging/lox.py +221 -0
  52. boneio-1.3.0/boneio/core/messaging/loxone.py +181 -0
  53. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/messaging/mqtt.py +22 -7
  54. boneio-1.3.0/boneio/core/remote/__init__.py +9 -0
  55. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/remote/base.py +21 -8
  56. boneio-1.3.0/boneio/core/remote/can.py +196 -0
  57. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/remote/esphome.py +7 -7
  58. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/remote/mqtt.py +14 -2
  59. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/remote/wled.py +2 -2
  60. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/state/manager.py +17 -10
  61. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/system/host_data.py +18 -1
  62. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/utils/async_updater.py +3 -3
  63. boneio-1.3.0/boneio/core/utils/conditions.py +310 -0
  64. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/utils/filter.py +1 -0
  65. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/utils/util.py +2 -2
  66. boneio-1.3.0/boneio/example_config/48x4/binary_sensor.yaml +17 -0
  67. boneio-1.3.0/boneio/example_config/48x4/config.yaml +41 -0
  68. boneio-1.3.0/boneio/example_config/48x4/event.yaml +300 -0
  69. boneio-1.3.0/boneio/example_config/48x4/output48x4A.yaml +192 -0
  70. boneio-1.3.0/boneio/example_config/can_master.yaml +75 -0
  71. boneio-1.3.0/boneio/example_config/can_slave.yaml +47 -0
  72. boneio-1.3.0/boneio/example_config/cover_mix/mqtt.yaml +6 -0
  73. boneio-1.3.0/boneio/example_config/different_configs/adc.yaml +14 -0
  74. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/analog/adc.py +29 -4
  75. boneio-1.3.0/boneio/hardware/can/__init__.py +9 -0
  76. boneio-1.3.0/boneio/hardware/can/bridge.py +159 -0
  77. boneio-1.3.0/boneio/hardware/can/client.py +483 -0
  78. boneio-1.3.0/boneio/hardware/can/interface.py +204 -0
  79. boneio-1.3.0/boneio/hardware/can/node.py +225 -0
  80. boneio-1.3.0/boneio/hardware/can/node_id.py +144 -0
  81. boneio-1.3.0/boneio/hardware/can/sudoers.py +199 -0
  82. boneio-1.3.0/boneio/hardware/can/test_od.py +15 -0
  83. boneio-1.3.0/boneio/hardware/display/__init__.py +33 -0
  84. boneio-1.3.0/boneio/hardware/display/early_oled.py +238 -0
  85. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/display/oled.py +95 -95
  86. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/gpio/input/base.py +12 -1
  87. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/gpio/input/manager.py +11 -11
  88. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/i2c/bus.py +5 -5
  89. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/onewire/__init__.py +1 -1
  90. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/integration/homeassistant.py +327 -8
  91. boneio-1.3.0/boneio/integration/lox_template.py +243 -0
  92. boneio-1.3.0/boneio/migrations/__init__.py +10 -0
  93. boneio-1.3.0/boneio/migrations/actions.py +230 -0
  94. boneio-1.3.0/boneio/migrations/assets/MANIFEST.sha256 +15 -0
  95. boneio-1.3.0/boneio/migrations/assets/docker/daemon.json +7 -0
  96. boneio-1.3.0/boneio/migrations/assets/docker/nodered/docker-compose.yaml +30 -0
  97. boneio-1.3.0/boneio/migrations/assets/docker/nodered/nginx/default.conf +50 -0
  98. boneio-1.3.0/boneio/migrations/assets/docker/nodered/node-red/settings.js +5 -0
  99. boneio-1.3.0/boneio/migrations/assets/journald/journald.conf +6 -0
  100. boneio-1.3.0/boneio/migrations/assets/mosquitto/boneio.conf +2 -0
  101. boneio-1.3.0/boneio/migrations/assets/sudoers/boneio +15 -0
  102. boneio-1.3.0/boneio/migrations/assets/systemd/boneio-oled-boot.service +17 -0
  103. boneio-1.3.0/boneio/migrations/assets/systemd/boneio.service +15 -0
  104. boneio-1.3.0/boneio/migrations/assets/systemd/set-hostname-once.service +12 -0
  105. boneio-1.3.0/boneio/migrations/assets/usr-local-bin/set-hostname-once.sh +10 -0
  106. boneio-1.3.0/boneio/migrations/assets/usr-sbin/oled_boot_splash.py +257 -0
  107. boneio-1.3.0/boneio/migrations/assets/usr-sbin/oled_boot_splash.sh +18 -0
  108. boneio-1.3.0/boneio/migrations/assets/usr-sbin/oled_msg.py +110 -0
  109. boneio-1.3.0/boneio/migrations/assets/usr-sbin/oled_msg.sh +17 -0
  110. boneio-1.3.0/boneio/migrations/bootstrap/boneio-migrate +389 -0
  111. boneio-1.3.0/boneio/migrations/bootstrap/install-helper.sh +43 -0
  112. boneio-1.3.0/boneio/migrations/bootstrap/sudoers-migrate +2 -0
  113. boneio-1.3.0/boneio/migrations/runner.py +489 -0
  114. boneio-1.3.0/boneio/migrations/versions/__init__.py +1 -0
  115. boneio-1.3.0/boneio/migrations/versions/v1_3_0_baseline.py +173 -0
  116. boneio-1.3.0/boneio/migrations/versions/v1_3_1_fix_oled_boot.py +75 -0
  117. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/cli.py +2 -1
  118. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/client.py +116 -2
  119. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/coordinator.py +137 -8
  120. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/energy_meters/socomec_e03.json +6 -6
  121. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/energy_meters/socomec_e23.json +11 -11
  122. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/inverters/sofar.json +14 -14
  123. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/inverters/thessla.json +13 -1
  124. boneio-1.3.0/boneio/modbus/devices/other/esp32_relay_x4_modbus.json +172 -0
  125. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/other/n4dsc08.json +24 -0
  126. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/other/r4dcb08.json +8 -8
  127. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/other/wanas415.json +27 -0
  128. boneio-1.3.0/boneio/modbus/devices/sensors/boneio-edge-temp.json +148 -0
  129. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/sensors/cwt.json +2 -2
  130. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +1 -1
  131. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/sensors/liquid-sensor.json +1 -1
  132. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/sensors/pt100.json +1 -1
  133. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/sensors/sht20.json +2 -2
  134. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/sensors/sht30.json +2 -2
  135. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/base.py +47 -5
  136. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/derived/numeric.py +5 -4
  137. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/derived/select.py +22 -4
  138. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/derived/switch.py +19 -3
  139. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/derived/text.py +4 -2
  140. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/sensor/binary.py +1 -2
  141. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/sensor/numeric.py +6 -4
  142. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/sensor/text.py +8 -7
  143. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/writeable/binary.py +1 -1
  144. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/writeable/numeric.py +10 -3
  145. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/utils.py +0 -1
  146. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/models/__init__.py +3 -1
  147. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/models/actions.py +1 -0
  148. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/models/events.py +17 -1
  149. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/models/state.py +7 -0
  150. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/runner.py +198 -83
  151. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/actions.yaml +27 -0
  152. boneio-1.3.0/boneio/schema/condition.yaml +75 -0
  153. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/remote_devices.yaml +8 -8
  154. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/schema.yaml +592 -13
  155. boneio-1.3.0/boneio/version.py +2 -0
  156. boneio-1.3.0/boneio/webui/action_validation.py +205 -0
  157. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/app.py +182 -67
  158. boneio-1.3.0/boneio/webui/frontend-dist/assets/ConfigEditor-CHKSC9tj.js +1 -0
  159. boneio-1.3.0/boneio/webui/frontend-dist/assets/aiConfig-LL3nlemJ.js +2 -0
  160. boneio-1.3.0/boneio/webui/frontend-dist/assets/aiWizardPrompt-CmumVq54.js +2 -0
  161. boneio-1.3.0/boneio/webui/frontend-dist/assets/editor.worker-BVjSvWeP.js +12 -0
  162. boneio-1.3.0/boneio/webui/frontend-dist/assets/index-C_S5rhz7.css +2 -0
  163. boneio-1.3.0/boneio/webui/frontend-dist/assets/index-DSf-Ci6g.js +44 -0
  164. boneio-1.3.0/boneio/webui/frontend-dist/assets/json.worker-CqOJL4FD.js +51 -0
  165. boneio-1.3.0/boneio/webui/frontend-dist/assets/monaco-B9WiNxkw.css +1 -0
  166. boneio-1.3.0/boneio/webui/frontend-dist/assets/monaco-CAZoGZNF.js +1047 -0
  167. boneio-1.3.0/boneio/webui/frontend-dist/assets/rolldown-runtime-Dw2cE7zH.js +1 -0
  168. boneio-1.3.0/boneio/webui/frontend-dist/assets/useTranslation-C7rZEcwj.js +13 -0
  169. boneio-1.3.0/boneio/webui/frontend-dist/assets/vendor-BD5Ml_Uz.js +55 -0
  170. boneio-1.3.0/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-BJd1pjeW.js +2 -0
  171. boneio-1.3.0/boneio/webui/frontend-dist/assets/yaml.worker-nZQZSRZ7.js +375 -0
  172. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/index.html +8 -2
  173. {boneio-1.2.0.dev26/boneio/webui → boneio-1.3.0/boneio/webui/frontend-dist}/schema/adc.schema.json +11 -1
  174. {boneio-1.2.0.dev26/boneio/webui → boneio-1.3.0/boneio/webui/frontend-dist}/schema/binary_sensor.schema.json +332 -0
  175. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/boneio.schema.json +42 -0
  176. boneio-1.3.0/boneio/webui/frontend-dist/schema/can.schema.json +132 -0
  177. {boneio-1.2.0.dev26/boneio/webui → boneio-1.3.0/boneio/webui/frontend-dist}/schema/config.schema.json +2555 -86
  178. {boneio-1.2.0.dev26/boneio/webui → boneio-1.3.0/boneio/webui/frontend-dist}/schema/event.schema.json +1172 -0
  179. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/ina219.schema.json +3 -3
  180. boneio-1.3.0/boneio/webui/frontend-dist/schema/irrigation.schema.json +352 -0
  181. boneio-1.3.0/boneio/webui/frontend-dist/schema/lox_udp.schema.json +64 -0
  182. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +11 -0
  183. {boneio-1.2.0.dev26/boneio/webui → boneio-1.3.0/boneio/webui/frontend-dist}/schema/mqtt.schema.json +22 -0
  184. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/output.schema.json +62 -0
  185. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/template.schema.json +299 -11
  186. boneio-1.3.0/boneio/webui/frontend-dist/sw.js +1 -0
  187. boneio-1.3.0/boneio/webui/frontend-dist/workbox-4eca85ba.js +1 -0
  188. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/middleware/auth.py +3 -3
  189. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/__init__.py +7 -1
  190. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/caddy.py +14 -14
  191. boneio-1.3.0/boneio/webui/routes/can.py +536 -0
  192. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/config.py +584 -267
  193. boneio-1.3.0/boneio/webui/routes/irrigation.py +323 -0
  194. boneio-1.3.0/boneio/webui/routes/migrations.py +187 -0
  195. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/modbus.py +241 -7
  196. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/outputs.py +62 -0
  197. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/remote_devices.py +3 -3
  198. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/system.py +258 -5
  199. boneio-1.3.0/boneio/webui/routes/timezone_sudoers.py +202 -0
  200. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/update.py +151 -39
  201. {boneio-1.2.0.dev26/boneio/webui/frontend-dist → boneio-1.3.0/boneio/webui}/schema/adc.schema.json +11 -1
  202. {boneio-1.2.0.dev26/boneio/webui/frontend-dist → boneio-1.3.0/boneio/webui}/schema/binary_sensor.schema.json +332 -0
  203. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/boneio.schema.json +42 -0
  204. boneio-1.3.0/boneio/webui/schema/can.schema.json +132 -0
  205. {boneio-1.2.0.dev26/boneio/webui/frontend-dist → boneio-1.3.0/boneio/webui}/schema/config.schema.json +2555 -86
  206. {boneio-1.2.0.dev26/boneio/webui/frontend-dist → boneio-1.3.0/boneio/webui}/schema/event.schema.json +1172 -0
  207. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/ina219.schema.json +3 -3
  208. boneio-1.3.0/boneio/webui/schema/irrigation.schema.json +352 -0
  209. boneio-1.3.0/boneio/webui/schema/lox_udp.schema.json +64 -0
  210. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/modbus_devices.schema.json +11 -0
  211. {boneio-1.2.0.dev26/boneio/webui/frontend-dist → boneio-1.3.0/boneio/webui}/schema/mqtt.schema.json +22 -0
  212. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/output.schema.json +62 -0
  213. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/template.schema.json +299 -11
  214. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/web_server.py +90 -9
  215. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/websocket_manager.py +2 -2
  216. {boneio-1.2.0.dev26 → boneio-1.3.0/boneio.egg-info}/PKG-INFO +2 -1
  217. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio.egg-info/SOURCES.txt +84 -92
  218. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio.egg-info/requires.txt +1 -0
  219. {boneio-1.2.0.dev26 → boneio-1.3.0}/pyproject.toml +41 -28
  220. boneio-1.2.0.dev26/boneio/core/messaging/__init__.py +0 -13
  221. boneio-1.2.0.dev26/boneio/core/remote/__init__.py +0 -38
  222. boneio-1.2.0.dev26/boneio/hardware/display/__init__.py +0 -7
  223. boneio-1.2.0.dev26/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -50
  224. boneio-1.2.0.dev26/boneio/version.py +0 -2
  225. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/abap-CRCWOmpq.js +0 -1
  226. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/apex-DnsZk_dE.js +0 -1
  227. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/azcli-1IWB1ccx.js +0 -1
  228. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/bat-DPkNLes8.js +0 -1
  229. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/bicep-Corcdgou.js +0 -2
  230. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/cameligo-CGrWLZr3.js +0 -1
  231. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/clojure-D9WOWImG.js +0 -1
  232. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/coffee-B7EJu28W.js +0 -1
  233. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/cpp-SEyurbux.js +0 -1
  234. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/csharp-BoL64M5l.js +0 -1
  235. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/csp-C46ZqvIl.js +0 -1
  236. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/css-DQU6DXDx.js +0 -3
  237. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/cssMode-KLoubj51.js +0 -4
  238. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/cypher-D84EuPTj.js +0 -1
  239. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/dart-D8lhlL1r.js +0 -1
  240. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/dockerfile-DLk6rpji.js +0 -1
  241. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/ecl-BO6FnfXk.js +0 -1
  242. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/editor.worker-B4pQIWZD.js +0 -12
  243. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/elixir-BRjLKONM.js +0 -1
  244. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/flow9-Cac8vKd7.js +0 -1
  245. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/freemarker2-DUvdRAYI.js +0 -3
  246. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/fsharp-fd1GTHhf.js +0 -1
  247. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/go-O9LJTZXk.js +0 -1
  248. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/graphql-LQdxqEYJ.js +0 -1
  249. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/handlebars-w3iJ3WCN.js +0 -1
  250. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/hcl-DxDQ3s82.js +0 -1
  251. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/html-7kX1f2JO.js +0 -1
  252. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/htmlMode-Cji8b4pr.js +0 -4
  253. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/index-B2dz9R2t.css +0 -1
  254. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/index-BcpeX3MS.js +0 -834
  255. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/ini-BvajGCUy.js +0 -1
  256. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/java-SYsfObOQ.js +0 -1
  257. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/javascript-5QUU2o3K.js +0 -1
  258. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/json.worker-aFakAbRR.js +0 -44
  259. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/jsonMode-DhrBEWLj.js +0 -10
  260. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/julia-DQXNmw_w.js +0 -1
  261. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/kotlin-qQ0MG-9I.js +0 -1
  262. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/less-GGFNNJHn.js +0 -2
  263. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/lexon-Canl7DCW.js +0 -1
  264. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/liquid-CS5Rfv1C.js +0 -1
  265. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/lua-D28Ae8-K.js +0 -1
  266. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/m3-DPitgjJI.js +0 -1
  267. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/markdown-B811l8j2.js +0 -1
  268. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/mdx-BW6o3qaL.js +0 -1
  269. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/mips-CdjsipkG.js +0 -1
  270. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/msdax-CYqgjx_P.js +0 -1
  271. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/mysql-BHd6q0vd.js +0 -1
  272. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/objective-c-B1aVtJYH.js +0 -1
  273. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/pascal-BhNW15KB.js +0 -1
  274. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/pascaligo-5jv8CcQD.js +0 -1
  275. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/perl-DlYyT36c.js +0 -1
  276. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/pgsql-Dy0bjov7.js +0 -1
  277. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/php-120yhfDK.js +0 -1
  278. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/pla-CjnFlu4u.js +0 -1
  279. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/postiats-CQpG440k.js +0 -1
  280. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/powerquery-DdJtto1Z.js +0 -1
  281. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/powershell-Bu_VLpJB.js +0 -1
  282. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/protobuf-IBS6jZEB.js +0 -2
  283. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/pug-kFxLfcjb.js +0 -1
  284. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/python-tefh07mR.js +0 -1
  285. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/qsharp-q7JyzKFN.js +0 -1
  286. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/r-BIFz-_sK.js +0 -1
  287. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/razor-DXqbSeer.js +0 -1
  288. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/redis-CHOsPHWR.js +0 -1
  289. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/redshift-CBifECDb.js +0 -1
  290. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/restructuredtext-CghPJEOS.js +0 -1
  291. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/ruby-CYWGW-b1.js +0 -1
  292. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/rust-DMDD0SHb.js +0 -1
  293. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/sb-BYAiYHFx.js +0 -1
  294. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/scala-Bqvq8jcR.js +0 -1
  295. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/scheme-Dhb-2j9p.js +0 -1
  296. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/scss-CTwUZ5N7.js +0 -3
  297. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/shell-CsDZo4DB.js +0 -1
  298. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/solidity-CME5AdoB.js +0 -1
  299. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/sophia-RYC1BQQz.js +0 -1
  300. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/sparql-KEyrF7De.js +0 -1
  301. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/sql-BdTr02Mf.js +0 -1
  302. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/st-C7iG7M4S.js +0 -1
  303. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/swift-D7IUmUK8.js +0 -1
  304. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/systemverilog-DgMryOEJ.js +0 -1
  305. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/tcl-PloMZuKG.js +0 -1
  306. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/tsMode-B3u-2iDP.js +0 -11
  307. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/twig-BfRIq3la.js +0 -1
  308. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/typescript-ADnbxDdf.js +0 -1
  309. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/typespec-CzxlYoT_.js +0 -1
  310. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/vb-BwAE3J76.js +0 -1
  311. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/wgsl-B_1kOXbF.js +0 -298
  312. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-BIl4cyR9.js +0 -2
  313. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/xml-CXGnZvL3.js +0 -1
  314. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/yaml-RF9zJa4U.js +0 -1
  315. boneio-1.2.0.dev26/boneio/webui/frontend-dist/assets/yaml.worker-DBeHcBRc.js +0 -411
  316. boneio-1.2.0.dev26/boneio/webui/frontend-dist/sw.js +0 -1
  317. boneio-1.2.0.dev26/boneio/webui/frontend-dist/workbox-226dbdbf.js +0 -1
  318. {boneio-1.2.0.dev26 → boneio-1.3.0}/LICENSE +0 -0
  319. {boneio-1.2.0.dev26 → boneio-1.3.0}/MANIFEST.in +0 -0
  320. {boneio-1.2.0.dev26 → boneio-1.3.0}/README.md +0 -0
  321. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/__init__.py +0 -0
  322. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.2/input.yaml +0 -0
  323. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.2/output_24_16.yaml +0 -0
  324. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.2/output_32_10.yaml +0 -0
  325. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.2/output_32_5.yaml +0 -0
  326. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.2/output_cover.yaml +0 -0
  327. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
  328. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.3/input.yaml +0 -0
  329. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.3/output_24_16.yaml +0 -0
  330. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.3/output_32_10.yaml +0 -0
  331. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.3/output_32_5.yaml +0 -0
  332. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.3/output_cover.yaml +0 -0
  333. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
  334. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.4/input.yaml +0 -0
  335. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.4/output_24_16.yaml +0 -0
  336. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.4/output_32_10.yaml +0 -0
  337. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.4/output_32_5.yaml +0 -0
  338. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.4/output_cover.yaml +0 -0
  339. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
  340. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.5/input.yaml +0 -0
  341. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.5/output_24_16.yaml +0 -0
  342. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.5/output_32_10.yaml +0 -0
  343. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.5/output_cover.yaml +0 -0
  344. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
  345. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.6/input.yaml +0 -0
  346. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.6/output_24_16.yaml +0 -0
  347. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.6/output_32_10.yaml +0 -0
  348. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.6/output_cover.yaml +0 -0
  349. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
  350. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.7/input.yaml +0 -0
  351. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.7/output_24_16.yaml +0 -0
  352. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.7/output_32_10.yaml +0 -0
  353. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.7/output_cover.yaml +0 -0
  354. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
  355. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.8/input.yaml +0 -0
  356. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.8/output_24_16.yaml +0 -0
  357. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.8/output_32_10.yaml +0 -0
  358. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.8/output_cover.yaml +0 -0
  359. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
  360. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/__init__.py +0 -0
  361. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/cover/__init__.py +0 -0
  362. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/cover/venetian.py +1 -1
  363. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/group/__init__.py +0 -0
  364. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/input/__init__.py +0 -0
  365. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/output/__init__.py +0 -0
  366. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/output/mcp.py +2 -2
  367. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/output/pca.py +1 -1
  368. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/output/pcf.py +0 -0
  369. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/sensor/__init__.py +0 -0
  370. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/components/template/__init__.py +1 -1
  371. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/__init__.py +0 -0
  372. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/cloud/__init__.py +0 -0
  373. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/cloud/data/__init__.py +0 -0
  374. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
  375. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/cloud/data/docker-compose.yaml +0 -0
  376. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
  377. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/cloud/secrets.py +0 -0
  378. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/config/__init__.py +0 -0
  379. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/config/package-lock.json +0 -0
  380. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/config/package.json +0 -0
  381. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/events/__init__.py +1 -1
  382. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/messaging/basic_mqtt.py +0 -0
  383. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/messaging/queue.py +0 -0
  384. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/sensor/__init__.py +0 -0
  385. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/sensor/base.py +0 -0
  386. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/sensor/system.py +0 -0
  387. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/state/__init__.py +0 -0
  388. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/system/__init__.py +1 -1
  389. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/system/monitor.py +0 -0
  390. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/utils/__init__.py +0 -0
  391. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/utils/font_util.py +0 -0
  392. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/utils/logger.py +0 -0
  393. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/core/utils/timeperiod.py +0 -0
  394. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/24x16/adc.yaml +0 -0
  395. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
  396. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/24x16/config.yaml +0 -0
  397. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/24x16/event.yaml +0 -0
  398. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/24x16/mqtt.yaml +0 -0
  399. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/24x16/output24x16A.yaml +0 -0
  400. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/32x10/adc.yaml +0 -0
  401. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
  402. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/32x10/config.yaml +0 -0
  403. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/32x10/event.yaml +0 -0
  404. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/32x10/mqtt.yaml +0 -0
  405. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/32x10/output32x10A.yaml +0 -0
  406. {boneio-1.2.0.dev26/boneio/example_config/cover → boneio-1.3.0/boneio/example_config/48x4}/adc.yaml +0 -0
  407. {boneio-1.2.0.dev26/boneio/example_config/cover → boneio-1.3.0/boneio/example_config/48x4}/mqtt.yaml +0 -0
  408. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/__init__.py +0 -0
  409. {boneio-1.2.0.dev26/boneio/example_config/cover_mix → boneio-1.3.0/boneio/example_config/cover}/adc.yaml +0 -0
  410. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover/binary_sensor.yaml +0 -0
  411. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover/config.yaml +0 -0
  412. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover/cover.yaml +0 -0
  413. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover/event.yaml +0 -0
  414. {boneio-1.2.0.dev26/boneio/example_config/cover_mix → boneio-1.3.0/boneio/example_config/cover}/mqtt.yaml +0 -0
  415. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover/outputCover.yaml +0 -0
  416. {boneio-1.2.0.dev26/boneio/example_config/different_configs → boneio-1.3.0/boneio/example_config/cover_mix}/adc.yaml +0 -0
  417. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
  418. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover_mix/config.yaml +0 -0
  419. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover_mix/cover.yaml +0 -0
  420. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover_mix/event.yaml +0 -0
  421. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
  422. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
  423. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
  424. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
  425. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
  426. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/event_all.yaml +0 -0
  427. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
  428. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
  429. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
  430. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
  431. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
  432. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
  433. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/exceptions.py +0 -0
  434. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/__init__.py +0 -0
  435. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/analog/__init__.py +0 -0
  436. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/display/fonts/danube__.ttf +0 -0
  437. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/gpio/__init__.py +0 -0
  438. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/gpio/expanders/__init__.py +0 -0
  439. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
  440. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
  441. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
  442. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/gpio/input/__init__.py +0 -0
  443. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/i2c/__init__.py +0 -0
  444. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/i2c/ina219.py +0 -0
  445. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/i2c/ina219_driver.py +0 -0
  446. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/i2c/mcp9808.py +0 -0
  447. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/i2c/pct2075.py +0 -0
  448. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/onewire/bus.py +0 -0
  449. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/onewire/dallas.py +0 -0
  450. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/onewire/ds2482.py +0 -0
  451. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/sensor/__init__.py +0 -0
  452. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/sensor/temperature/__init__.py +0 -0
  453. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/sensor/temperature/base.py +0 -0
  454. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
  455. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
  456. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/integration/__init__.py +1 -1
  457. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/integration/interlock.py +0 -0
  458. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/__init__.py +0 -0
  459. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/__init__.py +0 -0
  460. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
  461. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
  462. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
  463. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
  464. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
  465. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
  466. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/hvac/ventclear.json +0 -0
  467. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/sensors/dts1964_3f.json +0 -0
  468. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/sensors/gdfs.json +0 -0
  469. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/devices/sensors/gdfx.json +0 -0
  470. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/__init__.py +4 -4
  471. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/derived/__init__.py +0 -0
  472. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/sensor/__init__.py +0 -0
  473. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/modbus/entities/writeable/__init__.py +0 -0
  474. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/models/files.py +0 -0
  475. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/models/logs.py +0 -0
  476. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/models/mqtt.py +0 -0
  477. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/actions_sensor.yaml +0 -0
  478. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/actions_switch.yaml +0 -0
  479. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/filters.yaml +0 -0
  480. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/filters_adc.yaml +0 -0
  481. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/id.yaml +0 -0
  482. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/temp_unit.yaml +0 -0
  483. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/schema/update_interval.yaml +0 -0
  484. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/assets/codicon-DCmgc-ay.ttf +0 -0
  485. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/boneio-192.png +0 -0
  486. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/boneio-512.png +0 -0
  487. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/boneio.svg +0 -0
  488. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
  489. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
  490. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
  491. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
  492. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
  493. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
  494. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
  495. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
  496. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
  497. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
  498. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
  499. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
  500. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
  501. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
  502. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
  503. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
  504. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
  505. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
  506. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/middleware/__init__.py +0 -0
  507. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/auth.py +0 -0
  508. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/covers.py +0 -0
  509. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/sensors.py +0 -0
  510. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/templates.py +0 -0
  511. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/routes/tools.py +0 -0
  512. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/areas.schema.json +0 -0
  513. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/cover.schema.json +0 -0
  514. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/dallas.schema.json +0 -0
  515. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/ds2482.schema.json +0 -0
  516. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/lm75.schema.json +0 -0
  517. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/logger.schema.json +0 -0
  518. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/mcp23017.schema.json +0 -0
  519. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/mcp9808.schema.json +0 -0
  520. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/modbus.schema.json +0 -0
  521. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/oled.schema.json +0 -0
  522. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/output_group.schema.json +0 -0
  523. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/pca9685.schema.json +0 -0
  524. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/pcf8575.schema.json +0 -0
  525. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/remote_devices.schema.json +0 -0
  526. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/sensor.schema.json +0 -0
  527. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
  528. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/schema/web.schema.json +0 -0
  529. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/services/__init__.py +2 -2
  530. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio/webui/services/logs.py +0 -0
  531. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio.egg-info/dependency_links.txt +0 -0
  532. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio.egg-info/entry_points.txt +0 -0
  533. {boneio-1.2.0.dev26 → boneio-1.3.0}/boneio.egg-info/top_level.txt +0 -0
  534. {boneio-1.2.0.dev26 → boneio-1.3.0}/setup.cfg +0 -0
  535. {boneio-1.2.0.dev26 → boneio-1.3.0}/setup.py +0 -0
  536. {boneio-1.2.0.dev26 → boneio-1.3.0}/tests/test_py313_compatibility.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boneio
3
- Version: 1.2.0.dev26
3
+ Version: 1.3.0
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
@@ -35,6 +35,7 @@ Requires-Dist: requests==2.32.5
35
35
  Requires-Dist: packaging==25.0
36
36
  Requires-Dist: aioesphomeapi>=29.0.0
37
37
  Requires-Dist: zeroconf>=0.148.0
38
+ Requires-Dist: canopen-asyncio>=2.4.1
38
39
  Dynamic: license-file
39
40
 
40
41
  Example usage:
@@ -0,0 +1,250 @@
1
+ # Relay board 48x4A v0.7 - DISCONTINUED
2
+ mcp23017:
3
+ - id: mcp_left
4
+ address: 0x20
5
+ - id: mcp_middle
6
+ address: 0x21
7
+ - id: mcp_right
8
+ address: 0x22
9
+
10
+ output_mapping:
11
+ out_01:
12
+ kind: mcp
13
+ mcp_id: mcp_left
14
+ pin: 7
15
+ output_type: light
16
+ out_02:
17
+ kind: mcp
18
+ mcp_id: mcp_left
19
+ pin: 6
20
+ output_type: light
21
+ out_03:
22
+ kind: mcp
23
+ mcp_id: mcp_left
24
+ pin: 5
25
+ output_type: light
26
+ out_04:
27
+ kind: mcp
28
+ mcp_id: mcp_left
29
+ pin: 4
30
+ output_type: light
31
+ out_05:
32
+ kind: mcp
33
+ mcp_id: mcp_left
34
+ pin: 3
35
+ output_type: light
36
+ out_06:
37
+ kind: mcp
38
+ mcp_id: mcp_left
39
+ pin: 2
40
+ output_type: light
41
+ out_07:
42
+ kind: mcp
43
+ mcp_id: mcp_left
44
+ pin: 1
45
+ output_type: light
46
+ out_08:
47
+ kind: mcp
48
+ mcp_id: mcp_left
49
+ pin: 0
50
+ output_type: light
51
+ out_09:
52
+ kind: mcp
53
+ mcp_id: mcp_middle
54
+ pin: 7
55
+ output_type: light
56
+ out_10:
57
+ kind: mcp
58
+ mcp_id: mcp_middle
59
+ pin: 6
60
+ output_type: light
61
+ out_11:
62
+ kind: mcp
63
+ mcp_id: mcp_middle
64
+ pin: 5
65
+ output_type: light
66
+ out_12:
67
+ kind: mcp
68
+ mcp_id: mcp_middle
69
+ pin: 4
70
+ output_type: light
71
+ out_13:
72
+ kind: mcp
73
+ mcp_id: mcp_middle
74
+ pin: 3
75
+ output_type: light
76
+ out_14:
77
+ kind: mcp
78
+ mcp_id: mcp_middle
79
+ pin: 2
80
+ output_type: light
81
+ out_15:
82
+ kind: mcp
83
+ mcp_id: mcp_middle
84
+ pin: 1
85
+ output_type: light
86
+ out_16:
87
+ kind: mcp
88
+ mcp_id: mcp_middle
89
+ pin: 0
90
+ output_type: light
91
+ out_17:
92
+ kind: mcp
93
+ mcp_id: mcp_right
94
+ pin: 7
95
+ output_type: light
96
+ out_18:
97
+ kind: mcp
98
+ mcp_id: mcp_right
99
+ pin: 6
100
+ output_type: light
101
+ out_19:
102
+ kind: mcp
103
+ mcp_id: mcp_right
104
+ pin: 5
105
+ output_type: light
106
+ out_20:
107
+ kind: mcp
108
+ mcp_id: mcp_right
109
+ pin: 4
110
+ output_type: light
111
+ out_21:
112
+ kind: mcp
113
+ mcp_id: mcp_right
114
+ pin: 3
115
+ output_type: light
116
+ out_22:
117
+ kind: mcp
118
+ mcp_id: mcp_right
119
+ pin: 2
120
+ output_type: light
121
+ out_23:
122
+ kind: mcp
123
+ mcp_id: mcp_right
124
+ pin: 1
125
+ output_type: light
126
+ out_24:
127
+ kind: mcp
128
+ mcp_id: mcp_right
129
+ pin: 0
130
+ output_type: light
131
+ out_25:
132
+ kind: mcp
133
+ mcp_id: mcp_left
134
+ pin: 8
135
+ output_type: light
136
+ out_26:
137
+ kind: mcp
138
+ mcp_id: mcp_left
139
+ pin: 9
140
+ output_type: light
141
+ out_27:
142
+ kind: mcp
143
+ mcp_id: mcp_left
144
+ pin: 10
145
+ output_type: light
146
+ out_28:
147
+ kind: mcp
148
+ mcp_id: mcp_left
149
+ pin: 11
150
+ output_type: light
151
+ out_29:
152
+ kind: mcp
153
+ mcp_id: mcp_left
154
+ pin: 12
155
+ output_type: light
156
+ out_30:
157
+ kind: mcp
158
+ mcp_id: mcp_left
159
+ pin: 13
160
+ output_type: light
161
+ out_31:
162
+ kind: mcp
163
+ mcp_id: mcp_left
164
+ pin: 14
165
+ output_type: light
166
+ out_32:
167
+ kind: mcp
168
+ mcp_id: mcp_left
169
+ pin: 15
170
+ output_type: light
171
+ out_33:
172
+ kind: mcp
173
+ mcp_id: mcp_middle
174
+ pin: 8
175
+ output_type: light
176
+ out_34:
177
+ kind: mcp
178
+ mcp_id: mcp_middle
179
+ pin: 9
180
+ output_type: light
181
+ out_35:
182
+ kind: mcp
183
+ mcp_id: mcp_middle
184
+ pin: 10
185
+ output_type: light
186
+ out_36:
187
+ kind: mcp
188
+ mcp_id: mcp_middle
189
+ pin: 11
190
+ output_type: light
191
+ out_37:
192
+ kind: mcp
193
+ mcp_id: mcp_middle
194
+ pin: 12
195
+ output_type: light
196
+ out_38:
197
+ kind: mcp
198
+ mcp_id: mcp_middle
199
+ pin: 13
200
+ output_type: light
201
+ out_39:
202
+ kind: mcp
203
+ mcp_id: mcp_middle
204
+ pin: 14
205
+ output_type: light
206
+ out_40:
207
+ kind: mcp
208
+ mcp_id: mcp_middle
209
+ pin: 15
210
+ output_type: light
211
+ out_41:
212
+ kind: mcp
213
+ mcp_id: mcp_right
214
+ pin: 8
215
+ output_type: light
216
+ out_42:
217
+ kind: mcp
218
+ mcp_id: mcp_right
219
+ pin: 9
220
+ output_type: light
221
+ out_43:
222
+ kind: mcp
223
+ mcp_id: mcp_right
224
+ pin: 10
225
+ output_type: light
226
+ out_44:
227
+ kind: mcp
228
+ mcp_id: mcp_right
229
+ pin: 11
230
+ output_type: light
231
+ out_45:
232
+ kind: mcp
233
+ mcp_id: mcp_right
234
+ pin: 12
235
+ output_type: light
236
+ out_46:
237
+ kind: mcp
238
+ mcp_id: mcp_right
239
+ pin: 13
240
+ output_type: light
241
+ out_47:
242
+ kind: mcp
243
+ mcp_id: mcp_right
244
+ pin: 14
245
+ output_type: light
246
+ out_48:
247
+ kind: mcp
248
+ mcp_id: mcp_right
249
+ pin: 15
250
+ output_type: light
@@ -0,0 +1,250 @@
1
+ # Relay board 48x4A v0.8 - DISCONTINUED
2
+ mcp23017:
3
+ - id: mcp_left
4
+ address: 0x23
5
+ - id: mcp_middle
6
+ address: 0x24
7
+ - id: mcp_right
8
+ address: 0x25
9
+
10
+ output_mapping:
11
+ out_01:
12
+ kind: mcp
13
+ mcp_id: mcp_left
14
+ pin: 7
15
+ output_type: light
16
+ out_02:
17
+ kind: mcp
18
+ mcp_id: mcp_left
19
+ pin: 6
20
+ output_type: light
21
+ out_03:
22
+ kind: mcp
23
+ mcp_id: mcp_left
24
+ pin: 5
25
+ output_type: light
26
+ out_04:
27
+ kind: mcp
28
+ mcp_id: mcp_left
29
+ pin: 4
30
+ output_type: light
31
+ out_05:
32
+ kind: mcp
33
+ mcp_id: mcp_left
34
+ pin: 3
35
+ output_type: light
36
+ out_06:
37
+ kind: mcp
38
+ mcp_id: mcp_left
39
+ pin: 2
40
+ output_type: light
41
+ out_07:
42
+ kind: mcp
43
+ mcp_id: mcp_left
44
+ pin: 1
45
+ output_type: light
46
+ out_08:
47
+ kind: mcp
48
+ mcp_id: mcp_left
49
+ pin: 0
50
+ output_type: light
51
+ out_09:
52
+ kind: mcp
53
+ mcp_id: mcp_middle
54
+ pin: 7
55
+ output_type: light
56
+ out_10:
57
+ kind: mcp
58
+ mcp_id: mcp_middle
59
+ pin: 6
60
+ output_type: light
61
+ out_11:
62
+ kind: mcp
63
+ mcp_id: mcp_middle
64
+ pin: 5
65
+ output_type: light
66
+ out_12:
67
+ kind: mcp
68
+ mcp_id: mcp_middle
69
+ pin: 4
70
+ output_type: light
71
+ out_13:
72
+ kind: mcp
73
+ mcp_id: mcp_middle
74
+ pin: 3
75
+ output_type: light
76
+ out_14:
77
+ kind: mcp
78
+ mcp_id: mcp_middle
79
+ pin: 2
80
+ output_type: light
81
+ out_15:
82
+ kind: mcp
83
+ mcp_id: mcp_middle
84
+ pin: 1
85
+ output_type: light
86
+ out_16:
87
+ kind: mcp
88
+ mcp_id: mcp_middle
89
+ pin: 0
90
+ output_type: light
91
+ out_17:
92
+ kind: mcp
93
+ mcp_id: mcp_right
94
+ pin: 7
95
+ output_type: light
96
+ out_18:
97
+ kind: mcp
98
+ mcp_id: mcp_right
99
+ pin: 6
100
+ output_type: light
101
+ out_19:
102
+ kind: mcp
103
+ mcp_id: mcp_right
104
+ pin: 5
105
+ output_type: light
106
+ out_20:
107
+ kind: mcp
108
+ mcp_id: mcp_right
109
+ pin: 4
110
+ output_type: light
111
+ out_21:
112
+ kind: mcp
113
+ mcp_id: mcp_right
114
+ pin: 3
115
+ output_type: light
116
+ out_22:
117
+ kind: mcp
118
+ mcp_id: mcp_right
119
+ pin: 2
120
+ output_type: light
121
+ out_23:
122
+ kind: mcp
123
+ mcp_id: mcp_right
124
+ pin: 1
125
+ output_type: light
126
+ out_24:
127
+ kind: mcp
128
+ mcp_id: mcp_right
129
+ pin: 0
130
+ output_type: light
131
+ out_25:
132
+ kind: mcp
133
+ mcp_id: mcp_left
134
+ pin: 8
135
+ output_type: light
136
+ out_26:
137
+ kind: mcp
138
+ mcp_id: mcp_left
139
+ pin: 9
140
+ output_type: light
141
+ out_27:
142
+ kind: mcp
143
+ mcp_id: mcp_left
144
+ pin: 10
145
+ output_type: light
146
+ out_28:
147
+ kind: mcp
148
+ mcp_id: mcp_left
149
+ pin: 11
150
+ output_type: light
151
+ out_29:
152
+ kind: mcp
153
+ mcp_id: mcp_left
154
+ pin: 12
155
+ output_type: light
156
+ out_30:
157
+ kind: mcp
158
+ mcp_id: mcp_left
159
+ pin: 13
160
+ output_type: light
161
+ out_31:
162
+ kind: mcp
163
+ mcp_id: mcp_left
164
+ pin: 14
165
+ output_type: light
166
+ out_32:
167
+ kind: mcp
168
+ mcp_id: mcp_left
169
+ pin: 15
170
+ output_type: light
171
+ out_33:
172
+ kind: mcp
173
+ mcp_id: mcp_middle
174
+ pin: 8
175
+ output_type: light
176
+ out_34:
177
+ kind: mcp
178
+ mcp_id: mcp_middle
179
+ pin: 9
180
+ output_type: light
181
+ out_35:
182
+ kind: mcp
183
+ mcp_id: mcp_middle
184
+ pin: 10
185
+ output_type: light
186
+ out_36:
187
+ kind: mcp
188
+ mcp_id: mcp_middle
189
+ pin: 11
190
+ output_type: light
191
+ out_37:
192
+ kind: mcp
193
+ mcp_id: mcp_middle
194
+ pin: 12
195
+ output_type: light
196
+ out_38:
197
+ kind: mcp
198
+ mcp_id: mcp_middle
199
+ pin: 13
200
+ output_type: light
201
+ out_39:
202
+ kind: mcp
203
+ mcp_id: mcp_middle
204
+ pin: 14
205
+ output_type: light
206
+ out_40:
207
+ kind: mcp
208
+ mcp_id: mcp_middle
209
+ pin: 15
210
+ output_type: light
211
+ out_41:
212
+ kind: mcp
213
+ mcp_id: mcp_right
214
+ pin: 8
215
+ output_type: light
216
+ out_42:
217
+ kind: mcp
218
+ mcp_id: mcp_right
219
+ pin: 9
220
+ output_type: light
221
+ out_43:
222
+ kind: mcp
223
+ mcp_id: mcp_right
224
+ pin: 10
225
+ output_type: light
226
+ out_44:
227
+ kind: mcp
228
+ mcp_id: mcp_right
229
+ pin: 11
230
+ output_type: light
231
+ out_45:
232
+ kind: mcp
233
+ mcp_id: mcp_right
234
+ pin: 12
235
+ output_type: light
236
+ out_46:
237
+ kind: mcp
238
+ mcp_id: mcp_right
239
+ pin: 13
240
+ output_type: light
241
+ out_47:
242
+ kind: mcp
243
+ mcp_id: mcp_right
244
+ pin: 14
245
+ output_type: light
246
+ out_48:
247
+ kind: mcp
248
+ mcp_id: mcp_right
249
+ pin: 15
250
+ output_type: light
@@ -2,6 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import time as _boot_time
6
+
7
+ _BOOT_T0 = _boot_time.monotonic()
8
+
5
9
  import logging
6
10
  import os
7
11
 
@@ -11,22 +15,15 @@ import argparse
11
15
  import asyncio
12
16
  import sys
13
17
 
14
- from yaml import MarkedYAMLError
15
-
16
- from boneio.const import ACTION
17
- from boneio.core.config import load_config_from_file
18
- from boneio.core.events import GracefulExit
19
- from boneio.core.utils.logger import configure_logger, setup_logging
20
- from boneio.exceptions import (
21
- ConfigurationException,
22
- RestartRequestException,
23
- )
24
- # Lazy import modbus CLI to save ~0.35s on startup for 'run' command
25
- # from boneio.modbus.cli import async_run_modbus_get, async_run_modbus_search, async_run_modbus_set
26
- # from boneio.modbus.client import VALUE_TYPES
27
- from boneio.runner import async_run
18
+ print(f"[BOOT TIMING] stdlib imports: {_boot_time.monotonic() - _BOOT_T0:.2f}s", flush=True)
19
+
20
+ # All boneio imports are lazy (inside run/run_modbus_command) to minimize
21
+ # startup time. Only version is imported here for --version CLI flag.
22
+ _t_ver = _boot_time.monotonic()
28
23
  from boneio.version import __version__
29
24
 
25
+ print(f"[BOOT TIMING] ALL imports: {_boot_time.monotonic() - _BOOT_T0:.2f}s", flush=True)
26
+
30
27
  TASK_CANCELATION_TIMEOUT = 1
31
28
 
32
29
  _LOGGER = logging.getLogger(__name__)
@@ -34,6 +31,7 @@ _LOGGER = logging.getLogger(__name__)
34
31
 
35
32
  def get_arguments() -> argparse.Namespace:
36
33
  """Get parsed passed in arguments."""
34
+ from boneio.const import ACTION
37
35
 
38
36
  parser = argparse.ArgumentParser(
39
37
  description="boneIO app for BeagleBone Black.",
@@ -208,14 +206,73 @@ def run(
208
206
  config: str, debug: int, mqttusername: str = "", mqttpassword: str = ""
209
207
  ) -> int:
210
208
  """Run BoneIO."""
209
+ import time as _time
210
+
211
+ from yaml import MarkedYAMLError
212
+
213
+ from boneio.core.config import load_config_from_file
214
+ from boneio.core.events import GracefulExit
215
+ from boneio.core.utils.logger import configure_logger, setup_logging
216
+ from boneio.exceptions import ConfigurationException
217
+ _t0 = _time.monotonic()
211
218
  setup_logging(debug_level=debug)
212
219
  _LOGGER.info("BoneIO %s starting.", __version__)
220
+ _LOGGER.debug("[STARTUP TIMING] after setup_logging: %.2fs", _time.monotonic() - _t0)
221
+
222
+ # --- Initialize OLED before anything else (independent of config) ---
223
+ # This is wrapped in try/except so the app always starts even if
224
+ # OLED hardware is missing, broken, or display libraries aren't installed.
225
+ try:
226
+ from boneio.hardware.display.early_oled import (
227
+ draw_config_error,
228
+ draw_crash,
229
+ draw_status,
230
+ init_early_oled,
231
+ )
232
+ init_early_oled()
233
+ draw_status("Loading config...")
234
+ except Exception:
235
+ # OLED is optional — define no-op stubs so rest of the function works
236
+ _LOGGER.debug("Early OLED not available, continuing without display")
237
+ def draw_status(msg: str) -> None: pass # noqa: E731
238
+ def draw_config_error(msg: str) -> None: pass # noqa: E731
239
+ def draw_crash(exc: BaseException) -> None: pass # noqa: E731
240
+
213
241
  try:
214
- _config = load_config_from_file(config_file=config)
242
+ _t1 = _time.monotonic()
243
+ _config = load_config_from_file(
244
+ config_file=config, progress_callback=draw_status,
245
+ )
246
+ _LOGGER.debug("[STARTUP TIMING] load_config_from_file: %.2fs", _time.monotonic() - _t1)
215
247
  if not _config:
216
248
  _LOGGER.error("Config not loaded. Exiting.")
249
+ draw_config_error("Config file is empty or missing")
217
250
  return 1
218
251
  configure_logger(log_config=_config.get("logger") or {}, debug=debug)
252
+ draw_status("Importing modules...")
253
+ # Granular timing of runner sub-imports to find the bottleneck
254
+ _t_a = _time.monotonic()
255
+ from boneio.const import ACTION
256
+ _LOGGER.debug("[RUNNER IMPORT] boneio.const: %.2fs", _time.monotonic() - _t_a)
257
+ _t_a = _time.monotonic()
258
+ from boneio.core.cloud import CloudRegistration
259
+ _LOGGER.debug("[RUNNER IMPORT] boneio.core.cloud: %.2fs", _time.monotonic() - _t_a)
260
+ _t_a = _time.monotonic()
261
+ from boneio.core.manager import Manager
262
+ _LOGGER.debug("[RUNNER IMPORT] boneio.core.manager: %.2fs", _time.monotonic() - _t_a)
263
+ _t_a = _time.monotonic()
264
+ from boneio.core.messaging import MQTTClient
265
+ _LOGGER.debug("[RUNNER IMPORT] boneio.core.messaging: %.2fs", _time.monotonic() - _t_a)
266
+ _t_a = _time.monotonic()
267
+ from boneio.hardware.gpio.input import get_gpio_manager
268
+ _LOGGER.debug("[RUNNER IMPORT] boneio.hardware.gpio.input: %.2fs", _time.monotonic() - _t_a)
269
+ _t_a = _time.monotonic()
270
+ from boneio.runner import async_run
271
+ _LOGGER.debug("[RUNNER IMPORT] boneio.runner (rest): %.2fs", _time.monotonic() - _t_a)
272
+ _LOGGER.debug("[STARTUP TIMING] total before async_run: %.2fs", _time.monotonic() - _t0)
273
+
274
+ draw_status("Starting...")
275
+
219
276
  ret = asyncio.run(
220
277
  async_run(
221
278
  config=_config,
@@ -234,6 +291,11 @@ def run(
234
291
  return 0
235
292
  except (ConfigurationException, MarkedYAMLError) as err:
236
293
  _LOGGER.error("Failed to load config. %s Exiting.", err)
294
+ draw_config_error(str(err)[:100])
295
+ return 1
296
+ except Exception as err:
297
+ _LOGGER.error("Unexpected error during startup: %s", err, exc_info=True)
298
+ draw_crash(err)
237
299
  return 1
238
300
 
239
301
 
@@ -241,13 +303,16 @@ def run_modbus_command(
241
303
  args: argparse.Namespace,
242
304
  ) -> int:
243
305
  """Run BoneIO."""
244
- # Lazy import modbus CLI only when needed
306
+ from yaml import MarkedYAMLError
307
+
308
+ from boneio.core.events import GracefulExit
309
+ from boneio.core.utils.logger import configure_logger, setup_logging
310
+ from boneio.exceptions import ConfigurationException, RestartRequestException
245
311
  from boneio.modbus.cli import (
246
312
  async_run_modbus_get,
247
313
  async_run_modbus_search,
248
314
  async_run_modbus_set,
249
315
  )
250
-
251
316
  setup_logging(debug_level=args.debug)
252
317
  _LOGGER.info("BoneIO %s starting.", __version__)
253
318
  try: