boneIO 1.2.0.dev23__tar.gz → 1.2.0.dev25__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 (447) hide show
  1. {boneio-1.2.0.dev23/boneio.egg-info → boneio-1.2.0.dev25}/PKG-INFO +1 -1
  2. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/cover/cover.py +8 -0
  3. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/const.py +27 -0
  4. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/covers.py +5 -3
  5. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/manager.py +4 -1
  6. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/remote.py +1 -0
  7. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/remote/esphome.py +41 -13
  8. boneio-1.2.0.dev25/boneio/version.py +2 -0
  9. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25/boneio.egg-info}/PKG-INFO +1 -1
  10. boneio-1.2.0.dev23/boneio/version.py +0 -2
  11. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/LICENSE +0 -0
  12. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/MANIFEST.in +0 -0
  13. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/README.md +0 -0
  14. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/__init__.py +0 -0
  15. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.2/input.yaml +0 -0
  16. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.2/output_24_16.yaml +0 -0
  17. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.2/output_32_10.yaml +0 -0
  18. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.2/output_32_5.yaml +0 -0
  19. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.2/output_cover.yaml +0 -0
  20. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
  21. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.3/input.yaml +0 -0
  22. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.3/output_24_16.yaml +0 -0
  23. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.3/output_32_10.yaml +0 -0
  24. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.3/output_32_5.yaml +0 -0
  25. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.3/output_cover.yaml +0 -0
  26. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
  27. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.4/input.yaml +0 -0
  28. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.4/output_24_16.yaml +0 -0
  29. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.4/output_32_10.yaml +0 -0
  30. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.4/output_32_5.yaml +0 -0
  31. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.4/output_cover.yaml +0 -0
  32. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
  33. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.5/input.yaml +0 -0
  34. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.5/output_24_16.yaml +0 -0
  35. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.5/output_32_10.yaml +0 -0
  36. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.5/output_cover.yaml +0 -0
  37. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
  38. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.6/input.yaml +0 -0
  39. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.6/output_24_16.yaml +0 -0
  40. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.6/output_32_10.yaml +0 -0
  41. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.6/output_cover.yaml +0 -0
  42. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
  43. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.7/input.yaml +0 -0
  44. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.7/output_24_16.yaml +0 -0
  45. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.7/output_32_10.yaml +0 -0
  46. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.7/output_cover.yaml +0 -0
  47. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
  48. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.8/input.yaml +0 -0
  49. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.8/output_24_16.yaml +0 -0
  50. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.8/output_32_10.yaml +0 -0
  51. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.8/output_cover.yaml +0 -0
  52. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
  53. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/bonecli.py +0 -0
  54. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/__init__.py +0 -0
  55. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/cover/__init__.py +0 -0
  56. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/cover/time_based.py +0 -0
  57. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/cover/venetian.py +0 -0
  58. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/group/__init__.py +0 -0
  59. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/group/output_group.py +0 -0
  60. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/input/__init__.py +0 -0
  61. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/input/binary_sensor.py +0 -0
  62. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/input/detectors.py +0 -0
  63. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/input/event.py +0 -0
  64. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/output/__init__.py +0 -0
  65. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/output/basic.py +0 -0
  66. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/output/mcp.py +0 -0
  67. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/output/pca.py +0 -0
  68. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/output/pcf.py +0 -0
  69. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/sensor/__init__.py +0 -0
  70. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/sensor/virtual_energy.py +0 -0
  71. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/template/__init__.py +0 -0
  72. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/template/alarm_panel.py +0 -0
  73. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/template/gate_cover.py +0 -0
  74. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/components/template/thermostat.py +0 -0
  75. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/__init__.py +0 -0
  76. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/cloud/__init__.py +0 -0
  77. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/cloud/data/__init__.py +0 -0
  78. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
  79. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/cloud/data/docker-compose.yaml +0 -0
  80. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
  81. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/cloud/registration.py +0 -0
  82. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/cloud/secrets.py +0 -0
  83. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/config/__init__.py +0 -0
  84. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/config/config_helper.py +0 -0
  85. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/config/migrations/__init__.py +0 -0
  86. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/config/migrations/v1_proxy_port.py +0 -0
  87. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/config/migrations/v2_transition.py +0 -0
  88. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/config/package-lock.json +0 -0
  89. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/config/package.json +0 -0
  90. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/config/schema_converter.py +0 -0
  91. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/config/yaml_util.py +0 -0
  92. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/discovery.py +0 -0
  93. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/events/__init__.py +0 -0
  94. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/events/bus.py +0 -0
  95. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/__init__.py +0 -0
  96. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/display.py +0 -0
  97. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/inputs.py +0 -0
  98. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/modbus.py +0 -0
  99. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/outputs.py +0 -0
  100. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/sensors.py +0 -0
  101. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/templates/__init__.py +0 -0
  102. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/templates/alarm.py +0 -0
  103. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/templates/gate_cover.py +0 -0
  104. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/templates/thermostat.py +0 -0
  105. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/templates.py +0 -0
  106. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/manager/update.py +0 -0
  107. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/messaging/__init__.py +0 -0
  108. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/messaging/basic.py +0 -0
  109. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/messaging/basic_mqtt.py +0 -0
  110. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/messaging/local.py +0 -0
  111. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/messaging/mqtt.py +0 -0
  112. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/messaging/queue.py +0 -0
  113. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/remote/__init__.py +0 -0
  114. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/remote/base.py +0 -0
  115. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/remote/mqtt.py +0 -0
  116. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/remote/wled.py +0 -0
  117. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/sensor/__init__.py +0 -0
  118. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/sensor/base.py +0 -0
  119. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/sensor/system.py +0 -0
  120. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/state/__init__.py +0 -0
  121. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/state/manager.py +0 -0
  122. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/system/__init__.py +0 -0
  123. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/system/host_data.py +0 -0
  124. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/system/monitor.py +0 -0
  125. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/utils/__init__.py +0 -0
  126. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/utils/async_updater.py +0 -0
  127. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/utils/filter.py +0 -0
  128. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/utils/font_util.py +0 -0
  129. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/utils/logger.py +0 -0
  130. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/utils/timeperiod.py +0 -0
  131. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/core/utils/util.py +0 -0
  132. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/24x16/adc.yaml +0 -0
  133. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
  134. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/24x16/config.yaml +0 -0
  135. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/24x16/event.yaml +0 -0
  136. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/24x16/mqtt.yaml +0 -0
  137. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/24x16/output24x16A.yaml +0 -0
  138. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/32x10/adc.yaml +0 -0
  139. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
  140. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/32x10/config.yaml +0 -0
  141. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/32x10/event.yaml +0 -0
  142. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/32x10/mqtt.yaml +0 -0
  143. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/32x10/output32x10A.yaml +0 -0
  144. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/__init__.py +0 -0
  145. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover/adc.yaml +0 -0
  146. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover/binary_sensor.yaml +0 -0
  147. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover/config.yaml +0 -0
  148. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover/cover.yaml +0 -0
  149. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover/event.yaml +0 -0
  150. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover/mqtt.yaml +0 -0
  151. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover/outputCover.yaml +0 -0
  152. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover_mix/adc.yaml +0 -0
  153. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
  154. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover_mix/config.yaml +0 -0
  155. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover_mix/cover.yaml +0 -0
  156. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover_mix/event.yaml +0 -0
  157. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
  158. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
  159. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/adc.yaml +0 -0
  160. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
  161. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
  162. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
  163. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
  164. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/event_all.yaml +0 -0
  165. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
  166. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
  167. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
  168. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
  169. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
  170. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
  171. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/exceptions.py +0 -0
  172. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/__init__.py +0 -0
  173. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/analog/__init__.py +0 -0
  174. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/analog/adc.py +0 -0
  175. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/display/__init__.py +0 -0
  176. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/display/fonts/danube__.ttf +0 -0
  177. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/display/oled.py +0 -0
  178. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/gpio/__init__.py +0 -0
  179. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/gpio/expanders/__init__.py +0 -0
  180. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
  181. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
  182. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
  183. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/gpio/input/__init__.py +0 -0
  184. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/gpio/input/base.py +0 -0
  185. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/gpio/input/manager.py +0 -0
  186. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/i2c/__init__.py +0 -0
  187. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/i2c/bus.py +0 -0
  188. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/i2c/ina219.py +0 -0
  189. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/i2c/ina219_driver.py +0 -0
  190. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/i2c/mcp9808.py +0 -0
  191. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/i2c/pct2075.py +0 -0
  192. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/onewire/__init__.py +0 -0
  193. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/onewire/bus.py +0 -0
  194. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/onewire/dallas.py +0 -0
  195. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/onewire/ds2482.py +0 -0
  196. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/sensor/__init__.py +0 -0
  197. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/sensor/temperature/__init__.py +0 -0
  198. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/sensor/temperature/base.py +0 -0
  199. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
  200. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
  201. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/integration/__init__.py +0 -0
  202. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/integration/homeassistant.py +0 -0
  203. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/integration/interlock.py +0 -0
  204. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/__init__.py +0 -0
  205. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/cli.py +0 -0
  206. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/client.py +0 -0
  207. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/coordinator.py +0 -0
  208. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/__init__.py +0 -0
  209. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
  210. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
  211. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
  212. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
  213. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
  214. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
  215. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
  216. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
  217. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/hvac/ventclear.json +0 -0
  218. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/inverters/sofar.json +0 -0
  219. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/inverters/thessla.json +0 -0
  220. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/other/n4dsc08.json +0 -0
  221. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/other/r4dcb08.json +0 -0
  222. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/other/wanas415.json +0 -0
  223. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -0
  224. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/cwt.json +0 -0
  225. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/dts1964_3f.json +0 -0
  226. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
  227. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/gdfs.json +0 -0
  228. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/gdfx.json +0 -0
  229. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
  230. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/pt100.json +0 -0
  231. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/sht20.json +0 -0
  232. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/devices/sensors/sht30.json +0 -0
  233. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/__init__.py +0 -0
  234. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/base.py +0 -0
  235. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/derived/__init__.py +0 -0
  236. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/derived/numeric.py +0 -0
  237. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/derived/select.py +0 -0
  238. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/derived/switch.py +0 -0
  239. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/derived/text.py +0 -0
  240. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/sensor/__init__.py +0 -0
  241. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/sensor/binary.py +0 -0
  242. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/sensor/numeric.py +0 -0
  243. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/sensor/text.py +0 -0
  244. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/writeable/__init__.py +0 -0
  245. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/writeable/binary.py +0 -0
  246. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/entities/writeable/numeric.py +0 -0
  247. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/modbus/utils.py +0 -0
  248. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/models/__init__.py +0 -0
  249. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/models/actions.py +0 -0
  250. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/models/events.py +0 -0
  251. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/models/files.py +0 -0
  252. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/models/logs.py +0 -0
  253. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/models/mqtt.py +0 -0
  254. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/models/state.py +0 -0
  255. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/runner.py +0 -0
  256. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/actions.yaml +0 -0
  257. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/actions_sensor.yaml +0 -0
  258. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/actions_switch.yaml +0 -0
  259. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/filters.yaml +0 -0
  260. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/filters_adc.yaml +0 -0
  261. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/id.yaml +0 -0
  262. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/remote_devices.yaml +0 -0
  263. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/schema.yaml +0 -0
  264. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/temp_unit.yaml +0 -0
  265. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/schema/update_interval.yaml +0 -0
  266. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/app.py +0 -0
  267. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/abap-CRCWOmpq.js +0 -0
  268. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/apex-DnsZk_dE.js +0 -0
  269. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/azcli-1IWB1ccx.js +0 -0
  270. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/bat-DPkNLes8.js +0 -0
  271. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/bicep-Corcdgou.js +0 -0
  272. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/cameligo-CGrWLZr3.js +0 -0
  273. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/clojure-D9WOWImG.js +0 -0
  274. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/codicon-DCmgc-ay.ttf +0 -0
  275. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/coffee-B7EJu28W.js +0 -0
  276. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/cpp-SEyurbux.js +0 -0
  277. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/csharp-BoL64M5l.js +0 -0
  278. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/csp-C46ZqvIl.js +0 -0
  279. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/css-DQU6DXDx.js +0 -0
  280. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/cssMode-CNfUxfgr.js +0 -0
  281. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/cypher-D84EuPTj.js +0 -0
  282. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/dart-D8lhlL1r.js +0 -0
  283. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/dockerfile-DLk6rpji.js +0 -0
  284. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/ecl-BO6FnfXk.js +0 -0
  285. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/editor.worker-B4pQIWZD.js +0 -0
  286. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/elixir-BRjLKONM.js +0 -0
  287. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/flow9-Cac8vKd7.js +0 -0
  288. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/freemarker2-DWjclh22.js +0 -0
  289. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/fsharp-fd1GTHhf.js +0 -0
  290. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/go-O9LJTZXk.js +0 -0
  291. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/graphql-LQdxqEYJ.js +0 -0
  292. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/handlebars-i2k_xWAf.js +0 -0
  293. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/hcl-DxDQ3s82.js +0 -0
  294. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/html-5waqLOui.js +0 -0
  295. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/htmlMode-Bwf-0-Bn.js +0 -0
  296. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/index-BkP1mrhT.css +0 -0
  297. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/index-CRX9Ew8L.js +0 -0
  298. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/ini-BvajGCUy.js +0 -0
  299. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/java-SYsfObOQ.js +0 -0
  300. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/javascript-Kj8C4y4i.js +0 -0
  301. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/json.worker-aFakAbRR.js +0 -0
  302. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/jsonMode-CHLWjsUA.js +0 -0
  303. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/julia-DQXNmw_w.js +0 -0
  304. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/kotlin-qQ0MG-9I.js +0 -0
  305. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/less-GGFNNJHn.js +0 -0
  306. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/lexon-Canl7DCW.js +0 -0
  307. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/liquid-3gxkDJwa.js +0 -0
  308. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/lua-D28Ae8-K.js +0 -0
  309. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/m3-DPitgjJI.js +0 -0
  310. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/markdown-B811l8j2.js +0 -0
  311. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/mdx-CvlTe6nf.js +0 -0
  312. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/mips-CdjsipkG.js +0 -0
  313. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/msdax-CYqgjx_P.js +0 -0
  314. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/mysql-BHd6q0vd.js +0 -0
  315. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/objective-c-B1aVtJYH.js +0 -0
  316. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/pascal-BhNW15KB.js +0 -0
  317. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/pascaligo-5jv8CcQD.js +0 -0
  318. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/perl-DlYyT36c.js +0 -0
  319. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/pgsql-Dy0bjov7.js +0 -0
  320. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/php-120yhfDK.js +0 -0
  321. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/pla-CjnFlu4u.js +0 -0
  322. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/postiats-CQpG440k.js +0 -0
  323. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/powerquery-DdJtto1Z.js +0 -0
  324. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/powershell-Bu_VLpJB.js +0 -0
  325. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/protobuf-IBS6jZEB.js +0 -0
  326. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/pug-kFxLfcjb.js +0 -0
  327. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/python-BK_KcnMp.js +0 -0
  328. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/qsharp-q7JyzKFN.js +0 -0
  329. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/r-BIFz-_sK.js +0 -0
  330. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/razor-DiDDF06t.js +0 -0
  331. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/redis-CHOsPHWR.js +0 -0
  332. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/redshift-CBifECDb.js +0 -0
  333. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/restructuredtext-CghPJEOS.js +0 -0
  334. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/ruby-CYWGW-b1.js +0 -0
  335. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/rust-DMDD0SHb.js +0 -0
  336. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/sb-BYAiYHFx.js +0 -0
  337. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/scala-Bqvq8jcR.js +0 -0
  338. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/scheme-Dhb-2j9p.js +0 -0
  339. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/scss-CTwUZ5N7.js +0 -0
  340. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/shell-CsDZo4DB.js +0 -0
  341. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/solidity-CME5AdoB.js +0 -0
  342. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/sophia-RYC1BQQz.js +0 -0
  343. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/sparql-KEyrF7De.js +0 -0
  344. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/sql-BdTr02Mf.js +0 -0
  345. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/st-C7iG7M4S.js +0 -0
  346. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/swift-D7IUmUK8.js +0 -0
  347. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/systemverilog-DgMryOEJ.js +0 -0
  348. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/tcl-PloMZuKG.js +0 -0
  349. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/tsMode-B_ZhXLqZ.js +0 -0
  350. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/twig-BfRIq3la.js +0 -0
  351. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/typescript-FjIJU2QD.js +0 -0
  352. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/typespec-CzxlYoT_.js +0 -0
  353. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/vb-BwAE3J76.js +0 -0
  354. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/wgsl-B_1kOXbF.js +0 -0
  355. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-BIl4cyR9.js +0 -0
  356. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/xml-DiHsfIX6.js +0 -0
  357. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/yaml-GoVS_T5n.js +0 -0
  358. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/assets/yaml.worker-DBeHcBRc.js +0 -0
  359. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/boneio-192.png +0 -0
  360. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/boneio-512.png +0 -0
  361. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/boneio.svg +0 -0
  362. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
  363. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/index.html +0 -0
  364. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/adc.schema.json +0 -0
  365. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
  366. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/binary_sensor.schema.json +0 -0
  367. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/boneio.schema.json +0 -0
  368. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/config.schema.json +0 -0
  369. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
  370. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
  371. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
  372. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/event.schema.json +0 -0
  373. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/ina219.schema.json +0 -0
  374. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
  375. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
  376. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
  377. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
  378. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
  379. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +0 -0
  380. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/mqtt.schema.json +0 -0
  381. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
  382. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/output.schema.json +0 -0
  383. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
  384. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
  385. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
  386. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
  387. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
  388. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/template.schema.json +0 -0
  389. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
  390. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
  391. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/sw.js +0 -0
  392. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/frontend-dist/workbox-226dbdbf.js +0 -0
  393. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/middleware/__init__.py +0 -0
  394. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/middleware/auth.py +0 -0
  395. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/__init__.py +0 -0
  396. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/auth.py +0 -0
  397. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/caddy.py +0 -0
  398. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/config.py +0 -0
  399. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/covers.py +0 -0
  400. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/modbus.py +0 -0
  401. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/outputs.py +0 -0
  402. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/remote_devices.py +0 -0
  403. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/sensors.py +0 -0
  404. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/system.py +0 -0
  405. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/templates.py +0 -0
  406. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/tools.py +0 -0
  407. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/routes/update.py +0 -0
  408. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/adc.schema.json +0 -0
  409. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/areas.schema.json +0 -0
  410. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/binary_sensor.schema.json +0 -0
  411. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/boneio.schema.json +0 -0
  412. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/config.schema.json +0 -0
  413. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/cover.schema.json +0 -0
  414. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/dallas.schema.json +0 -0
  415. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/ds2482.schema.json +0 -0
  416. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/event.schema.json +0 -0
  417. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/ina219.schema.json +0 -0
  418. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/lm75.schema.json +0 -0
  419. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/logger.schema.json +0 -0
  420. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/mcp23017.schema.json +0 -0
  421. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/mcp9808.schema.json +0 -0
  422. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/modbus.schema.json +0 -0
  423. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/modbus_devices.schema.json +0 -0
  424. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/mqtt.schema.json +0 -0
  425. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/oled.schema.json +0 -0
  426. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/output.schema.json +0 -0
  427. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/output_group.schema.json +0 -0
  428. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/pca9685.schema.json +0 -0
  429. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/pcf8575.schema.json +0 -0
  430. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/remote_devices.schema.json +0 -0
  431. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/sensor.schema.json +0 -0
  432. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/template.schema.json +0 -0
  433. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
  434. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/schema/web.schema.json +0 -0
  435. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/services/__init__.py +0 -0
  436. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/services/logs.py +0 -0
  437. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/web_server.py +0 -0
  438. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio/webui/websocket_manager.py +0 -0
  439. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio.egg-info/SOURCES.txt +0 -0
  440. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio.egg-info/dependency_links.txt +0 -0
  441. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio.egg-info/entry_points.txt +0 -0
  442. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio.egg-info/requires.txt +0 -0
  443. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/boneio.egg-info/top_level.txt +0 -0
  444. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/pyproject.toml +0 -0
  445. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/setup.cfg +0 -0
  446. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/setup.py +0 -0
  447. {boneio-1.2.0.dev23 → boneio-1.2.0.dev25}/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.dev23
