boneio 1.5.0.dev31__tar.gz → 1.5.0.dev33__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 (521) hide show
  1. {boneio-1.5.0.dev31/boneio.egg-info → boneio-1.5.0.dev33}/PKG-INFO +1 -1
  2. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/const.py +1 -0
  3. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/migrations/__init__.py +69 -0
  4. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/display.py +2 -2
  5. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/sensors.py +95 -1
  6. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/24x16/config.yaml +1 -0
  7. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/32x10/config.yaml +1 -0
  8. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/48x4/config.yaml +1 -0
  9. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover/config.yaml +1 -0
  10. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover_mix/config.yaml +1 -0
  11. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/i2c/__init__.py +4 -1
  12. boneio-1.5.0.dev33/boneio/hardware/i2c/ina226.py +260 -0
  13. boneio-1.5.0.dev33/boneio/hardware/i2c/ina226_driver.py +309 -0
  14. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/runner.py +2 -0
  15. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/schema.yaml +39 -0
  16. boneio-1.5.0.dev33/boneio/version.py +2 -0
  17. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/app.py +17 -0
  18. {boneio-1.5.0.dev31/boneio/webui → boneio-1.5.0.dev33/boneio/webui/frontend-dist}/schema/config.schema.json +103 -0
  19. boneio-1.5.0.dev33/boneio/webui/frontend-dist/schema/ina226.schema.json +109 -0
  20. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/sensors.py +10 -0
  21. {boneio-1.5.0.dev31/boneio/webui/frontend-dist → boneio-1.5.0.dev33/boneio/webui}/schema/config.schema.json +103 -0
  22. boneio-1.5.0.dev33/boneio/webui/schema/ina226.schema.json +109 -0
  23. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33/boneio.egg-info}/PKG-INFO +1 -1
  24. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio.egg-info/SOURCES.txt +4 -0
  25. boneio-1.5.0.dev31/boneio/version.py +0 -2
  26. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/LICENSE +0 -0
  27. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/MANIFEST.in +0 -0
  28. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/README.md +0 -0
  29. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/__init__.py +0 -0
  30. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.2/input.yaml +0 -0
  31. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.2/output_24_16.yaml +0 -0
  32. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.2/output_32_10.yaml +0 -0
  33. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.2/output_32_5.yaml +0 -0
  34. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.2/output_cover.yaml +0 -0
  35. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
  36. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.3/input.yaml +0 -0
  37. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.3/output_24_16.yaml +0 -0
  38. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.3/output_32_10.yaml +0 -0
  39. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.3/output_32_5.yaml +0 -0
  40. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.3/output_cover.yaml +0 -0
  41. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
  42. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.4/input.yaml +0 -0
  43. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.4/output_24_16.yaml +0 -0
  44. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.4/output_32_10.yaml +0 -0
  45. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.4/output_32_5.yaml +0 -0
  46. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.4/output_cover.yaml +0 -0
  47. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
  48. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.5/input.yaml +0 -0
  49. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.5/output_24_16.yaml +0 -0
  50. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.5/output_32_10.yaml +0 -0
  51. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.5/output_cover.yaml +0 -0
  52. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
  53. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.6/input.yaml +0 -0
  54. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.6/output_24_16.yaml +0 -0
  55. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.6/output_32_10.yaml +0 -0
  56. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.6/output_cover.yaml +0 -0
  57. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
  58. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.7/input.yaml +0 -0
  59. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.7/output_24_16.yaml +0 -0
  60. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.7/output_32_10.yaml +0 -0
  61. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.7/output_48_4.yaml +0 -0
  62. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.7/output_cover.yaml +0 -0
  63. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
  64. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.8/input.yaml +0 -0
  65. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.8/output_24_16.yaml +0 -0
  66. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.8/output_32_10.yaml +0 -0
  67. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.8/output_48_4.yaml +0 -0
  68. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.8/output_cover.yaml +0 -0
  69. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
  70. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/1.0/input.yaml +0 -0
  71. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/1.0/output_24_16.yaml +0 -0
  72. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/1.0/output_32_10.yaml +0 -0
  73. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/1.0/output_48_4.yaml +0 -0
  74. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/1.0/output_cover.yaml +0 -0
  75. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/boards/1.0/output_cover_mix.yaml +0 -0
  76. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/bonecli.py +0 -0
  77. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/__init__.py +0 -0
  78. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/cover/__init__.py +0 -0
  79. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/cover/cover.py +0 -0
  80. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/cover/time_based.py +0 -0
  81. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/cover/venetian.py +0 -0
  82. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/group/__init__.py +0 -0
  83. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/group/output_group.py +0 -0
  84. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/input/__init__.py +0 -0
  85. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/input/binary_sensor.py +0 -0
  86. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/input/detectors.py +0 -0
  87. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/input/event.py +0 -0
  88. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/input/remote/__init__.py +0 -0
  89. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/input/remote/base.py +0 -0
  90. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/input/remote/esphome.py +0 -0
  91. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/irrigation/__init__.py +0 -0
  92. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/irrigation/controller.py +0 -0
  93. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/irrigation/water_source.py +0 -0
  94. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/output/__init__.py +0 -0
  95. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/output/basic.py +0 -0
  96. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/output/buzzer.py +0 -0
  97. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/output/mcp.py +0 -0
  98. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/output/pca.py +0 -0
  99. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/output/pcf.py +0 -0
  100. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/output/remote.py +0 -0
  101. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/sensor/__init__.py +0 -0
  102. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/sensor/virtual_energy.py +0 -0
  103. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/template/__init__.py +0 -0
  104. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/template/alarm_panel.py +0 -0
  105. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/template/gate_cover.py +0 -0
  106. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/components/template/thermostat.py +0 -0
  107. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/__init__.py +0 -0
  108. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/cloud/__init__.py +0 -0
  109. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/cloud/data/__init__.py +0 -0
  110. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
  111. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/cloud/data/docker-compose.yaml +0 -0
  112. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
  113. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/cloud/registration.py +0 -0
  114. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/cloud/secrets.py +0 -0
  115. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/__init__.py +0 -0
  116. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/config_helper.py +0 -0
  117. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/migrations/v1_proxy_port.py +0 -0
  118. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/migrations/v2_transition.py +0 -0
  119. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/migrations/v4_wled_cache.py +0 -0
  120. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/package-lock.json +0 -0
  121. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/package.json +0 -0
  122. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/schema_converter.py +0 -0
  123. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/yaml_compat.py +0 -0
  124. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/config/yaml_util.py +0 -0
  125. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/discovery.py +0 -0
  126. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/events/__init__.py +0 -0
  127. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/events/bus.py +0 -0
  128. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/__init__.py +0 -0
  129. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/action_conditions.py +0 -0
  130. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/canopen.py +0 -0
  131. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/covers.py +0 -0
  132. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/inputs.py +0 -0
  133. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/irrigation.py +0 -0
  134. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/manager.py +0 -0
  135. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/modbus.py +0 -0
  136. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/outputs.py +0 -0
  137. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/remote.py +0 -0
  138. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/remote_input_registrar.py +0 -0
  139. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/templates/__init__.py +0 -0
  140. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/templates/alarm.py +0 -0
  141. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/templates/gate_cover.py +0 -0
  142. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/templates/thermostat.py +0 -0
  143. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/templates.py +0 -0
  144. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/manager/update.py +0 -0
  145. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/messaging/__init__.py +0 -0
  146. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/messaging/basic.py +0 -0
  147. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/messaging/basic_mqtt.py +0 -0
  148. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/messaging/composite.py +0 -0
  149. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/messaging/local.py +0 -0
  150. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/messaging/lox.py +0 -0
  151. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/messaging/mqtt.py +0 -0
  152. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/messaging/queue.py +0 -0
  153. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/remote/__init__.py +0 -0
  154. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/remote/base.py +0 -0
  155. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/remote/can.py +0 -0
  156. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/remote/esphome.py +0 -0
  157. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/remote/mqtt.py +0 -0
  158. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/remote/wled.py +0 -0
  159. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/remote/wled_cache.py +0 -0
  160. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/sensor/__init__.py +0 -0
  161. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/sensor/base.py +0 -0
  162. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/sensor/system.py +0 -0
  163. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/state/__init__.py +0 -0
  164. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/state/manager.py +0 -0
  165. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/system/__init__.py +0 -0
  166. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/system/host_data.py +0 -0
  167. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/system/monitor.py +0 -0
  168. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/utils/__init__.py +0 -0
  169. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/utils/async_updater.py +0 -0
  170. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/utils/conditions.py +0 -0
  171. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/utils/filter.py +0 -0
  172. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/utils/font_util.py +0 -0
  173. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/utils/logger.py +0 -0
  174. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/utils/timeperiod.py +0 -0
  175. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/core/utils/util.py +0 -0
  176. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/24x16/adc.yaml +0 -0
  177. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
  178. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/24x16/event.yaml +0 -0
  179. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/24x16/mqtt.yaml +0 -0
  180. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/24x16/output24x16A.yaml +0 -0
  181. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/32x10/adc.yaml +0 -0
  182. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
  183. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/32x10/event.yaml +0 -0
  184. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/32x10/mqtt.yaml +0 -0
  185. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/32x10/output32x10A.yaml +0 -0
  186. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/48x4/adc.yaml +0 -0
  187. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/48x4/binary_sensor.yaml +0 -0
  188. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/48x4/event.yaml +0 -0
  189. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/48x4/mqtt.yaml +0 -0
  190. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/48x4/output48x4A.yaml +0 -0
  191. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/__init__.py +0 -0
  192. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/can_master.yaml +0 -0
  193. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/can_slave.yaml +0 -0
  194. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover/adc.yaml +0 -0
  195. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover/binary_sensor.yaml +0 -0
  196. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover/cover.yaml +0 -0
  197. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover/event.yaml +0 -0
  198. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover/mqtt.yaml +0 -0
  199. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover/outputCover.yaml +0 -0
  200. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover_mix/adc.yaml +0 -0
  201. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
  202. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover_mix/cover.yaml +0 -0
  203. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover_mix/event.yaml +0 -0
  204. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
  205. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
  206. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/adc.yaml +0 -0
  207. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
  208. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
  209. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
  210. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
  211. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/event_all.yaml +0 -0
  212. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
  213. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
  214. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
  215. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
  216. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
  217. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
  218. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/exceptions.py +0 -0
  219. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/__init__.py +0 -0
  220. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/analog/__init__.py +0 -0
  221. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/analog/adc.py +0 -0
  222. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/can/__init__.py +0 -0
  223. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/can/bridge.py +0 -0
  224. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/can/client.py +0 -0
  225. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/can/interface.py +0 -0
  226. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/can/node.py +0 -0
  227. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/can/node_id.py +0 -0
  228. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/can/test_od.py +0 -0
  229. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/display/__init__.py +0 -0
  230. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/display/early_oled.py +0 -0
  231. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/display/fonts/danube__.ttf +0 -0
  232. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/display/oled.py +0 -0
  233. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/gpio/__init__.py +0 -0
  234. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/gpio/expanders/__init__.py +0 -0
  235. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
  236. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
  237. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
  238. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/gpio/input/__init__.py +0 -0
  239. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/gpio/input/base.py +0 -0
  240. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/gpio/input/manager.py +0 -0
  241. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/i2c/bus.py +0 -0
  242. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/i2c/ina219.py +0 -0
  243. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/i2c/ina219_driver.py +0 -0
  244. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/i2c/mcp9808.py +0 -0
  245. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/i2c/pct2075.py +0 -0
  246. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/onewire/__init__.py +0 -0
  247. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/onewire/dallas.py +0 -0
  248. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/sensor/__init__.py +0 -0
  249. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/sensor/temperature/__init__.py +0 -0
  250. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/sensor/temperature/base.py +0 -0
  251. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
  252. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
  253. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/integration/__init__.py +0 -0
  254. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/integration/homeassistant.py +0 -0
  255. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/integration/interlock.py +0 -0
  256. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/integration/lox_template.py +0 -0
  257. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/__init__.py +0 -0
  258. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/actions.py +0 -0
  259. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/MANIFEST.sha256 +0 -0
  260. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/docker/daemon.json +0 -0
  261. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/docker/nodered/caddy/502.html +0 -0
  262. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/docker/nodered/caddy/init-certs.sh +0 -0
  263. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/docker/nodered/docker-compose.yaml +0 -0
  264. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/docker/nodered/nginx/default.conf +0 -0
  265. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/docker/nodered/node-red/settings.js +0 -0
  266. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/journald/journald.conf +0 -0
  267. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/modules-load.d/onewire.conf +0 -0
  268. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/mosquitto/boneio.conf +0 -0
  269. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/sudoers/boneio +0 -0
  270. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/systemd/boneio-oled-boot.service +0 -0
  271. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/systemd/boneio-oled-shutdown.service +0 -0
  272. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/systemd/boneio.service +0 -0
  273. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/systemd/set-hostname-once.service +0 -0
  274. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/usr-local-bin/set-hostname-once.sh +0 -0
  275. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/usr-sbin/oled_boot_splash.py +0 -0
  276. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/usr-sbin/oled_boot_splash.sh +0 -0
  277. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/usr-sbin/oled_msg.py +0 -0
  278. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/usr-sbin/oled_msg.sh +0 -0
  279. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/assets/wheels/pyyaml-6.0.3-cp313-cp313-linux_armv7l.whl +0 -0
  280. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/bootstrap/boneio-migrate +0 -0
  281. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/bootstrap/install-helper.sh +0 -0
  282. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/bootstrap/sudoers-migrate +0 -0
  283. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/runner.py +0 -0
  284. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/__init__.py +0 -0
  285. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_3_0_baseline.py +0 -0
  286. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_3_1_fix_oled_boot.py +0 -0
  287. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_3_2_cleanup_can_sudoers.py +0 -0
  288. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_4_0_fix_mqtt_sudoers.py +0 -0
  289. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_4_3_oled_shutdown.py +0 -0
  290. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_4_4_caddy.py +0 -0
  291. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_5_0_fix_oled_fifo_permissions.py +0 -0
  292. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_5_1_ufw_lox_udp.py +0 -0
  293. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_5_2_libyaml.py +0 -0
  294. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_5_3_libyaml_retry.py +0 -0
  295. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/migrations/versions/v1_5_4_onewire_modules.py +0 -0
  296. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/__init__.py +0 -0
  297. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/cli.py +0 -0
  298. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/client.py +0 -0
  299. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/coordinator.py +0 -0
  300. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/__init__.py +0 -0
  301. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/energy_meters/dts1964_3f.json +0 -0
  302. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
  303. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
  304. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
  305. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
  306. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
  307. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
  308. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
  309. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/hvac/eht-topventil-plus.json +0 -0
  310. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
  311. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/hvac/thessla.json +0 -0
  312. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/hvac/ventclear.json +0 -0
  313. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/hvac/wanas415.json +0 -0
  314. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/inverters/sofar.json +0 -0
  315. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/other/esp32_relay_x4_modbus.json +0 -0
  316. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/other/n4dsc08.json +0 -0
  317. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/other/r4dcb08.json +0 -0
  318. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -0
  319. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/cwt.json +0 -0
  320. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
  321. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/gdfs.json +0 -0
  322. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/gdfx.json +0 -0
  323. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
  324. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/pt100.json +0 -0
  325. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/qdw90a.json +0 -0
  326. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/sht20.json +0 -0
  327. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/devices/sensors/sht30.json +0 -0
  328. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/__init__.py +0 -0
  329. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/base.py +0 -0
  330. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/derived/__init__.py +0 -0
  331. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/derived/numeric.py +0 -0
  332. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/derived/select.py +0 -0
  333. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/derived/switch.py +0 -0
  334. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/derived/text.py +0 -0
  335. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/sensor/__init__.py +0 -0
  336. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/sensor/binary.py +0 -0
  337. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/sensor/numeric.py +0 -0
  338. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/sensor/text.py +0 -0
  339. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/writeable/__init__.py +0 -0
  340. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/writeable/binary.py +0 -0
  341. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/entities/writeable/numeric.py +0 -0
  342. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/mock_coordinator.py +0 -0
  343. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/modbus/utils.py +0 -0
  344. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/models/__init__.py +0 -0
  345. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/models/actions.py +0 -0
  346. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/models/events.py +0 -0
  347. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/models/files.py +0 -0
  348. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/models/logs.py +0 -0
  349. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/models/mqtt.py +0 -0
  350. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/models/state.py +0 -0
  351. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/actions.yaml +0 -0
  352. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/actions_sensor.yaml +0 -0
  353. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/actions_switch.yaml +0 -0
  354. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/condition.yaml +0 -0
  355. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/filters.yaml +0 -0
  356. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/filters_adc.yaml +0 -0
  357. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/id.yaml +0 -0
  358. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/remote_devices.yaml +0 -0
  359. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/remote_inputs.yaml +0 -0
  360. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/remote_outputs.yaml +0 -0
  361. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/temp_unit.yaml +0 -0
  362. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/schema/update_interval.yaml +0 -0
  363. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/action_validation.py +0 -0
  364. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/dashboard_cards.py +0 -0
  365. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/BindingMatrix-LxACKGJk.js +0 -0
  366. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/ConfigEditor-Db9Hv4K7.js +0 -0
  367. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/EditItemDialog-BBgUejNu.js +0 -0
  368. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/EntityCard-V_dIvm7h.js +0 -0
  369. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/EntityGrid-CSg0J6S3.js +0 -0
  370. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/FormInputToggle-jYwQBCms.js +0 -0
  371. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/HelpLabel-BSTjOtDA.js +0 -0
  372. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/InputsView--0TitNzt.js +0 -0
  373. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/LogViewer-0bOsZFY4.js +0 -0
  374. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/LongPressWrapper-BHOQV7Wq.js +0 -0
  375. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/ModbusView-B65zWo-u.js +0 -0
  376. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/NodeRedView-4hx1AtCh.js +0 -0
  377. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/OutputsView-feRbZLV7.js +0 -0
  378. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/SensorView-BI9r6Khx.js +0 -0
  379. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/Sparkline-BGWlVLtt.js +0 -0
  380. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/SudoPasswordDialog-CdKObBJL.js +0 -0
  381. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/SystemState-Xwy9Q9yE.js +0 -0
  382. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/TemplatesView-BZPOKY7l.js +0 -0
  383. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/Tools--HWg7Etd.js +0 -0
  384. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/UISettings-DrOjn7rw.js +0 -0
  385. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/aiConfig-IRYCBmLm.js +0 -0
  386. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/aiWizardPrompt-D9OJ-cE7.js +0 -0
  387. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/clipboard-CCtx29e-.js +0 -0
  388. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/codicon-ngg6Pgfi.ttf +0 -0
  389. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/css.worker-CvXBzhp8.js +0 -0
  390. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/editor.worker-Cn2oRESe.js +0 -0
  391. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/fa-C9nnJsGR.js +0 -0
  392. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/formatters-zOiGPJLh.js +0 -0
  393. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/gi-DFg4IokC.js +0 -0
  394. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/html.worker-BO6WuOEO.js +0 -0
  395. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/index-Co9Pvhx4.css +0 -0
  396. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/index-DIN8b655.js +0 -0
  397. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/json.worker-BkJRGcCJ.js +0 -0
  398. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/longPress-Dx7OCSyP.js +0 -0
  399. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/modbusDeviceCatalog-L6as-BKo.js +0 -0
  400. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/monaco-61yH0vfd.js +0 -0
  401. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/monaco-Br_kD0ds.css +0 -0
  402. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/rolldown-runtime-QTnfLwEv.js +0 -0
  403. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/select-B2YDgQ4X.js +0 -0
  404. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/tabs-box-Dj36r4_e.js +0 -0
  405. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/ts.worker-B0J26iPs.js +0 -0
  406. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/useTranslation-Dy6J9cmj.js +0 -0
  407. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/utils-C8nShLO6.js +0 -0
  408. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/vendor-IzweXARb.js +0 -0
  409. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-Bd17z0YL.js +0 -0
  410. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/assets/yaml.worker-BKRoXlmz.js +0 -0
  411. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/boneio-192.png +0 -0
  412. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/boneio-512.png +0 -0
  413. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/boneio.svg +0 -0
  414. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
  415. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/index.html +0 -0
  416. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/adc.schema.json +0 -0
  417. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
  418. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/binary_sensor.schema.json +0 -0
  419. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/boneio.schema.json +0 -0
  420. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/can.schema.json +0 -0
  421. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
  422. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
  423. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
  424. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/event.schema.json +0 -0
  425. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/ina219.schema.json +0 -0
  426. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/irrigation.schema.json +0 -0
  427. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
  428. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
  429. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/lox_udp.schema.json +0 -0
  430. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
  431. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
  432. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
  433. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +0 -0
  434. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/mqtt.schema.json +0 -0
  435. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
  436. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/output.schema.json +0 -0
  437. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
  438. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
  439. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
  440. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
  441. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/remote_inputs.schema.json +0 -0
  442. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/remote_outputs.schema.json +0 -0
  443. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
  444. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/template.schema.json +0 -0
  445. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
  446. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
  447. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/sw.js +0 -0
  448. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/frontend-dist/workbox-4918f2f6.js +0 -0
  449. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/hvac_svg_templates.py +0 -0
  450. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/middleware/__init__.py +0 -0
  451. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/middleware/auth.py +0 -0
  452. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/modbus_card_templates.py +0 -0
  453. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/__init__.py +0 -0
  454. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/auth.py +0 -0
  455. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/caddy.py +0 -0
  456. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/can.py +0 -0
  457. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/config.py +0 -0
  458. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/config_actions.py +0 -0
  459. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/config_backups.py +0 -0
  460. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/config_core.py +0 -0
  461. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/config_discovery.py +0 -0
  462. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/config_files.py +0 -0
  463. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/covers.py +0 -0
  464. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/dashboard.py +0 -0
  465. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/dev_fake_device.py +0 -0
  466. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/irrigation.py +0 -0
  467. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/migrations.py +0 -0
  468. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/modbus.py +0 -0
  469. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/mqtt_reference.py +0 -0
  470. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/nodered.py +0 -0
  471. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/outputs.py +0 -0
  472. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/remote_devices.py +0 -0
  473. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/system.py +0 -0
  474. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/templates.py +0 -0
  475. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/timezone_sudoers.py +0 -0
  476. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/tools.py +0 -0
  477. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/routes/update.py +0 -0
  478. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/adc.schema.json +0 -0
  479. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/areas.schema.json +0 -0
  480. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/binary_sensor.schema.json +0 -0
  481. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/boneio.schema.json +0 -0
  482. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/can.schema.json +0 -0
  483. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/cover.schema.json +0 -0
  484. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/dallas.schema.json +0 -0
  485. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/ds2482.schema.json +0 -0
  486. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/event.schema.json +0 -0
  487. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/ina219.schema.json +0 -0
  488. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/irrigation.schema.json +0 -0
  489. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/lm75.schema.json +0 -0
  490. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/logger.schema.json +0 -0
  491. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/lox_udp.schema.json +0 -0
  492. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/mcp23017.schema.json +0 -0
  493. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/mcp9808.schema.json +0 -0
  494. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/modbus.schema.json +0 -0
  495. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/modbus_devices.schema.json +0 -0
  496. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/mqtt.schema.json +0 -0
  497. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/oled.schema.json +0 -0
  498. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/output.schema.json +0 -0
  499. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/output_group.schema.json +0 -0
  500. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/pca9685.schema.json +0 -0
  501. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/pcf8575.schema.json +0 -0
  502. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/remote_devices.schema.json +0 -0
  503. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/remote_inputs.schema.json +0 -0
  504. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/remote_outputs.schema.json +0 -0
  505. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/sensor.schema.json +0 -0
  506. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/template.schema.json +0 -0
  507. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
  508. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/schema/web.schema.json +0 -0
  509. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/services/__init__.py +0 -0
  510. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/services/logs.py +0 -0
  511. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/sudo_rate_limiter.py +0 -0
  512. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/web_server.py +0 -0
  513. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio/webui/websocket_manager.py +0 -0
  514. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio.egg-info/dependency_links.txt +0 -0
  515. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio.egg-info/entry_points.txt +0 -0
  516. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio.egg-info/requires.txt +0 -0
  517. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/boneio.egg-info/top_level.txt +0 -0
  518. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/pyproject.toml +0 -0
  519. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/setup.cfg +0 -0
  520. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/setup.py +0 -0
  521. {boneio-1.5.0.dev31 → boneio-1.5.0.dev33}/tests/test_py313_compatibility.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boneio
