boneIO 1.6.0.dev38__tar.gz → 1.6.0.dev40__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {boneio-1.6.0.dev38/boneio.egg-info → boneio-1.6.0.dev40}/PKG-INFO +1 -1
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/cloud/registration.py +33 -7
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/containers.py +12 -1
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/remote.py +2 -3
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/proxy_switch.py +10 -2
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/remote/mqtt.py +4 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/MANIFEST.sha256 +1 -1
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/helpers/boneio-containers +114 -33
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.21.json +1 -1
- boneio-1.6.0.dev40/boneio/migrations/plans/1.6.21.sig +1 -0
- boneio-1.6.0.dev40/boneio/migrations/plans/1.6.39.json +1 -0
- boneio-1.6.0.dev40/boneio/migrations/plans/1.6.39.sig +1 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.42.json +1 -1
- boneio-1.6.0.dev40/boneio/migrations/plans/1.6.42.sig +1 -0
- boneio-1.6.0.dev40/boneio/migrations/plans/1.6.44.json +1 -0
- boneio-1.6.0.dev40/boneio/migrations/plans/1.6.44.sig +1 -0
- boneio-1.6.0.dev40/boneio/migrations/plans/1.6.45.json +1 -0
- boneio-1.6.0.dev40/boneio/migrations/plans/1.6.45.sig +1 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.5.json +1 -1
- boneio-1.6.0.dev40/boneio/migrations/plans/1.6.5.sig +1 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/manifest.json +1 -1
- boneio-1.6.0.dev40/boneio/migrations/plans/manifest.sig +1 -0
- boneio-1.6.0.dev40/boneio/migrations/versions/v1_6_44_caddy_from_github.py +51 -0
- boneio-1.6.0.dev40/boneio/migrations/versions/v1_6_45_etc_boneio_readable.py +32 -0
- boneio-1.6.0.dev40/boneio/version.py +2 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/AccountsView-BG7dh8JA.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/AccountsView-Dt3Kese5.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/AccountsView-Dt3Kese5.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/AppInitContext-NjuJ7RI8.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/AppInitContext-DQzDpkxx.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/AppInitContext-DQzDpkxx.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/BackupSection-CS3ikQnk.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/BackupSection-B5IrJv-y.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/BackupSection-B5IrJv-y.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/BindingMatrix-BEyWu8IG.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/BindingMatrix-CH5UGlUR.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/BindingMatrix-CH5UGlUR.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/DeviceControlSection-DCn-iAa9.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/DeviceControlSection-B4eLyvHD.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/DeviceControlSection-B4eLyvHD.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/DiagnosticsView-CTcwku1L.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/DiagnosticsView-znCt7A8Z.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/DiagnosticsView-znCt7A8Z.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/EntityGrid-uyFhCwvk.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/EntityGrid-vaoJoqcY.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/EntityGrid-vaoJoqcY.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/FactoryResetSection-DUGD0LH4.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/FactoryResetSection-CKzRHx6u.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/FactoryResetSection-CKzRHx6u.js.gz +0 -0
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/FormInputToggle-DqA1Wn4Y.js +11 -0
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/FormInputToggle-DqA1Wn4Y.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/HaDashboardWizard-Cv0apXpo.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/HaDashboardWizard-vk95CV2Y.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/HaDashboardWizard-vk95CV2Y.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/HostnameSection-B7jPV7_Y.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/HostnameSection-Dt9QcHkr.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/HostnameSection-Dt9QcHkr.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/InputsView-D5I1fio5.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/InputsView-wyFKyjav.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/InputsView-wyFKyjav.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/LoadingState-R3PZbUk8.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/LoadingState-Drtn14Ya.js +1 -1
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/LocationSection-AnK-klTn.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/LocationSection-Cb_oXZLd.js +2 -2
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/LocationSection-Cb_oXZLd.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/LoggerForm-CN0SWie9.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/LoggerForm-BJv6RWd2.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/LoggerForm-BJv6RWd2.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/LongPressWrapper-0LPO_Wgp.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/LongPressWrapper-Dru8qHtp.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/LongPressWrapper-Dru8qHtp.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/MigrationsSection-BPW9egRt.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/MigrationsSection-CoIh5R90.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/MigrationsSection-CoIh5R90.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/ModbusView-CoGgYD3Q.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/ModbusView-ocvnpeD6.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/ModbusView-ocvnpeD6.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/MqttPasswordsSection-g19kZeYg.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/MqttPasswordsSection-6QWJG8XW.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/MqttPasswordsSection-6QWJG8XW.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/NodeRedManagement-DORNcWg8.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/NodeRedManagement-B2ayUkAG.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/NodeRedManagement-B2ayUkAG.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/OutputsView-DRR_Xj8o.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/OutputsView-VvvH_ovy.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/OutputsView-VvvH_ovy.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/SecurityView-OyiNynPN.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/SecurityView-BKVhjqhI.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/SecurityView-BKVhjqhI.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/SensorView-xOCg-KMN.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/SensorView-B8nAAQLc.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/SensorView-B8nAAQLc.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/SystemState-qBrYQwcp.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/SystemState-n4tP1izG.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/SystemState-n4tP1izG.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/TemplatesView-DuEPLx4U.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/TemplatesView-m9lr5qIa.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/TemplatesView-m9lr5qIa.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/TilePicker-Dg9yzi6h.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/TilePicker-G8xVEMEi.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/TilePicker-G8xVEMEi.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/TimezoneSection-DPdXAIDz.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/TimezoneSection-1fxrL6-X.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/TimezoneSection-1fxrL6-X.js.gz +0 -0
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/UISettings-BSprTQML.js +102 -0
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/UISettings-BSprTQML.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/UpdateSafetyNotice-_r5R0xnp.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/UpdateSafetyNotice-CipYhd_i.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/UpdateSafetyNotice-CipYhd_i.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/aiConfig-DxZSxPL4.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/aiConfig-KWcHM3dk.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/aiConfig-KWcHM3dk.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/aiWizardPrompt-D_74JG9D.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/aiWizardPrompt-Buo_cN-M.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/aiWizardPrompt-Buo_cN-M.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/axios-DyqbZVcF.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/axios-DQcNTH2S.js +2 -2
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/axios-DQcNTH2S.js.gz +0 -0
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/configCache-B3NM1Ewp.js +1 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/groupByArea-irIdnFVr.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/groupByArea-BkyRz2sA.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/groupByArea-BkyRz2sA.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/index-cw5aIQLK.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/index-D4Z4cqc5.js +6 -6
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/index-D4Z4cqc5.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/index-BiDbe4jH.css → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/index-Lv5Lok_q.css +1 -1
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/index-BiDbe4jH.css.gz → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/index-Lv5Lok_q.css.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/monaco-Y5lTkPle.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/monaco-BJtyLnOU.js +1 -1
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/monaco-BJtyLnOU.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/monaco-BK-xySI7.js → boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/monaco-D_UW5kOM.js +2 -2
- boneio-1.6.0.dev40/boneio/webui/frontend-dist/assets/monaco-D_UW5kOM.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/index.html +5 -5
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/sw.js +1 -1
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/config_core.py +16 -3
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/timezone_sudoers.py +6 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40/boneio.egg-info}/PKG-INFO +1 -1
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio.egg-info/SOURCES.txt +80 -74
- boneio-1.6.0.dev38/boneio/migrations/plans/1.6.21.sig +0 -1
- boneio-1.6.0.dev38/boneio/migrations/plans/1.6.39.json +0 -1
- boneio-1.6.0.dev38/boneio/migrations/plans/1.6.39.sig +0 -1
- boneio-1.6.0.dev38/boneio/migrations/plans/1.6.42.sig +0 -1
- boneio-1.6.0.dev38/boneio/migrations/plans/1.6.5.sig +0 -1
- boneio-1.6.0.dev38/boneio/migrations/plans/manifest.sig +0 -0
- boneio-1.6.0.dev38/boneio/version.py +0 -2
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/AccountsView-BG7dh8JA.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/AppInitContext-NjuJ7RI8.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/BackupSection-CS3ikQnk.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/BindingMatrix-BEyWu8IG.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/DeviceControlSection-DCn-iAa9.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/DiagnosticsView-CTcwku1L.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/EntityGrid-uyFhCwvk.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/FactoryResetSection-DUGD0LH4.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/FormInputToggle-CYH7UvOQ.js +0 -11
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/FormInputToggle-CYH7UvOQ.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/HaDashboardWizard-Cv0apXpo.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/HostnameSection-B7jPV7_Y.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/InputsView-D5I1fio5.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/LocationSection-AnK-klTn.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/LoggerForm-CN0SWie9.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/LongPressWrapper-0LPO_Wgp.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/MigrationsSection-BPW9egRt.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/ModbusView-CoGgYD3Q.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/MqttPasswordsSection-g19kZeYg.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/NodeRedManagement-DORNcWg8.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/OutputsView-DRR_Xj8o.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/SecurityView-OyiNynPN.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/SensorView-xOCg-KMN.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/SystemState-qBrYQwcp.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/TemplatesView-DuEPLx4U.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/TilePicker-Dg9yzi6h.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/TimezoneSection-DPdXAIDz.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/UISettings-Ri4qVbxp.js +0 -102
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/UISettings-Ri4qVbxp.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/UpdateSafetyNotice-_r5R0xnp.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/aiConfig-DxZSxPL4.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/aiWizardPrompt-D_74JG9D.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/axios-DyqbZVcF.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/configCache-DZ0vWq_Z.js +0 -1
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/groupByArea-irIdnFVr.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/index-cw5aIQLK.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/monaco-BK-xySI7.js.gz +0 -0
- boneio-1.6.0.dev38/boneio/webui/frontend-dist/assets/monaco-Y5lTkPle.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/LICENSE +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/MANIFEST.in +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/README.md +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.2/input.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.2/output_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.2/output_32_10.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.2/output_32_5.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.2/output_cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.3/input.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.3/output_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.3/output_32_10.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.3/output_32_5.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.3/output_cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.4/input.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.4/output_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.4/output_32_10.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.4/output_32_5.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.4/output_cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.5/input.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.5/output_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.5/output_32_10.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.5/output_cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.6/input.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.6/output_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.6/output_32_10.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.6/output_cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.7/input.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.7/output_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.7/output_32_10.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.7/output_48_4.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.7/output_cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.8/input.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.8/output_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.8/output_32_10.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.8/output_48_4.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.8/output_cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.0/input.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.0/output_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.0/output_32_10.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.0/output_48_4.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.0/output_cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.0/output_cover_mix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.1/input.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.1/output_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.1/output_32_10.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.1/output_48_4.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.1/output_cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/boards/1.1/output_cover_mix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/bonecli.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/cover/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/cover/cover.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/cover/remote.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/cover/time_based.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/cover/venetian.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/group/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/group/output_group.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/input/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/input/binary_sensor.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/input/detectors.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/input/event.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/input/remote/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/input/remote/base.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/input/remote/esphome.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/input/remote/mqtt.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/irrigation/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/irrigation/controller.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/irrigation/water_source.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/output/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/output/basic.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/output/buzzer.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/output/mcp.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/output/pca.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/output/pcf.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/output/remote.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/sensor/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/sensor/virtual_energy.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/template/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/template/alarm_panel.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/template/gate_cover.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/template/thermostat.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/components/virtual_switch.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/const.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/atomic_file.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/auth/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/auth/cli.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/auth/hashing.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/auth/jwt_secret.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/auth/migration.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/auth/models.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/auth/store.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/cloud/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/cloud/data/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/cloud/data/docker-compose.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/cloud/secrets.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/config_helper.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/input_bindings.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/migrations/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/migrations/v1_proxy_port.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/migrations/v2_transition.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/migrations/v4_wled_cache.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/migrations/v5_ina_screen.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/migrations/v6_input_keys.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/migrations/v7_mqtt_password_secret.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/package-lock.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/package.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/provenance.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/schema_converter.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/secret_masking.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/write_lock.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/yaml_compat.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/yaml_patch.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/config/yaml_util.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/diagnostics/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/diagnostics/collect.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/discovery.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/events/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/events/bus.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/action_conditions.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/canopen.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/covers.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/display.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/inputs.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/irrigation.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/manager.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/modbus.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/outputs.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/remote_input_registrar.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/scheduler.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/security_alert.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/sensors.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/sun.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/templates/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/templates/alarm.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/templates/gate_cover.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/templates/thermostat.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/templates.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/update.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/manager/virtual_switches.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/basic.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/basic_mqtt.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/broker_tls.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/composite.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/local.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/lox.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/mqtt.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/mqtt_tls.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/messaging/queue.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/net/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/net/discovery_guard.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/nodered_guard.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/recovery.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/remote/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/remote/base.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/remote/can.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/remote/esphome.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/remote/wled.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/remote/wled_cache.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/security/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/security/certificate.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/security/framing.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/security/posture.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/sensor/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/sensor/base.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/sensor/sun.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/sensor/system.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/state/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/state/manager.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/system/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/system/host_data.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/system/monitor.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/system_ops.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/async_updater.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/conditions.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/filter.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/font_util.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/logger.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/naming.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/overlay.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/sun.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/timeperiod.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/core/utils/util.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/can_master.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/can_slave.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/event_all.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/exceptions.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/24x16/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/24x16/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/24x16/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/24x16/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/24x16/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/24x16/output24x16A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/24x16/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/32x10/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/32x10/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/32x10/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/32x10/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/32x10/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/32x10/output32x10A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/32x10/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/48x4/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/48x4/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/48x4/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/48x4/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/48x4/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/48x4/output48x4A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/48x4/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/base/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/base/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/base/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover/cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover/outputCover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover_mix/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover_mix/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover_mix/cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover_mix/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover_mix/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/0.8/cover_mix/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/24x16/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/24x16/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/24x16/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/24x16/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/24x16/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/24x16/output24x16A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/24x16/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/32x10/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/32x10/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/32x10/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/32x10/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/32x10/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/32x10/output32x10A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/32x10/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/48x4/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/48x4/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/48x4/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/48x4/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/48x4/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/48x4/output48x4A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/48x4/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/base/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/base/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/base/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover/cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover/outputCover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover_mix/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover_mix/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover_mix/cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover_mix/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover_mix/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/cover_mix/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/tester/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/tester/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/tester/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/tester/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/tester/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/tester/output32x10A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.0/tester/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/24x16/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/24x16/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/24x16/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/24x16/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/24x16/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/24x16/output24x16A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/24x16/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/32x10/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/32x10/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/32x10/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/32x10/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/32x10/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/32x10/output32x10A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/32x10/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/48x4/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/48x4/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/48x4/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/48x4/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/48x4/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/48x4/output48x4A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/48x4/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/base/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/base/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/base/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover/cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover/outputCover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover_mix/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover_mix/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover_mix/cover.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover_mix/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover_mix/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/cover_mix/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/tester/adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/tester/binary_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/tester/config.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/tester/event.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/tester/mqtt.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/tester/output32x10A.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/1.1/tester/secrets.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/factory_config/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/analog/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/analog/adc.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/can/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/can/bridge.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/can/client.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/can/interface.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/can/node.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/can/node_id.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/can/test_od.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/display/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/display/early_oled.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/display/fonts/danube__.ttf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/display/oled.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/gpio/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/gpio/expanders/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/gpio/input/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/gpio/input/base.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/gpio/input/manager.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/i2c/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/i2c/bus.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/i2c/ina219.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/i2c/ina219_driver.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/i2c/ina226.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/i2c/ina226_driver.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/i2c/mcp9808.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/i2c/pct2075.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/onewire/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/onewire/dallas.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/sensor/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/sensor/temperature/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/sensor/temperature/base.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/hardware/udev_wait.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/integration/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/integration/homeassistant.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/integration/interlock.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/integration/lox_template.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/actions.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/apt/52boneio-periodic +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/apt/52boneio-unattended +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/apt/53boneio-caddy +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/apt/caddy-pin.pref +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/apt/caddy-stable-archive-keyring.gpg +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/apt/caddy-stable.list +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/caddy/502.html +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/docker/daemon.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/docker/nodered/caddy/502.html +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/docker/nodered/caddy/init-certs.sh +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/docker/nodered/docker-compose-cloud.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/docker/nodered/docker-compose-native-proxy.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/docker/nodered/docker-compose.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/docker/nodered/node-red/settings.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/helpers/boneio-helpers-heal +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/helpers/boneio-migrate-v2 +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/helpers/boneio-proxy-config +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/helpers/boneio-system +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/issue.d/10-boneio.issue +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/journald/boneio-console.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/journald/journald.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/kernel/postinst-boneio-overlay +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/migrations-recovery.pem +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/migrations.pem +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/modules-load.d/onewire.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/mosquitto/boneio.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/motd/20-boneio +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/overlays/BONEIO-BLACK-PINS-v0.2-v0.3.dtbo +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/sshd/10-boneio-hardening.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/sshd/15-boneio-penalties.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/sshd/20-boneio-banner.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/sshd/boneio-banner +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/sudoers/boneio +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/sudoers/boneio-helpers +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/sudoers/boneio-timedatectl +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/boneio-dpkg-recover.service +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/boneio-helpers-heal.service +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/boneio-oled-boot.service +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/boneio-oled-shutdown.service +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/boneio-proxy-recover.service +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/boneio.service +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/caddy-boneio.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/dropins/apt-daily-priority.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/dropins/avahi-daemon-defer.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/dropins/bb-usb-gadgets-defer.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/dropins/mosquitto-priority.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/dropins/timer-no-persistent.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/dropins/user-manager-defer.conf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/linger-marker +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/systemd/set-hostname-once.service +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/usr-local-bin/set-hostname-once.sh +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/usr-sbin/oled_boot_splash.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/usr-sbin/oled_boot_splash.sh +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/usr-sbin/oled_msg.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/usr-sbin/oled_msg.sh +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/wheels/pyyaml-6.0.3-cp313-cp313-linux_armv7l.whl +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/bootstrap/boneio-migrate +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/bootstrap/install-helper.sh +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/bootstrap/sudoers-migrate +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.3.0.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.3.0.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.3.1.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.3.1.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.3.2.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.3.2.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.4.0.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.4.0.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.4.3.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.4.3.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.4.4.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.4.4.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.0.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.0.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.1.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.1.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.10.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.10.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.11.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.11.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.12.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.12.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.13.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.13.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.14.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.14.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.15.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.15.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.16.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.16.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.17.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.17.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.18.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.18.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.2.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.2.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.3.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.3.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.4.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.4.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.5.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.5.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.6.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.6.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.7.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.7.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.8.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.8.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.9.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.5.9.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.0.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.0.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.1.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.1.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.10.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.10.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.11.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.11.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.12.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.12.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.13.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.13.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.14.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.14.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.15.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.15.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.16.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.16.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.17.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.17.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.18.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.18.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.19.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.19.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.2.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.2.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.20.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.20.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.22.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.22.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.23.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.23.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.24.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.24.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.25.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.25.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.26.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.26.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.27.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.27.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.28.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.28.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.29.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.29.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.3.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.3.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.30.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.30.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.31.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.31.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.32.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.32.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.33.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.33.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.34.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.34.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.35.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.35.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.36.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.36.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.37.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.37.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.38.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.38.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.4.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.4.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.40.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.40.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.41.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.41.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.43.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.43.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.6.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.6.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.7.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.7.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.8.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.8.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.9.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/plans/1.6.9.sig +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/runner.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_3_0_baseline.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_3_1_fix_oled_boot.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_3_2_cleanup_can_sudoers.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_4_0_fix_mqtt_sudoers.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_4_3_oled_shutdown.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_4_4_caddy.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_0_fix_oled_fifo_permissions.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_10_disable_console_setup.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_11_timer_catchup.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_12_oled_splash_off_critical_path.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_13_mosquitto_priority.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_14_journal_apparent_size.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_15_prune_orphan_journals.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_16_login_linger.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_17_defer_user_manager.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_18_fix_hostname_once.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_1_ufw_lox_udp.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_2_libyaml.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_3_libyaml_retry.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_4_onewire_modules.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_5_overlay_kernel_hook.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_6_boot_service_order.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_7_journald_limits.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_8_apparmor_prune.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_5_9_defer_nonessential.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_0_nodered_admin_auth.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_10_narrow_sudo_rules.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_11_drop_docker_group.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_12_console_shows_ip.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_13_custom_certificate.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_14_certificate_lifetime.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_15_web_port_reaches_caddy.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_16_release_floor_ordering.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_17_service_password.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_18_os_updates.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_19_helper_apt_purge.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_1_mosquitto_passwd_perms.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_20_drop_packagekit.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_21_caddy_pinned.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_22_security_autoupdates.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_23_helper_fstab_options.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_24_boot_partition_nofail.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_25_journal_to_serial_console.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_26_kernel_check_old_images.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_27_startup_overlay_repair.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_28_ssh_login_screen.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_29_service_password_change.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_2_drop_build_sudo_rule.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_30_os_update_apt_cache.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_31_overlay_v02_v03_inputs.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_32_mqtt_broker_tls.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_33_os_update_measured_space.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_34_nodered_admin_auth_again.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_35_ssh_guessing_penalty.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_36_helper_drops_kmem.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_37_drop_kmem_group.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_38_ssh_penalty_per_block.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_39_containers_pull_timeout.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_3_firewall_rule_gaps.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_40_disk_usage.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_41_starting_page.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_42_native_caddy_staging.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_43_log2ram_cp.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_4_ssh_login_hardening.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_5_trust_transition.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_6_retire_legacy_helper.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_7_timedatectl_sudoers.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_8_system_helper.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/versions/v1_6_9_ntp_servers.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/cli.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/client.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/coordinator.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/energy_meters/dts1964_3f.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/hvac/defro-drx.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/hvac/eht-topventil-plus.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/hvac/thessla.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/hvac/ventclear.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/hvac/wanas415.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/inverters/sofar.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/other/esp32_relay_x4_modbus.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/other/n4dsc08.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/other/r4dcb08.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/cwt.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/gdfs.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/gdfx.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/pt100.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/qdw90a.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/sht20.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/devices/sensors/sht30.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/base.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/derived/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/derived/numeric.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/derived/select.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/derived/switch.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/derived/text.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/sensor/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/sensor/binary.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/sensor/numeric.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/sensor/text.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/writeable/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/writeable/binary.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/entities/writeable/numeric.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/mock_coordinator.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/modbus/utils.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/models/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/models/actions.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/models/events.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/models/files.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/models/logs.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/models/mqtt.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/models/state.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/runner.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/actions.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/actions_sensor.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/actions_switch.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/condition.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/filters.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/filters_adc.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/id.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/remote_devices.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/remote_inputs.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/remote_outputs.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/schema.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/temp_unit.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/schema/update_interval.yaml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/action_validation.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/app.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/bind.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/dashboard_cards.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/NodeRedView-BZdmAtAt.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/NodeRedView-BZdmAtAt.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/NumericInput-fo5QZMhp.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/NumericInput-fo5QZMhp.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/Sparkline-DoHMYvvZ.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/Sparkline-DoHMYvvZ.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/ViewToggle-CUtK4zn3.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/basePath-CxHj-SSK.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/clipboard-CCtx29e-.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/codicon-ngg6Pgfi.ttf.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/dialog-DcnAJg2-.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/dialog-DcnAJg2-.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/editor.worker-O-CH8JUO.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/editor.worker-O-CH8JUO.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/fa-wf69YpA7.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/fa-wf69YpA7.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/formatters-Cc0QIRxb.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/gi-CdbYopzz.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/monaco-Br_kD0ds.css +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/monaco-Br_kD0ds.css.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/rolldown-runtime-hePW80VL.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/select-DsYydCvY.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/select-DsYydCvY.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/utils-DOQQTBMN.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/utils-DOQQTBMN.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-Bd17z0YL.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-Bd17z0YL.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/yaml.worker-CeS-z5zL.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/assets/yaml.worker-CeS-z5zL.js.gz +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/boneio-192.png +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/boneio-512.png +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/boneio.svg +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/adc.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/binary_sensor.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/boneio.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/can.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/config.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/event.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/ina219.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/ina226.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/irrigation.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/location.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/lox_udp.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/mqtt.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/osdp.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/output.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/remote_inputs.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/remote_outputs.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/schedule.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/template.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/virtual_switch.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/frontend-dist/workbox-7e79c025.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/hvac_svg_templates.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/input_validation.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/middleware/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/middleware/auth.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/middleware/csrf.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/middleware/policy.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/middleware/proxy.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/modbus_card_templates.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/rate_limit.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/recovery/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/recovery/app.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/recovery/server.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/recovery/static/index.html +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/recovery/static/recovery.css +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/recovery/static/recovery.js +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/accounts.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/auth.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/can.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/config.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/config_actions.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/config_backups.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/config_discovery.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/config_files.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/covers.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/dashboard.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/dev_fake_device.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/diagnostics.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/irrigation.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/migrations.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/modbus.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/mqtt_reference.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/mqtt_tls.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/nodered.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/onboarding.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/os_update.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/outputs.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/proxy.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/remote_devices.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/schedule.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/security.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/sensors.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/sun.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/system.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/templates.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/tools.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/routes/update.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/adc.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/areas.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/binary_sensor.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/boneio.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/can.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/config.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/cover.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/dallas.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/ds2482.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/event.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/ina219.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/ina226.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/irrigation.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/lm75.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/location.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/logger.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/lox_udp.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/mcp23017.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/mcp9808.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/modbus.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/modbus_devices.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/mqtt.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/oled.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/osdp.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/output.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/output_group.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/pca9685.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/pcf8575.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/remote_devices.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/remote_inputs.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/remote_outputs.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/schedule.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/sensor.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/template.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/virtual_switch.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/schema/web.schema.json +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/security_events.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/security_headers.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/services/__init__.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/services/logs.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/static_assets.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/sudo_rate_limiter.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/web_server.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/webui/websocket_manager.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio.egg-info/dependency_links.txt +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio.egg-info/entry_points.txt +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio.egg-info/requires.txt +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio.egg-info/top_level.txt +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/pyproject.toml +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/setup.cfg +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/setup.py +0 -0
- {boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/tests/test_py313_compatibility.py +0 -0
|
@@ -50,6 +50,10 @@ CADDY_CONFIG_DIR = _DOCKER_DIR / "caddy"
|
|
|
50
50
|
|
|
51
51
|
# Registration interval (1 hour)
|
|
52
52
|
REGISTRATION_INTERVAL = 3600
|
|
53
|
+
#: After a failed registration: the next try, unless the API names its own.
|
|
54
|
+
#: An hour was what somebody turning cloud on waited after a rate limit
|
|
55
|
+
#: asking for five minutes, or a network that was down for one.
|
|
56
|
+
REGISTRATION_RETRY = 300
|
|
53
57
|
|
|
54
58
|
# Caddy Docker HTTPS port (host side of the 8443:443 mapping)
|
|
55
59
|
CADDY_HTTPS_PORT = 8443
|
|
@@ -85,6 +89,8 @@ class CloudRegistration:
|
|
|
85
89
|
self._master_secret = master_secret
|
|
86
90
|
self._enabled = enabled
|
|
87
91
|
self._domain: str | None = None
|
|
92
|
+
#: Seconds the API asked to wait, from its last 429.
|
|
93
|
+
self._retry_after: int | None = None
|
|
88
94
|
self._task: asyncio.Task | None = None
|
|
89
95
|
self._session: aiohttp.ClientSession | None = None
|
|
90
96
|
self._last_error: str | None = None
|
|
@@ -191,6 +197,7 @@ class CloudRegistration:
|
|
|
191
197
|
async def _registration_loop(self) -> None:
|
|
192
198
|
"""Main registration loop - registers DNS and fetches cert periodically."""
|
|
193
199
|
while True:
|
|
200
|
+
success = False
|
|
194
201
|
try:
|
|
195
202
|
# Refresh local IP in case it changed (e.g. DHCP renewal)
|
|
196
203
|
current_ip = get_network_info().get("ip", "")
|
|
@@ -234,8 +241,14 @@ class CloudRegistration:
|
|
|
234
241
|
except Exception as e:
|
|
235
242
|
_LOGGER.error("Cloud registration error: %s", e)
|
|
236
243
|
|
|
237
|
-
# Wait before next registration
|
|
238
|
-
|
|
244
|
+
# Wait before the next registration: an hour once it worked, and
|
|
245
|
+
# soon again when it did not.
|
|
246
|
+
if success:
|
|
247
|
+
delay = REGISTRATION_INTERVAL
|
|
248
|
+
else:
|
|
249
|
+
delay = self._retry_after or REGISTRATION_RETRY
|
|
250
|
+
self._retry_after = None
|
|
251
|
+
await asyncio.sleep(delay)
|
|
239
252
|
|
|
240
253
|
async def _register_dns(self) -> bool:
|
|
241
254
|
"""
|
|
@@ -266,6 +279,7 @@ class CloudRegistration:
|
|
|
266
279
|
data = await response.json()
|
|
267
280
|
retry_after = data.get("retryAfter", 3600)
|
|
268
281
|
_LOGGER.warning("Rate limited, retry after %d seconds", retry_after)
|
|
282
|
+
self._retry_after = int(retry_after)
|
|
269
283
|
return False
|
|
270
284
|
else:
|
|
271
285
|
body = await response.text()
|
|
@@ -600,7 +614,11 @@ class CloudRegistration:
|
|
|
600
614
|
_LOGGER.error("Failed to switch to cloud config: %s", self._last_error)
|
|
601
615
|
return False
|
|
602
616
|
|
|
603
|
-
_LOGGER.info("Switched
|
|
617
|
+
_LOGGER.info("Switched Caddy to the cloud template")
|
|
618
|
+
if containers.proxy_mode() == "native":
|
|
619
|
+
# The helper's verb has already reloaded the packaged Caddy with the
|
|
620
|
+
# certificate; starting it again only costs seconds of the request.
|
|
621
|
+
return True
|
|
604
622
|
# The service definition changed, so ``up`` recreates the container
|
|
605
623
|
# and it reads the certificate as it starts.
|
|
606
624
|
return await self._recreate_caddy(restart=False)
|
|
@@ -615,7 +633,12 @@ class CloudRegistration:
|
|
|
615
633
|
return False
|
|
616
634
|
|
|
617
635
|
if not self.is_cloud_config_active():
|
|
618
|
-
_LOGGER.debug("
|
|
636
|
+
_LOGGER.debug("Caddy is already on the local template")
|
|
637
|
+
if containers.proxy_mode() == "native":
|
|
638
|
+
# Nothing to redo: the packaged Caddy serves what its marker
|
|
639
|
+
# says. Restarting it here cost 15 s of the save that turns cloud
|
|
640
|
+
# off, after /cloud/disable had already put the local one back.
|
|
641
|
+
return True
|
|
619
642
|
return await self._recreate_caddy()
|
|
620
643
|
|
|
621
644
|
result = await asyncio.get_event_loop().run_in_executor(
|
|
@@ -626,7 +649,10 @@ class CloudRegistration:
|
|
|
626
649
|
_LOGGER.error("Failed to restore local config: %s", self._last_error)
|
|
627
650
|
return False
|
|
628
651
|
|
|
629
|
-
_LOGGER.info("Restored the local
|
|
652
|
+
_LOGGER.info("Restored the local Caddy template")
|
|
653
|
+
if containers.proxy_mode() == "native":
|
|
654
|
+
# Reloaded by the helper's verb already, as above.
|
|
655
|
+
return True
|
|
630
656
|
return await self._recreate_caddy(restart=False)
|
|
631
657
|
|
|
632
658
|
async def _recreate_caddy(self, restart: bool = True) -> bool:
|
|
@@ -654,7 +680,7 @@ class CloudRegistration:
|
|
|
654
680
|
return False
|
|
655
681
|
|
|
656
682
|
if not restart:
|
|
657
|
-
_LOGGER.info("Caddy
|
|
683
|
+
_LOGGER.info("Caddy is up with the new configuration")
|
|
658
684
|
return True
|
|
659
685
|
|
|
660
686
|
# Restart as well: mounted TLS certificates are only re-read on start.
|
|
@@ -665,7 +691,7 @@ class CloudRegistration:
|
|
|
665
691
|
restarted.stderr.strip() or "unknown error",
|
|
666
692
|
)
|
|
667
693
|
|
|
668
|
-
_LOGGER.info("Caddy
|
|
694
|
+
_LOGGER.info("Caddy is up and restarted with the new configuration")
|
|
669
695
|
return True
|
|
670
696
|
|
|
671
697
|
def is_cloud_config_active(self) -> bool:
|
|
@@ -97,6 +97,8 @@ _HELPER_ONLY = {
|
|
|
97
97
|
"proxy-switch-run",
|
|
98
98
|
"proxy-switch-state",
|
|
99
99
|
"proxy-switch-recover",
|
|
100
|
+
# The image build installs the pinned Caddy package with it.
|
|
101
|
+
"caddy-install",
|
|
100
102
|
}
|
|
101
103
|
|
|
102
104
|
|
|
@@ -471,11 +473,20 @@ NATIVE_MARKER = Path("/etc/boneio/proxy-native")
|
|
|
471
473
|
CLOUD_MARKER = Path("/etc/boneio/proxy-cloud")
|
|
472
474
|
|
|
473
475
|
|
|
476
|
+
_marker_unreadable_logged = False
|
|
477
|
+
|
|
478
|
+
|
|
474
479
|
def proxy_mode() -> str:
|
|
475
480
|
"""``"native"`` once Caddy runs as the package, else ``"container"``."""
|
|
481
|
+
global _marker_unreadable_logged
|
|
476
482
|
try:
|
|
477
483
|
return "native" if NATIVE_MARKER.exists() else "container"
|
|
478
|
-
except OSError:
|
|
484
|
+
except OSError as err:
|
|
485
|
+
# Unreadable is not absent: a controller on the packaged Caddy is then
|
|
486
|
+
# taken for one on the container, and nothing else says why.
|
|
487
|
+
if not _marker_unreadable_logged:
|
|
488
|
+
_marker_unreadable_logged = True
|
|
489
|
+
_LOGGER.error("Cannot read %s, assuming the Caddy container: %s", NATIVE_MARKER, err)
|
|
479
490
|
return "container"
|
|
480
491
|
|
|
481
492
|
|
|
@@ -991,12 +991,11 @@ class RemoteDeviceManager:
|
|
|
991
991
|
if data is None:
|
|
992
992
|
return
|
|
993
993
|
|
|
994
|
-
if discovery_type == "outputs" and not device.
|
|
995
|
-
# Only update if device has no manually configured outputs
|
|
994
|
+
if discovery_type == "outputs" and not device.outputs_from_config:
|
|
996
995
|
device.set_outputs(data)
|
|
997
996
|
_LOGGER.info("Updated configured device %s with autodiscovered outputs: %d", device_id, len(data))
|
|
998
997
|
elif discovery_type == "covers":
|
|
999
|
-
if not device.
|
|
998
|
+
if not device.covers_from_config:
|
|
1000
999
|
# No manually configured covers — use discovery data as-is
|
|
1001
1000
|
device.set_covers(data)
|
|
1002
1001
|
_LOGGER.info("Updated configured device %s with autodiscovered covers: %d", device_id, len(data))
|
|
@@ -29,7 +29,11 @@ POLL = 10
|
|
|
29
29
|
MAX_POLLS = 180
|
|
30
30
|
MAX_ATTEMPTS = 3
|
|
31
31
|
#: Where the package comes from; no point starting the move without it.
|
|
32
|
-
REPO_HOST = "
|
|
32
|
+
REPO_HOST = "github.com"
|
|
33
|
+
#: Steps of the helper that installed Caddy from its apt repository on
|
|
34
|
+
#: Cloudsmith. Attempts that failed there (402, quota spent) are not this
|
|
35
|
+
#: controller's fault and do not use up the automatic ones.
|
|
36
|
+
_CLOUDSMITH_STEPS = ("apt-update", "apt-install")
|
|
33
37
|
|
|
34
38
|
|
|
35
39
|
def has_default_route() -> bool:
|
|
@@ -86,7 +90,11 @@ def _recover_if_cut_short(state: dict) -> dict | None:
|
|
|
86
90
|
def _finished(state: dict) -> bool:
|
|
87
91
|
"""Whether no further automatic attempt is due."""
|
|
88
92
|
attempts = state.get("attempts")
|
|
89
|
-
|
|
93
|
+
if state.get("state") == "done":
|
|
94
|
+
return True
|
|
95
|
+
if state.get("step") in _CLOUDSMITH_STEPS:
|
|
96
|
+
return False
|
|
97
|
+
return isinstance(attempts, int) and attempts >= MAX_ATTEMPTS
|
|
90
98
|
|
|
91
99
|
|
|
92
100
|
async def attempt_switch() -> bool:
|
|
@@ -68,6 +68,10 @@ class MQTTRemoteDevice(RemoteDevice):
|
|
|
68
68
|
# For other devices, use id as-is
|
|
69
69
|
self._topic_prefix = id
|
|
70
70
|
|
|
71
|
+
# Lists given in the config are the user's; discovery only fills the
|
|
72
|
+
# ones left empty, and keeps refilling them as the peer changes.
|
|
73
|
+
self.outputs_from_config = bool(outputs)
|
|
74
|
+
self.covers_from_config = bool(covers)
|
|
71
75
|
if outputs:
|
|
72
76
|
self.set_outputs(outputs)
|
|
73
77
|
if covers:
|
|
@@ -16,7 +16,7 @@ f2ed05c6f5934a15f12571139bdc225804f67b8c83561cc39868f7b2296d2697 docker/daemon.
|
|
|
16
16
|
932d82164648d8e734617737a8a5beac58b03f81febcf840e6ffae0065bf7518 docker/nodered/docker-compose-native-proxy.yaml
|
|
17
17
|
48ad7a194a78d3d1b018349b60834389841f56e287068988a75197cfaf9a62c2 docker/nodered/docker-compose.yaml
|
|
18
18
|
bff00753c72fb17609a6f7b3a58ef78b7b394da12d19fd65b875f2889695e2b4 docker/nodered/node-red/settings.js
|
|
19
|
-
|
|
19
|
+
e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6 helpers/boneio-containers
|
|
20
20
|
e701931442b470d049282412b636d54e7af0a808f1816c146bf9e46c70e5d024 helpers/boneio-helpers-heal
|
|
21
21
|
1a2b4079f63991a055133e0853b5ec8764190c432d9a323d75614e19e7c86e14 helpers/boneio-migrate-v2
|
|
22
22
|
65f1e671354c75a0221011253a524d59eee700a03e01998479a17b2656a8b39b helpers/boneio-proxy-config
|
{boneio-1.6.0.dev38 → boneio-1.6.0.dev40}/boneio/migrations/assets/helpers/boneio-containers
RENAMED
|
@@ -47,6 +47,7 @@ import argparse
|
|
|
47
47
|
import contextlib
|
|
48
48
|
import datetime
|
|
49
49
|
import fcntl
|
|
50
|
+
import hashlib
|
|
50
51
|
import http.client
|
|
51
52
|
import json
|
|
52
53
|
import logging
|
|
@@ -131,10 +132,25 @@ PROXY_CONFIG = "/usr/lib/boneio/proxy-config"
|
|
|
131
132
|
SWITCH_PREREQUISITES = (
|
|
132
133
|
Path("/etc/systemd/system/caddy.service.d/boneio.conf"),
|
|
133
134
|
Path(PROXY_CONFIG),
|
|
134
|
-
Path("/etc/apt/sources.list.d/caddy-stable.list"),
|
|
135
|
-
Path("/usr/share/keyrings/caddy-stable-archive-keyring.gpg"),
|
|
136
|
-
Path("/etc/apt/preferences.d/caddy"),
|
|
137
135
|
)
|
|
136
|
+
#: The Caddy boneIO installs: the release's armhf .deb from GitHub, pinned by
|
|
137
|
+
#: the SHA-512 in that release's checksums file. This helper is signed with the
|
|
138
|
+
#: migrations, so the hash is what vouches for the package, and a new Caddy is
|
|
139
|
+
#: a new boneIO release. Not Caddy's apt repository on Cloudsmith: it answers
|
|
140
|
+
#: 402 whenever the project runs out of transfer quota. Nor Debian's caddy,
|
|
141
|
+
#: 2.6.2, which lacks what the generated Caddyfile uses.
|
|
142
|
+
CADDY_VERSION = "2.11.7"
|
|
143
|
+
CADDY_DEB_URL = (
|
|
144
|
+
f"https://github.com/caddyserver/caddy/releases/download/v{CADDY_VERSION}/"
|
|
145
|
+
f"caddy_{CADDY_VERSION}_linux_armv7.deb"
|
|
146
|
+
)
|
|
147
|
+
CADDY_DEB_SHA512 = (
|
|
148
|
+
"9c41e47815b2b26b16318683884e08e67456a3407e295114ef58d823c037d57a"
|
|
149
|
+
"8732ca63ebdbaab05745376aec29d1e58eda2f9ff78268755d6208dad2a1c507"
|
|
150
|
+
)
|
|
151
|
+
#: Root-only. A .deb here with the pinned hash is not downloaded again; the
|
|
152
|
+
#: image build puts it here, fetched on the PC.
|
|
153
|
+
CADDY_CACHE = Path("/var/cache/boneio")
|
|
138
154
|
#: How long a proxy has to answer after it was started, and how often it is
|
|
139
155
|
#: asked.
|
|
140
156
|
PROBE_TIMEOUT = 90.0
|
|
@@ -307,6 +323,7 @@ LOCKED_VERBS = CADDY_VERBS | {"up", "down", "set-nodered-image"}
|
|
|
307
323
|
#: take the lock themselves where they need it, the run for its whole length.
|
|
308
324
|
SWITCH_VERBS = {
|
|
309
325
|
"proxy-switch-start", "proxy-switch-run", "proxy-switch-state", "proxy-switch-recover",
|
|
326
|
+
"caddy-install",
|
|
310
327
|
}
|
|
311
328
|
|
|
312
329
|
ALL_VERBS = sorted(
|
|
@@ -862,6 +879,91 @@ def _set_cloud_marker(present: bool) -> int:
|
|
|
862
879
|
return _run(list(NATIVE_VERBS["reload-caddy"]))
|
|
863
880
|
|
|
864
881
|
|
|
882
|
+
def _caddy_installed_version() -> str | None:
|
|
883
|
+
"""The installed Caddy package's version, or None.
|
|
884
|
+
|
|
885
|
+
A package removed with its configuration kept still has a version in dpkg,
|
|
886
|
+
so only an ``installed`` one counts.
|
|
887
|
+
"""
|
|
888
|
+
rc, out = _capture(["dpkg-query", "-W", "--showformat=${db:Status-Status} ${Version}", "caddy"])
|
|
889
|
+
status, _, version = out.strip().partition(" ")
|
|
890
|
+
return version if rc == 0 and status == "installed" and version else None
|
|
891
|
+
|
|
892
|
+
|
|
893
|
+
def _sha512(path: Path) -> str:
|
|
894
|
+
digest = hashlib.sha512()
|
|
895
|
+
with open(path, "rb") as handle:
|
|
896
|
+
for block in iter(lambda: handle.read(1 << 20), b""):
|
|
897
|
+
digest.update(block)
|
|
898
|
+
return digest.hexdigest()
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
def _fetch_caddy(log) -> Path:
|
|
902
|
+
"""The pinned Caddy .deb, downloaded unless the cache already holds it.
|
|
903
|
+
|
|
904
|
+
Streamed to disk, not memory: the board has half a gigabyte of RAM.
|
|
905
|
+
|
|
906
|
+
Raises:
|
|
907
|
+
Refused: When it cannot be downloaded or is not the pinned file.
|
|
908
|
+
"""
|
|
909
|
+
CADDY_CACHE.mkdir(mode=0o700, parents=True, exist_ok=True)
|
|
910
|
+
# Root installs what it hashed here, so nobody else may be able to swap the
|
|
911
|
+
# file in between: a directory that is a link, not root's, or writable by
|
|
912
|
+
# group or others is refused, whoever made it.
|
|
913
|
+
info = os.lstat(CADDY_CACHE)
|
|
914
|
+
if not stat.S_ISDIR(info.st_mode) or info.st_uid != 0 or info.st_mode & 0o022:
|
|
915
|
+
raise Refused(f"{CADDY_CACHE} must be a directory only root can write")
|
|
916
|
+
deb = CADDY_CACHE / CADDY_DEB_URL.rsplit("/", 1)[1]
|
|
917
|
+
if deb.is_file() and _sha512(deb) == CADDY_DEB_SHA512:
|
|
918
|
+
log.write(f"=== {deb} is already here\n")
|
|
919
|
+
return deb
|
|
920
|
+
log.write(f"=== downloading {CADDY_DEB_URL}\n")
|
|
921
|
+
log.flush()
|
|
922
|
+
fd, part = tempfile.mkstemp(dir=CADDY_CACHE, suffix=".part")
|
|
923
|
+
try:
|
|
924
|
+
with os.fdopen(fd, "wb") as out, urllib.request.urlopen(CADDY_DEB_URL, timeout=60) as resp:
|
|
925
|
+
shutil.copyfileobj(resp, out, 1 << 20)
|
|
926
|
+
got = _sha512(Path(part))
|
|
927
|
+
if got != CADDY_DEB_SHA512:
|
|
928
|
+
raise Refused(f"{CADDY_DEB_URL} has SHA-512 {got[:16]}…, not the pinned one")
|
|
929
|
+
os.replace(part, deb)
|
|
930
|
+
except OSError as exc:
|
|
931
|
+
raise Refused(f"cannot download {CADDY_DEB_URL}: {exc}") from exc
|
|
932
|
+
finally:
|
|
933
|
+
with contextlib.suppress(FileNotFoundError):
|
|
934
|
+
os.unlink(part)
|
|
935
|
+
return deb
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
def _install_caddy(log) -> None:
|
|
939
|
+
"""Put the pinned Caddy package in place; nothing to do when it is.
|
|
940
|
+
|
|
941
|
+
Raises:
|
|
942
|
+
Refused: When the package cannot be had or installed.
|
|
943
|
+
"""
|
|
944
|
+
if _caddy_installed_version() == CADDY_VERSION:
|
|
945
|
+
log.write(f"=== caddy {CADDY_VERSION} is already installed\n")
|
|
946
|
+
return
|
|
947
|
+
deb = _fetch_caddy(log)
|
|
948
|
+
# An earlier attempt cut off by a power loss mid-install leaves dpkg
|
|
949
|
+
# half-configured, and apt-get refuses every install until this runs.
|
|
950
|
+
# Not fatal: dpkg has no lock timeout, so an automatic update holding
|
|
951
|
+
# the lock fails it at once, while the install below waits for it —
|
|
952
|
+
# and fails clearly if dpkg really is broken.
|
|
953
|
+
rc = _switch_cmd(["dpkg", "--configure", "-a"], log, 600)
|
|
954
|
+
if rc != 0:
|
|
955
|
+
log.write(f"=== dpkg --configure -a failed (rc={rc}); installing anyway\n")
|
|
956
|
+
# apt-get rather than dpkg -i, so a missing dependency is fetched, not left
|
|
957
|
+
# broken. The drop-in's condition keeps the postinst from starting Caddy.
|
|
958
|
+
argv = [
|
|
959
|
+
"apt-get", "install", "-y", "--no-install-recommends",
|
|
960
|
+
"-o", "DPkg::Lock::Timeout=300", str(deb),
|
|
961
|
+
]
|
|
962
|
+
rc = _switch_cmd(argv, log)
|
|
963
|
+
if rc != 0:
|
|
964
|
+
raise Refused(f"{' '.join(argv)} failed (rc={rc})")
|
|
965
|
+
|
|
966
|
+
|
|
865
967
|
def _native_image_state() -> int:
|
|
866
968
|
"""Print the installed and the candidate Caddy package. Changes nothing.
|
|
867
969
|
|
|
@@ -871,9 +973,7 @@ def _native_image_state() -> int:
|
|
|
871
973
|
Returns:
|
|
872
974
|
0, with JSON on stdout.
|
|
873
975
|
"""
|
|
874
|
-
|
|
875
|
-
status, _, version = out.strip().partition(" ")
|
|
876
|
-
installed = version if rc == 0 and status == "installed" and version else None
|
|
976
|
+
installed = _caddy_installed_version()
|
|
877
977
|
candidate = None
|
|
878
978
|
_, out = _capture(["apt-cache", "policy", "caddy"])
|
|
879
979
|
for line in out.splitlines():
|
|
@@ -904,7 +1004,7 @@ def _native_caddy(verb: str, argument: str | None) -> int:
|
|
|
904
1004
|
if verb == "caddy-image-state":
|
|
905
1005
|
return _native_image_state()
|
|
906
1006
|
if verb == "caddy-image-apply":
|
|
907
|
-
raise Refused("Caddy
|
|
1007
|
+
raise Refused("Caddy is pinned by boneIO; it updates with boneIO")
|
|
908
1008
|
if verb == "caddy-root-ca":
|
|
909
1009
|
return _caddy_root_ca()
|
|
910
1010
|
raise Refused(f"verb {verb!r} has no meaning for the packaged Caddy")
|
|
@@ -1459,32 +1559,8 @@ def _switch_steps(state: dict, log) -> None:
|
|
|
1459
1559
|
step("preconditions")
|
|
1460
1560
|
live, native, cloud, tag = _switch_preconditions()
|
|
1461
1561
|
port = _https_port()
|
|
1462
|
-
step("
|
|
1463
|
-
|
|
1464
|
-
# broken Debian mirror must not stop this.
|
|
1465
|
-
run([
|
|
1466
|
-
# Without it an unreachable repository is only a warning, and the
|
|
1467
|
-
# install then fails less clearly, or installs a stale list's.
|
|
1468
|
-
"apt-get", "update", "--error-on=any",
|
|
1469
|
-
"-o", "Dir::Etc::sourcelist=sources.list.d/caddy-stable.list",
|
|
1470
|
-
"-o", "Dir::Etc::sourceparts=-",
|
|
1471
|
-
"-o", "APT::Get::List-Cleanup=0",
|
|
1472
|
-
"-o", "DPkg::Lock::Timeout=300",
|
|
1473
|
-
])
|
|
1474
|
-
step("apt-install")
|
|
1475
|
-
# An earlier attempt cut off by a power loss mid-install leaves dpkg
|
|
1476
|
-
# half-configured, and apt-get refuses every install until this runs.
|
|
1477
|
-
# Not fatal: dpkg has no lock timeout, so an automatic update holding
|
|
1478
|
-
# the lock fails it at once, while the install below waits for it —
|
|
1479
|
-
# and fails clearly if dpkg really is broken.
|
|
1480
|
-
rc = _switch_cmd(["dpkg", "--configure", "-a"], log, 600)
|
|
1481
|
-
if rc != 0:
|
|
1482
|
-
log.write(f"=== dpkg --configure -a failed (rc={rc}); installing anyway\n")
|
|
1483
|
-
# The drop-in's condition keeps the postinst from starting Caddy.
|
|
1484
|
-
run([
|
|
1485
|
-
"apt-get", "install", "-y", "--no-install-recommends",
|
|
1486
|
-
"-o", "DPkg::Lock::Timeout=300", "caddy",
|
|
1487
|
-
])
|
|
1562
|
+
step("install-caddy")
|
|
1563
|
+
_install_caddy(log)
|
|
1488
1564
|
step("carry-over")
|
|
1489
1565
|
_carry_over_ca(log)
|
|
1490
1566
|
# The device's name now, not the one the container recorded (its
|
|
@@ -1671,6 +1747,11 @@ def _switch(verb: str, argument: str | None) -> int:
|
|
|
1671
1747
|
return _switch_start()
|
|
1672
1748
|
if verb == "proxy-switch-run":
|
|
1673
1749
|
return _switch_run()
|
|
1750
|
+
if verb == "caddy-install":
|
|
1751
|
+
# The image build's way in; it has no switch to run.
|
|
1752
|
+
with _proxy_lock():
|
|
1753
|
+
_install_caddy(sys.stdout)
|
|
1754
|
+
return 0
|
|
1674
1755
|
if verb == "proxy-switch-recover":
|
|
1675
1756
|
# Waiting for the lock is pointless while the switch itself runs.
|
|
1676
1757
|
if not _switch_unit_active():
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"action":"install_file","dst":"/usr/lib/boneio/trusted/docker-compose.yaml","expected_sha256":"48ad7a194a78d3d1b018349b60834389841f56e287068988a75197cfaf9a62c2","group":"root","mode":420,"owner":"root","src":"docker/nodered/docker-compose.yaml","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/docker-compose-cloud.yaml","expected_sha256":"66cc2d02710ac8d0311514b686518afa6d5a0bcbf0c8c069367e1db7157dadd7","group":"root","mode":420,"owner":"root","src":"docker/nodered/docker-compose-cloud.yaml","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-containers","expected_sha256":"
|
|
1
|
+
[{"action":"install_file","dst":"/usr/lib/boneio/trusted/docker-compose.yaml","expected_sha256":"48ad7a194a78d3d1b018349b60834389841f56e287068988a75197cfaf9a62c2","group":"root","mode":420,"owner":"root","src":"docker/nodered/docker-compose.yaml","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/docker-compose-cloud.yaml","expected_sha256":"66cc2d02710ac8d0311514b686518afa6d5a0bcbf0c8c069367e1db7157dadd7","group":"root","mode":420,"owner":"root","src":"docker/nodered/docker-compose-cloud.yaml","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/sbin/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{},"validate":"python"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8%��Q�<��{Mz�����ȵk�/�K\��Ȭ�l�A��.<ŀ�.��j v�wM�^j�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/sbin/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{},"validate":"python"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
�vi6�"+�Eu�tRBiŮ�N���ƎC/�@���qS葅��"���l؈w�Kq@��
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-system","expected_sha256":"194db9b70af2c93c4c2364d7965001b2ecfff6d3bf81bda91ab93f2bf1a97469","group":"root","mode":493,"owner":"root","src":"helpers/boneio-system","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/sbin/boneio-system","expected_sha256":"194db9b70af2c93c4c2364d7965001b2ecfff6d3bf81bda91ab93f2bf1a97469","group":"root","mode":493,"owner":"root","src":"helpers/boneio-system","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/share/keyrings/caddy-stable-archive-keyring.gpg","expected_sha256":"c17cd5298a0bab02fda439fff278d9a55df2120cf9dac790c6ce71930db90b37","group":"root","mode":420,"owner":"root","src":"apt/caddy-stable-archive-keyring.gpg","template_vars":{}},{"action":"install_file","dst":"/etc/apt/preferences.d/caddy","expected_sha256":"e8dc3ffa3d5ec9568ba050f58ede582e8922276c34a3421e038dc6951fecf647","group":"root","mode":420,"owner":"root","src":"apt/caddy-pin.pref","template_vars":{}},{"action":"install_file","dst":"/etc/apt/sources.list.d/caddy-stable.list","expected_sha256":"92be0103caead59a9853afbf04e2ef1ac22ff4f3208d031a99ef6c97ee2d40d0","group":"root","mode":420,"owner":"root","src":"apt/caddy-stable.list","template_vars":{}},{"action":"install_file","dst":"/usr/share/boneio/proxy/502.html","expected_sha256":"61f2db042abc883ebd946362050712d369cedc595116b9676630600cd1da0e2c","group":"root","mode":420,"owner":"root","src":"caddy/502.html","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-proxy-config","expected_sha256":"65f1e671354c75a0221011253a524d59eee700a03e01998479a17b2656a8b39b","group":"root","mode":493,"owner":"root","src":"helpers/boneio-proxy-config","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/lib/boneio/proxy-config","expected_sha256":"65f1e671354c75a0221011253a524d59eee700a03e01998479a17b2656a8b39b","group":"root","mode":493,"owner":"root","src":"helpers/boneio-proxy-config","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/etc/systemd/system/caddy.service.d/boneio.conf","expected_sha256":"98967fa3319a87008fb9e65e6ad5030378ed546a5af31b7b2ce790776a354418","group":"root","mode":420,"owner":"root","src":"systemd/caddy-boneio.conf","template_vars":{}},{"action":"systemctl_daemon_reload"},{"action":"install_file","dst":"/usr/lib/boneio/trusted/docker-compose-native-proxy.yaml","expected_sha256":"932d82164648d8e734617737a8a5beac58b03f81febcf840e6ffae0065bf7518","group":"root","mode":420,"owner":"root","src":"docker/nodered/docker-compose-native-proxy.yaml","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-containers","expected_sha256":"
|
|
1
|
+
[{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-system","expected_sha256":"194db9b70af2c93c4c2364d7965001b2ecfff6d3bf81bda91ab93f2bf1a97469","group":"root","mode":493,"owner":"root","src":"helpers/boneio-system","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/sbin/boneio-system","expected_sha256":"194db9b70af2c93c4c2364d7965001b2ecfff6d3bf81bda91ab93f2bf1a97469","group":"root","mode":493,"owner":"root","src":"helpers/boneio-system","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/share/keyrings/caddy-stable-archive-keyring.gpg","expected_sha256":"c17cd5298a0bab02fda439fff278d9a55df2120cf9dac790c6ce71930db90b37","group":"root","mode":420,"owner":"root","src":"apt/caddy-stable-archive-keyring.gpg","template_vars":{}},{"action":"install_file","dst":"/etc/apt/preferences.d/caddy","expected_sha256":"e8dc3ffa3d5ec9568ba050f58ede582e8922276c34a3421e038dc6951fecf647","group":"root","mode":420,"owner":"root","src":"apt/caddy-pin.pref","template_vars":{}},{"action":"install_file","dst":"/etc/apt/sources.list.d/caddy-stable.list","expected_sha256":"92be0103caead59a9853afbf04e2ef1ac22ff4f3208d031a99ef6c97ee2d40d0","group":"root","mode":420,"owner":"root","src":"apt/caddy-stable.list","template_vars":{}},{"action":"install_file","dst":"/usr/share/boneio/proxy/502.html","expected_sha256":"61f2db042abc883ebd946362050712d369cedc595116b9676630600cd1da0e2c","group":"root","mode":420,"owner":"root","src":"caddy/502.html","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-proxy-config","expected_sha256":"65f1e671354c75a0221011253a524d59eee700a03e01998479a17b2656a8b39b","group":"root","mode":493,"owner":"root","src":"helpers/boneio-proxy-config","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/lib/boneio/proxy-config","expected_sha256":"65f1e671354c75a0221011253a524d59eee700a03e01998479a17b2656a8b39b","group":"root","mode":493,"owner":"root","src":"helpers/boneio-proxy-config","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/etc/systemd/system/caddy.service.d/boneio.conf","expected_sha256":"98967fa3319a87008fb9e65e6ad5030378ed546a5af31b7b2ce790776a354418","group":"root","mode":420,"owner":"root","src":"systemd/caddy-boneio.conf","template_vars":{}},{"action":"systemctl_daemon_reload"},{"action":"install_file","dst":"/usr/lib/boneio/trusted/docker-compose-native-proxy.yaml","expected_sha256":"932d82164648d8e734617737a8a5beac58b03f81febcf840e6ffae0065bf7518","group":"root","mode":420,"owner":"root","src":"docker/nodered/docker-compose-native-proxy.yaml","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/sbin/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/etc/systemd/system/boneio-proxy-recover.service","expected_sha256":"523dbcf988b8b1c2ea8afc35fe00ad55ae1ab0f0202441aa04d9d2e8aba71f0c","group":"root","mode":420,"owner":"root","src":"systemd/boneio-proxy-recover.service","template_vars":{}},{"action":"systemctl_daemon_reload"},{"action":"systemctl_enable","unit":"boneio-proxy-recover.service"},{"action":"install_file","dst":"/etc/apt/apt.conf.d/53boneio-caddy","expected_sha256":"aaf369abcf6c0e0462f3e49f71329b788e8157d7a7797119642d9c6c0a8c364a","group":"root","mode":420,"owner":"root","src":"apt/53boneio-caddy","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-helpers-heal","expected_sha256":"e701931442b470d049282412b636d54e7af0a808f1816c146bf9e46c70e5d024","group":"root","mode":493,"owner":"root","src":"helpers/boneio-helpers-heal","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/sbin/boneio-helpers-heal","expected_sha256":"e701931442b470d049282412b636d54e7af0a808f1816c146bf9e46c70e5d024","group":"root","mode":493,"owner":"root","src":"helpers/boneio-helpers-heal","template_vars":{},"validate":"python"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
��DR�>S�}�9�$�P��}�D"b�@sh�ђjȨ�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{},"validate":"python"},{"action":"install_file","dst":"/usr/sbin/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{},"validate":"python"},{"action":"remove_file","path":"/etc/apt/apt.conf.d/53boneio-caddy"},{"action":"remove_file","path":"/etc/apt/sources.list.d/caddy-stable.list"},{"action":"remove_file","path":"/etc/apt/preferences.d/caddy"},{"action":"remove_file","path":"/usr/share/keyrings/caddy-stable-archive-keyring.gpg"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
�� �
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"action":"set_file_permissions","group":"root","mode":493,"owner":"root","path":"/etc/boneio"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(M�yS�=T��ǘ�LK�֢>`���Sw2����H+k����й�yu��dD,��7�r�I�s
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-migrate-v2","expected_sha256":"1a2b4079f63991a055133e0853b5ec8764190c432d9a323d75614e19e7c86e14","group":"root","mode":493,"owner":"root","src":"helpers/boneio-migrate-v2","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-containers","expected_sha256":"
|
|
1
|
+
[{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-migrate-v2","expected_sha256":"1a2b4079f63991a055133e0853b5ec8764190c432d9a323d75614e19e7c86e14","group":"root","mode":493,"owner":"root","src":"helpers/boneio-migrate-v2","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-system","expected_sha256":"194db9b70af2c93c4c2364d7965001b2ecfff6d3bf81bda91ab93f2bf1a97469","group":"root","mode":493,"owner":"root","src":"helpers/boneio-system","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/boneio-helpers-heal","expected_sha256":"e701931442b470d049282412b636d54e7af0a808f1816c146bf9e46c70e5d024","group":"root","mode":493,"owner":"root","src":"helpers/boneio-helpers-heal","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/sudoers-boneio-helpers","expected_sha256":"74e8c1209b80519dc6e3db6c6d8e7ca02f01f8f618cee6f741e8400270d3b05a","group":"root","mode":288,"owner":"root","src":"sudoers/boneio-helpers","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/migrations.pem","expected_sha256":"16a97c875edb68e19655b953b4baa773cc1a4e57810543cda646a3e3e83c0c0e","group":"root","mode":292,"owner":"root","src":"migrations.pem","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/migrations-recovery.pem","expected_sha256":"9681710e1a38b8ea7ba5558839e4ef8b5f01a75722dbf403913bad76437449ec","group":"root","mode":292,"owner":"root","src":"migrations-recovery.pem","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/docker-compose.yaml","expected_sha256":"48ad7a194a78d3d1b018349b60834389841f56e287068988a75197cfaf9a62c2","group":"root","mode":420,"owner":"root","src":"docker/nodered/docker-compose.yaml","template_vars":{}},{"action":"install_file","dst":"/usr/lib/boneio/trusted/docker-compose-cloud.yaml","expected_sha256":"66cc2d02710ac8d0311514b686518afa6d5a0bcbf0c8c069367e1db7157dadd7","group":"root","mode":420,"owner":"root","src":"docker/nodered/docker-compose-cloud.yaml","template_vars":{}},{"action":"install_file","dst":"/etc/boneio/migrations.pem","expected_sha256":"16a97c875edb68e19655b953b4baa773cc1a4e57810543cda646a3e3e83c0c0e","group":"root","mode":292,"owner":"root","src":"migrations.pem","template_vars":{}},{"action":"install_file","dst":"/etc/boneio/migrations-recovery.pem","expected_sha256":"9681710e1a38b8ea7ba5558839e4ef8b5f01a75722dbf403913bad76437449ec","group":"root","mode":292,"owner":"root","src":"migrations-recovery.pem","template_vars":{}},{"action":"install_file","dst":"/usr/sbin/boneio-migrate-v2","expected_sha256":"1a2b4079f63991a055133e0853b5ec8764190c432d9a323d75614e19e7c86e14","group":"root","mode":493,"owner":"root","src":"helpers/boneio-migrate-v2","template_vars":{},"validate":"python","validate_cmd":"python3 -m py_compile"},{"action":"install_file","dst":"/usr/sbin/boneio-containers","expected_sha256":"e5ffb274723f5fb79b014f8d6a15eef4491ea0b71954ac03c9bd5c68878fbdf6","group":"root","mode":493,"owner":"root","src":"helpers/boneio-containers","template_vars":{},"validate":"python","validate_cmd":"python3 -m py_compile"},{"action":"install_file","dst":"/usr/sbin/boneio-helpers-heal","expected_sha256":"e701931442b470d049282412b636d54e7af0a808f1816c146bf9e46c70e5d024","group":"root","mode":493,"owner":"root","src":"helpers/boneio-helpers-heal","template_vars":{},"validate":"python","validate_cmd":"python3 -m py_compile"},{"action":"install_file","dst":"/etc/sudoers.d/boneio-helpers","expected_sha256":"74e8c1209b80519dc6e3db6c6d8e7ca02f01f8f618cee6f741e8400270d3b05a","group":"root","mode":288,"owner":"root","src":"sudoers/boneio-helpers","template_vars":{},"validate":"sudoers","validate_cmd":"visudo -cf"},{"action":"install_file","dst":"/etc/systemd/system/boneio-helpers-heal.service","expected_sha256":"d3feacddc720307c6ce739e21cb5ca79d90b05c7e1a1f3d9481cd9dbb071c2c6","group":"root","mode":420,"on_change":{"action":"systemctl_daemon_reload"},"owner":"root","src":"systemd/boneio-helpers-heal.service","template_vars":{}},{"action":"systemctl_enable","unit":"boneio-helpers-heal.service"},{"action":"set_file_permissions","group":"root","mode":420,"owner":"root","path":"/home/boneio/docker/nodered/docker-compose.yaml"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
�Y���4+L�p��9�����լh��r�{>F�����OQ>��&j��P��Pqzz<�ğ֨�-
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"plans":{"1.3.0":"645ac6bdda8dc0a73c219aa3684a29df4bdd4032aad97a833b259de489b2ce32","1.3.1":"580381a4f6f40fc1bd4e903e591ad0d5c1db27daaccafc6f79dabf8c3b84259a","1.3.2":"7a69ffaf0c41438be25a656dcdc87783daac0eae79218d023648ef9d708e373f","1.4.0":"41c3a16e7819857a4b826e944fcfb4f79c58e7192cb151b106a3acd7487d5771","1.4.3":"a8cfbabff09d21944a822c4a70f23a7ee14960c4054de151c9fbc7cdb29adff5","1.4.4":"cb3a82435fe912e048235f08d08158d4a37398b801255ee4b7e3b6c51f9ebd40","1.5.0":"52d9d118da099abda0e0153cd16892e201681f6e4d3c6e5790284d1ac469a407","1.5.1":"d283cb8c01024338fb614ae2199744d883379f59579423e4eb9234f5c59ebdd8","1.5.10":"889e2f12614e6e67d342571c1c3bab8940659bfbbf43fa30a6847e73decb85d1","1.5.11":"4906e4de2b3a9c2f0b0181817c9dc168cb910ba6941691d4e86b8387802b624a","1.5.12":"c0a0dc085bb33d9718e869ed5effc2c1581deffd7ed0d5adc119b94312181625","1.5.13":"bfe58c8756f9b5f5e55d5acbb6f7cfc469d201004d312c14e022eb7c52369b7d","1.5.14":"a0464f11e05128cba8881e6295e591fce1ed1e8d43ab0e16710effb8e543d810","1.5.15":"0687a735cb4aaf8f8f74ad6e228ca1b14e045cba8821991c7d19fc9beaeac766","1.5.16":"3544ac754f39d56ecf2b06300b7cca1b6f8723f99885cd11bd690f1a704d3728","1.5.17":"cf1e9e0ff6812cb7092a82dd588392d625decbe3680fe003dfc554f9045809d3","1.5.18":"1fd873effa66b632217d674745722f712a48b36bb79957fefae722757a74bc30","1.5.2":"39fccb7582e13e7e3436861fde7b83ddb8057788cbde792f2f0cf7003f068850","1.5.3":"39fccb7582e13e7e3436861fde7b83ddb8057788cbde792f2f0cf7003f068850","1.5.4":"e86174ba5aff6f257f8a3f4721c7942885cd203469a9d8ddc15dbe6c704e0f45","1.5.5":"f93ed2d4342e447eb9900a0150331113918f2a8b3baeeb795c07231d80f0337c","1.5.6":"e3d90e6ceb20d760f1e9fa63224c5a070a16b3ca6e7dc4cc2c594138e929cce8","1.5.7":"a0464f11e05128cba8881e6295e591fce1ed1e8d43ab0e16710effb8e543d810","1.5.8":"f075b84fb04f4043658a28402d963494dd58481f164c0b371cec94322fe6d131","1.5.9":"ac170fc924019fc2acd69a90a82ba5c2552dce7a2c01a05e5407443e7a9e5af7","1.6.0":"c8286514d1a4f1805e727e13d3c350bb390378c6f31ad6920030412d61ec9b3f","1.6.1":"aa1d3934091853fc21208993930c1bf92e17136428d1d0baaefabfa65d13e7fa","1.6.10":"41c3a16e7819857a4b826e944fcfb4f79c58e7192cb151b106a3acd7487d5771","1.6.11":"d136203e08e3b052254403815d4ccedb555b0a297686fe97952d275eb1f322eb","1.6.12":"c328d4e36bd6277e01cef0140993e23970f4dff84425f3eba236cdd9a8954355","1.6.13":"f1f8b091d054a08665f047b5ad91f1f309f729a8aa30a2992d6ffdbd7f9fa7e4","1.6.14":"f1f8b091d054a08665f047b5ad91f1f309f729a8aa30a2992d6ffdbd7f9fa7e4","1.6.15":"8cfaeae24ceefe171d40241549c1f62527ce41821e5fd2904c0df1973596c0c7","1.6.16":"c02099b67b33d905d99bcb322a8ae7dbef2b64731727671b0769a47e76facb08","1.6.17":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.18":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.19":"c02099b67b33d905d99bcb322a8ae7dbef2b64731727671b0769a47e76facb08","1.6.2":"6ef96b5e00a04a929d16f0e4a136bfcc5b8132a466d6907a99b2c8516a8952d5","1.6.20":"28027c836eef19b21b95500760961e181f6078d22cccf8cca62b77bbbb11a0c5","1.6.21":"
|
|
1
|
+
{"plans":{"1.3.0":"645ac6bdda8dc0a73c219aa3684a29df4bdd4032aad97a833b259de489b2ce32","1.3.1":"580381a4f6f40fc1bd4e903e591ad0d5c1db27daaccafc6f79dabf8c3b84259a","1.3.2":"7a69ffaf0c41438be25a656dcdc87783daac0eae79218d023648ef9d708e373f","1.4.0":"41c3a16e7819857a4b826e944fcfb4f79c58e7192cb151b106a3acd7487d5771","1.4.3":"a8cfbabff09d21944a822c4a70f23a7ee14960c4054de151c9fbc7cdb29adff5","1.4.4":"cb3a82435fe912e048235f08d08158d4a37398b801255ee4b7e3b6c51f9ebd40","1.5.0":"52d9d118da099abda0e0153cd16892e201681f6e4d3c6e5790284d1ac469a407","1.5.1":"d283cb8c01024338fb614ae2199744d883379f59579423e4eb9234f5c59ebdd8","1.5.10":"889e2f12614e6e67d342571c1c3bab8940659bfbbf43fa30a6847e73decb85d1","1.5.11":"4906e4de2b3a9c2f0b0181817c9dc168cb910ba6941691d4e86b8387802b624a","1.5.12":"c0a0dc085bb33d9718e869ed5effc2c1581deffd7ed0d5adc119b94312181625","1.5.13":"bfe58c8756f9b5f5e55d5acbb6f7cfc469d201004d312c14e022eb7c52369b7d","1.5.14":"a0464f11e05128cba8881e6295e591fce1ed1e8d43ab0e16710effb8e543d810","1.5.15":"0687a735cb4aaf8f8f74ad6e228ca1b14e045cba8821991c7d19fc9beaeac766","1.5.16":"3544ac754f39d56ecf2b06300b7cca1b6f8723f99885cd11bd690f1a704d3728","1.5.17":"cf1e9e0ff6812cb7092a82dd588392d625decbe3680fe003dfc554f9045809d3","1.5.18":"1fd873effa66b632217d674745722f712a48b36bb79957fefae722757a74bc30","1.5.2":"39fccb7582e13e7e3436861fde7b83ddb8057788cbde792f2f0cf7003f068850","1.5.3":"39fccb7582e13e7e3436861fde7b83ddb8057788cbde792f2f0cf7003f068850","1.5.4":"e86174ba5aff6f257f8a3f4721c7942885cd203469a9d8ddc15dbe6c704e0f45","1.5.5":"f93ed2d4342e447eb9900a0150331113918f2a8b3baeeb795c07231d80f0337c","1.5.6":"e3d90e6ceb20d760f1e9fa63224c5a070a16b3ca6e7dc4cc2c594138e929cce8","1.5.7":"a0464f11e05128cba8881e6295e591fce1ed1e8d43ab0e16710effb8e543d810","1.5.8":"f075b84fb04f4043658a28402d963494dd58481f164c0b371cec94322fe6d131","1.5.9":"ac170fc924019fc2acd69a90a82ba5c2552dce7a2c01a05e5407443e7a9e5af7","1.6.0":"c8286514d1a4f1805e727e13d3c350bb390378c6f31ad6920030412d61ec9b3f","1.6.1":"aa1d3934091853fc21208993930c1bf92e17136428d1d0baaefabfa65d13e7fa","1.6.10":"41c3a16e7819857a4b826e944fcfb4f79c58e7192cb151b106a3acd7487d5771","1.6.11":"d136203e08e3b052254403815d4ccedb555b0a297686fe97952d275eb1f322eb","1.6.12":"c328d4e36bd6277e01cef0140993e23970f4dff84425f3eba236cdd9a8954355","1.6.13":"f1f8b091d054a08665f047b5ad91f1f309f729a8aa30a2992d6ffdbd7f9fa7e4","1.6.14":"f1f8b091d054a08665f047b5ad91f1f309f729a8aa30a2992d6ffdbd7f9fa7e4","1.6.15":"8cfaeae24ceefe171d40241549c1f62527ce41821e5fd2904c0df1973596c0c7","1.6.16":"c02099b67b33d905d99bcb322a8ae7dbef2b64731727671b0769a47e76facb08","1.6.17":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.18":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.19":"c02099b67b33d905d99bcb322a8ae7dbef2b64731727671b0769a47e76facb08","1.6.2":"6ef96b5e00a04a929d16f0e4a136bfcc5b8132a466d6907a99b2c8516a8952d5","1.6.20":"28027c836eef19b21b95500760961e181f6078d22cccf8cca62b77bbbb11a0c5","1.6.21":"3c4f833bf1658015f86ff7bacdc5f12e9987f7505fa40d8d588ecfd73553a069","1.6.22":"0bc870bf7b0695e2ae67b1ee321dea1066451aabffbb0603e734ef1aca67fb7d","1.6.23":"c02099b67b33d905d99bcb322a8ae7dbef2b64731727671b0769a47e76facb08","1.6.24":"701460ed5e3ed236c8c7273ba0a98a0235786b4a04bd6c7aa6088fb835549aa6","1.6.25":"efa09d1677148bdfe4639273479c9a1fa527d4cf5d2ca9af6dd876883652ba22","1.6.26":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.27":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.28":"6e219d09a06a5de8162a521c9b3c3b54067e6bb4d1d15b3b47a8ec522fd76b5c","1.6.29":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.3":"5c10db827bcb92b9322d4aa5751076b825da87c6d18d6953847ba72317cca862","1.6.30":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.31":"aff0aceb19da38bd1c0e077f2ce8da562ee007accdb4b6dd89570da63d6ac3d6","1.6.32":"d2f6d821528a07cd0d91e1d437c7348a938ce487015e577eeefb56ccc5467fad","1.6.33":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.34":"c8286514d1a4f1805e727e13d3c350bb390378c6f31ad6920030412d61ec9b3f","1.6.35":"01e6f8e021884ed7d1eacaafb6a32fdea66477644c46ba9863628c2eb4090917","1.6.36":"c02099b67b33d905d99bcb322a8ae7dbef2b64731727671b0769a47e76facb08","1.6.37":"485e7f7147d4342ba19012cb80815450f25c43cd7d29446231f8bcf3971ddfde","1.6.38":"01e6f8e021884ed7d1eacaafb6a32fdea66477644c46ba9863628c2eb4090917","1.6.39":"1673febdb8301a6676b87249bdf2cfb04878d0696af7a40d4615c354e83332bc","1.6.4":"baf2bb1c2ec7c1bfccfc514ef1cef67907e056e4f7153bb5932ecb835c9cff78","1.6.40":"1bcd82ee9dcaee6f87afc32a87be5be8aced8f050bffc30c3a27cf4e1be8c0d3","1.6.41":"727bf34badeba075962ba0f3b95a466972756b7b5ab75a9653d8f0b2f38a0b30","1.6.42":"c07f3bbf118f5b20d426a75725e47481638da203d767e3516ff13b48ec335be3","1.6.43":"122079dd653ada93cfa2b59d8497e2eaa74ede6085fa07304c497b5663cb4427","1.6.44":"51602b377acf7cbc8a08067a101335a158e140d51f06ded127d1f737a30d3784","1.6.45":"efc00bda9db92993fea2dd87a1e23eaf4c6a200d4ba3e44aba7d2f8e1521259c","1.6.5":"da1ee2bfbaaaa897109df8a5e59a037373a6715f28cf6b2de4a97ec07a07d8fc","1.6.6":"535bb041b99d5ac1bc9028ea88bc2fbf3dbadc80ea8dea236cc219123c194114","1.6.7":"d59af413e270e6f34b1b9a1c8c4acef35328f00e26fad447cfe214545af78d8f","1.6.8":"fea99f3d28c93b1c6f2b97453e008ddb22223e467b8d7f18ff1f920a20f654b4","1.6.9":"63392b32b88615655806d518a05d8b451bcd0de5148d6b1b1914b6b6eee3b56b"},"release":"1.6.0.dev40"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
�7�@!�8�������9�&�"F�gͭD�O�{���a� G��*T�KID@��ؒH���
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""Caddy from its GitHub release, not from its apt repository on Cloudsmith.
|
|
2
|
+
|
|
3
|
+
Caddy's Debian repository on Cloudsmith answers 402 Payment Required whenever
|
|
4
|
+
the project runs out of transfer quota (caddyserver/dist#142). Every
|
|
5
|
+
``apt-get update`` then fails on it, and the switch to the packaged Caddy
|
|
6
|
+
cannot install the package at all.
|
|
7
|
+
|
|
8
|
+
``boneio-containers`` now installs the armhf ``.deb`` from Caddy's GitHub
|
|
9
|
+
release itself, pinned by version and SHA-512 in the helper, which is signed
|
|
10
|
+
with these migrations. The repository 1.6.42 staged goes: its source list, its
|
|
11
|
+
key, the 2.11 pin and the automatic-updates origin. A Caddy already installed
|
|
12
|
+
from it stays; it is the same file the release publishes.
|
|
13
|
+
|
|
14
|
+
Caddy no longer takes patch releases by itself: a new Caddy comes with a
|
|
15
|
+
boneIO release that moves the pin.
|
|
16
|
+
|
|
17
|
+
The helper goes first, to the pristine copy as well, so
|
|
18
|
+
``boneio-helpers-heal.service`` does not put the apt-based one back.
|
|
19
|
+
|
|
20
|
+
To retry on a device, delete ``/var/lib/boneio/migrations.d/1.6.44.applied``
|
|
21
|
+
and restart boneIO.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
from __future__ import annotations
|
|
25
|
+
|
|
26
|
+
from boneio.migrations.actions import InstallFile, MigrationAction, RemoveFile
|
|
27
|
+
|
|
28
|
+
VERSION = "1.6.44"
|
|
29
|
+
DESCRIPTION = "Caddy from its GitHub release, not the Cloudsmith apt repository"
|
|
30
|
+
REQUIRES_ROOT = True
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def plan() -> list[MigrationAction]:
|
|
34
|
+
"""Return the ordered list of migration actions for version 1.6.44.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
List of :class:`MigrationAction` to apply in order.
|
|
38
|
+
"""
|
|
39
|
+
return [
|
|
40
|
+
*(
|
|
41
|
+
InstallFile(
|
|
42
|
+
src="helpers/boneio-containers", dst=dst, mode=0o755,
|
|
43
|
+
owner="root", group="root", validate="python",
|
|
44
|
+
)
|
|
45
|
+
for dst in ("/usr/lib/boneio/trusted/boneio-containers", "/usr/sbin/boneio-containers")
|
|
46
|
+
),
|
|
47
|
+
RemoveFile(path="/etc/apt/apt.conf.d/53boneio-caddy"),
|
|
48
|
+
RemoveFile(path="/etc/apt/sources.list.d/caddy-stable.list"),
|
|
49
|
+
RemoveFile(path="/etc/apt/preferences.d/caddy"),
|
|
50
|
+
RemoveFile(path="/usr/share/keyrings/caddy-stable-archive-keyring.gpg"),
|
|
51
|
+
]
|