3
+ Version: 1.2.0.dev25
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
@@ -265,6 +265,10 @@ class BaseCover(BaseCoverABC, BasicMqtt):
265
265
  _LOGGER.debug("Toggle cover %s from input.", self._id)
266
266
  if self._current_operation != IDLE:
267
267
  await self.stop()
268
+ elif self._position >= 100:
269
+ await self.close()
270
+ elif self._position <= 0:
271
+ await self.open()
268
272
  elif self._last_operation == CLOSING:
269
273
  await self.open()
270
274
  else:
@@ -303,6 +307,10 @@ class BaseCover(BaseCoverABC, BasicMqtt):
303
307
  await self.stop()
304
308
  elif self._position <= always_open_till:
305
309
  await self.open()
310
+ elif self._position >= 100:
311
+ await self.close()
312
+ elif self._position <= 0:
313
+ await self.open()
306
314
  elif self._last_operation == CLOSING:
307
315
  await self.open()
308
316
  else:
@@ -187,6 +187,33 @@ cover_actions = {
187
187
  'TILT_CLOSE': 'tilt_close',
188
188
  }
189
189
 
190
+ # Map of cover action method name -> accepted extra_data keys.
191
+ # Actions not listed here (open, close, toggle, stop, etc.) accept no extra params.
192
+ _COVER_ACTION_PARAMS: dict[str, set[str]] = {
193
+ "smart_toggle": {"always_open_till"},
194
+ "set_cover_position": {"position"},
195
+ "set_tilt": {"tilt_position"},
196
+ "set_cover_tilt_position": {"tilt_position"},
197
+ }
198
+
199
+
200
+ def filter_cover_extra_data(action_name: str, extra_data: dict) -> dict:
201
+ """Filter extra_data to only include params accepted by the cover action.
202
+
203
+ Args:
204
+ action_name: The cover method name (e.g. 'open', 'toggle', 'smart_toggle')
205
+ extra_data: Raw extra_data dict from action config
206
+
207
+ Returns:
208
+ Filtered dict with only accepted params for the action.
209
+ """
210
+ if not extra_data:
211
+ return {}
212
+ allowed = _COVER_ACTION_PARAMS.get(action_name)
213
+ if allowed is None:
214
+ return {}
215
+ return {k: v for k, v in extra_data.items() if k in allowed}
216
+
190
217
  INA219 = "ina219"