3
- Version: 1.5.0.dev31
3
+ Version: 1.5.0.dev33
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
@@ -219,6 +219,7 @@ def filter_cover_extra_data(action_name: str, extra_data: dict) -> dict:
219
219
 
220
220
 
221
221
  INA219 = "ina219"
222
+ INA226 = "ina226"
222
223
  VIRTUAL_ENERGY_SENSOR = "virtual_energy_sensor"
223
224
 
224
225
  # IRRIGATION CONSTS
@@ -98,6 +98,56 @@ def get_config_version(doc: dict) -> int:
98
98
  return 0
99
99
 
100
100
 
101
+ def _has_legacy_fields(doc: dict) -> bool:
102
+ """Check if the config contains deprecated fields that need migration.
103
+
104
+ Used to distinguish between a truly old config (needs migrations)
105
+ and a fresh config that simply lacks config_version.
106
+
107
+ Args:
108
+ doc: Raw config dict.
109
+
110
+ Returns:
111
+ True if deprecated fields are found, False otherwise.
112
+ """
113
+ # v1: nginx_proxy_port or modbus_sensors
114
+ web = doc.get("web")
115
+ if isinstance(web, dict) and "nginx_proxy_port" in web:
116
+ return True
117
+ if "modbus_sensors" in doc:
118
+ return True
119
+
120
+ # v2: float transition values in events/binary_sensors
121
+ for section_key in ("event", "binary_sensor"):
122
+ items = doc.get(section_key)
123
+ if isinstance(items, list):
124
+ for item in items:
125
+ if not isinstance(item, dict):
126
+ continue
127
+ actions = item.get("actions")
128
+ if isinstance(actions, dict):
129
+ for action_list in actions.values():
130
+ if isinstance(action_list, list):
131
+ for action in action_list:
132
+ if isinstance(action, dict):
133
+ val = action.get("transition")
134
+ if isinstance(val, (int, float)):
135
+ return True
136
+
137
+ # v4: inline WLED effects/palettes in remote_devices
138
+ remote_devices = doc.get("remote_devices")
139
+ if isinstance(remote_devices, list):
140
+ for dev in remote_devices:
141
+ if isinstance(dev, dict) and dev.get("protocol") == "wled":
142
+ wled = dev.get("wled")
143
+ if isinstance(wled, dict) and (
144
+ "effects" in wled or "palettes" in wled
145
+ ):
146
+ return True
147
+
148
+ return False
149
+
150
+
101
151
  def run_migrations(
102
152
  doc: dict,
103
153
  from_version: int | None = None,
@@ -120,6 +170,25 @@ def run_migrations(
120
170
  if from_version >= CURRENT_SCHEMA_VERSION:
121
171
  return doc, from_version
122
172
 
173
+ # Fresh config without config_version: check if it actually needs migration.
174
+ # If no deprecated fields exist, this is a new install — skip all migrations
175
+ # and stamp with CURRENT_SCHEMA_VERSION directly.
176
+ if from_version == 0 and not _has_legacy_fields(doc):
177
+ _LOGGER.debug(
178
+ "Fresh config detected (no legacy fields), "
179
+ "setting config_version to %d",
180
+ CURRENT_SCHEMA_VERSION,
181
+ )
182
+ if "boneio" not in doc or not isinstance(doc.get("boneio"), dict):
183
+ doc["boneio"] = {}
184
+ doc["boneio"]["config_version"] = CURRENT_SCHEMA_VERSION
185
+ if config_file:
186
+ try:
187
+ _persist_config_version(config_file, CURRENT_SCHEMA_VERSION)
188
+ except Exception as e:
189
+ _LOGGER.error("Failed to persist config_version: %s", e)
190
+ return doc, CURRENT_SCHEMA_VERSION
191
+
123
192
  applied: list[str] = []
124
193
 
125
194
  for migration in _MIGRATIONS:
@@ -153,8 +153,8 @@ class DisplayManager:
153
153
  else None
154
154
  ),
155
155
  ina219=(
156
- self._manager.sensors.get_ina219_sensors()[0]
157
- if self._manager.sensors.get_ina219_sensors()
156
+ (self._manager.sensors.get_ina219_sensors() or self._manager.sensors.get_ina226_sensors())[0]
157
+ if (self._manager.sensors.get_ina219_sensors() or self._manager.sensors.get_ina226_sensors())
158
158
  else None
159
159
  ),
160
160
  extra_sensors=extra_sensors,
@@ -19,6 +19,7 @@ from boneio.const import (
19
19
  FILTERS,
20
20
  ID,
21
21
  INA219,
22
+ INA226,
22
23
  LM75,
23
24
  MCP_TEMP_9808,
24
25
  ON,
@@ -79,6 +80,7 @@ class SensorManager:
79
80
  self._manager = manager
80
81
  self._temp_sensors: list[PCT2075 | MCP9808 | DallasSensor] = []
81
82
  self._ina219_sensors = []
83
+ self._ina226_sensors = []
82
84
  self._adc_sensors = []
83
85
  self._dallas_sensors: list[DallasSensor] = []
84
86
  self._system_sensors = []
@@ -88,15 +90,17 @@ class SensorManager:
88
90
  # Configure all sensor types
89
91
  self._configure_temp_sensors(sensors=sensors)
90
92
  self._configure_ina219_sensors(sensors=sensors)
93
+ self._configure_ina226_sensors(sensors=sensors)
91
94
  self._configure_dallas_sensors(dallas=dallas, sensors=sensors.get(ONEWIRE))
92
95
  self._configure_adc(adc_list=adc)
93
96
  self._configure_system_sensors()
94
97
  # Note: virtual_energy_sensors are configured after outputs are ready
95
98
 
96
99
  _LOGGER.info(
97
- "SensorManager initialized with %d temp sensors, %d INA219, %d ADC, %d Dallas, %d system",
100
+ "SensorManager initialized with %d temp sensors, %d INA219, %d INA226, %d ADC, %d Dallas, %d system",
98
101
  len(self._temp_sensors),
99
102
  len(self._ina219_sensors),
103
+ len(self._ina226_sensors),
100
104
  len(self._adc_sensors),
101
105
  len(self._dallas_sensors),
102
106
  len(self._system_sensors),
@@ -251,6 +255,76 @@ class SensorManager:
251
255
  )
252
256
  return None
253
257
 
258
+ # -------------------------------------------------------------------------
259
+ # INA226 Power Sensors (boneIO v1.0)
260
+ # -------------------------------------------------------------------------
261
+
262
+ def _configure_ina226_sensors(self, sensors: dict) -> None:
263
+ """Configure INA226 power monitoring sensors.
264
+
265
+ Args:
266
+ sensors: Dictionary of sensor configurations
267
+ """
268
+ if not sensors.get(INA226):
269
+ return
270
+
271
+ for sensor_config in sensors[INA226]:
272
+ ina226 = self._create_ina226_sensor(config=sensor_config)
273
+ if ina226:
274
+ self._ina226_sensors.append(ina226)
275
+
276
+ def _create_ina226_sensor(self, config: dict):
277
+ """Create INA226 sensor instance.
278
+
279
+ Args:
280
+ config: Sensor configuration dictionary
281
+
282
+ Returns:
283
+ INA226 sensor instance or None on error
284
+ """
285
+ from boneio.hardware.i2c import INA226
286
+
287
+ address = config[ADDRESS]
288
+ id = config.get(ID, str(address)).replace(" ", "")
289
+
290
+ try:
291
+ ina226 = INA226(
292
+ id=id,
293
+ address=address,
294
+ sensors=config.get("sensors", []),
295
+ r_shunt=config.get("r_shunt", 0.05),
296
+ max_current=config.get("max_current", 1.5),
297
+ manager=self._manager,
298
+ message_bus=self._manager._message_bus,
299
+ topic_prefix=self._manager._topic_prefix,
300
+ update_interval=config.get(UPDATE_INTERVAL, TimePeriod(seconds=60)),
301
+ )
302
+ # Send HA autodiscovery for each sub-sensor
303
+ for sensor in ina226.sensors.values():
304
+ payload = ha_sensor_ina_availabilty_message(
305
+ id=sensor.id,
306
+ name=sensor.name,
307
+ config_helper=self._manager._config_helper,
308
+ unit_of_measurement=sensor.unit_of_measurement,
309
+ device_class=sensor.device_class,
310
+ )
311
+ self._manager.publish_ha_discovery(id=sensor.id, ha_type=SENSOR, payload=payload)
312
+ return ina226
313
+ except I2CError as err:
314
+ _LOGGER.error("Can't configure INA226 sensor: %s", err)
315
+ self._manager._hardware_errors.append(
316
+ {
317
+ "type": "sensor",
318
+ "sensor_type": "ina226",
319
+ "id": id,
320
+ "name": id,
321
+ "address": address,
322
+ "error": str(err),
323
+ "message": f"INA226 sensor at address 0x{address:02X}: {err}",
324
+ }
325
+ )
326
+ return None
327
+
254
328
  # -------------------------------------------------------------------------
255
329
  # Dallas 1-Wire Sensors
256
330
  # -------------------------------------------------------------------------
@@ -808,6 +882,14 @@ class SensorManager:
808
882
  """
809
883
  return self._ina219_sensors
810
884
 
885
+ def get_ina226_sensors(self) -> list:
886
+ """Get all INA226 sensors.
887
+
888
+ Returns:
889
+ List of INA226 sensors
890
+ """
891
+ return self._ina226_sensors
892
+
811
893
  def get_adc_sensors(self) -> list:
812
894
  """Get all ADC sensors.
813
895
 
@@ -1361,6 +1443,18 @@ class SensorManager:
1361
1443
  )
1362
1444
  self._manager.publish_ha_discovery(id=sub.id, ha_type=SENSOR, payload=payload)
1363
1445
 
1446
+ # INA226 power sensors
1447
+ for ina in self._ina226_sensors:
1448
+ for sub in ina.sensors.values():
1449
+ payload = ha_sensor_ina_availabilty_message(
1450
+ id=sub.id,
1451
+ name=sub.name,
1452
+ config_helper=self._manager._config_helper,
1453
+ unit_of_measurement=sub.unit_of_measurement,
1454
+ device_class=sub.device_class,
1455
+ )
1456
+ self._manager.publish_ha_discovery(id=sub.id, ha_type=SENSOR, payload=payload)
1457
+
1364
1458
  # Dallas 1-Wire sensors
1365
1459
  for sensor in self._dallas_sensors:
1366
1460
  payload = ha_sensor_temp_availabilty_message(
@@ -25,6 +25,7 @@ binary_sensor: !include binary_sensor.yaml
25
25
  output: !include output24x16A.yaml
26
26
 
27
27
  boneio:
28
+ config_version: 4
28
29
  name: "boneIO Black 24x16A"
29
30
  version: 0.8
30
31
  device_type: "24x16A"
@@ -25,6 +25,7 @@ binary_sensor: !include binary_sensor.yaml
25
25
  output: !include output32x10A.yaml
26
26
 
27
27
  boneio:
28
+ config_version: 4
28
29
  name: "boneIO Black 32x10A"
29
30
  version: 0.8
30
31
  device_type: "32x10A"
@@ -25,6 +25,7 @@ binary_sensor: !include binary_sensor.yaml
25
25
  output: !include output48x4A.yaml
26
26
 
27
27
  boneio:
28
+ config_version: 4
28
29
  name: "boneIO Black 48x4A"
29
30
  version: 0.8
30
31
  device_type: "48x4A"
@@ -26,6 +26,7 @@ output: !include outputCover.yaml
26
26
  cover: !include cover.yaml
27
27
 
28
28
  boneio:
29
+ config_version: 4
29
30
  name: "boneIO Black Cover"
30
31
  version: 0.8
31
32
  device_type: "cover"
@@ -26,6 +26,7 @@ output: !include outputCoverMix.yaml
26
26
  cover: !include cover.yaml
27
27
 
28
28
  boneio:
29
+ config_version: 4
29
30
  name: "boneIO Black Cover Mix"
30
31
  version: 0.8
31
32
  device_type: "Cover Mix"
@@ -3,11 +3,12 @@
3
3
  This module provides I2C bus support and I2C-based sensors:
4
4
  - SMBus2I2C wrapper for I2C communication
5
5
  - Temperature sensors (PCT2075/LM75, MCP9808)
6
- - Power monitoring (INA219)
6
+ - Power monitoring (INA219 for v0.8, INA226 for v1.0)
7
7
  """
8
8
 
9
9
  from boneio.hardware.i2c.bus import SMBus2I2C
10
10
  from boneio.hardware.i2c.ina219 import INA219, INA219Sensor
11
+ from boneio.hardware.i2c.ina226 import INA226, INA226Sensor
11
12
  from boneio.hardware.i2c.mcp9808 import MCP9808
12
13
  from boneio.hardware.i2c.pct2075 import PCT2075
13
14
 
@@ -20,4 +21,6 @@ __all__ = [
20
21
  # Power monitoring
21
22
  "INA219",
22
23
  "INA219Sensor",
24
+ "INA226",
25
+ "INA226Sensor",
23
26
  ]
@@ -0,0 +1,260 @@
1
+ """INA226 power monitoring sensor driver.
2
+
3
+ This module provides support for INA226 current/voltage/power monitoring sensor.
4
+ The INA226 is a high-side/low-side current shunt and power monitor with I2C
5
+ interface, used on boneIO Black v1.0 boards (replacing INA219 from v0.8).
6
+
7
+ Key improvements over INA219:
8
+ - Bus voltage range: 0–36V (vs 0–26V)
9
+ - Bus voltage resolution: 1.25 mV (vs 4 mV)
10
+ - Internal power register (no need for V×I computation)
11
+ """
12
+
13
+ from __future__ import annotations
14
+
15
+ import asyncio
16
+ import logging
17
+ import time
18
+ from datetime import datetime
19
+
20
+ from boneio.const import SENSOR, STATE
21
+ from boneio.core.messaging import BasicMqtt
22
+ from boneio.core.utils import AsyncUpdater, Filter
23
+ from boneio.exceptions import I2CError
24
+ from boneio.hardware.i2c.ina226_driver import INA226_I2C
25
+ from boneio.models import SensorState
26
+ from boneio.models.events import SensorEvent
27
+
28
+ _LOGGER = logging.getLogger(__name__)
29
+
30
+ # Unit conversion for different measurement types
31
+ UNIT_CONVERTER = {"current": "A", "power": "W", "voltage": "V"}
32
+
33
+
34
+ class INA226Sensor(BasicMqtt, Filter):
35
+ """Single measurement from INA226 sensor.
36
+
37
+ This class represents one measurement type (current, voltage, or power)
38
+ from an INA226 sensor. Multiple INA226Sensor instances are typically
39
+ managed by a single INA226 coordinator.
40
+
41
+ Args:
42
+ device_class: Type of measurement ('current', 'voltage', or 'power')
43
+ filters: List of filter expressions to apply
44
+ state: Initial state value
45
+ **kwargs: Additional arguments (name, id, message_bus, etc.)
46
+ """
47
+
48
+ def __init__(
49
+ self, device_class: str, filters: list, state: float | None, **kwargs
50
+ ) -> None:
51
+ """Initialize INA226 sensor."""
52
+ super().__init__(topic_type=SENSOR, **kwargs)
53
+ self._unit_of_measurement = UNIT_CONVERTER[device_class]
54
+ self._device_class = device_class
55
+ self._filters = filters
56
+ self._raw_state = state
57
+ self._timestamp = time.time()
58
+ self._state = (
59
+ self._apply_filters(value=self._raw_state) if self._raw_state else None
60
+ )
61
+
62
+ @property
63
+ def raw_state(self) -> float | None:
64
+ """Get raw unfiltered state value.
65
+
66
+ Returns:
67
+ Raw measurement value or None
68
+ """
69
+ return self._raw_state
70
+
71
+ @raw_state.setter
72
+ def raw_state(self, value: float) -> None:
73
+ """Set raw state value.
74
+
75
+ Args:
76
+ value: New raw measurement value
77
+ """
78
+ self._raw_state = value
79
+
80
+ @property
81
+ def state(self) -> float | None:
82
+ """Get filtered state value.
83
+
84
+ Returns:
85
+ Filtered measurement value or None
86
+ """
87
+ return self._state
88
+
89
+ @property
90
+ def device_class(self) -> str:
91
+ """Get device class (measurement type).
92
+
93
+ Returns:
94
+ Device class string ('current', 'voltage', or 'power')
95
+ """
96
+ return self._device_class
97
+
98
+ @property
99
+ def unit_of_measurement(self) -> str:
100
+ """Get unit of measurement.
101
+
102
+ Returns:
103
+ Unit string ('A', 'V', or 'W')
104
+ """
105
+ return self._unit_of_measurement
106
+
107
+ @property
108
+ def last_timestamp(self) -> float:
109
+ """Get timestamp of last update.
110
+
111
+ Returns:
112
+ Unix timestamp
113
+ """
114
+ return self._timestamp
115
+
116
+ def update(self, timestamp: float) -> None:
117
+ """Update sensor state and publish to MQTT.
118
+
119
+ Args:
120
+ timestamp: Current timestamp
121
+ """
122
+ _state = self._apply_filters(value=self._raw_state) if self._raw_state else None
123
+ if not _state:
124
+ return
125
+ self._state = _state
126
+ self._timestamp = timestamp
127
+ self._message_bus.send_message(
128
+ topic=self._send_topic,
129
+ payload={STATE: self.state},
130
+ )
131
+
132
+
133
+ class INA226(AsyncUpdater):
134
+ """INA226 power monitoring sensor coordinator.
135
+
136
+ This class manages an INA226 sensor and its multiple measurement types
137
+ (current, voltage, power). It periodically reads values from the sensor
138
+ and updates individual INA226Sensor instances.
139
+
140
+ Features:
141
+ - High-side/low-side current sensing
142
+ - 0–36V bus voltage measurement (1.25 mV resolution)
143
+ - Internal power calculation (more accurate than V×I)
144
+ - I2C interface (address: 0x40–0x4F)
145
+ - 16-bit ADC with configurable averaging
146
+
147
+ Args:
148
+ address: I2C address of the sensor (default: 0x40)
149
+ id: Sensor identifier
150
+ sensors: List of sensor configurations (device_class, id, filters)
151
+ r_shunt: Shunt resistor value in Ohms (default: 0.05 for boneIO v1.0)
152
+ max_current: Maximum expected current in A (default: 1.5)
153
+ **kwargs: Additional arguments (manager, update_interval, etc.)
154
+ """
155
+
156
+ def __init__(
157
+ self,
158
+ address: int,
159
+ id: str,
160
+ sensors: list[dict] | None = None,
161
+ r_shunt: float = 0.05,
162
+ max_current: float = 1.5,
163
+ **kwargs,
164
+ ) -> None:
165
+ """Initialize INA226 sensor coordinator.
166
+
167
+ Raises:
168
+ I2CError: If sensor is not found or communication fails
169
+ """
170
+ if sensors is None:
171
+ sensors = []
172
+ self._loop = asyncio.get_event_loop()
173
+ self._sensors: dict[str, INA226Sensor] = {}
174
+ self._id = id
175
+
176
+ # Initialize hardware sensor with error handling
177
+ try:
178
+ self._ina = INA226_I2C(
179
+ address=address,
180
+ r_shunt=r_shunt,
181
+ max_current=max_current,
182
+ )
183
+ except OSError as err:
184
+ raise I2CError(
185
+ f"Failed to initialize INA226 at address 0x{address:02X}: {err}"
186
+ ) from err
187
+
188
+ # Create individual sensor instances for each measurement type
189
+ for sensor in sensors:
190
+ _name = sensor["id"]
191
+ _id = f"{id}{_name.replace(' ', '')}"
192
+ self._sensors[sensor["device_class"]] = INA226Sensor(
193
+ device_class=sensor["device_class"],
194
+ filters=sensor.get("filters", []),
195
+ state=None,
196
+ name=_name,
197
+ id=_id,
198
+ **kwargs,
199
+ )
200
+
201
+ AsyncUpdater.__init__(self, **kwargs)
202
+ _LOGGER.info(
203
+ "Configured INA226 on address 0x%02X with %d sensors "
204
+ "(R_SHUNT=%.3fΩ, I_max=%.1fA)",
205
+ address, len(self._sensors), r_shunt, max_current,
206
+ )
207
+
208
+ @property
209
+ def id(self) -> str:
210
+ """Get sensor coordinator ID.
211
+
212
+ Returns:
213
+ Coordinator identifier string
214
+ """
215
+ return self._id
216
+
217
+ @property
218
+ def sensors(self) -> dict[str, INA226Sensor]:
219
+ """Get dictionary of managed sensors.
220
+
221
+ Returns:
222
+ Dictionary mapping device_class to INA226Sensor instances
223
+ """
224
+ return self._sensors
225
+
226
+ async def async_update(self, timestamp: datetime) -> None:
227
+ """Read sensor values and update all managed sensors.
228
+
229
+ This method is called periodically by AsyncUpdater. It reads
230
+ current, voltage, and power from the INA226 and updates the
231
+ corresponding sensor instances.
232
+
233
+ Args:
234
+ timestamp: Current timestamp
235
+ """
236
+ for k, sensor in self._sensors.items():
237
+ try:
238
+ value = getattr(self._ina, k)
239
+ _LOGGER.debug(
240
+ "Fetched INA226 value: %s = %s %s",
241
+ k, value, sensor.unit_of_measurement,
242
+ )
243
+
244
+ if sensor.raw_state != value:
245
+ sensor.raw_state = value
246
+ sensor.update(timestamp=timestamp)
247
+
248
+ # Trigger event on EventBus
249
+ self.manager.event_bus.trigger_event(SensorEvent(
250
+ entity_id=sensor.id,
251
+ state=SensorState(
252
+ id=sensor.id,
253
+ name=sensor.name,
254
+ state=sensor.state,
255
+ unit=sensor.unit_of_measurement,
256
+ timestamp=sensor.last_timestamp,
257
+ ),
258
+ ))
259
+ except Exception as err:
260
+ _LOGGER.error("Error reading INA226 %s: %s", k, err)