191
218
  VIRTUAL_ENERGY_SENSOR = "virtual_energy_sensor"
192
219
  PINS = {
@@ -13,7 +13,7 @@ import json
13
13
  import logging
14
14
  from typing import TYPE_CHECKING, Any
15
15
 
16
- from boneio.const import COVER, DEVICE_CLASS, ID, NAME, RESTORE_STATE, SHOW_HA, cover_actions
16
+ from boneio.const import COVER, DEVICE_CLASS, ID, NAME, RESTORE_STATE, SHOW_HA, cover_actions, filter_cover_extra_data
17
17
  from boneio.core.utils import TimePeriod, strip_accents
18
18
  from boneio.exceptions import CoverConfigurationException
19
19
  from boneio.integration import ha_cover_availabilty_message
@@ -387,8 +387,10 @@ class CoverManager:
387
387
 
388
388
  try:
389
389
  _f = getattr(cover, action_to_execute)
390
- if extra_data:
391
- await _f(**extra_data)
390
+ # Filter extra_data to only pass params accepted by the action
391
+ filtered = filter_cover_extra_data(action_to_execute, extra_data or {})
392
+ if filtered:
393
+ await _f(**filtered)
392
394
  else:
393
395
  await _f()
394
396
  except Exception as err:
@@ -28,6 +28,7 @@ from boneio.const import (
28
28
  STATE,
29
29
  TOGGLE,
30
30
  cover_actions,
31
+ filter_cover_extra_data,
31
32
  output_actions,
32
33
  )
33
34
  from boneio.core.config import ConfigHelper
@@ -669,6 +670,8 @@ class Manager:
669
670
  continue
670
671
  action_to_execute = action_definition.get("action_to_execute")
671
672
  extra_data = action_definition.get("extra_data", {})
673
+ # Filter extra_data to only pass params accepted by each action
674
+ filtered_data = filter_cover_extra_data(action_to_execute, extra_data)
672
675
  _LOGGER.debug(
673
676
  "Executing action %s for cover %s. Duration: %s",
674
677
  action_to_execute,
@@ -676,7 +679,7 @@ class Manager:
676
679
  time.time() - start_time,
677
680
  )
678
681
  _f = getattr(cover, action_to_execute)
679
- await _f(**extra_data)
682
+ await _f(**filtered_data)
680
683
 
681
684
  elif action == OUTPUT_OVER_MQTT:
682
685
  boneio_id = action_definition.get("boneio_id")
@@ -587,6 +587,7 @@ class RemoteDeviceManager:
587
587
  return await device.control_cover(
588
588
  cover_id=cover_id,
589
589
  action=action,
590
+ **kwargs,
590
591
  )
591
592
 
592
593
  # For MQTT devices, use standard control_cover
@@ -364,7 +364,10 @@ class ESPHomeRemoteDevice(RemoteDevice):
364
364
  "current_operation": current_op,
365
365
  "last_known_operation": last_op,
366
366
  }
367
- _LOGGER.debug("Cover '%s' position: %.2f", cover_id, state.position)
367
+ _LOGGER.debug(
368
+ "Cover '%s' state update: position=%.2f, current_op=%s, last_op=%s",
369
+ cover_id, state.position, current_op, last_op,
370
+ )
368
371
  break
369
372
  except Exception as e:
370
373
  _LOGGER.debug("Error processing state change: %s", e)
@@ -854,27 +857,52 @@ class ESPHomeRemoteDevice(RemoteDevice):
854
857
  self._client.cover_command(cover_key, position=0.0)
855
858
  elif action_upper == "STOP":
856
859
  self._client.cover_command(cover_key, stop=True)
857
- elif action_upper == "TOGGLE":
858
- # Toggle based on current operation or last known operation
860
+ elif action_upper in ("TOGGLE", "SMART_TOGGLE"):
861
+ # Toggle based on current operation, position, or last known operation
859
862
  state = self._cover_states.get(cover_id, {})
860
863
  current_op = state.get("current_operation", 0) # 0=IDLE, 1=OPENING, 2=CLOSING
861
864
  last_op = state.get("last_known_operation", 2)
862
865
  cover_pos = state.get("position")
866
+ always_open_till = kwargs.get("always_open_till", 50) if action_upper == "SMART_TOGGLE" else None
863
867
  _LOGGER.debug(
864
- "TOGGLE cover '%s': key=%s, state=%s, current_op=%s, last_op=%s, position=%s, all_states=%s",
865
- cover_id, cover_key, state, current_op, last_op, cover_pos,
866
- {k: v for k, v in self._cover_states.items()},
868
+ "ESPHome %s cover '%s': current_op=%s, last_op=%s, position=%s, always_open_till=%s",
869
+ action_upper, cover_id, current_op, last_op, cover_pos, always_open_till,
867
870
  )
868
871
 
869
872
  if current_op != 0: # If moving, stop it
870
- _LOGGER.debug("TOGGLE -> STOP (cover is moving, current_op=%s)", current_op)
873
+ _LOGGER.debug("%s -> STOP (cover is moving, current_op=%s)", action_upper, current_op)
871
874
  self._client.cover_command(cover_key, stop=True)
872
- elif last_op == 2: # If last operation was CLOSING, open it
873
- _LOGGER.debug("TOGGLE -> OPEN (last_op=CLOSING)")
874
- self._client.cover_command(cover_key, position=1.0)
875
- else: # Otherwise close it
876
- _LOGGER.debug("TOGGLE -> CLOSE (last_op=%s)", last_op)
877
- self._client.cover_command(cover_key, position=0.0)
875
+ elif cover_pos is not None:
876
+ # Position is known — use it for smarter decisions
877
+ pos_pct = int(cover_pos * 100)
878
+ if always_open_till is not None and pos_pct <= always_open_till:
879
+ # SMART_TOGGLE: below threshold → always open
880
+ _LOGGER.debug("SMART_TOGGLE -> OPEN (pos=%d%% <= threshold=%d%%)", pos_pct, always_open_till)
881
+ self._client.cover_command(cover_key, position=1.0)
882
+ elif cover_pos >= 0.99:
883
+ # Fully open → close
884
+ _LOGGER.debug("%s -> CLOSE (fully open, pos=%.2f)", action_upper, cover_pos)
885
+ self._client.cover_command(cover_key, position=0.0)
886
+ elif cover_pos <= 0.01:
887
+ # Fully closed → open
888
+ _LOGGER.debug("%s -> OPEN (fully closed, pos=%.2f)", action_upper, cover_pos)
889
+ self._client.cover_command(cover_key, position=1.0)
890
+ elif last_op == 2:
891
+ # Last was closing → open
892
+ _LOGGER.debug("%s -> OPEN (last_op=CLOSING)", action_upper)
893
+ self._client.cover_command(cover_key, position=1.0)
894
+ else:
895
+ # Last was opening → close
896
+ _LOGGER.debug("%s -> CLOSE (last_op=%s)", action_upper, last_op)
897
+ self._client.cover_command(cover_key, position=0.0)
898
+ else:
899
+ # No position known — use last_op only
900
+ if last_op == 2:
901
+ _LOGGER.debug("%s -> OPEN (no position, last_op=CLOSING)", action_upper)
902
+ self._client.cover_command(cover_key, position=1.0)
903
+ else:
904
+ _LOGGER.debug("%s -> CLOSE (no position, last_op=%s)", action_upper, last_op)
905
+ self._client.cover_command(cover_key, position=0.0)
878
906
  elif action_upper == "TOGGLE_OPEN":
879
907
  state = self._cover_states.get(cover_id, {})
880
908
  current_op = state.get("current_operation", 0)
@@ -0,0 +1,2 @@
1
+ # flake8: noqa
2
+ __version__ = "1.2.0dev25"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boneio
3
- Version: 1.2.0.dev23
3
+ Version: 1.2.0.dev25
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
@@ -1,2 +0,0 @@
1
- # flake8: noqa
2
- __version__ = "1.2.0dev23"
File without changes
File without changes
File without changes