From f1331ce1a7c1738b5b32ba540f5cc9a9bf44cbba Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 2 Apr 2024 10:15:50 +0200 Subject: [PATCH 001/346] matter_server: Add Ingress, custom PAA certificate dir and bump to 5.9.0 (#3533) * matter_server: Add Ingress and custom PAA certificate dir Add ingress capabilities to allow easy access for the debug server present in recent Python Matter Server releases. Also configure to use /data/certificates as location for certificates. This is a persistent directory. With that, the logic which downloads certificates only once a day is actual functional. * matter_server: Bump Python Matter server to 5.9.0 --- matter_server/CHANGELOG.md | 6 ++++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 4 +++- .../rootfs/etc/s6-overlay/s6-rc.d/matter-server/run | 2 ++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 5191eac482a..eb66aebda65 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 5.5.0 + +- Bump Python Matter Server to [5.9.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/5.9.0) +- Enable Ingress for the Python Matter Server built-in web interface +- Store PAA root certificates in /data to avoid download on every startup (downloads once a day) + ## 5.4.1 - Bump Python Matter Server to [5.8.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/5.8.1) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 18f233be010..4a5033f8330 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:5.8.1 - amd64: ghcr.io/home-assistant-libs/python-matter-server:5.8.1 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:5.9.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:5.9.0 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 1e2635abc85..ca5f49de962 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.1 +version: 5.5.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. @@ -17,6 +17,8 @@ host_ipc: false host_network: true host_dbus: true image: homeassistant/{arch}-addon-matter-server +ingress: true +ingress_port: 5580 init: false options: log_level: info diff --git a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run index b3e142d2626..8f2b57de526 100755 --- a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run +++ b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run @@ -53,10 +53,12 @@ if bashio::config.true "beta"; then exec /usr/bin/gdb --quiet -ex="set confirm off" -ex run -ex backtrace -ex "quit \$_exitcode" --args /usr/local/bin/python \ /usr/local/bin/matter-server --storage-path "/data" --port "${server_port}" \ --log-level "${log_level}" --primary-interface "${primary_interface}" \ + --paa-root-cert-dir "/data/credentials" \ --fabricid 2 --vendorid 4939 "${extra_args[@]}" else exec /usr/local/bin/matter-server --storage-path "/data" --port "${server_port}" \ --log-level "${log_level}" --log-level-sdk "${log_level_sdk}" \ --primary-interface "${primary_interface}" \ + --paa-root-cert-dir "/data/credentials" \ --fabricid 2 --vendorid 4939 "${extra_args[@]}" fi From 9bd8e6309b3329e7024f202e0a59b6622baa81e9 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 3 Apr 2024 14:07:25 +0200 Subject: [PATCH 002/346] matter_server: Fix bashio::log.warn (#3539) * matter_server: Fix bashio::log.warning * matter-server: version 5.5.1 --- matter_server/CHANGELOG.md | 4 ++++ matter_server/config.yaml | 2 +- matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index eb66aebda65..ec5b5fa272c 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.5.1 + +- Fix logging in case fallback method for determining the primary network interface is used + ## 5.5.0 - Bump Python Matter Server to [5.9.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/5.9.0) diff --git a/matter_server/config.yaml b/matter_server/config.yaml index ca5f49de962..4becf8a8c41 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.5.0 +version: 5.5.1 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. diff --git a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run index 8f2b57de526..4a6167c6754 100755 --- a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run +++ b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run @@ -34,7 +34,7 @@ primary_interface="$(bashio::api.supervisor 'GET' '/network/info' '' 'first(.int # Try fallback method (e.g. in case NetworkManager is not available) if [ -z ${primary_interface} ]; then - bashio::log.warn 'Trying fallback method to determine primary interface' + bashio::log.warning 'Trying fallback method to determine primary interface' primary_interface="$(ip --json route show default | jq --raw-output '.[0].dev')" fi From 6e347d48f008710df48b29c16a7177fee6f82e88 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Wed, 3 Apr 2024 08:14:12 -0400 Subject: [PATCH 003/346] openthread-border-router: Support Home Assistant Connect ZBT-1 (#3526) --- openthread_border_router/CHANGELOG.md | 3 +++ openthread_border_router/DOCS.md | 4 ++-- openthread_border_router/config.yaml | 2 +- .../rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up | 2 ++ openthread_border_router/translations/en.yaml | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 57f7f246c70..0e89831e56c 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 2.5.1 +- Support Home Assistant Connect ZBT-1. + ## 2.5.0 - Bump to OTBR POSIX version 2279c02f3c (2024-02-28 22:36:55 -0800) diff --git a/openthread_border_router/DOCS.md b/openthread_border_router/DOCS.md index 9b7cafc294e..caf699fa8b9 100644 --- a/openthread_border_router/DOCS.md +++ b/openthread_border_router/DOCS.md @@ -13,8 +13,8 @@ Follow these steps to get the add-on installed on your system: ## How to use You will need a 802.15.4 capable radio supported by OpenThread. Home Assistant -Yellow as well as Home Assistant SkyConnect are both capable to run OpenThread. -This add-on automatically installs the necessary firmware on these systems. +Yellow as well as Home Assistant SkyConnect/Connect ZBT-1 are both capable to run +OpenThread. This add-on automatically installs the necessary firmware on these systems. If you are using Home Assistant Yellow, choose `/dev/ttyAMA1` as device. diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index a95da12ba74..275a0ab66bf 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.5.0 +version: 2.5.1 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 23b8c422d6f..49566b76acd 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -47,6 +47,8 @@ else bashio::log.info "Checking ${device} identifying ${usb_product} from ${usb_manufacturer}." if [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "SkyConnect"* ]]; then firmware="NabuCasa_SkyConnect_OpenThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl" + elif [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "Home Assistant Connect ZBT-1"* ]]; then + firmware="NabuCasa_SkyConnect_OpenThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl" else exit_no_firmware fi diff --git a/openthread_border_router/translations/en.yaml b/openthread_border_router/translations/en.yaml index 77c912fc842..22d67e1e332 100644 --- a/openthread_border_router/translations/en.yaml +++ b/openthread_border_router/translations/en.yaml @@ -14,7 +14,7 @@ configuration: name: Automatically flash firmware description: >- Automatically flash OpenThread RCP firmware on Home Assistant Yellow and - SkyConnect. + SkyConnect/Connect ZBT-1. otbr_log_level: name: OpenThread Border Router agent log level description: >- From a7d6ad10307316af7dee65203a1543dfc2b6ed2d Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Wed, 3 Apr 2024 08:14:19 -0400 Subject: [PATCH 004/346] silabs-flasher: Support flashing the Connect ZBT-1 (#3527) --- silabs_flasher/CHANGELOG.md | 3 +++ silabs_flasher/DOCS.md | 2 +- silabs_flasher/README.md | 2 +- silabs_flasher/config.yaml | 2 +- .../rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up | 2 ++ 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/silabs_flasher/CHANGELOG.md b/silabs_flasher/CHANGELOG.md index 5a0c4d6a384..bd72fa2f294 100644 --- a/silabs_flasher/CHANGELOG.md +++ b/silabs_flasher/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 0.2.1 +- Support flashing the Connect ZBT-1. + ## 0.2.0 - Update universal-silabs-flasher to v0.0.13 diff --git a/silabs_flasher/DOCS.md b/silabs_flasher/DOCS.md index 3269615cab4..714467c013a 100644 --- a/silabs_flasher/DOCS.md +++ b/silabs_flasher/DOCS.md @@ -12,7 +12,7 @@ Follow these steps to get the add-on installed on your system: The add-on needs a Silicon Labs based wireless module accessible through a serial port (like the module on Home Assistant Yellow, Home Assistant -SkyConnect or other USB based wireless adapters). +SkyConnect/ZBT-1 or other USB based wireless adapters). 1. Select the correct `device` in the add-on configuration tab and press `Save`. 2. Start the add-on. diff --git a/silabs_flasher/README.md b/silabs_flasher/README.md index e8587a72d62..a805b190fe7 100644 --- a/silabs_flasher/README.md +++ b/silabs_flasher/README.md @@ -18,7 +18,7 @@ Multiprotocol add-on. ## About This add-on allows you to flash firmwares using the Gecko Bootloader file format -(gbl). By default it comes with firmware for Home Assistant SkyConnect and +(gbl). By default it comes with firmware for Home Assistant SkyConnect/ZBT-1 and Home Assistant Yellow to flash Zigbee. [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg diff --git a/silabs_flasher/config.yaml b/silabs_flasher/config.yaml index 29b8d019d4a..a22c749ec27 100644 --- a/silabs_flasher/config.yaml +++ b/silabs_flasher/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.2.0 +version: 0.2.1 slug: silabs_flasher name: Silicon Labs Flasher description: Silicon Labs firmware flasher add-on diff --git a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 9e3cedc56cb..51ef6d1be0c 100755 --- a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -71,6 +71,8 @@ else bashio::log.info "Checking ${device} identifying ${usb_product} from ${usb_manufacturer}." if [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "SkyConnect"* ]]; then firmware="NabuCasa_SkyConnect_EZSP_v7.3.1.0_ncp-uart-hw_115200.gbl" + elif [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "Home Assistant Connect ZBT-1"* ]]; then + firmware="NabuCasa_SkyConnect_EZSP_v7.3.1.0_ncp-uart-hw_115200.gbl" else exit_no_firmware fi From 388d4c988fe0daf5354ac7698bab28fd2d88c540 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Wed, 3 Apr 2024 08:14:34 -0400 Subject: [PATCH 005/346] silabs-multiprotocol: Support the Home Assistant Connect ZBT-1 (#3528) --- silabs-multiprotocol/CHANGELOG.md | 3 +++ silabs-multiprotocol/DOCS.md | 8 ++++---- silabs-multiprotocol/README.md | 2 +- silabs-multiprotocol/config.yaml | 2 +- .../etc/s6-overlay/scripts/universal-silabs-flasher-up | 2 ++ 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/silabs-multiprotocol/CHANGELOG.md b/silabs-multiprotocol/CHANGELOG.md index b6bb7a35755..e62764a6018 100644 --- a/silabs-multiprotocol/CHANGELOG.md +++ b/silabs-multiprotocol/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 2.4.5 +- Support Home Assistant Connect ZBT-1. + ## 2.4.4 - Revert back to Silicon Labs Gecko SDK 4.3.1 while 4.4.0 instability is investigated. - Backport firmware modifications for improved stability. diff --git a/silabs-multiprotocol/DOCS.md b/silabs-multiprotocol/DOCS.md index 9cadc0ff2d6..d333b0a445a 100644 --- a/silabs-multiprotocol/DOCS.md +++ b/silabs-multiprotocol/DOCS.md @@ -1,6 +1,6 @@ # Home Assistant Add-on: Silicon Labs Multiprotocol -**NOTE**: This add-on has the option to automatically install the right firmware for Home Assistant Yellow and Home Assistant SkyConnect. Follow [this guide](https://github.com/NabuCasa/silabs-firmware/wiki/Flash-Silicon-Labs-radio-firmware-manually) to change back to a firmware that is compatible with other Zigbee software. +**NOTE**: This add-on has the option to automatically install the right firmware for Home Assistant Yellow, SkyConnect, and Connect ZBT-1. Follow [this guide](https://github.com/NabuCasa/silabs-firmware/wiki/Flash-Silicon-Labs-radio-firmware-manually) to change back to a firmware that is compatible with other Zigbee software. ## Installation @@ -60,8 +60,8 @@ and 8081 in the OpenThread REST API port field). ### Automatic firmware upgrade If the `autoflash_firmware` configuration is set, the add-on will automatically -install or update to the RCP Multi-PAN firmware if a Home Assistant SkyConnect -or Home Assistant Yellow is detected. +install or update to the RCP Multi-PAN firmware if a Home Assistant Connect ZBT-1/ +SkyConnect or Home Assistant Yellow is detected. **NOTE:** Switching back to a Zigbee only (EmberZNet) firmware requires manual steps currently. You can find a guide on the Nabu Casa Silicon Labs firmware @@ -77,7 +77,7 @@ Add-on configuration: | device (mandatory) | Serial service where the Silicon Labs radio is attached | | baudrate | Serial port baudrate (depends on firmware) | | flow_control | If hardware flow control should be enabled (depends on firmware) | -| autoflash_firmware | Automatically install/update firmware (Home Assistant SkyConnect/Yellow) | +| autoflash_firmware | Automatically install/update firmware (Home Assistant Connect ZBT-1/SkyConnect/Yellow) | | network_device | Host and port where CPC daemon can find the Silicon Labs radio (takes precedence over device) | | cpcd_trace | Co-Processor Communication tracing (trace in log) | | otbr_enable | Enable OpenThread BorderRouter | diff --git a/silabs-multiprotocol/README.md b/silabs-multiprotocol/README.md index 080b9bcac11..cb3a79ac447 100644 --- a/silabs-multiprotocol/README.md +++ b/silabs-multiprotocol/README.md @@ -1,7 +1,7 @@ # Home Assistant Add-on: SiliconLabs Zigbee/OpenThread Multiprotocol Add-on Zigbee/OpenThread Multiprotocol container for Silicon Labs based radios such as -Home Assistant Yellow or Home Assistant SkyConnect. +Home Assistant Yellow, Home Assistant SkyConnect, and Home Assistant Connect ZBT-1. **NOTE:** Use System -> Hardware -> Configure to enable Multiprotocol support seamlessly. diff --git a/silabs-multiprotocol/config.yaml b/silabs-multiprotocol/config.yaml index 2ee042e5de4..6d5b2b11f6a 100644 --- a/silabs-multiprotocol/config.yaml +++ b/silabs-multiprotocol/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.4.4 +version: 2.4.5 slug: silabs_multiprotocol name: Silicon Labs Multiprotocol description: Zigbee and OpenThread multiprotocol add-on diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 1c55bfb58d7..eefa788dc88 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -47,6 +47,8 @@ else bashio::log.info "Checking ${device} identifying ${usb_product} from ${usb_manufacturer}." if [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "SkyConnect"* ]]; then firmware="NabuCasa_SkyConnect_RCP_v4.3.1_rcp-uart-hw-802154_460800.gbl" + elif [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "Home Assistant Connect ZBT-1"* ]]; then + firmware="NabuCasa_SkyConnect_RCP_v4.3.1_rcp-uart-hw-802154_460800.gbl" else exit_no_firmware fi From 0d3157fae3600fae1eca99f6bdfd3ad5e8a7712a Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 4 Apr 2024 02:26:17 -0400 Subject: [PATCH 006/346] silabs-flasher: Bump universal-silabs-flasher to 0.0.19 (#3544) * Bump universal-silabs-flasher * Use new GPIO reset flag format --- silabs_flasher/CHANGELOG.md | 3 +++ silabs_flasher/build.yaml | 2 +- silabs_flasher/config.yaml | 2 +- .../s6-overlay/scripts/universal-silabs-flasher-up | 11 +++++++---- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/silabs_flasher/CHANGELOG.md b/silabs_flasher/CHANGELOG.md index bd72fa2f294..6b1eca0c259 100644 --- a/silabs_flasher/CHANGELOG.md +++ b/silabs_flasher/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 0.2.2 +- Update universal-silabs-flasher to v0.0.19 + ## 0.2.1 - Support flashing the Connect ZBT-1. diff --git a/silabs_flasher/build.yaml b/silabs_flasher/build.yaml index b2d1dc81f29..98292b4340e 100644 --- a/silabs_flasher/build.yaml +++ b/silabs_flasher/build.yaml @@ -6,4 +6,4 @@ build_from: armv7: ghcr.io/home-assistant/armv7-base-python:3.11-alpine3.17 i386: ghcr.io/home-assistant/i386-base-python:3.11-alpine3.17 args: - UNIVERSAL_SILABS_FLASHER: 0.0.13 + UNIVERSAL_SILABS_FLASHER: 0.0.19 diff --git a/silabs_flasher/config.yaml b/silabs_flasher/config.yaml index a22c749ec27..ec7910ef8dd 100644 --- a/silabs_flasher/config.yaml +++ b/silabs_flasher/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.2.1 +version: 0.2.2 slug: silabs_flasher name: Silicon Labs Flasher description: Silicon Labs firmware flasher add-on diff --git a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 51ef6d1be0c..ce554c1925f 100755 --- a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -35,7 +35,7 @@ bootloader_baudrate=$(bashio::config 'bootloader_baudrate') if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then bashio::log.info "Detected Home Assistant Yellow" - gpio_reset_flag="--yellow-gpio-reset" + gpio_reset_flag="--bootloader-reset yellow" else gpio_reset_flag="" fi @@ -86,8 +86,11 @@ if bashio::config.true 'verbose'; then fi bashio::log.info "Starting universal-silabs-flasher with ${device} (bootloader baudrate ${bootloader_baudrate})" -universal-silabs-flasher ${verbose} --device ${device} \ - --bootloader-baudrate "${bootloader_baudrate}" \ - flash ${gpio_reset_flag} --force --firmware "/root/${firmware}" +universal-silabs-flasher \ + ${verbose} \ + --device ${device} \ + --bootloader-baudrate "${bootloader_baudrate}" \ + ${gpio_reset_flag} \ + flash --force --firmware "/root/${firmware}" From a0e9125f4d686505485ea146e349bf1d2249fb43 Mon Sep 17 00:00:00 2001 From: Sean Date: Sun, 7 Apr 2024 23:21:06 +0200 Subject: [PATCH 007/346] Fix undefined HOME variable, resolves 3525 (#3550) --- git_pull/CHANGELOG.md | 3 +++ git_pull/config.yaml | 2 +- git_pull/data/run.sh | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/git_pull/CHANGELOG.md b/git_pull/CHANGELOG.md index 926de349bee..e74e323735a 100644 --- a/git_pull/CHANGELOG.md +++ b/git_pull/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 7.14.1 +- Fix error where $HOME is not defined + ## 7.14.0 - Update base image to Alpine 3.19 diff --git a/git_pull/config.yaml b/git_pull/config.yaml index e6e90270453..f614fdd07b4 100644 --- a/git_pull/config.yaml +++ b/git_pull/config.yaml @@ -1,5 +1,5 @@ --- -version: 7.14.0 +version: 7.14.1 slug: git_pull name: Git pull description: Simple git pull to update the local configuration diff --git a/git_pull/data/run.sh b/git_pull/data/run.sh index 001a5ac91e0..637f5264013 100755 --- a/git_pull/data/run.sh +++ b/git_pull/data/run.sh @@ -3,6 +3,7 @@ #### config #### CONFIG_PATH=/data/options.json +HOME=~ DEPLOYMENT_KEY=$(jq --raw-output ".deployment_key[]" $CONFIG_PATH) DEPLOYMENT_KEY_PROTOCOL=$(jq --raw-output ".deployment_key_protocol" $CONFIG_PATH) From 45138becad6359f94b8a3a734ca087a4d2a68e31 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 11 Apr 2024 20:18:04 +0200 Subject: [PATCH 008/346] ssh: Bump CLI to 4.32.0 (#3552) --- ssh/CHANGELOG.md | 4 ++++ ssh/build.yaml | 2 +- ssh/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index 99e421186cf..fe30429f82b 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 9.11.0 + +- Upgrade Home Assistant CLI to 4.32.0 + ## 9.10.0 - Upgrade Home Assistant CLI to 4.31.0 diff --git a/ssh/build.yaml b/ssh/build.yaml index 345ed6e02a6..db6f9e52390 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -9,6 +9,6 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - CLI_VERSION: 4.31.0 + CLI_VERSION: 4.32.0 LIBWEBSOCKETS_VERSION: 4.3.3 TTYD_VERSION: 1.7.4 diff --git a/ssh/config.yaml b/ssh/config.yaml index ccfefa6f04b..b1be5f3af95 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.10.0 +version: 9.11.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH From 4f3037b4a515d39787616de817e641fc6af91a15 Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Fri, 12 Apr 2024 03:33:16 -0400 Subject: [PATCH 009/346] SSH: Install completions for ha commands in bashrc (#3557) * Install completions for ha commands in bashrc * Newline at end * Disable SC1090 for line --- ssh/CHANGELOG.md | 5 +++++ ssh/config.yaml | 2 +- ssh/rootfs/etc/cont-init.d/profile.sh | 2 +- ssh/rootfs/root/.bashrc | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100755 ssh/rootfs/root/.bashrc diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index fe30429f82b..73369561339 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 9.12.0 + +- Install completions for ha commands +- Fix bash_history file check in startup + ## 9.11.0 - Upgrade Home Assistant CLI to 4.32.0 diff --git a/ssh/config.yaml b/ssh/config.yaml index b1be5f3af95..22f4c364390 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.11.0 +version: 9.12.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH diff --git a/ssh/rootfs/etc/cont-init.d/profile.sh b/ssh/rootfs/etc/cont-init.d/profile.sh index dcc844b9fa8..9818f03e27f 100755 --- a/ssh/rootfs/etc/cont-init.d/profile.sh +++ b/ssh/rootfs/etc/cont-init.d/profile.sh @@ -5,7 +5,7 @@ readonly DIRECTORIES=(addon_configs addons backup homeassistant media share ssl) # Persist shell history by redirecting .bash_history to /data -if ! bashio::fs.file_exists /data/.bash_profile; then +if ! bashio::fs.file_exists /data/.bash_history; then touch /data/.bash_history fi chmod 600 /data/.bash_history diff --git a/ssh/rootfs/root/.bashrc b/ssh/rootfs/root/.bashrc new file mode 100755 index 00000000000..f803eae618f --- /dev/null +++ b/ssh/rootfs/root/.bashrc @@ -0,0 +1,3 @@ +#!/usr/bin/with-contenv bash +# shellcheck disable=SC1090 +source <(ha completion bash) From 01c777492fcc5caba8b7f77fa112337c07240e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Fri, 12 Apr 2024 12:34:14 +0200 Subject: [PATCH 010/346] SSH: Enable ha command completion for non-login shell (e.g. the web terminal) (#3558) This is fix/improvement of #3557. The terminal that is spawned when the add-on is opened on the web has the -l (--login) flag, and in that case Bash doesn't read .bashrc [1]. Move it to /etc/profile.d/homeassistant.sh to enable completion also in that case. [1] https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html --- ssh/CHANGELOG.md | 4 ++++ ssh/config.yaml | 2 +- ssh/rootfs/root/.bashrc | 3 --- ssh/rootfs/usr/share/tempio/homeassistant.profile | 2 ++ 4 files changed, 7 insertions(+), 4 deletions(-) delete mode 100755 ssh/rootfs/root/.bashrc diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index 73369561339..632094af99d 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 9.13.0 + +- Enable ha command completion for non-login shell (e.g. the web terminal) + ## 9.12.0 - Install completions for ha commands diff --git a/ssh/config.yaml b/ssh/config.yaml index 22f4c364390..e35af3ad575 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.12.0 +version: 9.13.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH diff --git a/ssh/rootfs/root/.bashrc b/ssh/rootfs/root/.bashrc deleted file mode 100755 index f803eae618f..00000000000 --- a/ssh/rootfs/root/.bashrc +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck disable=SC1090 -source <(ha completion bash) diff --git a/ssh/rootfs/usr/share/tempio/homeassistant.profile b/ssh/rootfs/usr/share/tempio/homeassistant.profile index 793f4b5626b..fb3e1471ea4 100644 --- a/ssh/rootfs/usr/share/tempio/homeassistant.profile +++ b/ssh/rootfs/usr/share/tempio/homeassistant.profile @@ -3,3 +3,5 @@ export PS1="\[\e[0;32m\][\h \W]\$ \[\e[m\]" export SUPERVISOR_TOKEN={{ .supervisor_token }} ha banner +# shellcheck disable=SC1090 +source <(ha completion bash) From efe615be1fc5a19df2d25838d558044533e397a0 Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Sat, 13 Apr 2024 14:56:42 -0400 Subject: [PATCH 011/346] SILabs Flasher: Upgrade to Alpine 3.19 (#3560) --- silabs_flasher/CHANGELOG.md | 6 ++++++ silabs_flasher/build.yaml | 10 +++++----- silabs_flasher/config.yaml | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/silabs_flasher/CHANGELOG.md b/silabs_flasher/CHANGELOG.md index 6b1eca0c259..aca26de0dd6 100644 --- a/silabs_flasher/CHANGELOG.md +++ b/silabs_flasher/CHANGELOG.md @@ -1,9 +1,15 @@ # Changelog +## 0.2.3 + +- Upgrade to Alpine 3.19 + ## 0.2.2 + - Update universal-silabs-flasher to v0.0.19 ## 0.2.1 + - Support flashing the Connect ZBT-1. ## 0.2.0 diff --git a/silabs_flasher/build.yaml b/silabs_flasher/build.yaml index 98292b4340e..c822ad830a0 100644 --- a/silabs_flasher/build.yaml +++ b/silabs_flasher/build.yaml @@ -1,9 +1,9 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base-python:3.11-alpine3.17 - amd64: ghcr.io/home-assistant/amd64-base-python:3.11-alpine3.17 - armhf: ghcr.io/home-assistant/armhf-base-python:3.11-alpine3.17 - armv7: ghcr.io/home-assistant/armv7-base-python:3.11-alpine3.17 - i386: ghcr.io/home-assistant/i386-base-python:3.11-alpine3.17 + aarch64: ghcr.io/home-assistant/aarch64-base-python:3.11-alpine3.19 + amd64: ghcr.io/home-assistant/amd64-base-python:3.11-alpine3.19 + armhf: ghcr.io/home-assistant/armhf-base-python:3.11-alpine3.19 + armv7: ghcr.io/home-assistant/armv7-base-python:3.11-alpine3.19 + i386: ghcr.io/home-assistant/i386-base-python:3.11-alpine3.19 args: UNIVERSAL_SILABS_FLASHER: 0.0.19 diff --git a/silabs_flasher/config.yaml b/silabs_flasher/config.yaml index ec7910ef8dd..64f8e9d7bb7 100644 --- a/silabs_flasher/config.yaml +++ b/silabs_flasher/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.2.2 +version: 0.2.3 slug: silabs_flasher name: Silicon Labs Flasher description: Silicon Labs firmware flasher add-on From a337817ca0ebdc8579e606578522f4c32d7b096b Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Mon, 15 Apr 2024 15:29:41 -0400 Subject: [PATCH 012/346] MariaDB: Upgrade to Alpine 3.19 (#3562) --- mariadb/CHANGELOG.md | 5 +++++ mariadb/build.yaml | 10 +++++----- mariadb/config.yaml | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/mariadb/CHANGELOG.md b/mariadb/CHANGELOG.md index 0424d40993a..01f05ce7ead 100644 --- a/mariadb/CHANGELOG.md +++ b/mariadb/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.7.0 + +- Update to Alpine 3.19 + ## 2.6.1 - Use proper log redirection during backup @@ -34,6 +38,7 @@ - Update options schema for passwords ## 2.2.1 + - Don't delete the mariadb.sys user, it's needed in MariaDB >= 10.4.13 ## 2.2.0 diff --git a/mariadb/build.yaml b/mariadb/build.yaml index 33700d0a31b..039821f92e6 100644 --- a/mariadb/build.yaml +++ b/mariadb/build.yaml @@ -1,10 +1,10 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.16 - amd64: ghcr.io/home-assistant/amd64-base:3.16 - armhf: ghcr.io/home-assistant/armhf-base:3.16 - armv7: ghcr.io/home-assistant/armv7-base:3.16 - i386: ghcr.io/home-assistant/i386-base:3.16 + aarch64: ghcr.io/home-assistant/aarch64-base:3.19 + amd64: ghcr.io/home-assistant/amd64-base:3.19 + armhf: ghcr.io/home-assistant/armhf-base:3.19 + armv7: ghcr.io/home-assistant/armv7-base:3.19 + i386: ghcr.io/home-assistant/i386-base:3.19 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io diff --git a/mariadb/config.yaml b/mariadb/config.yaml index 7140c07533c..ac87fae8fdb 100644 --- a/mariadb/config.yaml +++ b/mariadb/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.6.1 +version: 2.7.0 slug: mariadb name: MariaDB description: A SQL database server From 04be527d9533ef318d7975f0ee35016d601e60b2 Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Mon, 15 Apr 2024 16:04:26 -0400 Subject: [PATCH 013/346] DNSMasq: Upgrade to Alpine 3.19 (#3563) --- dnsmasq/CHANGELOG.md | 4 ++++ dnsmasq/build.yaml | 10 +++++----- dnsmasq/config.yaml | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/dnsmasq/CHANGELOG.md b/dnsmasq/CHANGELOG.md index 4d10d941603..79dac28f095 100644 --- a/dnsmasq/CHANGELOG.md +++ b/dnsmasq/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.7.0 + +- Update to Alpine 3.19 + ## 1.6.0 - Update to Alpine 3.17 diff --git a/dnsmasq/build.yaml b/dnsmasq/build.yaml index 896c0b943d2..039821f92e6 100644 --- a/dnsmasq/build.yaml +++ b/dnsmasq/build.yaml @@ -1,10 +1,10 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.17 - amd64: ghcr.io/home-assistant/amd64-base:3.17 - armhf: ghcr.io/home-assistant/armhf-base:3.17 - armv7: ghcr.io/home-assistant/armv7-base:3.17 - i386: ghcr.io/home-assistant/i386-base:3.17 + aarch64: ghcr.io/home-assistant/aarch64-base:3.19 + amd64: ghcr.io/home-assistant/amd64-base:3.19 + armhf: ghcr.io/home-assistant/armhf-base:3.19 + armv7: ghcr.io/home-assistant/armv7-base:3.19 + i386: ghcr.io/home-assistant/i386-base:3.19 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io diff --git a/dnsmasq/config.yaml b/dnsmasq/config.yaml index cdcd7dae2eb..fb69495c85d 100644 --- a/dnsmasq/config.yaml +++ b/dnsmasq/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.6.0 +version: 1.7.0 slug: dnsmasq name: Dnsmasq description: A simple DNS server From 6214538e3a52f82ecddc5b1951f830fed5ea62c3 Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Tue, 16 Apr 2024 07:10:32 -0400 Subject: [PATCH 014/346] RPC Shutdown: Upgrade to Alpine 3.19 (#3561) --- rpc_shutdown/CHANGELOG.md | 4 ++++ rpc_shutdown/build.yaml | 10 +++++----- rpc_shutdown/config.yaml | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/rpc_shutdown/CHANGELOG.md b/rpc_shutdown/CHANGELOG.md index 86ebd6b40c3..a38139102fc 100644 --- a/rpc_shutdown/CHANGELOG.md +++ b/rpc_shutdown/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.5 + +- Update to Alpine 3.19 + ## 2.4 - Update to Alpine 3.17 diff --git a/rpc_shutdown/build.yaml b/rpc_shutdown/build.yaml index 896c0b943d2..039821f92e6 100644 --- a/rpc_shutdown/build.yaml +++ b/rpc_shutdown/build.yaml @@ -1,10 +1,10 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.17 - amd64: ghcr.io/home-assistant/amd64-base:3.17 - armhf: ghcr.io/home-assistant/armhf-base:3.17 - armv7: ghcr.io/home-assistant/armv7-base:3.17 - i386: ghcr.io/home-assistant/i386-base:3.17 + aarch64: ghcr.io/home-assistant/aarch64-base:3.19 + amd64: ghcr.io/home-assistant/amd64-base:3.19 + armhf: ghcr.io/home-assistant/armhf-base:3.19 + armv7: ghcr.io/home-assistant/armv7-base:3.19 + i386: ghcr.io/home-assistant/i386-base:3.19 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io diff --git a/rpc_shutdown/config.yaml b/rpc_shutdown/config.yaml index 472ea466e1d..58cb902e23d 100644 --- a/rpc_shutdown/config.yaml +++ b/rpc_shutdown/config.yaml @@ -1,5 +1,5 @@ --- -version: "2.4" +version: "2.5" slug: rpc_shutdown name: RPC Shutdown description: Shutdown Windows machines remotely From de74ec0cc8e30c14f2a1d42f54c83f302a93c5f5 Mon Sep 17 00:00:00 2001 From: Laszlo Magyar Date: Tue, 16 Apr 2024 19:09:41 +0200 Subject: [PATCH 015/346] remove unused vars (#3568) --- mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/finish | 1 - nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/crond/finish | 1 - nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish | 1 - openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/finish | 1 - piper/rootfs/etc/s6-overlay/s6-rc.d/piper/finish | 1 - whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/finish | 1 - 6 files changed, 6 deletions(-) diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/finish b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/finish index 01d0808bb59..6be8aae00d7 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/finish +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/finish @@ -3,7 +3,6 @@ # ============================================================================== # Take down the S6 supervision tree when daemon fails # ============================================================================== -declare exit_code readonly exit_code_container=$( Date: Thu, 18 Apr 2024 09:42:22 +0200 Subject: [PATCH 016/346] mariadb: Increase timeout for MariaDB shutdown (#3570) * mariadb: Increase timeout for MariaDB shutdown Currently, when MariaDB takes longer than 20s to shutdown, Docker will simply kill it. This can be problematic on upgrade, as the new MariaDB version cannot handle a not cleanly shutdown MariaDB (see #3566). Increase the timeout of the container shutdown to 60s. Also define a per-service kill timeout for mariadb-core. This is largely optional, and essentially leads to the same outcome if MariaDB takes even longer (it will get killed, one way or another). But by defining this as part of the s6 service makes sure that the add-on log itself shows that MariaDB had to be killed, and makes sure the rest of the s6 service tree gets a chance to shutdown gracefully still: [09:29:37] INFO: Service mariadb exited with code 256 (by signal 9) s6-rc: info: service mariadb-core successfully stopped s6-rc: info: service mariadb-pre: stopping ... The 18s timeout of S6_SERVICES_GRACETIME seems to apply for legacy services only which are no longer used in this add-on. So drop this definition. Fixes #3566 * Increase shutdown timeout to 5 minutes --- mariadb/CHANGELOG.md | 8 ++++++++ mariadb/Dockerfile | 3 +-- mariadb/config.yaml | 4 ++-- .../etc/s6-overlay/s6-rc.d/mariadb-core/timeout-kill | 1 + 4 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/timeout-kill diff --git a/mariadb/CHANGELOG.md b/mariadb/CHANGELOG.md index 01f05ce7ead..8ab5abb00dc 100644 --- a/mariadb/CHANGELOG.md +++ b/mariadb/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2.7.1 + +**Note:** Restart the add-on before upgrade if the current version is lower +than 2.7.0! This is to ensure a clean stop right before the update (see also +https://github.com/home-assistant/addons/issues/3566). + +- Increase MariaDB add-on shutdown timeout to 300s + ## 2.7.0 - Update to Alpine 3.19 diff --git a/mariadb/Dockerfile b/mariadb/Dockerfile index ceb644ed459..bf255ff1778 100644 --- a/mariadb/Dockerfile +++ b/mariadb/Dockerfile @@ -9,8 +9,7 @@ RUN apk add --no-cache \ pwgen ENV \ - LD_PRELOAD="/usr/local/lib/libjemalloc.so.2" \ - S6_SERVICES_GRACETIME=18000 + LD_PRELOAD="/usr/local/lib/libjemalloc.so.2" # Copy data COPY rootfs / diff --git a/mariadb/config.yaml b/mariadb/config.yaml index ac87fae8fdb..14688a86655 100644 --- a/mariadb/config.yaml +++ b/mariadb/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.7.0 +version: 2.7.1 slug: mariadb name: MariaDB description: A SQL database server @@ -41,4 +41,4 @@ schema: services: - mysql:provide startup: system -timeout: 20 +timeout: 300 diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/timeout-kill b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/timeout-kill new file mode 100644 index 00000000000..94ca7aa4c37 --- /dev/null +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/timeout-kill @@ -0,0 +1 @@ +295000 From a9bea9c37e936e0a055632d6b316c5c427685522 Mon Sep 17 00:00:00 2001 From: Raman Gupta <7243222+raman325@users.noreply.github.com> Date: Thu, 18 Apr 2024 06:58:25 -0400 Subject: [PATCH 017/346] Bump Z-Wave JS to 12.5.5 and Z-Wave JS Server to 1.35.0 (#3569) * Bump Z-Wave JS to 12.5.5 and Z-Wave JS Server to 1.35.0 * Add translations * Bugfix and changelog fix * caps --- zwave_js/CHANGELOG.md | 57 +++++++++++++++++++ zwave_js/DOCS.md | 18 +++++- zwave_js/build.yaml | 4 +- zwave_js/config.yaml | 6 +- zwave_js/rootfs/etc/cont-init.d/config.sh | 10 +++- .../rootfs/usr/share/tempio/zwave_config.conf | 4 ++ zwave_js/translations/en.yaml | 10 ++++ 7 files changed, 102 insertions(+), 7 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 37e49bde49a..42dd5c025d4 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,62 @@ # Changelog +## 0.5.0 + +### Features + +- Z-Wave JS: Map more Basic CC values to more useful command classes +- Z-Wave JS: Add Z-Wave Long Range support +- Z-Wave JS Server: Add Z-Wave Long Range support +- Addon: Add support for collecting Z-Wave Long Range security keys + +### Bug fixes + +- Z-Wave JS: Fixed an issue that caused additional invalid values to be discovered +- Z-Wave JS: Fixed a crash that could happen in some cases during the Configuration CC interview +- Z-Wave JS: Fixed an issue where provisioning entries could disappear +- Z-Wave JS: Fixed an infinite loop during NVM migration which could happen in rare cases +- Z-Wave JS: Firmware updates on Z-Wave Long Range now utilize the larger frame size better +- Z-Wave JS: Fixed an issue with multicast setValue response +- Z-Wave JS: Disallow associating a node with itself and skip self-associations when rebuilding routes + +### Config file changes + +- Always map Basic CC to Binary Sensor CC for Aeotec ZW100 Multisensor 6 +- Fix versioning logic for parameter 26 of Zooz ZEN72 +- Add new Leviton 800 series devices +- Add UltraPro Z-Wave Plus In-Wall Toggle Switch, 700S +- Rename generic 700 series controller to include 800 series +- Add fingerprint and config parameters for UltraPro 700 Switch +- Add Zooz Zen37 800LR Wall Remote +- Added 11 Shelly Qubino Wave devices +- Add Heatit Leakage Water Stopper +- Add Ring Smoke/CO Listener +- Add ZVIDAR Z-TRV-V01 thermostatic valve +- Add Safe Grow NSG-AB-02 Z-Wave Plus Smart Outlet Plug +- Add a new productId and add parameters to 14297/ZW1002 outlet +- Remove Association Groups 2 & 3 from AEON Labs DSB09 +- Correct group 3 label for GE/Enbrighten 26931/ZW4006 +- Add new Fingerprint for Ring Contact sensor +- Preserve root endpoint in Vision ZL7432 +- Add new Product ID to Fibaro Smoke Detector +- Add Product ID for Benext Energy Switch FW1.6 +- Add fingerprint for Ring Glass Break Sensor EU +- Change MH9-CO2 Temperature Reporting Threshold step size to 0.1 +- Add new product ID to Fibaro FGS-213 +- Add units, improve descriptions for Everspring ST814 +- Label and parameter definitions for Sensative Drip 700 +- Override supported sensor scales for HELTUN HE-ZW-THERM-FL2 + +### Detailed changelogs + +- [Z-Wave JS Server 1.35.0](https://github.com/zwave-js/zwave-js-server/releases/tag/1.35.0) +- [Z-Wave JS 12.5.5](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.5.5) +- [Z-Wave JS 12.5.4](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.5.4) +- [Z-Wave JS 12.5.3](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.5.3) +- [Z-Wave JS 12.5.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.5.2) +- [Z-Wave JS 12.5.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.5.1) +- [Z-Wave JS 12.5.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.5.0) + ## 0.4.5 ### Bug fixes diff --git a/zwave_js/DOCS.md b/zwave_js/DOCS.md index bd75b4b2ed0..af020bb16b1 100644 --- a/zwave_js/DOCS.md +++ b/zwave_js/DOCS.md @@ -43,6 +43,8 @@ s0_legacy_key: 2232666D100F795E5BB17F0A1BB7A146 s2_access_control_key: A97D2A51A6D4022998BEFC7B5DAE8EA1 s2_authenticated_key: 309D4AAEF63EFD85967D76ECA014D1DF s2_unauthenticated_key: CF338FE0CB99549F7C0EA96308E5A403 +lr_s2_access_control_key: E2CEA6B5986C818EEC0D0065D81E2BD5 +lr_s2_authenticated_key: 863027C59CFC522A9A3C41976AE54254 ``` ### Option `device` @@ -64,9 +66,9 @@ In most cases this looks like one of the following: ### Security Keys -There are four different security keys required to take full advantage of the +There are six different security keys required to take full advantage of the different inclusion methods that Z-Wave JS supports: `s0_legacy_key`, -`s2_access_control_key`, `s2_authenticated_key`, and `s2_unauthenticated_key`. +`s2_access_control_key`, `s2_authenticated_key`, `s2_unauthenticated_key`, `lr_s2_access_control_key`, and `lr_s2_authenticated_key`. If you are coming from a previous version of `zwave-js`, you likely have a key stored in the `network_key` configuration option. When the addon is first @@ -123,6 +125,18 @@ without verification that the correct device was included. This configuration option is required, but if it is unset the addon will generate a new one automatically on startup. +#### Option `lr_s2_access_control_key` + +The `lr_s2_access_control_key` must be provided in order to include devices using +Z-Wave Long Range. This configuration option is required, but if it is unset +the addon will generate a new one automatically on startup. + +#### Option `lr_s2_authenticated_key` + +The `lr_s2_authenticated_key` must be provided in order to include devices using +Z-Wave Long Range. This configuration option is required, but if it is unset +the addon will generate a new one automatically on startup. + ### Option `log_level` (optional) This option sets the log level of Z-Wave JS. Valid options are: diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 017e0c2f057..7d24997087f 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 1.34.0 - ZWAVEJS_VERSION: 12.4.4 + ZWAVEJS_SERVER_VERSION: 1.35.0 + ZWAVEJS_VERSION: 12.5.5 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 306cceba433..50e69628920 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.4.5 +version: 0.5.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS @@ -29,6 +29,8 @@ options: s2_access_control_key: "" s2_authenticated_key: "" s2_unauthenticated_key: "" + lr_s2_access_control_key: "" + lr_s2_authenticated_key: "" ports: 3000/tcp: null schema: @@ -41,6 +43,8 @@ schema: s2_access_control_key: match(|[0-9a-fA-F]{32,32})? s2_authenticated_key: match(|[0-9a-fA-F]{32,32})? s2_unauthenticated_key: match(|[0-9a-fA-F]{32,32})? + lr_s2_access_control_key: match(|[0-9a-fA-F]{32,32})? + lr_s2_authenticated_key: match(|[0-9a-fA-F]{32,32})? network_key: match(|[0-9a-fA-F]{32,32})? emulate_hardware: bool? disable_controller_recovery: bool? diff --git a/zwave_js/rootfs/etc/cont-init.d/config.sh b/zwave_js/rootfs/etc/cont-init.d/config.sh index d84e45b6df7..0adcc1555bb 100755 --- a/zwave_js/rootfs/etc/cont-init.d/config.sh +++ b/zwave_js/rootfs/etc/cont-init.d/config.sh @@ -20,6 +20,8 @@ readonly DOCS_EXAMPLE_KEY_1="2232666D100F795E5BB17F0A1BB7A146" readonly DOCS_EXAMPLE_KEY_2="A97D2A51A6D4022998BEFC7B5DAE8EA1" readonly DOCS_EXAMPLE_KEY_3="309D4AAEF63EFD85967D76ECA014D1DF" readonly DOCS_EXAMPLE_KEY_4="CF338FE0CB99549F7C0EA96308E5A403" +readonly DOCS_EXAMPLE_KEY_5="E2CEA6B5986C818EEC0D0065D81E2BD5" +readonly DOCS_EXAMPLE_KEY_6="863027C59CFC522A9A3C41976AE54254" if bashio::config.has_value 'network_key'; then # If both 'network_key' and 's0_legacy_key' are set and keys don't match, @@ -48,10 +50,10 @@ fi # Validate that no keys are using the example from the docs and generate new random # keys for any missing keys. -for key in "s0_legacy_key" "s2_access_control_key" "s2_authenticated_key" "s2_unauthenticated_key"; do +for key in "s0_legacy_key" "s2_access_control_key" "s2_authenticated_key" "s2_unauthenticated_key" "lr_s2_access_control_key" "lr_s2_authenticated_key"; do network_key=$(bashio::config "${key}") network_key_upper=$(bashio::string.upper "${network_key}") - if [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_1}" ] || [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_2}" ] || [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_3}" ] || [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_4}" ]; then + if [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_1}" ] || [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_2}" ] || [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_3}" ] || [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_4}" ] || [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_5}" ] || [ "${network_key_upper}" == "${DOCS_EXAMPLE_KEY_6}" ]; then bashio::log.fatal bashio::log.fatal "The add-on detected that the Z-Wave network key used" bashio::log.fatal "is from the documented example." @@ -93,6 +95,8 @@ s0_legacy=$(bashio::config "s0_legacy_key") s2_access_control=$(bashio::config "s2_access_control_key") s2_authenticated=$(bashio::config "s2_authenticated_key") s2_unauthenticated=$(bashio::config "s2_unauthenticated_key") +lr_s2_access_control=$(bashio::config "lr_s2_access_control_key") +lr_s2_authenticated=$(bashio::config "lr_s2_authenticated_key") if ! bashio::config.has_value 'log_level'; then log_level=$(bashio::info.logging) @@ -154,6 +158,8 @@ bashio::var.json \ s2_access_control "${s2_access_control}" \ s2_authenticated "${s2_authenticated}" \ s2_unauthenticated "${s2_unauthenticated}" \ + lr_s2_access_control "${lr_s2_access_control}" \ + lr_s2_authenticated "${lr_s2_authenticated}" \ log_level "${log_level}" \ log_to_file "${log_to_file}" \ log_max_files "${log_max_files}" \ diff --git a/zwave_js/rootfs/usr/share/tempio/zwave_config.conf b/zwave_js/rootfs/usr/share/tempio/zwave_config.conf index 8ffdff4a689..8200c7e3cd7 100644 --- a/zwave_js/rootfs/usr/share/tempio/zwave_config.conf +++ b/zwave_js/rootfs/usr/share/tempio/zwave_config.conf @@ -17,6 +17,10 @@ "S2_Authenticated": "{{ .s2_authenticated }}", "S2_Unauthenticated": "{{ .s2_unauthenticated }}" }, + "securityKeysLongRange": { + "S2_AccessControl": "{{ .lr_s2_access_control }}", + "S2_Authenticated": "{{ .lr_s2_authenticated }}" + }, "enableSoftReset": {{ .soft_reset }}, "presets": {{ .presets }} } diff --git a/zwave_js/translations/en.yaml b/zwave_js/translations/en.yaml index 47221ddc157..a04c9d791d7 100644 --- a/zwave_js/translations/en.yaml +++ b/zwave_js/translations/en.yaml @@ -48,6 +48,16 @@ configuration: description: >- This must be provided in order to include devices with the S2 Unauthenticated security class. + lr_s2_access_control_key: + name: Z-Wave Long Range S2 Access Control Key + description: >- + This must be provided in order to include devices using Z-Wave + Long Range with the S2 Access Control security class. + lr_s2_authenticated_key: + name: Z-Wave Long Range S2 Authenticated Key + description: >- + This must be provided in order to include devices using Z-Wave + Long Range with the S2 Authenticated security class. soft_reset: name: 500 series controller soft-reset description: >- From 498b2abe3f1e4dcf0921f13e5f88e809cc501c0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 09:18:20 +0200 Subject: [PATCH 018/346] build(deps): bump actions/checkout from 4.1.2 to 4.1.3 (#3576) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.2...v4.1.3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index fa5db235233..b0499b0bad0 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index bd3de93cdeb..03534805b92 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From e34d9be3f4f9377407d5d7806c1c269a1dbac5da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=ADguel=20=C3=81ngel=20Mulero=20Mart=C3=ADnez?= Date: Thu, 25 Apr 2024 14:07:25 +0200 Subject: [PATCH 019/346] letsencrypt: add Dynu DNS provider (#3556) Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 23 ++++++++++++++++++- letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 5 ++-- .../rootfs/etc/cont-init.d/file-structure.sh | 1 + .../rootfs/etc/services.d/lets-encrypt/run | 5 ++++ 7 files changed, 38 insertions(+), 3 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 370b37a2c40..50ca0bcafb2 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.16 + +- Add Dynu challenge support + ## 5.0.15 - Add easyDNS challenge support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 3a6840324e1..7f4116e5984 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -37,7 +37,7 @@ There are two options to obtain certificates. ### DNS providers
- Supported DNS providerss + Supported DNS providers ```txt dns-azure @@ -50,6 +50,7 @@ dns-dnsimple dns-dnsmadeeasy dns-duckdns dns-dreamhost +dns-dynu dns-gehirn dns-google dns-hetzner @@ -94,6 +95,7 @@ dnsimple_token: '' dnsmadeeasy_api_key: '' dnsmadeeasy_secret_key: '' duckdns_token: '' +dynu_auth_token: '' google_creds: '' google_domains_access_token: '' google_domains_zone: '' @@ -833,6 +835,24 @@ easyDNS REST API access must be requested and granted in order to use this modul ```
+
+ Dynu + +You can get the API key in the API Credentials area of the Dynu control panel: https://www.dynu.com/ControlPanel/APICredentials + +```yaml +email: your.email@example.com +domains: + - your.domain.tld +certfile: fullchain.pem +keyfile: privkey.pem +challenge: dns +dns: + provider: dns-dynu + dynu_auth_token: 0123456789abcdef +``` + +
## Certificate files @@ -854,6 +874,7 @@ dns-dnsimple dns-dnsmadeeasy dns-duckdns dns-dreamhost +dns-dynu dns-gehirn dns-google dns-hetzner diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 9e2d833a20a..a5d60420448 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -12,6 +12,7 @@ ARG \ CERTBOT_DNS_DIRECTADMIN_VERSION \ CERTBOT_DNS_DREAMHOST_VERSION \ CERTBOT_DNS_DUCKDNS_VERSION \ + CERTBOT_DNS_DYNU_VERSION \ CERTBOT_DNS_EASYDNS_VERSION \ CERTBOT_DNS_GOOGLE_DOMAINS_VERSION \ CERTBOT_DNS_HE_VERSION \ @@ -51,6 +52,7 @@ RUN \ certbot-dns-dnsimple==${CERTBOT_VERSION} \ certbot-dns-dnsmadeeasy==${CERTBOT_VERSION} \ certbot-dns-duckdns==${CERTBOT_DNS_DUCKDNS_VERSION} \ + certbot-dns-dynu-dev==${CERTBOT_DNS_DYNU_VERSION} \ certbot-dns-gehirn==${CERTBOT_VERSION} \ certbot-dns-google==${CERTBOT_VERSION} \ certbot-dns-google-domains==${CERTBOT_DNS_GOOGLE_DOMAINS_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 07f8960ca3f..6935483cbd3 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -15,6 +15,7 @@ args: CERTBOT_DNS_DESEC_VERSION: 1.2.1 CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.3 CERTBOT_DNS_DUCKDNS_VERSION: 1.3 + CERTBOT_DNS_DYNU_VERSION: 0.0.5 CERTBOT_DNS_EASYDNS_VERSION: 0.1.2 CERTBOT_DNS_HE_VERSION: 1.0.0 CERTBOT_DNS_HETZNER_VERSION: 2.0.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index bbb3fb74a18..c5fd0e885cb 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.15 +version: 5.0.16 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -57,6 +57,7 @@ schema: dnsmadeeasy_api_key: str? dnsmadeeasy_secret_key: str? duckdns_token: str? + dynu_auth_token: str? gandi_api_key: str? gandi_sharing_id: str? gehirn_api_secret: str? @@ -86,7 +87,7 @@ schema: propagation_seconds: int(60,3600)? provider: "list(dns-azure|dns-cloudflare|dns-cloudns|dns-desec|\ dns-digitalocean|dns-directadmin|dns-dnsimple|dns-dnsmadeeasy|\ - dns-duckdns|dns-gehirn|dns-google|dns-google-domains|\ + dns-duckdns|dns-dynu|dns-gehirn|dns-google|dns-google-domains|\ dns-hetzner|dns-infomaniak|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 2469a197331..d5acba35242 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -15,6 +15,7 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_dnsmadeeasy_api_key = $(bashio::config 'dns.dnsmadeeasy_api_key')\n" \ "dns_dnsmadeeasy_secret_key = $(bashio::config 'dns.dnsmadeeasy_secret_key')\n" \ "dns_duckdns_token = $(bashio::config 'dns.duckdns_token')\n" \ + "dns_dynu_auth_token = $(bashio::config 'dns.dynu_auth_token')\n" \ "dns_gehirn_api_token = $(bashio::config 'dns.gehirn_api_token')\n" \ "dns_gehirn_api_secret = $(bashio::config 'dns.gehirn_api_secret')\n" \ "dns_hetzner_api_token = $(bashio::config 'dns.hetzner_api_token')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 48e03e4ac0f..bf4d12ee9bb 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -104,6 +104,11 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-duckdns" ]; then bashio::config.require 'dns.duckdns_token' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# Dynu +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-dynu" ]; then + bashio::config.require 'dns.dynu_auth_token' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # Gandi elif [ "${DNS_PROVIDER}" == "dns-gandi" ]; then if bashio::config.exists 'dns.gandi_sharing_id'; then From 798a90c051bc89360c1c525bfbc90e2d585fdfd0 Mon Sep 17 00:00:00 2001 From: Ivan Vecera Date: Thu, 25 Apr 2024 14:44:12 +0200 Subject: [PATCH 020/346] Add WebSupport provider for letsencrypt addon. (#3579) * Add WebSupport provider for letsencrypt addon. * Letsencrypt addon version bump to 5.0.16. * Update letsencrypt/DOCS.md --------- Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 22 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 4 +++- .../rootfs/etc/cont-init.d/file-structure.sh | 4 +++- .../rootfs/etc/services.d/lets-encrypt/run | 6 +++++ 7 files changed, 41 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 50ca0bcafb2..9d0130cedf4 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.17 + +- Add WebSupport challenge support + ## 5.0.16 - Add Dynu challenge support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 7f4116e5984..47db367cb96 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -70,6 +70,7 @@ dns-transip dns-inwx dns-porkbun dns-easydns +dns-websupport ``` @@ -854,6 +855,26 @@ dns: +
+ + WebSupport + +An identifier and secret key have to be obtained to use this module (see https://admin.websupport.sk/sk/auth/apiKey). + + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-websupport + websupport_identifier: + websupport_secret_key: + ``` +
+ ## Certificate files The certificate files will be available within the "ssl" share after successful request of the certificates. @@ -894,6 +915,7 @@ dns-transip dns-inwx dns-porkbun dns-easydns +dns-websupport ``` ## Support diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index a5d60420448..77e0944ce11 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -22,6 +22,7 @@ ARG \ CERTBOT_DNS_NAMECHEAP_VERSION \ CERTBOT_DNS_TRANSIP_VERSION \ CERTBOT_DNS_PORKBUN_VERSION \ + CERTBOT_DNS_WEBSUPPORT_VERSION \ CERTBOT_NETCUP_VERSION \ CERTBOT_NJALLA_VERSION \ CERTBOT_GANDI_VERSION \ @@ -75,6 +76,7 @@ RUN \ certbot-dns-dreamhost==${CERTBOT_DNS_DREAMHOST_VERSION} \ certbot-dns-he==${CERTBOT_DNS_HE_VERSION} \ certbot-dns-easydns==${CERTBOT_DNS_EASYDNS_VERSION} \ + certbot-dns-websupport==${CERTBOT_DNS_WEBSUPPORT_VERSION} \ acme==${ACME_VERSION} \ && apk del .build-dependencies diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 6935483cbd3..87139f25fbf 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -25,6 +25,7 @@ args: CERTBOT_DNS_GOOGLE_DOMAINS_VERSION: 0.1.11 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 CERTBOT_DNS_PORKBUN_VERSION: 0.8.0 + CERTBOT_DNS_WEBSUPPORT_VERSION: 2.0.1 CERTBOT_GANDI_VERSION: 1.5.0 CERTBOT_NETCUP_VERSION: 1.4.3 CERTBOT_NJALLA_VERSION: 1.0.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index c5fd0e885cb..56dde7970c9 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -91,7 +91,7 @@ schema: dns-hetzner|dns-infomaniak|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ - dns-he|dns-easydns)?" + dns-he|dns-easydns|dns-websupport)?" rfc2136_algorithm: str? rfc2136_name: str? rfc2136_port: str? @@ -111,4 +111,6 @@ schema: easydns_endpoint: str? easydns_key: str? easydns_token: str? + websupport_identifier: str? + websupport_secret_key: str? startup: once diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index d5acba35242..bd641817118 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -61,7 +61,9 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_he_pass = $(bashio::config 'dns.he_pass')\n" \ "dns_easydns_endpoint = $(bashio::config 'dns.easydns_endpoint')\n" \ "dns_easydns_usertoken = $(bashio::config 'dns.easydns_token')\n" \ - "dns_easydns_userkey = $(bashio::config 'dns.easydns_key')\n" > /data/dnsapikey + "dns_easydns_userkey = $(bashio::config 'dns.easydns_key')\n" \ + "dns_websupport_identifier = $(bashio::config 'dns.websupport_identifier')\n" \ + "dns_websupport_secret_key = $(bashio::config 'dns.websupport_secret_key')\n" > /data/dnsapikey if bashio::config.exists 'dns.google_domains_zone'; then echo -e "dns_google_domains_zone = $(bashio::config 'dns.google_domains_zone')\n" >> /data/dnsapikey diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index bf4d12ee9bb..7a143a3f8ae 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -191,6 +191,12 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-easydns" ]; then bashio::config.require 'dns.easydns_endpoint' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# WebSupport +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-websupport" ]; then + bashio::config.require 'dns.websupport_identifier' + bashio::config.require 'dns.websupport_secret_key' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + #All others else PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") From 8d0b3253f5010ca63b2e93a4433ce1fbe56f31cf Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 25 Apr 2024 15:02:25 +0200 Subject: [PATCH 021/346] letsencrypt: Fix and extend Gandi DNS challenge (#3581) Fix Gandi DNS challenge using an API key. Also add support for token authentication. Fixes: #3383 --- letsencrypt/CHANGELOG.md | 5 +++++ letsencrypt/DOCS.md | 1 + letsencrypt/config.yaml | 3 ++- letsencrypt/rootfs/etc/services.d/lets-encrypt/run | 8 ++++++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 9d0130cedf4..afe2568fcec 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 5.0.18 + +- Fix Gandi DNS support using API key +- Add Gandi DNS support using token authentication + ## 5.0.17 - Add WebSupport challenge support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 47db367cb96..2f1990efef5 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -129,6 +129,7 @@ netcup_customer_id: '' netcup_api_key: '' netcup_api_password: '' gandi_api_key: '' +gandi_token: '' gandi_sharing_id: '' transip_username: '' transip_api_key: '' diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 56dde7970c9..e39faeb8891 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.16 +version: 5.0.18 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -59,6 +59,7 @@ schema: duckdns_token: str? dynu_auth_token: str? gandi_api_key: str? + gandi_token: str? gandi_sharing_id: str? gehirn_api_secret: str? gehirn_api_token: str? diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 7a143a3f8ae..cb3e733b944 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -115,6 +115,14 @@ elif [ "${DNS_PROVIDER}" == "dns-gandi" ]; then bashio::log.info "Use Gandi sharing ID" echo "dns_gandi_sharing_id = $(bashio::config 'dns.gandi_sharing_id')" >> "/data/dnsapikey" fi + if bashio::config.exists 'dns.gandi_token'; then + bashio::log.info "Use Gandi gandi_token" + echo "dns_gandi_token = $(bashio::config 'dns.gandi_token')" >> "/data/dnsapikey" + fi + if bashio::config.exists 'dns.gandi_api_key'; then + bashio::log.info "Use Gandi gandi_api_key" + echo "dns_gandi_api_key = $(bashio::config 'dns.gandi_api_key')" >> "/data/dnsapikey" + fi PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}" ) # Hetzner From 32738c3ea1d8c9be937abf4091d9144def7018b4 Mon Sep 17 00:00:00 2001 From: honsma235 <114189750+honsma235@users.noreply.github.com> Date: Thu, 25 Apr 2024 15:04:38 +0200 Subject: [PATCH 022/346] duckdns: Reduce log spam when updating IP address (#3580) * Reduce log spam when updating IP address Reduce log level of "NOCHANGE" updates to debug. This prevents the log beeing flooded with messages about IP updates where nothing noteworthy happend. * Update duckdns/data/run.sh Co-authored-by: Stefan Agner * Update duckdns/data/run.sh Co-authored-by: Stefan Agner * Update config.yaml * Update CHANGELOG.md --------- Co-authored-by: Stefan Agner --- duckdns/CHANGELOG.md | 4 ++++ duckdns/config.yaml | 2 +- duckdns/data/run.sh | 12 ++++++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index 3a9824def54..9e8e14f4295 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.17.0 + +- Reduce log spam when updating IP address + ## 1.16.0 - Update base image to Alpine 3.19 diff --git a/duckdns/config.yaml b/duckdns/config.yaml index 230a560097c..a534057e5ba 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.16.0 +version: 1.17.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/data/run.sh b/duckdns/data/run.sh index 68a5c3cb266..2cfd9c41dc4 100755 --- a/duckdns/data/run.sh +++ b/duckdns/data/run.sh @@ -83,7 +83,11 @@ while true; do if [[ ${ipv6} == *:* ]]; then if answer="$(curl -s "https://www.duckdns.org/update?domains=${DOMAINS}&token=${TOKEN}&ipv6=${ipv6}&verbose=true")" && [ "${answer}" != 'KO' ]; then - bashio::log.info "${answer}" + if [[ "${answer}" == *NOCHANGE* ]]; then + bashio::log.debug "${answer}" + else + bashio::log.info "${answer}" + fi else bashio::log.warning "${answer}" fi @@ -91,7 +95,11 @@ while true; do if [[ -z ${ipv4} || ${ipv4} == *.* ]]; then if answer="$(curl -s "https://www.duckdns.org/update?domains=${DOMAINS}&token=${TOKEN}&ip=${ipv4}&verbose=true")" && [ "${answer}" != 'KO' ]; then - bashio::log.info "${answer}" + if [[ "${answer}" == *NOCHANGE* ]]; then + bashio::log.debug "${answer}" + else + bashio::log.info "${answer}" + fi else bashio::log.warning "${answer}" fi From 9854a9711177845d260da587daf25e2e183a4281 Mon Sep 17 00:00:00 2001 From: TimL Date: Fri, 26 Apr 2024 20:00:27 +1000 Subject: [PATCH 023/346] openthread_border_router: Add support for network RCP radio (#3532) * Add socat network socket support for otbr addon * Use socat device in otbr-agent * Include socat in Docker image * Add socat service to enable check * squash enable checks into enable-check hook script * Bump version 2.6.0 * Update typo in otbr run script Co-authored-by: Stefan Agner * Add network_device to transations * Update openthread_border_router/translations/en.yaml Co-authored-by: Stefan Agner * drop optional schema on device, this doesnt work in conjunction with null default. --------- Co-authored-by: Stefan Agner --- openthread_border_router/CHANGELOG.md | 4 ++++ openthread_border_router/Dockerfile | 3 ++- openthread_border_router/config.yaml | 3 ++- .../rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run | 5 +++++ .../s6-overlay/s6-rc.d/socat-otbr-tcp/data/check | 4 ++++ .../s6-rc.d/socat-otbr-tcp/notification-fd | 1 + .../etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run | 13 +++++++++++++ .../etc/s6-overlay/s6-rc.d/socat-otbr-tcp/type | 1 + .../{otbr-web-enable-check.sh => enable-check.sh} | 10 ++++++++++ openthread_border_router/translations/en.yaml | 6 ++++++ 10 files changed, 48 insertions(+), 2 deletions(-) create mode 100755 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/data/check create mode 100644 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/notification-fd create mode 100755 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run create mode 100644 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/type rename openthread_border_router/rootfs/etc/s6-overlay/scripts/{otbr-web-enable-check.sh => enable-check.sh} (55%) diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 0e89831e56c..a86c4ee987b 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.6.0 + +- Add support for network sockets using socat + ## 2.5.1 - Support Home Assistant Connect ZBT-1. diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index 69f7d257faf..af5c9ba6d05 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -43,6 +43,7 @@ RUN \ python3-pip \ lsb-release \ netcat-openbsd \ + socat \ sudo \ git \ nodejs \ @@ -104,4 +105,4 @@ RUN \ COPY rootfs / ENV \ - S6_STAGE2_HOOK=/etc/s6-overlay/scripts/otbr-web-enable-check.sh + S6_STAGE2_HOOK=/etc/s6-overlay/scripts/enable-check.sh diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 275a0ab66bf..2a9d33a8cc7 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.5.1 +version: 2.6.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on @@ -40,6 +40,7 @@ schema: device: device(subsystem=tty) baudrate: list(57600|115200|230400|460800|921600) flow_control: bool + network_device: str? autoflash_firmware: bool otbr_log_level: list(debug|info|notice|warning|error|critical|alert|emergency) firewall: bool diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run index 41dea6a24f4..f2e7bd0c32a 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run @@ -16,6 +16,11 @@ declare otbr_rest_listen_port backbone_if="$(bashio::api.supervisor 'GET' '/network/info' '' 'first(.interfaces[] | select (.primary == true)) .interface')" device=$(bashio::config 'device') + +if bashio::config.has_value 'network_device'; then + device="/tmp/ttyOTBR" +fi + baudrate=$(bashio::config 'baudrate') flow_control="" diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/data/check b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/data/check new file mode 100755 index 00000000000..b41abdafe79 --- /dev/null +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/data/check @@ -0,0 +1,4 @@ +#!/bin/sh + +test -c /tmp/ttyOTBR +exit diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/notification-fd b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/notification-fd new file mode 100644 index 00000000000..00750edc07d --- /dev/null +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/notification-fd @@ -0,0 +1 @@ +3 diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run new file mode 100755 index 00000000000..9ae7451c100 --- /dev/null +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run @@ -0,0 +1,13 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# Start socat TCP client for OTBR agent daemon +# ============================================================================== + +declare network_device + +network_device=$(bashio::config 'network_device') + +bashio::log.info "Starting socat TCP client for OTBR daemon..." +exec s6-notifyoncheck -d -s 300 -w 300 \ + "/usr/bin/socat" -d pty,raw,echo=0,link=/tmp/ttyOTBR,ignoreeof \ + "tcp:${network_device}" diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/type b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/type new file mode 100644 index 00000000000..5883cff0cd1 --- /dev/null +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/type @@ -0,0 +1 @@ +longrun diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-web-enable-check.sh b/openthread_border_router/rootfs/etc/s6-overlay/scripts/enable-check.sh similarity index 55% rename from openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-web-enable-check.sh rename to openthread_border_router/rootfs/etc/s6-overlay/scripts/enable-check.sh index 8bd256fd9f1..072b3ff21f2 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-web-enable-check.sh +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/enable-check.sh @@ -10,3 +10,13 @@ else rm /etc/s6-overlay/s6-rc.d/user/contents.d/otbr-web bashio::log.info "The otbr-web is disabled." fi + +# ============================================================================== +# Enable socat-otbr-tcp service if needed +# ============================================================================== + +if bashio::config.has_value 'network_device'; then + touch /etc/s6-overlay/s6-rc.d/user/contents.d/socat-otbr-tcp + touch /etc/s6-overlay/s6-rc.d/otbr-agent/dependencies.d/socat-otbr-tcp + bashio::log.info "Enabled socat-otbr-tcp." +fi diff --git a/openthread_border_router/translations/en.yaml b/openthread_border_router/translations/en.yaml index 22d67e1e332..46ecb6930d5 100644 --- a/openthread_border_router/translations/en.yaml +++ b/openthread_border_router/translations/en.yaml @@ -10,6 +10,12 @@ configuration: flow_control: name: Hardware flow control description: Enable hardware flow control for serial port. + network_device: + name: Network Device + description: >- + when connecting to a device via sockets (takes precedence + over above configuration). Not suitable for WiFi or other high latency + connections. autoflash_firmware: name: Automatically flash firmware description: >- From a99b51971079c6719ba038c815fcec2d6e444360 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 09:03:49 +0200 Subject: [PATCH 024/346] build(deps): bump actions/checkout from 4.1.3 to 4.1.4 (#3585) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.3 to 4.1.4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.3...v4.1.4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index b0499b0bad0..c2ebc86dc0b 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 03534805b92..e9d5d9b2321 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From 332d3e4901cfdaa03df9b39966e2b9be5335a407 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 1 May 2024 15:16:18 +0200 Subject: [PATCH 025/346] matter_server: Bump Python Matter server to 5.10.0 (#3586) --- matter_server/CHANGELOG.md | 4 ++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index ec5b5fa272c..ad6683e158e 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.6.0 + +- Bump Python Matter Server to [5.10.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/5.10.0) + ## 5.5.1 - Fix logging in case fallback method for determining the primary network interface is used diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 4a5033f8330..19356379971 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:5.9.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:5.9.0 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:5.10.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:5.10.0 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 4becf8a8c41..4effa1880a2 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.5.1 +version: 5.6.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From 73b8524adb7bea195a6d45790a32ebe0081d2ea4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 2 May 2024 06:04:06 -0500 Subject: [PATCH 026/346] Update README.md --- silabs-multiprotocol/README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/silabs-multiprotocol/README.md b/silabs-multiprotocol/README.md index cb3a79ac447..ef701bee92a 100644 --- a/silabs-multiprotocol/README.md +++ b/silabs-multiprotocol/README.md @@ -3,9 +3,6 @@ Zigbee/OpenThread Multiprotocol container for Silicon Labs based radios such as Home Assistant Yellow, Home Assistant SkyConnect, and Home Assistant Connect ZBT-1. -**NOTE:** Use System -> Hardware -> Configure to enable Multiprotocol support -seamlessly. - ![Supports armv7 Architecture][armv7-shield] ![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] From d40121b9ce0cc349adfec94f4b2f57980745eb5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Thu, 9 May 2024 09:23:07 +0200 Subject: [PATCH 027/346] ssh: Upgrade CLI to 4.34.0 (#3592) --- ssh/CHANGELOG.md | 4 ++++ ssh/build.yaml | 2 +- ssh/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index 632094af99d..c2ffe02b3f3 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 9.14.0 + +- Upgrade Home Assistant CLI to 4.34.0 + ## 9.13.0 - Enable ha command completion for non-login shell (e.g. the web terminal) diff --git a/ssh/build.yaml b/ssh/build.yaml index db6f9e52390..4c4e936de6e 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -9,6 +9,6 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - CLI_VERSION: 4.32.0 + CLI_VERSION: 4.34.0 LIBWEBSOCKETS_VERSION: 4.3.3 TTYD_VERSION: 1.7.4 diff --git a/ssh/config.yaml b/ssh/config.yaml index e35af3ad575..7ee047b534e 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.13.0 +version: 9.14.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH From 62617347238843d5a43162c07f4f2e5388ea1722 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 09:05:11 +0200 Subject: [PATCH 028/346] build(deps): bump actions/checkout from 4.1.4 to 4.1.5 (#3597) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index c2ebc86dc0b..9250be06c38 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e9d5d9b2321..c4df14f42ed 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From 392472f0724489a47ebf1776358cf928f47f8ecb Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 16 May 2024 15:08:09 +0200 Subject: [PATCH 029/346] matter_server: Bump Python Matter server to 6.0.0 (#3599) * matter_server: Bump Python Matter server to 6.0.0 * Add translations for SDK log level * Add verbose log level * Add note in CHANGELOG that this bumps Matter to 1.3 --- matter_server/CHANGELOG.md | 5 +++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 4 ++-- matter_server/translations/en.yaml | 3 +++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index ad6683e158e..439781f0eed 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 6.0.0 + +- Bump Python Matter Server to [6.0.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.0.0) + - This updates Matter to 1.3 + ## 5.6.0 - Bump Python Matter Server to [5.10.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/5.10.0) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 19356379971..a8387270ceb 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:5.10.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:5.10.0 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.0.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.0.0 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 4effa1880a2..693d2c54bfe 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.6.0 +version: 6.0.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. @@ -25,7 +25,7 @@ options: log_level_sdk: error beta: false schema: - log_level: list(debug|info|warning|error|critical) + log_level: list(verbose|debug|info|warning|error|critical) log_level_sdk: list(automation|detail|progress|error|none)? beta: bool? ports: diff --git a/matter_server/translations/en.yaml b/matter_server/translations/en.yaml index c2613aca457..78509bd06eb 100644 --- a/matter_server/translations/en.yaml +++ b/matter_server/translations/en.yaml @@ -3,6 +3,9 @@ configuration: log_level: name: Matter Server Log Level description: Logging level of the Matter Server component. + log_level_sdk: + name: Matter SDK Log Level + description: Logging level of the Matter SDK. beta: name: Use the latest beta version description: >- From 7cd963333b373893458a7c6003e347d4baf3d08e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 08:38:18 +0200 Subject: [PATCH 030/346] build(deps): bump actions/checkout from 4.1.5 to 4.1.6 (#3604) --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 9250be06c38..1575c4650a8 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c4df14f42ed..b410fc62529 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From 8e5480d2fc87f2a24e89f9d915580211c611689c Mon Sep 17 00:00:00 2001 From: Dave Bacon Date: Fri, 24 May 2024 01:11:27 -0700 Subject: [PATCH 031/346] dnsmasq: Add cache_size option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add abilty to config cache size for dnsmasq add on * Bump version and add changelog entry * Typo/grammar fix Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: Jan Čermák Co-authored-by: Jan Čermák Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- dnsmasq/CHANGELOG.md | 4 ++++ dnsmasq/DOCS.md | 4 ++++ dnsmasq/config.yaml | 4 +++- dnsmasq/rootfs/usr/share/tempio/dnsmasq.config | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dnsmasq/CHANGELOG.md b/dnsmasq/CHANGELOG.md index 79dac28f095..631e97cb689 100644 --- a/dnsmasq/CHANGELOG.md +++ b/dnsmasq/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.8.0 + +- Add cache_size option + ## 1.7.0 - Update to Alpine 3.19 diff --git a/dnsmasq/DOCS.md b/dnsmasq/DOCS.md index 3e4fc5a3b25..f3e26881228 100644 --- a/dnsmasq/DOCS.md +++ b/dnsmasq/DOCS.md @@ -123,6 +123,10 @@ The target name. Note that this only works for targets which are names from DHCP Log all DNS requests. Defaults to `false`. +### Option: `cache_size` + +Sets the size of the Dnsmasq cache. The default setting is 150. If this is set to 0 this disables caching. Note that huge cache sizes can create performance problems. + ## Support Got questions? diff --git a/dnsmasq/config.yaml b/dnsmasq/config.yaml index fb69495c85d..71f397db8ca 100644 --- a/dnsmasq/config.yaml +++ b/dnsmasq/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.7.0 +version: 1.8.0 slug: dnsmasq name: Dnsmasq description: A simple DNS server @@ -22,6 +22,7 @@ options: services: [] cnames: [] log_queries: false + cache_size: 150 ports: 53/tcp: 53 53/udp: 53 @@ -44,4 +45,5 @@ schema: - name: str target: str log_queries: bool + cache_size: int startup: system diff --git a/dnsmasq/rootfs/usr/share/tempio/dnsmasq.config b/dnsmasq/rootfs/usr/share/tempio/dnsmasq.config index 3f8a8f27182..e82c9375e71 100644 --- a/dnsmasq/rootfs/usr/share/tempio/dnsmasq.config +++ b/dnsmasq/rootfs/usr/share/tempio/dnsmasq.config @@ -9,6 +9,7 @@ log-queries log-facility=- no-poll user=root +cache={{ .cache_size}} # Default forward servers {{ range .defaults }} From 30e16c482a283d2d6b687ff5f9935e23aadcc7cf Mon Sep 17 00:00:00 2001 From: James Myatt Date: Fri, 24 May 2024 09:17:49 +0100 Subject: [PATCH 032/346] whisper: Add distil-large-v3 model (#3605) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add distil-large-v3 to whisper addon https://huggingface.co/distil-whisper/distil-large-v3 * Bump version number * Update DOCS.md * Update CHANGELOG.md * Remove "in progress" note from the changelog --------- Co-authored-by: Jan Čermák --- whisper/CHANGELOG.md | 4 ++++ whisper/DOCS.md | 1 + whisper/config.yaml | 4 ++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index 61f71b1fb59..46c181a01a8 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.1.0 + +- Add distil-large-v3 `model` option + ## 2.0.0 - Add more models for `model` option diff --git a/whisper/DOCS.md b/whisper/DOCS.md index a839cf2b153..4eea1799d6a 100644 --- a/whisper/DOCS.md +++ b/whisper/DOCS.md @@ -59,6 +59,7 @@ Available models: - `large-v1` - `distil-large-v2` (distilled, English only) - `large-v2` +- `distil-large-v3` (distilled, English only) - `large-v3` ### Option: `custom_model` diff --git a/whisper/config.yaml b/whisper/config.yaml index 4cf77c866b1..4814b7279e0 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.0.0 +version: 2.1.0 slug: whisper name: Whisper description: Speech-to-text with Whisper @@ -19,7 +19,7 @@ options: debug_logging: false schema: model: | - list(tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|large-v3|custom) + list(tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|distil-large-v3|large-v3|custom) custom_model: str? language: | list(auto|af|am|ar|as|az|ba|be|bg|bn|bo|br|bs|ca|cs|cy|da|de|el|en|es|et|eu|fa|fi|fo|fr|gl|gu|ha|haw|he|hi|hr|ht|hu|hy|id|is|it|ja|jw|ka|kk|km|kn|ko|la|lb|ln|lo|lt|lv|mg|mi|mk|ml|mn|mr|ms|mt|my|ne|nl|nn|no|oc|pa|pl|ps|pt|ro|ru|sa|sd|si|sk|sl|sn|so|sq|sr|su|sv|sw|ta|te|tg|th|tk|tl|tr|tt|uk|ur|uz|vi|yi|yo|zh|yue) From 4b5698dbde2cb6a0e3152d6f861b3a6b4777afdf Mon Sep 17 00:00:00 2001 From: Philipp Date: Sat, 25 May 2024 10:59:10 +0200 Subject: [PATCH 033/346] Fix dnsmasq config (#3610) --- dnsmasq/CHANGELOG.md | 4 ++++ dnsmasq/config.yaml | 2 +- dnsmasq/rootfs/usr/share/tempio/dnsmasq.config | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dnsmasq/CHANGELOG.md b/dnsmasq/CHANGELOG.md index 631e97cb689..61ddd24a7ba 100644 --- a/dnsmasq/CHANGELOG.md +++ b/dnsmasq/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.8.1 + +- Fix config bug of cache_size option + ## 1.8.0 - Add cache_size option diff --git a/dnsmasq/config.yaml b/dnsmasq/config.yaml index 71f397db8ca..45591570b7a 100644 --- a/dnsmasq/config.yaml +++ b/dnsmasq/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.8.0 +version: 1.8.1 slug: dnsmasq name: Dnsmasq description: A simple DNS server diff --git a/dnsmasq/rootfs/usr/share/tempio/dnsmasq.config b/dnsmasq/rootfs/usr/share/tempio/dnsmasq.config index e82c9375e71..6068b47d066 100644 --- a/dnsmasq/rootfs/usr/share/tempio/dnsmasq.config +++ b/dnsmasq/rootfs/usr/share/tempio/dnsmasq.config @@ -9,7 +9,7 @@ log-queries log-facility=- no-poll user=root -cache={{ .cache_size}} +cache-size={{ .cache_size}} # Default forward servers {{ range .defaults }} From d8e2216ef532e21948678720140a45a3b4fa6f3f Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Mon, 27 May 2024 22:48:22 -1000 Subject: [PATCH 034/346] Increase mqtt max_queued_messages to 8192 (#3615) --- mosquitto/CHANGELOG.md | 4 ++++ mosquitto/config.yaml | 2 +- mosquitto/rootfs/usr/share/tempio/mosquitto.gtpl | 6 ++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mosquitto/CHANGELOG.md b/mosquitto/CHANGELOG.md index 339cf8379ac..3a9e59b9f72 100644 --- a/mosquitto/CHANGELOG.md +++ b/mosquitto/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.4.1 + +- Increase default max_queued_messages to 8192 to fix dropped messages during Home Assistant startup + ## 6.4.0 - Update mosquitto to 2.0.18 diff --git a/mosquitto/config.yaml b/mosquitto/config.yaml index 986fab1bc5c..e096ac0c9b7 100644 --- a/mosquitto/config.yaml +++ b/mosquitto/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.4.0 +version: 6.4.1 slug: mosquitto name: Mosquitto broker description: An Open Source MQTT broker diff --git a/mosquitto/rootfs/usr/share/tempio/mosquitto.gtpl b/mosquitto/rootfs/usr/share/tempio/mosquitto.gtpl index c484bf8141d..c1a840461c9 100644 --- a/mosquitto/rootfs/usr/share/tempio/mosquitto.gtpl +++ b/mosquitto/rootfs/usr/share/tempio/mosquitto.gtpl @@ -13,6 +13,12 @@ log_timestamp_format %Y-%m-%d %H:%M:%S persistence true persistence_location /data/ +# Limits +# max_queued_messages is effectively the upper limit of +# the number of entities on Home Assistant if startup +# is busy and cannot read messages fast enough +max_queued_messages 8192 + # Authentication plugin auth_plugin /usr/share/mosquitto/go-auth.so auth_opt_backends files,http From 5fb78bd37da512fbef0db9103ec8f77bd813a79c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 08:17:41 +0200 Subject: [PATCH 035/346] build(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#3622) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 1575c4650a8..cf7d520a8ca 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -100,7 +100,7 @@ jobs: - name: Login to DockerHub if: env.BUILD_ARGS == '--docker-hub-check' - uses: docker/login-action@v3.1.0 + uses: docker/login-action@v3.2.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From bcc7ff8796e896e0df8feb65b2e8d9d76de32973 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 5 Jun 2024 18:00:21 +0200 Subject: [PATCH 036/346] matter_server: Bump Python Matter server to 6.1.0 (#3626) --- matter_server/CHANGELOG.md | 5 +++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 439781f0eed..9518330c34b 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 6.1.0 + +- Bump Python Matter Server to [6.1.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.1.0) + - This update is required for Home Assistant Core 2024.6.0 + ## 6.0.0 - Bump Python Matter Server to [6.0.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.0.0) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index a8387270ceb..82500f06b74 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.0.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.0.0 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.1.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.1.0 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 693d2c54bfe..9b84c41705e 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.0.0 +version: 6.1.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From d1440003295624c8cb29fdb5096ff13d70d70524 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 10 Jun 2024 14:51:07 +0200 Subject: [PATCH 037/346] matter_server: Bump Python Matter server to 6.1.1 (#3632) Correctly mark the Python Matter server to require Home Assistant Core 2024.6.0 at least. This is since a breaking change has been introduced which makes the Server incompatible with older Core versions. --- matter_server/CHANGELOG.md | 4 ++++ matter_server/config.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 9518330c34b..b8a5895b467 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.1.1 + +- Bump Python Matter Server to [6.1.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.1.1) + ## 6.1.0 - Bump Python Matter Server to [6.1.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.1.0) diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 9b84c41705e..138570dab86 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.1.0 +version: 6.1.1 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. @@ -11,7 +11,7 @@ arch: discovery: - matter hassio_api: true -homeassistant: 2023.12.0 +homeassistant: 2024.6.0 # IPC is only used within the Add-on host_ipc: false host_network: true From d84ab8e086762eb1d7ca513460a4a64be199d3c9 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 11 Jun 2024 19:32:39 +0200 Subject: [PATCH 038/346] matter_server: Bump Python Matter server to 6.1.2 (#3635) Bump Python Matter Server to [6.1.2](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.1.2) --- matter_server/CHANGELOG.md | 4 ++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index b8a5895b467..801cd6cfa4c 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.1.2 + +- Bump Python Matter Server to [6.1.2](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.1.2) + ## 6.1.1 - Bump Python Matter Server to [6.1.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.1.1) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 82500f06b74..53804d34792 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.1.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.1.0 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.1.2 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.1.2 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 138570dab86..cfb2f3e4785 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.1.1 +version: 6.1.2 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From ce7ae492cff694ddf91ec19141e1a21bb6563bdc Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 12 Jun 2024 17:53:07 +0200 Subject: [PATCH 039/346] dhcp_server: Remove eth from DOCS.md (#3638) --- dhcp_server/DOCS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dhcp_server/DOCS.md b/dhcp_server/DOCS.md index 80beb7da508..30bdd4d4853 100644 --- a/dhcp_server/DOCS.md +++ b/dhcp_server/DOCS.md @@ -38,7 +38,7 @@ networks: range_end: 192.168.1.200 broadcast: 192.168.1.255 gateway: 192.168.1.1 - interface: eth0 + interface: end0 hosts: - name: webcam_xy mac: aa:bb:ee:cc @@ -110,7 +110,7 @@ This is usually the IP address of your router. #### Option: `networks.interface` -The network interface to listen to for this network, e.g., `eth0`. +The network interface to listen to for this network, e.g., `end0`. ### Option: `hosts` (optional) From c08a9b16768e205c6adc1b13929e7210fba243ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:05:10 +0200 Subject: [PATCH 040/346] build(deps): bump actions/checkout from 4.1.6 to 4.1.7 (#3647) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.6 to 4.1.7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.6...v4.1.7) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index cf7d520a8ca..03cf6b99318 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b410fc62529..9cd707dc928 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From c6a4e07ec4fe099015795d59275b15354b0eaecf Mon Sep 17 00:00:00 2001 From: Raman Gupta <7243222+raman325@users.noreply.github.com> Date: Mon, 17 Jun 2024 13:59:30 -0400 Subject: [PATCH 041/346] Bump zwave-js to 12.11.0 (#3645) --- zwave_js/CHANGELOG.md | 50 +++++++++++++++++++++++++++++++++++++++++++ zwave_js/build.yaml | 4 ++-- zwave_js/config.yaml | 2 +- 3 files changed, 53 insertions(+), 3 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 42dd5c025d4..32fdfd5542e 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,55 @@ # Changelog +## 0.6.0 + +### Features + +- Z-Wave JS: Map more Basic CC values to more useful command classes +- Z-Wave JS: Automatically prefer ZWLR-capable RF regions over their non-ZWLR counterparts +- Z-Wave JS: Add driver option to configure vendor-specific constants Z-Wave JS uses to reply to requests from other nodes, including manufacturer ID, product type/ID and hardware version + +### Bug fixes + +- Z-Wave JS: NVM restore now works around an issue that affects some 800 series controllers +- Z-Wave JS: More gracefully handle scenario where inclusion couldn't be completed due to missing security keys +- Z-Wave JS: Fixed an issue where excluded ZWLR nodes were not removed from the list of nodes until restart +- Z-Wave JS: Always query Basic CC version as part of the interview +- Z-Wave JS: Add support for Z-Wave Long Range devices in NVM backup and restore +- Z-Wave JS: Abort S2 bootstrapping when CSA is requested (not supported in Z-Wave JS) +- Z-Wave JS: Implement workaround to recover jammed controller by soft-resetting +- Z-Wave JS: Fixed a race condition that would cause a timeout error to be shown after an actually successful OTW update + +### Config file changes + +- Add HomeSeer PS100 presence sensor, fix broken links +- Fix value size for Fibaro FGWCEU-201, params 150/151 +- Disable Supervision for Heatit Z-Temp2, firmware 1.2.1 +- Use specific float encoding for Namron 4512757 +- Add fingerprint for Aeotec MultiSensor 7 +- Override CC versions for Wayne Dalton WDTC-20 +- Disable Supervision for Everspring EH403 +- Add parameter 117 to Shelly Wave Plug US and UK +- Add params 12, 20, 254 for Aeotec DSB09 +- Use HomeSeer template for LED Indicator (parameter 3) for all HomeSeer switches +- Add Fibaro FGR-224 Roller Shutter 4 +- Parameter update for Zooz Zen16 v2.0 and v2.10 +- Override Central Scene CC version for Springs Window Fashions BRZ +- Add fingerprint 0x0004:0xffff to "Yale YRD210" +- Correct config parameters for Minoston MP21ZD Dimmer Plug + +### Detailed changelogs + +- [Z-Wave JS 12.10.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.11.0) +- [Z-Wave JS 12.10.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.10.1) +- [Z-Wave JS 12.10.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.10.0) +- [Z-Wave JS 12.9.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.9.1) +- [Z-Wave JS 12.9.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.9.0) +- [Z-Wave JS 12.8.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.8.1) +- [Z-Wave JS 12.8.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.8.0) +- [Z-Wave JS 12.7.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.7.0) +- [Z-Wave JS 12.6.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.6.0) +- [Z-Wave JS 12.5.6](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.5.6) + ## 0.5.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 7d24997087f..b1f66e4623e 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 1.35.0 - ZWAVEJS_VERSION: 12.5.5 + ZWAVEJS_SERVER_VERSION: 1.36.0 + ZWAVEJS_VERSION: 12.11.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 50e69628920..ae3bc84147f 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.5.0 +version: 0.6.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From b2be99e9a5e437f3424e730a9eba73d3485c3bbb Mon Sep 17 00:00:00 2001 From: resnikal71202 <69183781+resnikal71202@users.noreply.github.com> Date: Fri, 21 Jun 2024 10:18:52 +0200 Subject: [PATCH 042/346] letsencrypt: add Domainoffensive (#3549) * Update Dockerfile * Update build.yaml * Update config.yaml * Update DOCS.md * Update file-structure.sh * Update run * Update run * Update run * Update letsencrypt/rootfs/etc/services.d/lets-encrypt/run * Update CHANGELOG.md * Update config.yaml * Update run * Update DOCS.md --------- Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 20 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 4 +++- .../rootfs/etc/cont-init.d/file-structure.sh | 1 + .../rootfs/etc/services.d/lets-encrypt/run | 5 +++++ 7 files changed, 36 insertions(+), 1 deletion(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index afe2568fcec..5130f393a63 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.19 + +- Add domainoffensive challenge support + ## 5.0.18 - Fix Gandi DNS support using API key diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 2f1990efef5..830d2745169 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -70,6 +70,7 @@ dns-transip dns-inwx dns-porkbun dns-easydns +dns-domainoffensive dns-websupport ``` @@ -140,6 +141,7 @@ porkbun_key: '' porkbun_secret: '' dreamhost_api_baseurl: '' dreamhost_api_key: '' +domainoffensive_token: '' ``` @@ -876,6 +878,23 @@ An identifier and secret key have to be obtained to use this module (see https:/ ``` +
+ domainoffensive + + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-domainoffensive + domainoffensive_token: ***** + ``` +
+ + ## Certificate files The certificate files will be available within the "ssl" share after successful request of the certificates. @@ -916,6 +935,7 @@ dns-transip dns-inwx dns-porkbun dns-easydns +dns-domainoffensive dns-websupport ``` diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 77e0944ce11..d272045a42f 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -26,6 +26,7 @@ ARG \ CERTBOT_NETCUP_VERSION \ CERTBOT_NJALLA_VERSION \ CERTBOT_GANDI_VERSION \ + CERTBOT_DNS_DOMAINOFFENSIVE_VERSION \ ACME_VERSION RUN \ @@ -76,6 +77,7 @@ RUN \ certbot-dns-dreamhost==${CERTBOT_DNS_DREAMHOST_VERSION} \ certbot-dns-he==${CERTBOT_DNS_HE_VERSION} \ certbot-dns-easydns==${CERTBOT_DNS_EASYDNS_VERSION} \ + certbot-dns-domainoffensive==${CERTBOT_DNS_DOMAINOFFENSIVE_VERSION} \ certbot-dns-websupport==${CERTBOT_DNS_WEBSUPPORT_VERSION} \ acme==${ACME_VERSION} \ && apk del .build-dependencies diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 87139f25fbf..1457ad99699 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -31,4 +31,5 @@ args: CERTBOT_NJALLA_VERSION: 1.0.0 CERTBOT_VERSION: 2.7.4 CERTBOT_DNS_DREAMHOST_VERSION: 1.0 + CERTBOT_DNS_DOMAINOFFENSIVE: 2.0.0 ACME_VERSION: 2.7.4 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index e39faeb8891..9edb36173e2 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.18 +version: 5.0.19 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -92,6 +92,7 @@ schema: dns-hetzner|dns-infomaniak|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ + dns-he|dns-easydns|dns-domainoffensive)?\ dns-he|dns-easydns|dns-websupport)?" rfc2136_algorithm: str? rfc2136_name: str? @@ -112,6 +113,7 @@ schema: easydns_endpoint: str? easydns_key: str? easydns_token: str? + domainoffensive_token: str? websupport_identifier: str? websupport_secret_key: str? startup: once diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index bd641817118..6ca6acdd3d6 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -62,6 +62,7 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_easydns_endpoint = $(bashio::config 'dns.easydns_endpoint')\n" \ "dns_easydns_usertoken = $(bashio::config 'dns.easydns_token')\n" \ "dns_easydns_userkey = $(bashio::config 'dns.easydns_key')\n" \ + "dns_domainoffensive_api_token = $(bashio::config 'dns.domainoffensive_token'" \ "dns_websupport_identifier = $(bashio::config 'dns.websupport_identifier')\n" \ "dns_websupport_secret_key = $(bashio::config 'dns.websupport_secret_key')\n" > /data/dnsapikey diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index cb3e733b944..d4bbddece56 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -199,6 +199,11 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-easydns" ]; then bashio::config.require 'dns.easydns_endpoint' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# domainoffensive +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-domainoffensive" ]; then + bashio::config.require 'dns.domainoffensive_token' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--agree-tos" "-m ${EMAIL}") + # WebSupport elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-websupport" ]; then bashio::config.require 'dns.websupport_identifier' From c22351a9c9e8f9826b9397ad934314475576d7e4 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 21 Jun 2024 10:49:21 +0200 Subject: [PATCH 043/346] letsencrypt: Add hint about YAML vs UI configuration (#3651) Co-authored-by: Franck Nijhof --- letsencrypt/DOCS.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 830d2745169..4d7469f1309 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -241,6 +241,10 @@ If your custom ACME server uses a certificate signed by an untrusted certificate ## Example Configurations +Note: These configuration examples are raw YAML configs. When you use UI edit +mode (default), and configure DNS, simply copy the attributes underneath *dns* +into the *DNS Provider configuration* field. +
HTTP challenge From ece60b8dadc3e53f6415dfd4c97b8d519146ea95 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 21 Jun 2024 11:14:00 +0200 Subject: [PATCH 044/346] letsencrypt: Fix file-structure shell script (#3652) --- letsencrypt/CHANGELOG.md | 5 +++++ letsencrypt/build.yaml | 2 +- letsencrypt/config.yaml | 2 +- letsencrypt/rootfs/etc/cont-init.d/file-structure.sh | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 5130f393a63..41793cce715 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 5.0.20 + +- Fix file-structure.sh script +- Fix domainoffensive plug-in installation + ## 5.0.19 - Add domainoffensive challenge support diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 1457ad99699..910fc457f35 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -31,5 +31,5 @@ args: CERTBOT_NJALLA_VERSION: 1.0.0 CERTBOT_VERSION: 2.7.4 CERTBOT_DNS_DREAMHOST_VERSION: 1.0 - CERTBOT_DNS_DOMAINOFFENSIVE: 2.0.0 + CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 ACME_VERSION: 2.7.4 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 9edb36173e2..65430eb1d97 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.19 +version: 5.0.20 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 6ca6acdd3d6..8b0d10b03ac 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -62,7 +62,7 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_easydns_endpoint = $(bashio::config 'dns.easydns_endpoint')\n" \ "dns_easydns_usertoken = $(bashio::config 'dns.easydns_token')\n" \ "dns_easydns_userkey = $(bashio::config 'dns.easydns_key')\n" \ - "dns_domainoffensive_api_token = $(bashio::config 'dns.domainoffensive_token'" \ + "dns_domainoffensive_api_token = $(bashio::config 'dns.domainoffensive_token')\n" \ "dns_websupport_identifier = $(bashio::config 'dns.websupport_identifier')\n" \ "dns_websupport_secret_key = $(bashio::config 'dns.websupport_secret_key')\n" > /data/dnsapikey From 8e51279e2652563a95cbf4355c2dfd9a8ee22723 Mon Sep 17 00:00:00 2001 From: Raman Gupta <7243222+raman325@users.noreply.github.com> Date: Fri, 21 Jun 2024 06:02:45 -0400 Subject: [PATCH 045/346] Bump zwave-js to 12.11.1 (#3648) --- zwave_js/CHANGELOG.md | 18 +++++++++++++++++- zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 32fdfd5542e..c1346afe542 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 0.6.1 + +### Bug fixes + +- Z-Wave JS: When attempting communication with a node that's considered dead, the command is now sent immediately instead of pinging first +- Z-Wave JS: Fixed prioritization of queued transactions once a node wakes up + +### Config file changes + +- Remove endpoint workaround for Zooz ZEN30 800LR +- Encode CCs using target's CC version for TKB Home TZ67 + +### Detailed changelogs + +- [Z-Wave JS 12.11.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.11.1) + ## 0.6.0 ### Features @@ -39,7 +55,7 @@ ### Detailed changelogs -- [Z-Wave JS 12.10.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.11.0) +- [Z-Wave JS 12.11.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.11.0) - [Z-Wave JS 12.10.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.10.1) - [Z-Wave JS 12.10.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.10.0) - [Z-Wave JS 12.9.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.9.1) diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index b1f66e4623e..4d60fe66a4e 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 1.36.0 - ZWAVEJS_VERSION: 12.11.0 + ZWAVEJS_VERSION: 12.11.1 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index ae3bc84147f..bd0b69cad46 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.6.0 +version: 0.6.1 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From c6ebc3e0ed5959e167ab86a3c9cf90beba2cb2cc Mon Sep 17 00:00:00 2001 From: David Fries Date: Fri, 21 Jun 2024 05:24:00 -0500 Subject: [PATCH 046/346] ssh: Add port to "TCP port forwarding" (#3644) Give a hint for an educated user what forwarding specifically tcp_forwarding would enable or not. I was confused and I've forwarded many things over ssh. --- ssh/DOCS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ssh/DOCS.md b/ssh/DOCS.md index 894dee9f993..75c959fe950 100644 --- a/ssh/DOCS.md +++ b/ssh/DOCS.md @@ -85,7 +85,7 @@ Some SSH server options. #### Option `tcp_forwarding` -Specifies whether TCP forwarding is permitted or not. +Specifies whether TCP port forwarding (-L -R etc.) is permitted or not. **Note**: _Enabling this option lowers the security of your SSH server! Nevertheless, this warning is debatable._ From f2c5704f8e84590e34684bdc147a024840b7b14c Mon Sep 17 00:00:00 2001 From: Tim L Date: Fri, 21 Jun 2024 20:33:51 +1000 Subject: [PATCH 047/346] openthread_border_router: Firmware updates for third party Silabs dongles (#3628) * Support finding USB device sysfs dir for UBS CDC devices also * Bump universal-silabs-flasher to 0.0.20 * Update to new style bootloader reset flags * Add firmware for Sonoff ZBDongle-E * Update release for 2.7.0 * Add firmware for SMLIGHT SLZB-07 * Update openthread_border_router/CHANGELOG.md --------- Co-authored-by: Tim Lunn Co-authored-by: Stefan Agner --- openthread_border_router/CHANGELOG.md | 6 ++++++ openthread_border_router/build.yaml | 2 +- openthread_border_router/config.yaml | 2 +- .../scripts/universal-silabs-flasher-up | 16 +++++++++++----- .../root/ot-rcp-v2.4.2.0-slzb-07-460800.gbl | Bin 0 -> 107884 bytes .../root/ot-rcp-v2.4.2.0-zbdonglee-460800.gbl | Bin 0 -> 107884 bytes 6 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-slzb-07-460800.gbl create mode 100644 openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-zbdonglee-460800.gbl diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index a86c4ee987b..4a6b4112150 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.7.0 + +- Support auto firmware updates for Sonoff ZBDongle-E +- Support auto firmware updates for SMLIGHT SLZB-07 +- Bump universal SiLabs flasher to 0.0.20 + ## 2.6.0 - Add support for network sockets using socat diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index 826013bef34..655a377bcba 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -4,4 +4,4 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm args: OTBR_VERSION: 2279c02f3c3373f074899fc8d993b8ddb72910a2 - UNIVERSAL_SILABS_FLASHER: 0.0.18 + UNIVERSAL_SILABS_FLASHER: 0.0.20 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 2a9d33a8cc7..b741d9139e4 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.6.0 +version: 2.7.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 49566b76acd..9f3405e92c3 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -17,6 +17,7 @@ function exit_no_firmware { } device=$(bashio::config 'device') +gpio_reset_flag="" if bashio::config.false 'autoflash_firmware'; then bashio::log.info "Flashing firmware is disabled" @@ -27,10 +28,10 @@ fi if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then bashio::log.info "Detected Home Assistant Yellow" firmware="NabuCasa_Yellow_OpenThread_RCP_v2.4.0.0_PA32_ot-rcp_hw_460800.gbl" - gpio_reset_flag="--yellow-gpio-reset" + gpio_reset_flag="--bootloader-reset yellow" else # Check device manufacturer/product information - usb_device_path=$(realpath /sys/class/tty/$(readlink /sys/class/tty/$(basename ${device}))/../../../../) + usb_device_path=$(realpath /sys/class/tty/$(readlink /sys/class/tty/$(basename ${device}) | sed 's:/[^/]*tty[^/]*::g' )/../) if [ ! -f "${usb_device_path}/idProduct" ]; then bashio::log.info "The selected serial port is not a USB device." exit_no_firmware @@ -49,12 +50,17 @@ else firmware="NabuCasa_SkyConnect_OpenThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl" elif [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "Home Assistant Connect ZBT-1"* ]]; then firmware="NabuCasa_SkyConnect_OpenThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl" + elif [[ "${usb_manufacturer}" == "ITEAD" && "${usb_product}" == "SONOFF Zigbee 3.0 USB Dongle Plus V2" ]]; then + firmware="ot-rcp-v2.4.2.0-zbdonglee-460800.gbl" + gpio_reset_flag="--bootloader-reset sonoff" + elif [[ "${usb_manufacturer}" == "SMLIGHT" && "${usb_product}" == "SMLIGHT SLZB-07" ]]; then + firmware="ot-rcp-v2.4.2.0-slzb-07-460800.gbl" + gpio_reset_flag="--bootloader-reset slzb07" else exit_no_firmware fi - gpio_reset_flag="" fi bashio::log.info "Starting universal-silabs-flasher with ${device}" -exec universal-silabs-flasher --device ${device} \ - flash ${gpio_reset_flag} --ensure-exact-version --allow-cross-flashing --firmware "/root/${firmware}" +exec universal-silabs-flasher --device ${device} ${gpio_reset_flag} \ + flash --ensure-exact-version --allow-cross-flashing --firmware "/root/${firmware}" diff --git a/openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-slzb-07-460800.gbl b/openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-slzb-07-460800.gbl new file mode 100644 index 0000000000000000000000000000000000000000..81f92cb757c863381882779d5e0baaa43de5b1af GIT binary patch literal 107884 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

-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 BTE74Q literal 0 HcmV?d00001 diff --git a/openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-zbdonglee-460800.gbl b/openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-zbdonglee-460800.gbl new file mode 100644 index 0000000000000000000000000000000000000000..6b62389913f7d835d827078eb7e6e431d11fc735 GIT binary patch literal 107884 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%0D1plgOKe^5+bQS&(-I!~{s*8azee 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 z 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 literal 0 HcmV?d00001 From d3b08b2efa4148e3e2a7ae955ed4d57fb6a4a405 Mon Sep 17 00:00:00 2001 From: feuertaenzer <87800757+feuertaenzer@users.noreply.github.com> Date: Fri, 21 Jun 2024 14:36:21 +0200 Subject: [PATCH 048/346] letsencrypt: Fix config.yaml (#3654) Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/config.yaml | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 41793cce715..83eaa65affb 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.21 + +- Fix configuration to make list of provider parsable again + ## 5.0.20 - Fix file-structure.sh script diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 65430eb1d97..cc1aa0e2758 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.20 +version: 5.0.21 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -92,8 +92,7 @@ schema: dns-hetzner|dns-infomaniak|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ - dns-he|dns-easydns|dns-domainoffensive)?\ - dns-he|dns-easydns|dns-websupport)?" + dns-he|dns-easydns|dns-domainoffensive|dns-websupport)?" rfc2136_algorithm: str? rfc2136_name: str? rfc2136_port: str? From e914be566f95bf8c813212c26e5f6c2e29fa595e Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Sun, 23 Jun 2024 07:36:00 +0200 Subject: [PATCH 049/346] Bump zwave-js to 12.11.2 (#3656) --- zwave_js/CHANGELOG.md | 20 ++++++++++++++------ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index c1346afe542..4e8e553f5f5 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 0.6.2 + +### Bug fixes + +- Z-Wave JS: Fixed a regression causing commands to sleeping nodes to block communication with other nodes + +### Detailed changelogs + +- [Z-Wave JS 12.11.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.11.2) + ## 0.6.1 ### Bug fixes @@ -335,7 +345,6 @@ Almost 1000 device configuration files have been reworked to be more consistent, - Z-Wave JS: Fixes or works around multiple issues with 500 series controllers that could trigger the unresponsive controller detection in Z-Wave JS 12 in situations where it was not necessary, causing restart loops. - ### Bug fixes - [Z-Wave JS 12.0.3](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.0.3) @@ -353,6 +362,7 @@ Almost 1000 device configuration files have been reworked to be more consistent, - Z-Wave JS: Ignore when a node reports Security S0/S2 CC to have version 0 (unsupported) although it is using that CC ### Config file changes + - Add Shelly to manufacturers - Add Shelly Wave 1, Wave 2PM, update Wave 1PM association labels - Add Sunricher SR-ZV2833PAC @@ -457,7 +467,7 @@ Almost 1000 device configuration files have been reworked to be more consistent, - Z-Wave JS: Fixed a regression from v11.10.1 where the controller's firmware version was not fully queried - Z-Wave JS: Change order of commands so the startup does not fail when a controller is already set to use 16-bit node IDs and soft-reset is disabled -- Z-Wave JS: Soft-reset is now always enabled on 700+ series controllers +- Z-Wave JS: Soft-reset is now always enabled on 700+ series controllers - Z-Wave JS: Queried user codes and their status are now preserved during re-interview when they won't be re-queried automatically - Z-Wave JS: Fixed an issue where nodes were being marked as dead because the controller couldn't transmit. - Z-Wave JS: Fixed an issue where 700 series controllers were not soft-reset after NVM backup when soft-reset was disabled via config @@ -475,6 +485,7 @@ Almost 1000 device configuration files have been reworked to be more consistent, - Correct reporting frequency parameter values for Sensative AB Strips Comfort / Drips Multisensor ### Detailed changelogs + - [Bump Z-Wave JS Server to 1.31.0](https://github.com/zwave-js/zwave-js-server/releases/tag/1.31.0) - [Bump Z-Wave JS to 11.11.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v11.11.0) - [Bump Z-Wave JS to 11.12.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v11.12.0) @@ -487,10 +498,9 @@ Almost 1000 device configuration files have been reworked to be more consistent, - Z-Wave JS: Fixed a bug where firmware links that redirected to another URL were not supported - Z-Wave JS: Change order of commands so the startup does not fail when a controller is already set to use 16-bit node IDs and soft-reset is disabled -- Z-Wave JS: Soft-reset is now always enabled on 700+ series controllers +- Z-Wave JS: Soft-reset is now always enabled on 700+ series controllers - Z-Wave JS: Queried user codes and their status are now preserved during re-interview when they won't be re-queried automatically - ### Config file changes - Add parameters 9-13 to Minoston MP21ZP / MP31ZP @@ -518,7 +528,6 @@ Almost 1000 device configuration files have been reworked to be more consistent, - Z-Wave JS: Fixed an issue where no control values were exposed for devices that do not support/advertise Version CC - Z-Wave JS: Fixed a regression introduced in 11.9.1 that would sometimes cause the startup process to hang - ### Config file changes - Add Leviton RZM10-1L @@ -556,7 +565,6 @@ Almost 1000 device configuration files have been reworked to be more consistent, - Z-Wave JS: Devices that failed to join using SmartStart are now automatically removed - Z-Wave JS: Fix an issue where Z-Wave JS could get stuck when removing a node from the network failed - ### Config file changes - Correct config parameters for Duwi ZW ESJ 300 diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 4d60fe66a4e..d7ed1ea0806 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 1.36.0 - ZWAVEJS_VERSION: 12.11.1 + ZWAVEJS_VERSION: 12.11.2 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index bd0b69cad46..042ffda6079 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.6.1 +version: 0.6.2 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From f775cac926ef3d65a6c9cc9d0e2e3a296c4a24a8 Mon Sep 17 00:00:00 2001 From: scyto Date: Mon, 24 Jun 2024 00:17:56 -0700 Subject: [PATCH 050/346] openthread_border_router: Update DOCS.md (#3636) * Update DOCS.md added network_device entry to configuration table * Update openthread_border_router/DOCS.md committing rabbits suggestion in formatting Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Good suggestion :thu Co-authored-by: Stefan Agner * Small wording tweaks --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Franck Nijhof Co-authored-by: Stefan Agner --- openthread_border_router/DOCS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openthread_border_router/DOCS.md b/openthread_border_router/DOCS.md index caf699fa8b9..32198c6d161 100644 --- a/openthread_border_router/DOCS.md +++ b/openthread_border_router/DOCS.md @@ -65,6 +65,9 @@ Add-on configuration: | otbr_log_level | Set the log level of the OpenThread BorderRouter Agent | | firewall | Enable OpenThread Border Router firewall to block unnecessary traffic | | nat64 | Enable NAT64 to allow Thread devices accessing IPv4 addresses | +| network_device | IP address and port to connect to a network-based RCP (1) | + +(1) Note you still need to set a dummy device, e.g., `/dev/ttyS3`. Also, note that the RCP protocol is not designed to be transferred over an IP network: It is a timing-sensitive protocol. You might experience Thread issues if your network link has excessive latencies. As Thread is networking capable, running a Thread border router on the system the RCP radio is plugged in is recommended. ## Support From a8868c09f7708141cbf290deca60ed9e027be186 Mon Sep 17 00:00:00 2001 From: trax <38944599+4nx@users.noreply.github.com> Date: Mon, 24 Jun 2024 10:03:51 +0200 Subject: [PATCH 051/346] letsencrypt: update addon to add joker.com support (#3642) * update letsencrypt addon to add joker.com support * Update letsencrypt/DOCS.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * add information to CHANGELOG.md and version upgrade in confiy.yaml * rebase to master * Update letsencrypt/Dockerfile Co-authored-by: Stefan Agner --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 25 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 6 +++-- .../rootfs/etc/cont-init.d/file-structure.sh | 2 ++ .../rootfs/etc/services.d/lets-encrypt/run | 6 +++++ 7 files changed, 44 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 83eaa65affb..28fb0619bce 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.22 + +- Add joker.com DNS challenge support + ## 5.0.21 - Fix configuration to make list of provider parsable again diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 4d7469f1309..fd693eb84e0 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -55,6 +55,7 @@ dns-gehirn dns-google dns-hetzner dns-infomaniak +dns-joker dns-linode dns-luadns dns-njalla @@ -105,6 +106,8 @@ hetzner_api_token: '' gehirn_api_token: '' gehirn_api_secret: '' infomaniak_api_token: '' +joker_username: '' +joker_password: '' linode_key: '' linode_version: '' luadns_email: '' @@ -401,6 +404,28 @@ Choose "Domain" as the scope.
+
+ Joker DNS challenge + + ```yaml + email: your.email@example.com + domains: + - subdomain.home-assistant.io + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-joker + joker_username: username + joker_password: password + ``` + +You can find further detailed information here: + + + +
+
route53 DNS challenge diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index d272045a42f..1a56e885af7 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -19,6 +19,7 @@ ARG \ CERTBOT_DNS_HETZNER_VERSION \ CERTBOT_DNS_INFOMANIAK_VERSION \ CERTBOT_DNS_INWX_VERSION \ + CERTBOT_DNS_JOKER_VERSION \ CERTBOT_DNS_NAMECHEAP_VERSION \ CERTBOT_DNS_TRANSIP_VERSION \ CERTBOT_DNS_PORKBUN_VERSION \ @@ -60,6 +61,7 @@ RUN \ certbot-dns-google-domains==${CERTBOT_DNS_GOOGLE_DOMAINS_VERSION} \ certbot-dns-hetzner==${CERTBOT_DNS_HETZNER_VERSION} \ certbot-dns-infomaniak==${CERTBOT_DNS_INFOMANIAK_VERSION} \ + certbot-dns-joker==${CERTBOT_DNS_JOKER_VERSION} \ certbot-dns-linode==${CERTBOT_VERSION} \ certbot-dns-luadns==${CERTBOT_VERSION} \ certbot-dns-njalla==${CERTBOT_NJALLA_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 910fc457f35..a5f2b670f86 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -21,6 +21,7 @@ args: CERTBOT_DNS_HETZNER_VERSION: 2.0.0 CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.1 CERTBOT_DNS_INWX_VERSION: 2.2.0 + CERTBOT_DNS_JOKER_VERSION: 1.1.0 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 CERTBOT_DNS_GOOGLE_DOMAINS_VERSION: 0.1.11 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index cc1aa0e2758..4ef43e834c3 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.21 +version: 5.0.22 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -72,6 +72,8 @@ schema: linode_version: str? luadns_email: email? luadns_token: str? + joker_username: str? + joker_password: str? namecheap_username: str? namecheap_api_key: str? netcup_api_key: str? @@ -89,7 +91,7 @@ schema: provider: "list(dns-azure|dns-cloudflare|dns-cloudns|dns-desec|\ dns-digitalocean|dns-directadmin|dns-dnsimple|dns-dnsmadeeasy|\ dns-duckdns|dns-dynu|dns-gehirn|dns-google|dns-google-domains|\ - dns-hetzner|dns-infomaniak|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ + dns-hetzner|dns-infomaniak|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ dns-he|dns-easydns|dns-domainoffensive|dns-websupport)?" diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 8b0d10b03ac..f5e81d98331 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -20,6 +20,8 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_gehirn_api_secret = $(bashio::config 'dns.gehirn_api_secret')\n" \ "dns_hetzner_api_token = $(bashio::config 'dns.hetzner_api_token')\n" \ "dns_infomaniak_token = $(bashio::config 'dns.infomaniak_api_token')\n" \ + "dns_joker_username = $(bashio::config 'dns.joker_username')\n" \ + "dns_joker_password= $(bashio::config 'dns.joker_password')\n" \ "dns_linode_key = $(bashio::config 'dns.linode_key')\n" \ "dns_linode_version = $(bashio::config 'dns.linode_version')\n" \ "dns_luadns_email = $(bashio::config 'dns.luadns_email')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index d4bbddece56..f4d452fae89 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -135,6 +135,12 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-infomaniak" ]; t bashio::config.require 'dns.infomaniak_api_token' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" /data/dnsapikey "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# Joker +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-joker" ]; then + bashio::config.require 'dns.joker_username' + bashio::config.require 'dns.joker_password' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # Njalla elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-njalla" ]; then bashio::config.require 'dns.njalla_token' From 4331fe58bebac83e8e419eff7a88d6d73e7e55f1 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 25 Jun 2024 13:07:21 +0200 Subject: [PATCH 052/346] letsencrypt: Fix i386 build (#3663) --- letsencrypt/Dockerfile | 4 +++- letsencrypt/build.yaml | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 1a56e885af7..e8fec27e6ea 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -4,6 +4,7 @@ FROM $BUILD_FROM # setup base ARG \ BUILD_ARCH \ + CLOUDFLARE_VERSION \ CRYPTOGRAPHY_VERSION \ CERTBOT_VERSION \ CERTBOT_DNS_AZURE_VERSION \ @@ -44,6 +45,7 @@ RUN \ cargo \ && pip3 install --no-cache-dir --find-links \ "https://wheels.home-assistant.io/alpine-$(cut -d '.' -f 1-2 < /etc/alpine-release)/${BUILD_ARCH}/" \ + cloudflare==${CLOUDFLARE_VERSION} \ cryptography==${CRYPTOGRAPHY_VERSION} \ certbot==${CERTBOT_VERSION} \ certbot-dns-azure==${CERTBOT_DNS_AZURE_VERSION} \ @@ -61,7 +63,7 @@ RUN \ certbot-dns-google-domains==${CERTBOT_DNS_GOOGLE_DOMAINS_VERSION} \ certbot-dns-hetzner==${CERTBOT_DNS_HETZNER_VERSION} \ certbot-dns-infomaniak==${CERTBOT_DNS_INFOMANIAK_VERSION} \ - certbot-dns-joker==${CERTBOT_DNS_JOKER_VERSION} \ + certbot-dns-joker==${CERTBOT_DNS_JOKER_VERSION} \ certbot-dns-linode==${CERTBOT_VERSION} \ certbot-dns-luadns==${CERTBOT_VERSION} \ certbot-dns-njalla==${CERTBOT_NJALLA_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index a5f2b670f86..6c11a1e0b03 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -9,7 +9,9 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: + CLOUDFLARE_VERSION: 2.9.11 CRYPTOGRAPHY_VERSION: 41.0.5 + CERTBOT_VERSION: 2.7.4 CERTBOT_DNS_AZURE_VERSION: 2.4.0 CERTBOT_DNS_CLOUDNS_VERSION: 0.6.0 CERTBOT_DNS_DESEC_VERSION: 1.2.1 @@ -30,7 +32,6 @@ args: CERTBOT_GANDI_VERSION: 1.5.0 CERTBOT_NETCUP_VERSION: 1.4.3 CERTBOT_NJALLA_VERSION: 1.0.0 - CERTBOT_VERSION: 2.7.4 CERTBOT_DNS_DREAMHOST_VERSION: 1.0 CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 ACME_VERSION: 2.7.4 From b951bfba01a74a096421f34879870850f4817d2f Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 25 Jun 2024 13:08:27 +0200 Subject: [PATCH 053/346] openthread_border_router: Fix crash on malformed mDNS packages (#3662) --- ...0001-Avoid-writing-to-system-console.patch | 30 --------------- ...1-channel-monitor-disable-by-default.patch | 5 +-- ...d-with-custom-netif-prefix-route-set.patch | 37 +++++++++++++++++++ openthread_border_router/CHANGELOG.md | 4 ++ openthread_border_router/Dockerfile | 10 +++-- openthread_border_router/build.yaml | 2 +- openthread_border_router/config.yaml | 2 +- .../etc/s6-overlay/s6-rc.d/otbr-agent/run | 2 +- 8 files changed, 52 insertions(+), 40 deletions(-) delete mode 100644 openthread_border_router/0001-Avoid-writing-to-system-console.patch create mode 100644 openthread_border_router/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch diff --git a/openthread_border_router/0001-Avoid-writing-to-system-console.patch b/openthread_border_router/0001-Avoid-writing-to-system-console.patch deleted file mode 100644 index 5536ca66c90..00000000000 --- a/openthread_border_router/0001-Avoid-writing-to-system-console.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e0792b7605e6d6cb2ebd491025aee7f84d1edbaa Mon Sep 17 00:00:00 2001 -Message-ID: -From: Stefan Agner -Date: Thu, 17 Feb 2022 22:57:16 +0100 -Subject: [PATCH] Avoid writing to system console - -Add-ons do not have a working syslog infrastructure. The LOG_CONS -options causes syslog() calls to log to the system console -(/dev/console). Avoid writing to system console as we use logging to -stderr. ---- - src/common/logging.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/common/logging.cpp b/src/common/logging.cpp -index 5a787e8213..79fccf77ca 100644 ---- a/src/common/logging.cpp -+++ b/src/common/logging.cpp -@@ -88,7 +88,7 @@ void otbrLogInit(const char *aProgramName, otbrLogLevel aLevel, bool aPrintStder - ident = strrchr(aProgramName, '/'); - ident = (ident != nullptr) ? ident + 1 : aProgramName; - -- openlog(ident, (LOG_CONS | LOG_PID) | (aPrintStderr ? LOG_PERROR : 0), OTBR_SYSLOG_FACILITY_ID); -+ openlog(ident, LOG_PID | (aPrintStderr ? LOG_PERROR : 0), OTBR_SYSLOG_FACILITY_ID); - sLevel = aLevel; - sDefaultLevel = sLevel; - } --- -2.42.0 - diff --git a/openthread_border_router/0001-channel-monitor-disable-by-default.patch b/openthread_border_router/0001-channel-monitor-disable-by-default.patch index 84dee6dce33..702ecd13cfd 100644 --- a/openthread_border_router/0001-channel-monitor-disable-by-default.patch +++ b/openthread_border_router/0001-channel-monitor-disable-by-default.patch @@ -1,5 +1,4 @@ -From f84792cd229e9c3c4f5921cf92d280810dc56716 Mon Sep 17 00:00:00 2001 -Message-ID: +From 2d67b5d8d711e61551a28cac522484fd5cbc4982 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Sun, 7 Jan 2024 00:35:53 +0100 Subject: [PATCH] [channel-monitor] disable by default @@ -29,5 +28,5 @@ index 8e6848832..c79660de8 100644 mIsUp = true; -- -2.43.0 +2.45.2 diff --git a/openthread_border_router/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch b/openthread_border_router/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch new file mode 100644 index 00000000000..f52c40e156e --- /dev/null +++ b/openthread_border_router/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch @@ -0,0 +1,37 @@ +From 482f1323f8b8141b12d027afa71f77b93d88061b Mon Sep 17 00:00:00 2001 +From: Stefan Agner +Date: Mon, 24 Jun 2024 11:35:23 +0200 +Subject: [PATCH] [posix] fix build with custom netif prefix route set +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes a build error when the pre-processor define +OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC is set: + +``` +/usr/src/ot-br-posix/third_party/openthread/repo/src/posix/platform/netif.cpp:486:26: error: ‘kLinkLocalScope’ does not name a type + 486 | static constexpr kLinkLocalScope = 2; + | ^~~~~~~~~~~~~~~ +compilation terminated due to -Wfatal-errors. +``` +--- + src/posix/platform/netif.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/posix/platform/netif.cpp b/src/posix/platform/netif.cpp +index ebb0e79a1..12bee4256 100644 +--- a/src/posix/platform/netif.cpp ++++ b/src/posix/platform/netif.cpp +@@ -483,7 +483,7 @@ static void UpdateUnicastLinux(otInstance *aInstance, const otIp6AddressInfo &aA + #endif + { + #if OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC > 0 +- static constexpr kLinkLocalScope = 2; ++ static constexpr uint8_t kLinkLocalScope = 2; + + if (aAddressInfo.mScope > kLinkLocalScope) + { +-- +2.45.2 + diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 4a6b4112150..79158a6e36a 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.8.0 + +- Bump to OTBR POSIX version 41474ce29a (2024-06-21 08:41:31 -0700) + ## 2.7.0 - Support auto firmware updates for Sonoff ZBDongle-E diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index af5c9ba6d05..bf76f70edc6 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -16,10 +16,10 @@ ENV WEB_GUI 1 ENV REST_API 1 ENV DOCKER 1 -COPY 0001-Avoid-writing-to-system-console.patch /usr/src COPY 0002-rest-support-deleting-the-dataset.patch /usr/src COPY 0003-openthread-set-netif-route-metric-lower.patch /usr/src COPY 0001-channel-monitor-disable-by-default.patch /usr/src +COPY 0002-posix-fix-build-with-custom-netif-prefix-route-set.patch /usr/src # Required and installed (script/bootstrap) can be removed after build ENV OTBR_BUILD_DEPS build-essential ninja-build cmake wget ca-certificates \ @@ -55,11 +55,13 @@ RUN \ && git checkout ${OTBR_VERSION} \ && git submodule update --init \ && ./script/bootstrap \ - && patch -p1 < /usr/src/0001-Avoid-writing-to-system-console.patch \ && patch -p1 < /usr/src/0002-rest-support-deleting-the-dataset.patch \ && patch -p1 < /usr/src/0003-openthread-set-netif-route-metric-lower.patch \ - && (cd third_party/openthread/repo && \ - patch -p1 < /usr/src/0001-channel-monitor-disable-by-default.patch) \ + && ( \ + cd third_party/openthread/repo \ + && patch -p1 < /usr/src/0001-channel-monitor-disable-by-default.patch \ + && patch -p1 < /usr/src/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch \ + ) \ # Mimic rt_tables_install \ && echo "88 openthread" >> /etc/iproute2/rt_tables \ # Mimic otbr_install \ diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index 655a377bcba..646e894eb04 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -3,5 +3,5 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm args: - OTBR_VERSION: 2279c02f3c3373f074899fc8d993b8ddb72910a2 + OTBR_VERSION: 41474ce29ab45dd24c393d899c9f461844dc1e34 UNIVERSAL_SILABS_FLASHER: 0.0.20 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index b741d9139e4..4f854d701fc 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.7.0 +version: 2.8.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run index f2e7bd0c32a..56f78bd4ae9 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run @@ -119,6 +119,6 @@ bashio::log.info "Starting otbr-agent..." exec s6-notifyoncheck -d -s 300 -w 300 -n 0 \ "/usr/sbin/otbr-agent" -I ${thread_if} -B "${backbone_if}" \ --rest-listen-address "${otbr_rest_listen}" \ - -d${otbr_log_level_int} -v \ + -d${otbr_log_level_int} -v -s \ "spinel+hdlc+uart://${device}?uart-baudrate=${baudrate}${flow_control}" \ "trel://${backbone_if}" From fd927750b334dcc957081bfee9cd7b2a0ae28b42 Mon Sep 17 00:00:00 2001 From: trax <38944599+4nx@users.noreply.github.com> Date: Tue, 25 Jun 2024 16:03:50 +0200 Subject: [PATCH 054/346] letsencrypt: Fix joker.com domain configuration (#3659) * update letsencrypt addon to add joker.com support * Update letsencrypt/DOCS.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * add information to CHANGELOG.md and version upgrade in confiy.yaml * rebase to master * Update letsencrypt/Dockerfile Co-authored-by: Stefan Agner * upgrade letsencrypt certbot-dns-joker and fix missing domain config * downgrade version to 1.1.0 again because 2.1.0 was not released on PyPI yet * Update letsencrypt/CHANGELOG.md Co-authored-by: Stefan Agner * Update letsencrypt/CHANGELOG.md --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 5 ++++- letsencrypt/config.yaml | 1 + letsencrypt/rootfs/etc/cont-init.d/file-structure.sh | 3 ++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 28fb0619bce..d135a2657dd 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.23 + +- Fix missing domain configuration for joker.com DNS challenge + ## 5.0.22 - Add joker.com DNS challenge support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index fd693eb84e0..36dff9a889c 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -108,6 +108,7 @@ gehirn_api_secret: '' infomaniak_api_token: '' joker_username: '' joker_password: '' +joker_domain: '' linode_key: '' linode_version: '' luadns_email: '' @@ -410,7 +411,7 @@ Choose "Domain" as the scope. ```yaml email: your.email@example.com domains: - - subdomain.home-assistant.io + - subdomain.example.com certfile: fullchain.pem keyfile: privkey.pem challenge: dns @@ -418,11 +419,13 @@ Choose "Domain" as the scope. provider: dns-joker joker_username: username joker_password: password + joker_domain: example.com ``` You can find further detailed information here: +
diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 4ef43e834c3..9a56ba43f1d 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -74,6 +74,7 @@ schema: luadns_token: str? joker_username: str? joker_password: str? + joker_domain: str? namecheap_username: str? namecheap_api_key: str? netcup_api_key: str? diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index f5e81d98331..d7c4ac173ad 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -21,7 +21,8 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_hetzner_api_token = $(bashio::config 'dns.hetzner_api_token')\n" \ "dns_infomaniak_token = $(bashio::config 'dns.infomaniak_api_token')\n" \ "dns_joker_username = $(bashio::config 'dns.joker_username')\n" \ - "dns_joker_password= $(bashio::config 'dns.joker_password')\n" \ + "dns_joker_password = $(bashio::config 'dns.joker_password')\n" \ + "dns_joker_domain = $(bashio::config 'dns.joker_domain')\n" \ "dns_linode_key = $(bashio::config 'dns.linode_key')\n" \ "dns_linode_version = $(bashio::config 'dns.linode_version')\n" \ "dns_luadns_email = $(bashio::config 'dns.luadns_email')\n" \ From 63508a74b1fbff791a110bff05f160c545ed3bbd Mon Sep 17 00:00:00 2001 From: TimL Date: Tue, 2 Jul 2024 19:02:53 +1000 Subject: [PATCH 055/346] openthread_border_router: Deassert DTR/RTS lines for USB devices using these for BSL (#3677) * patch terminal to de-assert dtr/rts if flow control disabled * Changelog entry * Bump version 2.9.0 * Update openthread_border_router/CHANGELOG.md Co-authored-by: Stefan Agner --------- Co-authored-by: Stefan Agner --- ...-and-RTS-if-flow-control-is-disabled.patch | 40 +++++++++++++++++++ openthread_border_router/CHANGELOG.md | 5 +++ openthread_border_router/Dockerfile | 3 +- openthread_border_router/config.yaml | 2 +- 4 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 openthread_border_router/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch diff --git a/openthread_border_router/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch b/openthread_border_router/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch new file mode 100644 index 00000000000..53fe40f3a2f --- /dev/null +++ b/openthread_border_router/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch @@ -0,0 +1,40 @@ +From b5adc7fb59939a5054e2e2d301b26b5132254262 Mon Sep 17 00:00:00 2001 +From: Tim Lunn +Date: Mon, 1 Jul 2024 14:27:40 +1000 +Subject: [PATCH] Deassert DTR and RTS if flow control is disabled + +Many USB radio devices (particularly those based on TI CC2652) have +reset and bootloader activation directly connected to DTR/RTS lines. +These devices will fail to start, in the default state where both +DTR/RTS are asserted on connection. + +This patch ensures flow control is disabled and both DTR and RTS are +deasserted on startup while configuring the terminal. +--- + src/posix/platform/hdlc_interface.cpp | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/src/posix/platform/hdlc_interface.cpp b/src/posix/platform/hdlc_interface.cpp +index 12726fc72..056224786 100644 +--- a/src/posix/platform/hdlc_interface.cpp ++++ b/src/posix/platform/hdlc_interface.cpp +@@ -600,6 +600,16 @@ int HdlcInterface::OpenFile(const Url::Url &aRadioUrl) + { + tios.c_cflag |= CRTSCTS; + } ++ else ++ { ++ tios.c_cflag &= ~(CRTSCTS); ++ ++ // Deassert DTR and RTS ++ int flags; ++ VerifyOrExit((ioctl(fd, TIOCMGET, &flags)) != -1, perror("tiocmget")); ++ flags &= ~(TIOCM_DTR | TIOCM_RTS); ++ VerifyOrExit((ioctl(fd, TIOCMSET, &flags)) != -1, perror("tiocmset")); ++ } + + VerifyOrExit((rval = cfsetspeed(&tios, static_cast(speed))) == 0, perror("cfsetspeed")); + rval = tcsetattr(fd, TCSANOW, &tios); +-- +2.43.0 + diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 79158a6e36a..037b56a12a8 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.9.0 + +- Avoid triggering reset/boot loader on TI CC2652 based devices + ## 2.8.0 - Bump to OTBR POSIX version 41474ce29a (2024-06-21 08:41:31 -0700) @@ -15,6 +19,7 @@ - Add support for network sockets using socat ## 2.5.1 + - Support Home Assistant Connect ZBT-1. ## 2.5.0 diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index bf76f70edc6..dc366a69439 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -20,7 +20,7 @@ COPY 0002-rest-support-deleting-the-dataset.patch /usr/src COPY 0003-openthread-set-netif-route-metric-lower.patch /usr/src COPY 0001-channel-monitor-disable-by-default.patch /usr/src COPY 0002-posix-fix-build-with-custom-netif-prefix-route-set.patch /usr/src - +COPY 0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch /usr/src # Required and installed (script/bootstrap) can be removed after build ENV OTBR_BUILD_DEPS build-essential ninja-build cmake wget ca-certificates \ libreadline-dev libncurses-dev libcpputest-dev libdbus-1-dev libavahi-common-dev \ @@ -61,6 +61,7 @@ RUN \ cd third_party/openthread/repo \ && patch -p1 < /usr/src/0001-channel-monitor-disable-by-default.patch \ && patch -p1 < /usr/src/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch \ + && patch -p1 < /usr/src/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch \ ) \ # Mimic rt_tables_install \ && echo "88 openthread" >> /etc/iproute2/rt_tables \ diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 4f854d701fc..aae9f7c24a7 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.8.0 +version: 2.9.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on From aa73a586e1501910c3eb0dffda9f8c841abd77ca Mon Sep 17 00:00:00 2001 From: tronikos Date: Tue, 2 Jul 2024 02:04:01 -0700 Subject: [PATCH 056/346] whisper: Exclude Whisper model files from backups (#3658) * Exclude Whisper model files from backups * Update CHANGELOG.md * Update config.yaml * Update config.yaml --- whisper/CHANGELOG.md | 4 ++++ whisper/config.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index 46c181a01a8..6be843f75fe 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.1.1 + +- Exclude `data/models*` files from backup + ## 2.1.0 - Add distil-large-v3 `model` option diff --git a/whisper/config.yaml b/whisper/config.yaml index 4814b7279e0..241ad065475 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.1.0 +version: 2.1.1 slug: whisper name: Whisper description: Speech-to-text with Whisper @@ -11,7 +11,7 @@ init: false discovery: - wyoming backup_exclude: - - "*.bin" + - "data/models*" options: model: tiny-int8 language: en From 30c6fb4b746d89969ad9dc504ab162109891bee1 Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Tue, 2 Jul 2024 08:04:53 -0400 Subject: [PATCH 057/346] DuckDNS to s6 and Alpine 3.20 (#3665) * DuckDNS to s6 and Alpine 3.20 * Add user/contents.d and logging --- duckdns/CHANGELOG.md | 5 ++++ duckdns/Dockerfile | 6 ++--- duckdns/build.yaml | 10 +++---- duckdns/config.yaml | 2 +- .../s6-rc.d/duckdns/dependencies.d/base | 0 .../etc/s6-overlay/s6-rc.d/duckdns/finish | 26 +++++++++++++++++++ .../etc/s6-overlay/s6-rc.d/duckdns/run} | 3 ++- .../etc/s6-overlay/s6-rc.d/duckdns/type | 1 + .../s6-rc.d/user/contents.d/duckdns | 0 duckdns/{data => rootfs/root}/hooks.sh | 0 10 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/dependencies.d/base create mode 100755 duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/finish rename duckdns/{data/run.sh => rootfs/etc/s6-overlay/s6-rc.d/duckdns/run} (94%) create mode 100644 duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/type create mode 100644 duckdns/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/duckdns rename duckdns/{data => rootfs/root}/hooks.sh (100%) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index 9e8e14f4295..ba3b31c3e1e 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.18.0 + +- Update to use s6-overlay to manage service +- Update base image to Alpine 3.20 + ## 1.17.0 - Reduce log spam when updating IP address diff --git a/duckdns/Dockerfile b/duckdns/Dockerfile index a639c87d0e8..5d229bc0d0b 100644 --- a/duckdns/Dockerfile +++ b/duckdns/Dockerfile @@ -8,7 +8,5 @@ RUN apk add --no-cache openssl \ "https://raw.githubusercontent.com/lukas2511/dehydrated/v${DEHYDRATED_VERSION}/dehydrated" \ && chmod a+x /usr/bin/dehydrated -# Copy data -COPY data/*.sh / - -CMD [ "/run.sh" ] +# Copy root filesystem +COPY rootfs / diff --git a/duckdns/build.yaml b/duckdns/build.yaml index 592be6424a2..f0a265a8a4f 100644 --- a/duckdns/build.yaml +++ b/duckdns/build.yaml @@ -1,10 +1,10 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.19 - amd64: ghcr.io/home-assistant/amd64-base:3.19 - armhf: ghcr.io/home-assistant/armhf-base:3.19 - armv7: ghcr.io/home-assistant/armv7-base:3.19 - i386: ghcr.io/home-assistant/i386-base:3.19 + aarch64: ghcr.io/home-assistant/aarch64-base:3.20 + amd64: ghcr.io/home-assistant/amd64-base:3.20 + armhf: ghcr.io/home-assistant/armhf-base:3.20 + armv7: ghcr.io/home-assistant/armv7-base:3.20 + i386: ghcr.io/home-assistant/i386-base:3.20 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io diff --git a/duckdns/config.yaml b/duckdns/config.yaml index a534057e5ba..cbd96df24bf 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.17.0 +version: 1.18.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/dependencies.d/base b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/dependencies.d/base new file mode 100644 index 00000000000..e69de29bb2d diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/finish b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/finish new file mode 100755 index 00000000000..b65123fd243 --- /dev/null +++ b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/finish @@ -0,0 +1,26 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: chrony +# Take down the S6 supervision tree when chrony fails +# ============================================================================== +readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + fi + [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt +elif [[ "${exit_code_service}" -ne 0 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode + fi + exec /run/s6/basedir/bin/halt +fi \ No newline at end of file diff --git a/duckdns/data/run.sh b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run similarity index 94% rename from duckdns/data/run.sh rename to duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run index 2cfd9c41dc4..0c606d99467 100755 --- a/duckdns/data/run.sh +++ b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run @@ -37,7 +37,7 @@ function le_renew() { domain_args+=("--domain" "${domain}") done - dehydrated --cron --algo "${ALGO}" --hook ./hooks.sh --challenge dns-01 "${domain_args[@]}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true + dehydrated --cron --algo "${ALGO}" --hook /root/hooks.sh --challenge dns-01 "${domain_args[@]}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true LE_UPDATE="$(date +%s)" } @@ -63,6 +63,7 @@ if bashio::config.true 'lets_encrypt.accept_terms'; then fi # Run duckdns +bashio::log.info "Starting DuckDNS..." while true; do [[ ${IPV4} != *:/* ]] && ipv4=${IPV4} || ipv4=$(curl -s -m 10 "${IPV4}") diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/type b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/type new file mode 100644 index 00000000000..1780f9f44ef --- /dev/null +++ b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/duckdns b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/duckdns new file mode 100644 index 00000000000..e69de29bb2d diff --git a/duckdns/data/hooks.sh b/duckdns/rootfs/root/hooks.sh similarity index 100% rename from duckdns/data/hooks.sh rename to duckdns/rootfs/root/hooks.sh From 080dbc7c3e80452cfcc39f34248dcefb476f9835 Mon Sep 17 00:00:00 2001 From: tronikos Date: Wed, 3 Jul 2024 04:41:09 -0700 Subject: [PATCH 058/346] whisper: Actually exclude Whisper model files from backups (#3680) * exclude models* * Update CHANGELOG.md --- whisper/CHANGELOG.md | 4 ++++ whisper/config.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index 6be843f75fe..9f203d35003 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.1.2 + +- Fix excluding models files from backup + ## 2.1.1 - Exclude `data/models*` files from backup diff --git a/whisper/config.yaml b/whisper/config.yaml index 241ad065475..91fb63dbe65 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.1.1 +version: 2.1.2 slug: whisper name: Whisper description: Speech-to-text with Whisper @@ -11,7 +11,7 @@ init: false discovery: - wyoming backup_exclude: - - "data/models*" + - "models*" options: model: tiny-int8 language: en From 13f49f1c31f157ddf6eac81d513174fa24144897 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 3 Jul 2024 16:21:46 +0200 Subject: [PATCH 059/346] matter_server: Bump Python Matter server to 6.2.1 (#3681) --- matter_server/CHANGELOG.md | 4 ++++ matter_server/DOCS.md | 9 ++++++--- matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 4 +++- .../rootfs/etc/s6-overlay/s6-rc.d/matter-server/run | 4 ++++ matter_server/translations/en.yaml | 5 +++++ 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 801cd6cfa4c..7df2ba0cf6f 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.2.1 + +- Bump Python Matter Server to [6.2.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.2.1) + ## 6.1.2 - Bump Python Matter Server to [6.1.2](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.1.2) diff --git a/matter_server/DOCS.md b/matter_server/DOCS.md index cdf7adb7a37..dc45ea5c3ab 100644 --- a/matter_server/DOCS.md +++ b/matter_server/DOCS.md @@ -28,9 +28,12 @@ Matter Server WebSocket server port field. Add-on configuration: -| Configuration | Description | -|--------------------|-------------------------------------------------------------| -| log_level | Logging level of the Matter Server component. | +| Configuration | Description | +|---------------------|-------------------------------------------------------------| +| log_level | Logging level of the Matter Server component. | +| log_level_sdk | Logging level for Matter SDK logs. | +| beta | Whether to install the latest beta version on startup | +| enable_test_net_dcl | Enable test-net DCL for PAA root certificates and other device information. | ## Support diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 53804d34792..efc69b5f120 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.1.2 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.1.2 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.2.1 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.2.1 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index cfb2f3e4785..4889bac3d48 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.1.2 +version: 6.2.1 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. @@ -24,10 +24,12 @@ options: log_level: info log_level_sdk: error beta: false + enable_test_net_dcl: false schema: log_level: list(verbose|debug|info|warning|error|critical) log_level_sdk: list(automation|detail|progress|error|none)? beta: bool? + enable_test_net_dcl: bool? ports: 5580/tcp: null stage: stable diff --git a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run index 4a6167c6754..d5b6096515b 100755 --- a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run +++ b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run @@ -30,6 +30,10 @@ if ! bashio::var.has_value "${server_port}"; then extra_args+=('--listen-address' "$(bashio::addon.ip_address)") fi +if bashio::config.true "enable_test_net_dcl"; then + extra_args+=('--enable-test-net-dcl') +fi + primary_interface="$(bashio::api.supervisor 'GET' '/network/info' '' 'first(.interfaces[] | select (.primary == true)) .interface')" # Try fallback method (e.g. in case NetworkManager is not available) diff --git a/matter_server/translations/en.yaml b/matter_server/translations/en.yaml index 78509bd06eb..91cb6fc035f 100644 --- a/matter_server/translations/en.yaml +++ b/matter_server/translations/en.yaml @@ -11,5 +11,10 @@ configuration: description: >- Installs the latest beta of the Python Matter Server. It is recommended to create a backup before starting the add-on with this flag enabled! + enable_test_net_dcl: + name: Enable test-net DCL usage. + description: >- + Enable PAA root certificates and other device information from test-net + DCL. This is meant for development and testing purposes. network: 5580/tcp: Matter Server WebSocket server port. From 8efa636978c24b9fd34b40ab865fd1908a257f24 Mon Sep 17 00:00:00 2001 From: Gord <31004434+googanhiem@users.noreply.github.com> Date: Tue, 9 Jul 2024 09:26:49 +0100 Subject: [PATCH 060/346] Add ZBT-1 to README.md (#3686) --- openthread_border_router/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openthread_border_router/README.md b/openthread_border_router/README.md index d8493cdb13c..2bfd79cfac6 100644 --- a/openthread_border_router/README.md +++ b/openthread_border_router/README.md @@ -4,7 +4,7 @@ OpenThread Border Router add-on. The add-on uses the upstream OpenThread Border Router implementation and wraps it as an add-on for Home Assistant. **NOTE:** This requires a supported 802.15.4 capable radio with OpenThread -RCP firmware. If you are using Home Assistant Yellow or SkyConnect then +RCP firmware. If you are using [Home Assistant Yellow](https://www.home-assistant.io/yellow/) or [Home Assistant Connect ZBT-1](https://www.home-assistant.io/connectzbt1/) (previously called SkyConnect) then the correct firmware is automatically installed. ![Supports aarch64 Architecture][aarch64-shield] From b06a02e1307fd0d5ebb4741ad63b4df908e66883 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 16 Jul 2024 16:22:48 +0100 Subject: [PATCH 061/346] matter_server: Bump Python Matter server to 6.3.0 (#3690) Update to the lastest Python Matter server. This makes sure that the OTA Provider update binary is already part of the add-on so that updates can be tested in the upcomming beta phase. This also adds an option to set the Bluetooth adapter, which is useful to test local commissioning. --- matter_server/CHANGELOG.md | 4 ++++ matter_server/DOCS.md | 1 + matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 3 ++- .../rootfs/etc/s6-overlay/s6-rc.d/matter-server/run | 4 ++++ matter_server/translations/en.yaml | 8 ++++++++ 6 files changed, 21 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 7df2ba0cf6f..a50c5e5bd09 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.3.0 + +- Bump Python Matter Server to [6.3.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.3.0) + ## 6.2.1 - Bump Python Matter Server to [6.2.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.2.1) diff --git a/matter_server/DOCS.md b/matter_server/DOCS.md index dc45ea5c3ab..7c96639baba 100644 --- a/matter_server/DOCS.md +++ b/matter_server/DOCS.md @@ -34,6 +34,7 @@ Add-on configuration: | log_level_sdk | Logging level for Matter SDK logs. | | beta | Whether to install the latest beta version on startup | | enable_test_net_dcl | Enable test-net DCL for PAA root certificates and other device information. | +| bluetooth_adapter_id | Set BlueZ Bluetooth Controller ID (for local commissioning) | ## Support diff --git a/matter_server/build.yaml b/matter_server/build.yaml index efc69b5f120..49510bce888 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.2.1 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.2.1 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.3.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.3.0 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 4889bac3d48..8fe9d730da9 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.2.1 +version: 6.3.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. @@ -30,6 +30,7 @@ schema: log_level_sdk: list(automation|detail|progress|error|none)? beta: bool? enable_test_net_dcl: bool? + bluetooth_adapter_id: int? ports: 5580/tcp: null stage: stable diff --git a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run index d5b6096515b..9c5ff952d81 100755 --- a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run +++ b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run @@ -46,6 +46,10 @@ if [ -z ${primary_interface} ] || [ ${primary_interface} == "null" ]; then bashio::exit.nok "No primary network interface found!" fi +if bashio::config.has_value "bluetooth_adapter_id"; then + extra_args+=('--bluetooth-adapter' $(bashio::config 'bluetooth_adapter_id')) +fi + bashio::log.info "Using '${primary_interface}' as primary network interface." # Send out discovery information to Home Assistant diff --git a/matter_server/translations/en.yaml b/matter_server/translations/en.yaml index 91cb6fc035f..132d44259f1 100644 --- a/matter_server/translations/en.yaml +++ b/matter_server/translations/en.yaml @@ -16,5 +16,13 @@ configuration: description: >- Enable PAA root certificates and other device information from test-net DCL. This is meant for development and testing purposes. + bluetooth_adapter_id: + name: Bluetooth Adapter ID + description: >- + BlueZ Bluetooth Adapter Controller ID used by the Matter Server. This is + required if local commissioning via Bluetooth is used. Note: Using the + Home Assistant Companion app commissioning method is recommended as it is + better tested and allows to commission directly in proximity of the device + itself. network: 5580/tcp: Matter Server WebSocket server port. From 6106a2e040e44a5525ecc92da61408807120ad9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20C=C3=A8?= Date: Tue, 16 Jul 2024 18:41:31 +0200 Subject: [PATCH 062/346] letsencrypt: do not add dns_gandi_api_key twice (#3689) * Update file-structure.sh Do not add dns_gandi_api_key to /data/dnsapikey, as this is added by /etc/services.d/lets-encrypt/run too. Adding it twice makes certbot fail with Error parsing credentials configuration '/data/dnsapikey': Duplicate keyword name at line 60. * Update config.yaml * Update CHANGELOG.md * Update config.yaml --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/config.yaml | 2 +- letsencrypt/rootfs/etc/cont-init.d/file-structure.sh | 1 - 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index d135a2657dd..4fa222a28ad 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.24 + +- Fix Gandi DNS support using API key + ## 5.0.23 - Fix missing domain configuration for joker.com DNS challenge diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 9a56ba43f1d..c66a62b5070 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.22 +version: 5.0.24 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index d7c4ac173ad..12b66cc6b60 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -49,7 +49,6 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "aws_secret_access_key = $(bashio::config 'dns.aws_secret_access_key')\n" \ "dns_sakuracloud_api_token = $(bashio::config 'dns.sakuracloud_api_token')\n" \ "dns_sakuracloud_api_secret = $(bashio::config 'dns.sakuracloud_api_secret')\n" \ - "dns_gandi_api_key = $(bashio::config 'dns.gandi_api_key')\n" \ "dns_transip_username = $(bashio::config 'dns.transip_username')\n" \ "dns_transip_key_file = /data/transip-rsa.key\n" \ "dns_inwx_url = https://api.domrobot.com/xmlrpc/\n" \ From baa0c2a7b032406b89f75c47cc16112806c3699a Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 17 Jul 2024 11:22:57 +0100 Subject: [PATCH 063/346] Fix Matter SDK logging level when beta flag is set (#3691) --- matter_server/CHANGELOG.md | 4 ++++ matter_server/config.yaml | 2 +- .../etc/s6-overlay/s6-rc.d/matter-server/run | 24 ++++++++++++------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index a50c5e5bd09..4953c10307d 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.3.1 + +- Fix Matter SDK log level when using beta flag + ## 6.3.0 - Bump Python Matter Server to [6.3.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.3.0) diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 8fe9d730da9..a5e78470ed1 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.3.0 +version: 6.3.1 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. diff --git a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run index 9c5ff952d81..fec161bcba7 100755 --- a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run +++ b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run @@ -8,6 +8,7 @@ declare server_port declare log_level declare log_level_sdk declare primary_interface +matter_server_args=() extra_args=() if ! bashio::config.exists log_level; then @@ -57,16 +58,21 @@ bashio::log.info "Using '${primary_interface}' as primary network interface." cd /root +matter_server_args+=( + '--storage-path' "/data" + '--port' "${server_port}" + '--log-level' "${log_level}" + '--log-level-sdk' "${log_level_sdk}" + '--primary-interface' "${primary_interface}" + '--paa-root-cert-dir' "/data/credentials" + '--fabricid' 2 + '--vendorid' 4939 + ${extra_args[@]} +) + if bashio::config.true "beta"; then exec /usr/bin/gdb --quiet -ex="set confirm off" -ex run -ex backtrace -ex "quit \$_exitcode" --args /usr/local/bin/python \ - /usr/local/bin/matter-server --storage-path "/data" --port "${server_port}" \ - --log-level "${log_level}" --primary-interface "${primary_interface}" \ - --paa-root-cert-dir "/data/credentials" \ - --fabricid 2 --vendorid 4939 "${extra_args[@]}" + /usr/local/bin/matter-server "${matter_server_args[@]}" else - exec /usr/local/bin/matter-server --storage-path "/data" --port "${server_port}" \ - --log-level "${log_level}" --log-level-sdk "${log_level_sdk}" \ - --primary-interface "${primary_interface}" \ - --paa-root-cert-dir "/data/credentials" \ - --fabricid 2 --vendorid 4939 "${extra_args[@]}" + exec /usr/local/bin/matter-server "${matter_server_args[@]}" fi From 877ece6f8f442f1a9802388361cf09d4f288fbdd Mon Sep 17 00:00:00 2001 From: peakascendr <80352276+peakascendr@users.noreply.github.com> Date: Fri, 19 Jul 2024 00:35:18 -0700 Subject: [PATCH 064/346] letsencrypt: Add digitalocean (#3660) Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/config.yaml | 2 +- letsencrypt/rootfs/etc/services.d/lets-encrypt/run | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 4fa222a28ad..5b660bcbd45 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.25 + +- Add DigitalOcean propagation-seconds support + ## 5.0.24 - Fix Gandi DNS support using API key diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index c66a62b5070..6a44f800879 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.24 +version: 5.0.25 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index f4d452fae89..1d0a6817eee 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -92,6 +92,11 @@ elif [ "${DNS_PROVIDER}" == "dns-cloudflare" ]; then PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--dns-cloudflare-propagation-seconds" "${PROPAGATION_SECONDS}") +# DigitalOcean +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-digitalocean" ]; then + bashio::config.require 'dns.digitalocean_token' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # DirectAdmin elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-directadmin" ]; then bashio::config.require 'dns.directadmin_url' From 583a62a69fa92ca8fdf9a2f298270a50bb3663a1 Mon Sep 17 00:00:00 2001 From: Graham Arthur Blair Date: Fri, 19 Jul 2024 00:37:59 -0700 Subject: [PATCH 065/346] piper: Add en_GB-cori-high and en_GB-cori-medium to the voice list (#3688) * piper: Add en_GB-cori-high and en_GB-cori-medium to the voice list Would address https://github.com/home-assistant/core/issues/117262 * Bump version number in config.yaml * Add 1.5.1 change to changelog --- piper/CHANGELOG.md | 4 ++++ piper/config.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/piper/CHANGELOG.md b/piper/CHANGELOG.md index 52842b23908..387963708ab 100644 --- a/piper/CHANGELOG.md +++ b/piper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.5.1 + +- Add voice for English: cori + ## 1.5.0 - Add voices for Persian: amir, gyro diff --git a/piper/config.yaml b/piper/config.yaml index 9094b6c5a49..cba07b9befa 100644 --- a/piper/config.yaml +++ b/piper/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.5.0 +version: 1.5.1 slug: piper name: Piper description: Text-to-speech with Piper @@ -25,7 +25,7 @@ options: update_voices: true schema: voice: | - list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|cs_CZ-jirka-low|cs_CZ-jirka-medium|da_DK-talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|el_GR-rapunzelina-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en_GB-southern_english_female-low|en_GB-vctk-medium|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-kathleen-low|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en_US-lessac-low|en_US-lessac-medium|en_US-libritts-high|en_US-libritts_r-medium|en_US-ryan-high|en_US-ryan-low|en_US-ryan-medium|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es_MX-ald-medium|fa_IR-amir-medium|fa_IR-gyro-medium|fi_FI-harri-low|fi_FI-harri-medium|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|it_IT-riccardo-x_low|ka_GE-natia-medium|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|lb_LU-marylux-medium|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|no_NO-talesyntese-medium|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh_CN-huayan-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|da-nst_talesyntese-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|en-gb-alan-low|en-gb-southern_english_female-low|en-us-amy-low|en-us-danny-low|en-us-kathleen-low|en-us-lessac-low|en-us-lessac-medium|en-us-libritts-high|en-us-ryan-high|en-us-ryan-low|en-us-ryan-medium|es-carlfm-x-low|es-mls_10246-low|es-mls_9972-low|fi-harri-low|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|is-bui-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it-riccardo_fasol-x-low|kk-iseke-x-low|kk-issai-high|kk-raya-x-low|ne-google-medium|ne-google-x-low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl-rdh-medium|nl-rdh-x-low|no-talesyntese-medium|pl-mls_6892-low|pt-br-edresson-low|ru-irinia-medium|uk-lada-x-low|vi-25hours-single-low|vi-vivos-x-low|zh-cn-huayan-x-low) + list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|cs_CZ-jirka-low|cs_CZ-jirka-medium|da_DK-talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|el_GR-rapunzelina-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en_GB-southern_english_female-low|en_GB-vctk-medium|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-kathleen-low|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en_US-lessac-low|en_US-lessac-medium|en_US-libritts-high|en_US-libritts_r-medium|en_US-ryan-high|en_US-ryan-low|en_US-ryan-medium|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es_MX-ald-medium|fa_IR-amir-medium|fa_IR-gyro-medium|fi_FI-harri-low|fi_FI-harri-medium|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|it_IT-riccardo-x_low|ka_GE-natia-medium|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|lb_LU-marylux-medium|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|no_NO-talesyntese-medium|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh_CN-huayan-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|da-nst_talesyntese-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|en-gb-alan-low|en-gb-southern_english_female-low|en-us-amy-low|en-us-danny-low|en-us-kathleen-low|en-us-lessac-low|en-us-lessac-medium|en-us-libritts-high|en-us-ryan-high|en-us-ryan-low|en-us-ryan-medium|es-carlfm-x-low|es-mls_10246-low|es-mls_9972-low|fi-harri-low|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|is-bui-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it-riccardo_fasol-x-low|kk-iseke-x-low|kk-issai-high|kk-raya-x-low|ne-google-medium|ne-google-x-low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl-rdh-medium|nl-rdh-x-low|no-talesyntese-medium|pl-mls_6892-low|pt-br-edresson-low|ru-irinia-medium|uk-lada-x-low|vi-25hours-single-low|vi-vivos-x-low|zh-cn-huayan-x-low) speaker: int length_scale: float noise_scale: float From c128a3a900fb3c7ef39d78f8653a98ed8b7b6ad5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:08:31 +0200 Subject: [PATCH 066/346] build(deps): bump docker/login-action from 3.2.0 to 3.3.0 (#3703) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 03cf6b99318..e80be9c9a3b 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -100,7 +100,7 @@ jobs: - name: Login to DockerHub if: env.BUILD_ARGS == '--docker-hub-check' - uses: docker/login-action@v3.2.0 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From 170f8238e70248fab45b559b89defbc307d570a5 Mon Sep 17 00:00:00 2001 From: as-kholin Date: Tue, 30 Jul 2024 07:30:08 -0500 Subject: [PATCH 067/346] Samba: correct benign idmap errors (#3704) * Incrementing version number for change * Add idmap config to suppress error in issue 3682 --- samba/CHANGELOG.md | 3 +++ samba/config.yaml | 2 +- samba/rootfs/usr/share/tempio/smb.gtpl | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/samba/CHANGELOG.md b/samba/CHANGELOG.md index baf686bedfd..98e0b52f45e 100644 --- a/samba/CHANGELOG.md +++ b/samba/CHANGELOG.md @@ -1,4 +1,7 @@ # Changelog +## 12.3.2 + +- Suppress benign idmap logged error ## 12.3.1 diff --git a/samba/config.yaml b/samba/config.yaml index cd06d249959..65e1b47b1a5 100644 --- a/samba/config.yaml +++ b/samba/config.yaml @@ -1,5 +1,5 @@ --- -version: 12.3.1 +version: 12.3.2 slug: samba name: Samba share description: Expose Home Assistant folders with SMB/CIFS diff --git a/samba/rootfs/usr/share/tempio/smb.gtpl b/samba/rootfs/usr/share/tempio/smb.gtpl index 77e092047a7..a63bab2fdb6 100644 --- a/samba/rootfs/usr/share/tempio/smb.gtpl +++ b/samba/rootfs/usr/share/tempio/smb.gtpl @@ -5,6 +5,8 @@ security = user ntlm auth = yes + idmap config * : backend = tdb + idmap config * : range = 1000000-2000000 load printers = no disable spoolss = yes From 100eef68299de67daf7c4cfca0b68ded46ad786c Mon Sep 17 00:00:00 2001 From: nana-ska <56788012+nana-ska@users.noreply.github.com> Date: Tue, 30 Jul 2024 15:32:16 +0300 Subject: [PATCH 068/346] Letsencrypt: Add support for noris network DNS provider (#3697) * Add support for noris network DNS provider * Fix typographical issue --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 28 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 5 ++-- .../rootfs/etc/cont-init.d/file-structure.sh | 1 + .../rootfs/etc/services.d/lets-encrypt/run | 5 ++++ 7 files changed, 44 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 5b660bcbd45..6c6a515f4c8 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.26 + +- Add noris network DNS challenge support + ## 5.0.25 - Add DigitalOcean propagation-seconds support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 36dff9a889c..a90a789ce68 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -59,6 +59,7 @@ dns-joker dns-linode dns-luadns dns-njalla +dns-noris dns-nsone dns-ovh dns-rfc2136 @@ -114,6 +115,7 @@ linode_version: '' luadns_email: '' luadns_token: '' njalla_token: '' +noris_token: '' nsone_api_key: '' ovh_endpoint: '' ovh_application_key: '' @@ -927,6 +929,31 @@ An identifier and secret key have to be obtained to use this module (see https:/ +
+ noris network DNS challenge + + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-noris + noris_token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + propagation_seconds: 240 + ``` + +To obtain the `noris_token` follow the instructions as described in our [GitHub repository][GitHub repo]. + +You can define the `propagation_seconds` explicitly. Otherwise, it will use the default value (currently set to `60` seconds). + +[GitHub repo]: https://github.com/noris-network/certbot-dns-norisnetwork#get-your-api-token + +
+ + ## Certificate files The certificate files will be available within the "ssl" share after successful request of the certificates. @@ -955,6 +982,7 @@ dns-infomaniak dns-linode dns-luadns dns-njalla +dns-noris dns-nsone dns-ovh dns-rfc2136 diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index e8fec27e6ea..d7b7900a179 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -22,6 +22,7 @@ ARG \ CERTBOT_DNS_INWX_VERSION \ CERTBOT_DNS_JOKER_VERSION \ CERTBOT_DNS_NAMECHEAP_VERSION \ + CERTBOT_DNS_NORISNETWORK_VERSION \ CERTBOT_DNS_TRANSIP_VERSION \ CERTBOT_DNS_PORKBUN_VERSION \ CERTBOT_DNS_WEBSUPPORT_VERSION \ @@ -67,6 +68,7 @@ RUN \ certbot-dns-linode==${CERTBOT_VERSION} \ certbot-dns-luadns==${CERTBOT_VERSION} \ certbot-dns-njalla==${CERTBOT_NJALLA_VERSION} \ + certbot-dns-norisnetwork==${CERTBOT_DNS_NORISNETWORK_VERSION} \ certbot-dns-nsone==${CERTBOT_VERSION} \ certbot-dns-porkbun==${CERTBOT_DNS_PORKBUN_VERSION} \ certbot-dns-ovh==${CERTBOT_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 6c11a1e0b03..caa2addb3e2 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -25,6 +25,7 @@ args: CERTBOT_DNS_INWX_VERSION: 2.2.0 CERTBOT_DNS_JOKER_VERSION: 1.1.0 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 + CERTBOT_DNS_NORISNETWORK_VERSION: 0.2.1 CERTBOT_DNS_GOOGLE_DOMAINS_VERSION: 0.1.11 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 CERTBOT_DNS_PORKBUN_VERSION: 0.8.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 6a44f800879..03c5e296cba 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.25 +version: 5.0.26 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -81,6 +81,7 @@ schema: netcup_api_password: str? netcup_customer_id: str? njalla_token: str? + noris_token: str? nsone_api_key: str? porkbun_key: str? porkbun_secret: str? @@ -95,7 +96,7 @@ schema: dns-hetzner|dns-infomaniak|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ - dns-he|dns-easydns|dns-domainoffensive|dns-websupport)?" + dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris)?" rfc2136_algorithm: str? rfc2136_name: str? rfc2136_port: str? diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 12b66cc6b60..f39c5e9319d 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -33,6 +33,7 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_netcup_api_key = $(bashio::config 'dns.netcup_api_key')\n" \ "dns_netcup_api_password = $(bashio::config 'dns.netcup_api_password')\n" \ "dns_njalla_token = $(bashio::config 'dns.njalla_token')\n" \ + "dns_noris_token = $(bashio::config 'dns.noris_token')\n" \ "dns_nsone_api_key = $(bashio::config 'dns.nsone_api_key')\n" \ "dns_porkbun_key = $(bashio::config 'dns.porkbun_key')\n" \ "dns_porkbun_secret = $(bashio::config 'dns.porkbun_secret')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 1d0a6817eee..aeab921b525 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -221,6 +221,11 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-websupport" ]; t bashio::config.require 'dns.websupport_secret_key' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# noris network +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-noris" ]; then + bashio::config.require 'dns.noris_token' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + #All others else PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") From 6b10bcf0a783578aa00e8c493231c16f76342d2c Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 5 Aug 2024 12:28:17 +0200 Subject: [PATCH 069/346] matter_server: Bump Python Matter server to 6.4.0 (#3706) --- matter_server/CHANGELOG.md | 5 +++++ matter_server/config.yaml | 5 ++++- .../rootfs/etc/s6-overlay/s6-rc.d/matter-server/run | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 4953c10307d..8f304538c6d 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 6.4.0 + +- Bump Python Matter Server to [6.4.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.4.0) +- Use add-on config directory as update directory + ## 6.3.1 - Fix Matter SDK log level when using beta flag diff --git a/matter_server/config.yaml b/matter_server/config.yaml index a5e78470ed1..0cc54ccec99 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.3.1 +version: 6.4.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. @@ -20,6 +20,9 @@ image: homeassistant/{arch}-addon-matter-server ingress: true ingress_port: 5580 init: false +map: + - type: addon_config + read_only: false options: log_level: info log_level_sdk: error diff --git a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run index fec161bcba7..057faa0a890 100755 --- a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run +++ b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run @@ -65,6 +65,7 @@ matter_server_args+=( '--log-level-sdk' "${log_level_sdk}" '--primary-interface' "${primary_interface}" '--paa-root-cert-dir' "/data/credentials" + '--ota-provider-dir' "/config/updates" '--fabricid' 2 '--vendorid' 4939 ${extra_args[@]} From 0e4a8839b74e6aa9abb7d700975ffe3003213c77 Mon Sep 17 00:00:00 2001 From: Joshua Davidson Date: Tue, 6 Aug 2024 02:11:11 -0500 Subject: [PATCH 070/346] piper: update voices (#3710) * piper: add en_US-norman-medium to voice list * Update CHANGELOG.md * add missing voices * Update piper/CHANGELOG.md --------- Co-authored-by: Stefan Agner --- piper/CHANGELOG.md | 4 ++++ piper/config.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/piper/CHANGELOG.md b/piper/CHANGELOG.md index 387963708ab..b949ca18b04 100644 --- a/piper/CHANGELOG.md +++ b/piper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.5.2 + +- Add missing voices supported by Piper (gwryw_gogleddol, bryce, john, norman and paola) + ## 1.5.1 - Add voice for English: cori diff --git a/piper/config.yaml b/piper/config.yaml index cba07b9befa..52df1f2c12a 100644 --- a/piper/config.yaml +++ b/piper/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.5.1 +version: 1.5.2 slug: piper name: Piper description: Text-to-speech with Piper @@ -25,7 +25,7 @@ options: update_voices: true schema: voice: | - list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|cs_CZ-jirka-low|cs_CZ-jirka-medium|da_DK-talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|el_GR-rapunzelina-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en_GB-southern_english_female-low|en_GB-vctk-medium|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-kathleen-low|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en_US-lessac-low|en_US-lessac-medium|en_US-libritts-high|en_US-libritts_r-medium|en_US-ryan-high|en_US-ryan-low|en_US-ryan-medium|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es_MX-ald-medium|fa_IR-amir-medium|fa_IR-gyro-medium|fi_FI-harri-low|fi_FI-harri-medium|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|it_IT-riccardo-x_low|ka_GE-natia-medium|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|lb_LU-marylux-medium|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|no_NO-talesyntese-medium|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh_CN-huayan-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|da-nst_talesyntese-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|en-gb-alan-low|en-gb-southern_english_female-low|en-us-amy-low|en-us-danny-low|en-us-kathleen-low|en-us-lessac-low|en-us-lessac-medium|en-us-libritts-high|en-us-ryan-high|en-us-ryan-low|en-us-ryan-medium|es-carlfm-x-low|es-mls_10246-low|es-mls_9972-low|fi-harri-low|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|is-bui-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it-riccardo_fasol-x-low|kk-iseke-x-low|kk-issai-high|kk-raya-x-low|ne-google-medium|ne-google-x-low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl-rdh-medium|nl-rdh-x-low|no-talesyntese-medium|pl-mls_6892-low|pt-br-edresson-low|ru-irinia-medium|uk-lada-x-low|vi-25hours-single-low|vi-vivos-x-low|zh-cn-huayan-x-low) + list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|cs_CZ-jirka-low|cs_CZ-jirka-medium|cy_GB-gwryw_gogleddol-medium|da_DK-talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|el_GR-rapunzelina-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en_GB-southern_english_female-low|en_GB-vctk-medium|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-bryce-medium|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-john-medium|en_US-kathleen-low|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en_US-lessac-low|en_US-lessac-medium|en_US-libritts-high|en_US-libritts_r-medium|en_US-norman-medium|en_US-ryan-high|en_US-ryan-low|en_US-ryan-medium|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es_MX-ald-medium|fa_IR-amir-medium|fa_IR-gyro-medium|fi_FI-harri-low|fi_FI-harri-medium|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|it_IT-paola-medium|it_IT-riccardo-x_low|ka_GE-natia-medium|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|lb_LU-marylux-medium|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|no_NO-talesyntese-medium|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh_CN-huayan-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|da-nst_talesyntese-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|en-gb-alan-low|en-gb-southern_english_female-low|en-us-amy-low|en-us-danny-low|en-us-kathleen-low|en-us-lessac-low|en-us-lessac-medium|en-us-libritts-high|en-us-ryan-high|en-us-ryan-low|en-us-ryan-medium|es-carlfm-x-low|es-mls_10246-low|es-mls_9972-low|fi-harri-low|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|is-bui-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it-riccardo_fasol-x-low|kk-iseke-x-low|kk-issai-high|kk-raya-x-low|ne-google-medium|ne-google-x-low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl-rdh-medium|nl-rdh-x-low|no-talesyntese-medium|pl-mls_6892-low|pt-br-edresson-low|ru-irinia-medium|uk-lada-x-low|vi-25hours-single-low|vi-vivos-x-low|zh-cn-huayan-x-low) speaker: int length_scale: float noise_scale: float From 5c52adddb32cafac8f9b995d91ac176132da394c Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 6 Aug 2024 17:18:26 +0200 Subject: [PATCH 071/346] matter_server: Bump Python Matter server to 6.4.0 correctly (#3718) --- matter_server/CHANGELOG.md | 5 ++++- matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 8f304538c6d..51c8c23e7d0 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,8 +1,11 @@ # Changelog -## 6.4.0 +## 6.4.1 - Bump Python Matter Server to [6.4.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.4.0) + +## 6.4.0 + - Use add-on config directory as update directory ## 6.3.1 diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 49510bce888..c679bd21095 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.3.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.3.0 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.4.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.4.0 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 0cc54ccec99..4fc18f5314c 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.4.0 +version: 6.4.1 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From d6783f8b47dbfac1b32f92ba7d3b9bf2231ab6c5 Mon Sep 17 00:00:00 2001 From: TimL Date: Thu, 8 Aug 2024 17:21:46 +1000 Subject: [PATCH 072/346] OTBR: Abort firmware flasher if network device is selected. (#3719) * Abort firmware flashing if network device selected * Bump release to 2.9.1 --------- Co-authored-by: Tim Lunn --- openthread_border_router/CHANGELOG.md | 4 ++++ openthread_border_router/config.yaml | 2 +- .../etc/s6-overlay/scripts/universal-silabs-flasher-up | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 037b56a12a8..769314ea3ce 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.9.1 + +- Abort firmware flasher if network device is selected + ## 2.9.0 - Avoid triggering reset/boot loader on TI CC2652 based devices diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index aae9f7c24a7..92af7c7d89c 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.9.0 +version: 2.9.1 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 9f3405e92c3..0cda7351658 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -24,6 +24,11 @@ if bashio::config.false 'autoflash_firmware'; then exit 0 fi +if bashio::config.has_value 'network_device'; then + bashio::log.info "Network device is selected, skipping firmware flashing" + exit 0 +fi + # Assume to run on Yellow if UART4 is mapped to ttyAMA1 if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then bashio::log.info "Detected Home Assistant Yellow" From 292fb9b022908554711a39a9f324bf89232abde4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20BOU=C3=89?= Date: Thu, 8 Aug 2024 10:49:44 +0200 Subject: [PATCH 073/346] openthread_border_router: Update DOCS.md (#3720) nordic-nrf52840-dongle-install page has moved --- openthread_border_router/DOCS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openthread_border_router/DOCS.md b/openthread_border_router/DOCS.md index 32198c6d161..d1496f43fcc 100644 --- a/openthread_border_router/DOCS.md +++ b/openthread_border_router/DOCS.md @@ -87,5 +87,4 @@ In case you've found a bug, please [open an issue on our GitHub][issue]. [issue]: https://github.com/home-assistant/addons/issues [openthread-platforms]: https://openthread.io/platforms [nordic-nrf52840-dongle]: https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle -[nordic-nrf52840-dongle-install]: https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/matter/openthread_rcp_nrf_dongle.html - +[nordic-nrf52840-dongle-install]: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/protocols/thread/tools.html#configuring_a_radio_co-processor From bd1e8a286c0a4c8c72a61385185a4e38f0f1ccc4 Mon Sep 17 00:00:00 2001 From: oggii-beep Date: Thu, 8 Aug 2024 19:04:26 +0200 Subject: [PATCH 074/346] Letsencrypt: Added support for plesk dns provider (#3694) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added support for plesk dns provider * Remove quotes from image names in letsencrypt build.yaml * Added docs for plesk dns provider --------- Co-authored-by: Jan Čermák --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 31 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 7 +++-- .../rootfs/etc/cont-init.d/file-structure.sh | 3 ++ .../rootfs/etc/services.d/lets-encrypt/run | 11 +++++++ 7 files changed, 57 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 6c6a515f4c8..12b890ce419 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.0.27 + +- Add Plesk DNS challenge support + ## 5.0.26 - Add noris network DNS challenge support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index a90a789ce68..329de75d030 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -148,6 +148,9 @@ porkbun_secret: '' dreamhost_api_baseurl: '' dreamhost_api_key: '' domainoffensive_token: '' +plesk_username: '' +plesk_password: '' +plesk_api_url: '' ``` @@ -954,6 +957,33 @@ You can define the `propagation_seconds` explicitly. Otherwise, it will use the +
+ Plesk Hosting DNS challenge + + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-plesk + plesk_username: your-username + plesk_password: your-password + plesk_api_url: https://plesk.example.com + propagation_seconds: 120 + ``` + +The `plesk_username` and `plesk_password` are the same as those you use on the login page of your admin panel. + +The `plesk_api_url` is the base URL of your Plesk admin panel. + +You can define the `propagation_seconds` explicitly. Otherwise, it will use a custom default value (currently set to `120` seconds). If the provided value is less than `120`, then the value is forced to a minimum of `120` seconds. + +
+ + ## Certificate files The certificate files will be available within the "ssl" share after successful request of the certificates. @@ -983,6 +1013,7 @@ dns-linode dns-luadns dns-njalla dns-noris +dns-plesk dns-nsone dns-ovh dns-rfc2136 diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index d7b7900a179..3a7db35f582 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -30,6 +30,7 @@ ARG \ CERTBOT_NJALLA_VERSION \ CERTBOT_GANDI_VERSION \ CERTBOT_DNS_DOMAINOFFENSIVE_VERSION \ + CERTBOT_DNS_PLESK_VERSION \ ACME_VERSION RUN \ @@ -85,6 +86,7 @@ RUN \ certbot-dns-easydns==${CERTBOT_DNS_EASYDNS_VERSION} \ certbot-dns-domainoffensive==${CERTBOT_DNS_DOMAINOFFENSIVE_VERSION} \ certbot-dns-websupport==${CERTBOT_DNS_WEBSUPPORT_VERSION} \ + certbot-dns-plesk==${CERTBOT_DNS_PLESK_VERSION} \ acme==${ACME_VERSION} \ && apk del .build-dependencies diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index caa2addb3e2..16456d5e3a1 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -35,4 +35,5 @@ args: CERTBOT_NJALLA_VERSION: 1.0.0 CERTBOT_DNS_DREAMHOST_VERSION: 1.0 CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 + CERTBOT_DNS_PLESK_VERSION: 0.3.0 ACME_VERSION: 2.7.4 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 03c5e296cba..4a0e14e22f2 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.26 +version: 5.0.27 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -75,6 +75,9 @@ schema: joker_username: str? joker_password: str? joker_domain: str? + plesk_username: str? + plesk_password: str? + plesk_api_url: str? namecheap_username: str? namecheap_api_key: str? netcup_api_key: str? @@ -96,7 +99,7 @@ schema: dns-hetzner|dns-infomaniak|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ - dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris)?" + dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris|dns-plesk)?" rfc2136_algorithm: str? rfc2136_name: str? rfc2136_port: str? diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index f39c5e9319d..fb3206a1160 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -23,6 +23,9 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_joker_username = $(bashio::config 'dns.joker_username')\n" \ "dns_joker_password = $(bashio::config 'dns.joker_password')\n" \ "dns_joker_domain = $(bashio::config 'dns.joker_domain')\n" \ + "dns_plesk_username = $(bashio::config 'dns.plesk_username')\n" \ + "dns_plesk_password = $(bashio::config 'dns.plesk_password')\n" \ + "dns_plesk_api_url = $(bashio::config 'dns.plesk_api_url')\n" \ "dns_linode_key = $(bashio::config 'dns.linode_key')\n" \ "dns_linode_version = $(bashio::config 'dns.linode_version')\n" \ "dns_luadns_email = $(bashio::config 'dns.luadns_email')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index aeab921b525..f7034a6635b 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -146,6 +146,17 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-joker" ]; then bashio::config.require 'dns.joker_password' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# Plesk +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-plesk" ]; then + bashio::config.require 'dns.plesk_username' + bashio::config.require 'dns.plesk_password' + bashio::config.require 'dns.plesk_api_url' + if (( PROPAGATION_SECONDS < 120 )); then + bashio::log.info "Increasing DNS propagation limit for Plesk to at least 120 seconds." + PROPAGATION_SECONDS=120 + fi + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # Njalla elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-njalla" ]; then bashio::config.require 'dns.njalla_token' From 01be9d02e1abd6b6ccf6283c6cdb843352a2d6a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 11:14:52 +0200 Subject: [PATCH 075/346] build(deps): bump home-assistant/builder from 2024.03.5 to 2024.08.0 (#3723) Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2024.03.5 to 2024.08.0. - [Release notes](https://github.com/home-assistant/builder/releases) - [Commits](https://github.com/home-assistant/builder/compare/2024.03.5...2024.08.0) --- updated-dependencies: - dependency-name: home-assistant/builder dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index e80be9c9a3b..825324d6cd4 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -107,7 +107,7 @@ jobs: - name: Build ${{ matrix.addon }} add-on if: steps.check.outputs.build_arch == 'true' - uses: home-assistant/builder@2024.03.5 + uses: home-assistant/builder@2024.08.0 with: args: | ${{ env.BUILD_ARGS }} \ From e2621d0a0bc99dd3f082aef694ba973551fd302e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 13:14:15 +0200 Subject: [PATCH 076/346] build(deps): bump home-assistant/builder from 2024.08.0 to 2024.08.1 (#3724) Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2024.08.0 to 2024.08.1. - [Release notes](https://github.com/home-assistant/builder/releases) - [Commits](https://github.com/home-assistant/builder/compare/2024.08.0...2024.08.1) --- updated-dependencies: - dependency-name: home-assistant/builder dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 825324d6cd4..2a82fca246d 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -107,7 +107,7 @@ jobs: - name: Build ${{ matrix.addon }} add-on if: steps.check.outputs.build_arch == 'true' - uses: home-assistant/builder@2024.08.0 + uses: home-assistant/builder@2024.08.1 with: args: | ${{ env.BUILD_ARGS }} \ From 6608f3752ea9df7d585b4687f7fd1e2156a1f725 Mon Sep 17 00:00:00 2001 From: invis-z <22781620+invis-z@users.noreply.github.com> Date: Wed, 14 Aug 2024 19:27:48 +0800 Subject: [PATCH 077/346] Letsencrypt: Add External Account Binding Support (#3716) * Letsencrypt: Add External Account Binding Support * Letsencrypt: Update Changelog --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 12 ++++++++++++ letsencrypt/config.yaml | 4 +++- .../rootfs/etc/services.d/lets-encrypt/run | 15 +++++++++++++-- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 12b890ce419..dfd1b4a86a8 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.1.0 + +- Add external account binding support + ## 5.0.27 - Add Plesk DNS challenge support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 329de75d030..38423006f01 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -248,6 +248,18 @@ If your custom ACME server uses a certificate signed by an untrusted certificate +
+ Set up external account binding + + The ACME protocol (RFC 8555) defines an external account binding (EAB) field that ACME clients can use to access a specific account on the certificate authority (CA). Some CAs may require the client to utilize the EAB protocol to operate. You can add your EAB key ID and HMAC key through the config options `eab_kid` and `eab_hmac_key`. + + ```yaml + eab_kid: 'key_id' + eab_hmac_key: 'AABBCCDD' #Base64url encoded key + ``` + +
+ ## Example Configurations Note: These configuration examples are raw YAML configs. When you use UI edit diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 4a0e14e22f2..8edc3aed4cd 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.0.27 +version: 5.1.0 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -35,6 +35,8 @@ schema: challenge: list(dns|http) acme_root_ca_cert: str? acme_server: url? + eab_kid: str? + eab_hmac_key: str? key_type: list(ecdsa|rsa)? elliptic_curve: list(secp256r1|secp384r1)? dns: diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index f7034a6635b..7525ca55785 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -7,6 +7,7 @@ WORK_DIR=/data/workdir PROVIDER_ARGUMENTS=() ACME_CUSTOM_SERVER_ARGUMENTS=() KEY_ARGUMENTS=() +EAB_ARGUMENTS=() EMAIL=$(bashio::config 'email') DOMAINS=$(bashio::config 'domains') @@ -16,6 +17,8 @@ CHALLENGE=$(bashio::config 'challenge') DNS_PROVIDER=$(bashio::config 'dns.provider') ACME_SERVER=$(bashio::config 'acme_server') ACME_ROOT_CA=$(bashio::config 'acme_root_ca_cert') +EAB_KID=$(bashio::config 'eab_kid') +EAB_HMAC_KEY=$(bashio::config 'eab_hmac_key') if [ "${CHALLENGE}" == "dns" ]; then bashio::log.info "Selected DNS Provider: ${DNS_PROVIDER}" @@ -294,6 +297,12 @@ else done fi +# Set External Account Binding +if bashio::config.has_value 'eab_kid' ; then + bashio::config.require 'eab_hmac_key' + EAB_ARGUMENTS+=("--eab-kid" "${EAB_KID}" "--eab-hmac-key" "${EAB_HMAC_KEY}") +fi + # Generate a new certificate if necessary or expand a previous certificate if domains has changed if [ "$CHALLENGE" == "dns" ]; then certbot certonly --non-interactive --keep-until-expiring --expand \ @@ -302,7 +311,8 @@ if [ "$CHALLENGE" == "dns" ]; then --cert-name "${DOMAIN_ARR[1]}" "${DOMAIN_ARR[@]}" \ --config-dir "$CERT_DIR" --work-dir "$WORK_DIR" \ --preferred-challenges "$CHALLENGE" "${PROVIDER_ARGUMENTS[@]}" \ - --preferred-chain "ISRG Root X1" + --preferred-chain "ISRG Root X1" \ + "${EAB_ARGUMENTS[@]}" else certbot certonly --non-interactive --keep-until-expiring --expand \ --email "$EMAIL" --agree-tos \ @@ -310,7 +320,8 @@ else --cert-name "${DOMAIN_ARR[1]}" "${DOMAIN_ARR[@]}" \ --config-dir "$CERT_DIR" --work-dir "$WORK_DIR" \ --preferred-challenges "$CHALLENGE" "${ACME_CUSTOM_SERVER_ARGUMENTS[@]}" --standalone \ - --preferred-chain "ISRG Root X1" + --preferred-chain "ISRG Root X1" \ + "${EAB_ARGUMENTS[@]}" fi # Get the last modified cert directory and copy the cert and private key to store From cb37a2e7ea1cf2767d0817c60595c7d6b529be07 Mon Sep 17 00:00:00 2001 From: Miguel Jimenez Date: Wed, 14 Aug 2024 05:02:23 -0700 Subject: [PATCH 078/346] nginx_proxy: Adding support for TCP Proxy Protocol (#3274) * Adding support for TCP Proxy Protocol * Moving configuration files & using require from bashio * Update nginx_proxy/config.yaml * Moving realIpFrom config to top level * Update en.yaml * Update nginx_proxy/translations/en.yaml Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Using tempio to support multiple real_ip_from * Moving most of the replacement to the template * Fixing indentation --------- Co-authored-by: Stefan Agner Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- nginx_proxy/CHANGELOG.md | 6 +- nginx_proxy/DOCS.md | 5 ++ nginx_proxy/config.yaml | 4 +- .../etc/{nginx.conf => nginx/nginx.conf.gtpl} | 56 ++++++++++++++----- .../rootfs/etc/s6-overlay/s6-rc.d/nginx/run | 36 ++++-------- nginx_proxy/translations/en.yaml | 5 ++ 6 files changed, 69 insertions(+), 43 deletions(-) rename nginx_proxy/rootfs/etc/{nginx.conf => nginx/nginx.conf.gtpl} (53%) diff --git a/nginx_proxy/CHANGELOG.md b/nginx_proxy/CHANGELOG.md index 56395169df1..9735836f8ef 100644 --- a/nginx_proxy/CHANGELOG.md +++ b/nginx_proxy/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.10.0 + +- Supporting TCP Proxy Protocol + ## 3.9.0 - Add `map_hash_bucket_size` to add support for longer matches in `map` @@ -11,7 +15,7 @@ ## 3.7.0 - Modify `server_names_hash_bucket_size` to add support for longer domain names - + ## 3.6.0 - Add port to Host header to fix origin issues affecting ESPHome and other addons diff --git a/nginx_proxy/DOCS.md b/nginx_proxy/DOCS.md index 46abf8f1153..47efa88f291 100644 --- a/nginx_proxy/DOCS.md +++ b/nginx_proxy/DOCS.md @@ -43,6 +43,7 @@ customize: default: "nginx_proxy_default*.conf" servers: "nginx_proxy/*.conf" cloudflare: false +real_ip_from: ``` ### Option: `domain` (required) @@ -78,6 +79,10 @@ The filename(s) of the NGINX configuration for the additional servers, found in If enabled, configure Nginx with a list of IP addresses directly from Cloudflare that will be used for `set_real_ip_from` directive Nginx config. This is so the `ip_ban_enabled` feature can be used and work correctly in /config/customize.yaml. +### Option `real_ip_from` (optional) + +If specified, configures Nginx to use Proxy Protocol to get the Real Ip from an upstream load balancer; [for more information](https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/). + ## Known issues and limitations - By default, port 80 is disabled in the add-on configuration in case the port is needed for other components or add-ons like `emulated_hue`. diff --git a/nginx_proxy/config.yaml b/nginx_proxy/config.yaml index ae567d2e689..4925f7e3f04 100644 --- a/nginx_proxy/config.yaml +++ b/nginx_proxy/config.yaml @@ -1,5 +1,5 @@ --- -version: 3.9.0 +version: 3.10.0 hassio_api: true slug: nginx_proxy name: NGINX Home Assistant SSL proxy @@ -39,3 +39,5 @@ schema: active: bool default: str servers: str + real_ip_from: + - str diff --git a/nginx_proxy/rootfs/etc/nginx.conf b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl similarity index 53% rename from nginx_proxy/rootfs/etc/nginx.conf rename to nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl index 93cf43e7498..9590987517b 100644 --- a/nginx_proxy/rootfs/etc/nginx.conf +++ b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl @@ -1,9 +1,13 @@ +{{/* + Options saved in the addon UI are available in .options + Some variables are available in .variables, these are added in nginx/run +*/}} daemon off; error_log stderr; pid /var/run/nginx.pid; events { - worker_connections 1024; + worker_connections 1024; } http { @@ -17,14 +21,16 @@ http { server_tokens off; server_names_hash_bucket_size 128; - + # intermediate configuration ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; - #include /data/cloudflare.conf; - + {{- if .options.cloudflare }} + include /data/cloudflare.conf; + {{- end }} + server { server_name _; listen 80 default_server; @@ -34,7 +40,7 @@ http { } server { - server_name %%DOMAIN%%; + server_name {{ .options.domain }}; # These shouldn't need to be changed listen 80; @@ -42,35 +48,55 @@ http { } server { - server_name %%DOMAIN%%; + server_name {{ .options.domain }}; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; - ssl_certificate /ssl/%%FULLCHAIN%%; - ssl_certificate_key /ssl/%%PRIVKEY%%; + ssl_certificate /ssl/{{ .options.certfile }}; + ssl_certificate_key /ssl/{{ .options.keyfile }}; # dhparams file ssl_dhparam /data/dhparams.pem; - + + {{- if not .options.real_ip_from }} listen 443 ssl http2; - %%HSTS%% + {{- else }} + listen 443 ssl http2 proxy_protocol; + {{- range .options.real_ip_from }} + set_real_ip_from {{.}}; + {{- end }} + real_ip_header proxy_protocol; + {{- end }} + + {{- if .options.hsts }} + add_header Strict-Transport-Security "{{ .options.hsts }}" always; + {{- end }} proxy_buffering off; - #include /share/nginx_proxy_default*.conf; - + {{- if .options.customize.active }} + include /share/{{ .options.customize.default }}; + {{- end }} + location / { - proxy_pass http://homeassistant.local.hass.io:%%HA_PORT%%; + proxy_pass http://homeassistant.local.hass.io:{{ .variables.port }}; proxy_set_header Host $http_host; proxy_redirect http:// https://; proxy_http_version 1.1; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header X-Forwarded-Host $http_host; + {{- if not .options.real_ip_from }} + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + {{- else }} + proxy_set_header X-Real-IP $proxy_protocol_addr; + proxy_set_header X-Forwarded-For $proxy_protocol_addr; + {{- end }} } } - #include /share/nginx_proxy/*.conf; + {{- if .options.customize.active }} + include /share/{{ .options.customize.servers }}; + {{- end }} } diff --git a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run index 9f45483a9b7..a68fcc0b78f 100644 --- a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run +++ b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run @@ -6,17 +6,19 @@ set -e +bashio::log.info "Merging options & variables for template" +JSON_CONF=$(jq --arg port $(bashio::core.port) \ + '({options: .}) + ({variables: {port: $port}})' \ + /data/options.json) +bashio::log.info "Generating nginx.conf from template in /etc/nginx/nginx.conf.gtpl" +echo $JSON_CONF | tempio \ + -template /etc/nginx/nginx.conf.gtpl \ + -out /etc/nginx.conf + DHPARAMS_PATH=/data/dhparams.pem CLOUDFLARE_CONF=/data/cloudflare.conf -DOMAIN=$(bashio::config 'domain') -KEYFILE=$(bashio::config 'keyfile') -CERTFILE=$(bashio::config 'certfile') -HSTS=$(bashio::config 'hsts') - -HA_PORT=$(bashio::core.port) - # Generate dhparams if ! bashio::fs.file_exists "${DHPARAMS_PATH}"; then bashio::log.info "Generating dhparams (this will take some time)..." @@ -24,7 +26,6 @@ if ! bashio::fs.file_exists "${DHPARAMS_PATH}"; then fi if bashio::config.true 'cloudflare'; then - sed -i "s|#include /data/cloudflare.conf;|include /data/cloudflare.conf;|" /etc/nginx.conf # Generate cloudflare.conf if ! bashio::fs.file_exists "${CLOUDFLARE_CONF}"; then bashio::log.info "Creating 'cloudflare.conf' for real visitor IP address..." @@ -47,24 +48,7 @@ if bashio::config.true 'cloudflare'; then fi fi -# Prepare config file -sed -i "s#%%FULLCHAIN%%#$CERTFILE#g" /etc/nginx.conf -sed -i "s#%%PRIVKEY%%#$KEYFILE#g" /etc/nginx.conf -sed -i "s/%%DOMAIN%%/$DOMAIN/g" /etc/nginx.conf -sed -i "s/%%HA_PORT%%/$HA_PORT/g" /etc/nginx.conf - -[ -n "$HSTS" ] && HSTS="add_header Strict-Transport-Security \"$HSTS\" always;" -sed -i "s/%%HSTS%%/$HSTS/g" /etc/nginx.conf - -# Allow customize configs from share -if bashio::config.true 'customize.active'; then - CUSTOMIZE_DEFAULT=$(bashio::config 'customize.default') - sed -i "s|#include /share/nginx_proxy_default.*|include /share/$CUSTOMIZE_DEFAULT;|" /etc/nginx.conf - CUSTOMIZE_SERVERS=$(bashio::config 'customize.servers') - sed -i "s|#include /share/nginx_proxy/.*|include /share/$CUSTOMIZE_SERVERS;|" /etc/nginx.conf -fi - # start server bashio::log.info "Running nginx..." -stat "/ssl/${CERTFILE}" -c %y > /tmp/certificate_timestamp +stat "/ssl/$(bashio::config 'certfile')" -c %y > /tmp/certificate_timestamp exec nginx -c /etc/nginx.conf < /dev/null diff --git a/nginx_proxy/translations/en.yaml b/nginx_proxy/translations/en.yaml index d75468cd3b4..3720821495a 100644 --- a/nginx_proxy/translations/en.yaml +++ b/nginx_proxy/translations/en.yaml @@ -24,6 +24,11 @@ configuration: name: Customize description: >- See the Documentation tab for more information about these options. + real_ip_from: + name: Real IP from (enables PROXY protocol) + description: >- + Configures Nginx to use TCP Proxy Protocol, + specifies what IP to trust TLS upstream requests from. network: 443/tcp: HTTPS (SSL) Port 80/tcp: HTTP (non-SSL) Port From f3bf993721e4ea17dca55da615b60deda7a0dfb0 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 14 Aug 2024 17:37:39 +0200 Subject: [PATCH 079/346] nginx_proxy: Define default for real_ip_from to make it optional (#3725) * nginx_proxy: Define default for real_ip_from to make it optional Unfortunately we can't make the setting truly optional, but since it is a list, we treat an empty list as not set. Set the empty list as default to avoid users requiring to create and delete a dummy real_ip_from value. * Add empty list to example --- nginx_proxy/CHANGELOG.md | 4 ++++ nginx_proxy/DOCS.md | 2 +- nginx_proxy/config.yaml | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/nginx_proxy/CHANGELOG.md b/nginx_proxy/CHANGELOG.md index 9735836f8ef..2a32dd613b5 100644 --- a/nginx_proxy/CHANGELOG.md +++ b/nginx_proxy/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.10.1 + +- Make `real_ip_from` optional through an empty default value + ## 3.10.0 - Supporting TCP Proxy Protocol diff --git a/nginx_proxy/DOCS.md b/nginx_proxy/DOCS.md index 47efa88f291..0cda915d6c8 100644 --- a/nginx_proxy/DOCS.md +++ b/nginx_proxy/DOCS.md @@ -43,7 +43,7 @@ customize: default: "nginx_proxy_default*.conf" servers: "nginx_proxy/*.conf" cloudflare: false -real_ip_from: +real_ip_from: [] ``` ### Option: `domain` (required) diff --git a/nginx_proxy/config.yaml b/nginx_proxy/config.yaml index 4925f7e3f04..e5c4055e369 100644 --- a/nginx_proxy/config.yaml +++ b/nginx_proxy/config.yaml @@ -1,5 +1,5 @@ --- -version: 3.10.0 +version: 3.10.1 hassio_api: true slug: nginx_proxy name: NGINX Home Assistant SSL proxy @@ -26,6 +26,7 @@ options: active: false default: nginx_proxy_default*.conf servers: nginx_proxy/*.conf + real_ip_from: [] ports: 443/tcp: 443 80/tcp: null From 04e8ccda2674bf9b404b4c0687b36b29e1d0aaf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Nenz=C3=A9n?= Date: Fri, 16 Aug 2024 10:40:02 +0200 Subject: [PATCH 080/346] letsencrypt: Added support for Simply.com DNS challenge. (#3717) * Update build.yaml * Update run * Update file-structure.sh * Update config.yaml * Update Dockerfile * Update CHANGELOG.md * Update build.yaml * Version bump * Fixes DOCS and rename account_id to correct property * Update DOCS.md * Update DOCS.md * Update DOCS.md * Update letsencrypt/DOCS.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update DOCS.md * Update letsencrypt/DOCS.md --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 26 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 6 +++-- .../rootfs/etc/cont-init.d/file-structure.sh | 2 ++ .../rootfs/etc/services.d/lets-encrypt/run | 6 +++++ 7 files changed, 45 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index dfd1b4a86a8..25e0893fdb0 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.1.1 + +- Add Simply DNS support + ## 5.1.0 - Add external account binding support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 38423006f01..3636b15fffd 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -60,6 +60,7 @@ dns-linode dns-luadns dns-njalla dns-noris +dns-simply dns-nsone dns-ovh dns-rfc2136 @@ -151,6 +152,8 @@ domainoffensive_token: '' plesk_username: '' plesk_password: '' plesk_api_url: '' +simply_account_name: '' +simply_api_key: '' ``` @@ -996,6 +999,28 @@ You can define the `propagation_seconds` explicitly. Otherwise, it will use a cu +
+ Simply.com DNS challenge + + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-simply + simply_account_name: Sxxxxxx + simply_api_key: YOUR_API_KEY # Replace 'YOUR_API_KEY' with your actual Simply.com API key. + ``` + +The `simply_account_name` refers to the Simply.com account number (Sxxxxxx), and the `simply_api_key` is the account's API key. +The API key assigned to your Simply.com account can be found in your Simply.com Control panel. + +
+ + ## Certificate files The certificate files will be available within the "ssl" share after successful request of the certificates. @@ -1026,6 +1051,7 @@ dns-luadns dns-njalla dns-noris dns-plesk +dns-simply dns-nsone dns-ovh dns-rfc2136 diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 3a7db35f582..6cda377d9d1 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -23,6 +23,7 @@ ARG \ CERTBOT_DNS_JOKER_VERSION \ CERTBOT_DNS_NAMECHEAP_VERSION \ CERTBOT_DNS_NORISNETWORK_VERSION \ + CERTBOT_DNS_SIMPLY_VERSION \ CERTBOT_DNS_TRANSIP_VERSION \ CERTBOT_DNS_PORKBUN_VERSION \ CERTBOT_DNS_WEBSUPPORT_VERSION \ @@ -77,6 +78,7 @@ RUN \ certbot-dns-route53==${CERTBOT_VERSION} \ certbot-dns-sakuracloud==${CERTBOT_VERSION} \ certbot-dns-namecheap==${CERTBOT_DNS_NAMECHEAP_VERSION} \ + certbot-dns-simply==${CERTBOT_DNS_SIMPLY_VERSION} \ certbot-dns-netcup==${CERTBOT_NETCUP_VERSION} \ certbot-plugin-gandi==${CERTBOT_GANDI_VERSION} \ certbot-dns-transip==${CERTBOT_DNS_TRANSIP_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 16456d5e3a1..1a265b03ef6 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -30,6 +30,7 @@ args: CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 CERTBOT_DNS_PORKBUN_VERSION: 0.8.0 CERTBOT_DNS_WEBSUPPORT_VERSION: 2.0.1 + CERTBOT_DNS_SIMPLY_VERSION: 0.1.0 CERTBOT_GANDI_VERSION: 1.5.0 CERTBOT_NETCUP_VERSION: 1.4.3 CERTBOT_NJALLA_VERSION: 1.0.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 8edc3aed4cd..3942f10258d 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.1.0 +version: 5.1.1 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -85,6 +85,8 @@ schema: netcup_api_key: str? netcup_api_password: str? netcup_customer_id: str? + simply_api_key: str? + simply_account_name: str? njalla_token: str? noris_token: str? nsone_api_key: str? @@ -100,7 +102,7 @@ schema: dns-duckdns|dns-dynu|dns-gehirn|dns-google|dns-google-domains|\ dns-hetzner|dns-infomaniak|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ - dns-namecheap|dns-netcup|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ + dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris|dns-plesk)?" rfc2136_algorithm: str? rfc2136_name: str? diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index fb3206a1160..ade1ef89e23 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -35,6 +35,8 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_netcup_customer_id = $(bashio::config 'dns.netcup_customer_id')\n" \ "dns_netcup_api_key = $(bashio::config 'dns.netcup_api_key')\n" \ "dns_netcup_api_password = $(bashio::config 'dns.netcup_api_password')\n" \ + "dns_simply_account_name = $(bashio::config 'dns.simply_account_name')\n" \ + "dns_simply_api_key = $(bashio::config 'dns.simply_api_key')\n" \ "dns_njalla_token = $(bashio::config 'dns.njalla_token')\n" \ "dns_noris_token = $(bashio::config 'dns.noris_token')\n" \ "dns_nsone_api_key = $(bashio::config 'dns.nsone_api_key')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 7525ca55785..3464a3c2ad8 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -72,6 +72,12 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-netcup" ]; then bashio::config.require 'dns.netcup_api_password' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +#Simply +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-simply" ]; then + bashio::config.require 'dns.simply_account_name' + bashio::config.require 'dns.simply_api_key' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + #TransIP elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-transip" ]; then bashio::config.require.username 'dns.transip_username' From 12bc3e8fa0056dc9c45c56bba849594aa5143296 Mon Sep 17 00:00:00 2001 From: Tom Sommer Date: Fri, 16 Aug 2024 13:00:22 +0200 Subject: [PATCH 081/346] Correct CHANGELOG.md (#3731) Brand is "Simply.com", not "Simply" --- letsencrypt/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 25e0893fdb0..2191372819a 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -2,7 +2,7 @@ ## 5.1.1 -- Add Simply DNS support +- Add Simply.com DNS support ## 5.1.0 From 966251ab872e31e0e8f68ce6eec084fd61cb8c9d Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Tue, 20 Aug 2024 04:58:24 -0400 Subject: [PATCH 082/346] silabs-flasher: Bump firmwares to Gecko SDK 4.4.3 (#3730) * Upgrade flasher to 0.0.22 * Bump firmwares for the Yellow and Connect * Update changelog * Bump version to 0.3.0 --- silabs_flasher/CHANGELOG.md | 4 ++++ silabs_flasher/build.yaml | 2 +- silabs_flasher/config.yaml | 2 +- .../scripts/universal-silabs-flasher-up | 6 +++--- ...onnect_EZSP_v7.3.1.0_ncp-uart-hw_115200.gbl | Bin 233264 -> 0 bytes ...w_EZSP_v7.3.1.0_PA32_ncp-uart-hw_115200.gbl | Bin 234388 -> 0 bytes .../root/skyconnect_ncp-uart-hw_7.4.3.0.gbl | Bin 0 -> 239228 bytes .../rootfs/root/yellow_ncp-uart-hw_7.4.3.0.gbl | Bin 0 -> 240388 bytes 8 files changed, 9 insertions(+), 5 deletions(-) delete mode 100644 silabs_flasher/rootfs/root/NabuCasa_SkyConnect_EZSP_v7.3.1.0_ncp-uart-hw_115200.gbl delete mode 100644 silabs_flasher/rootfs/root/NabuCasa_Yellow_EZSP_v7.3.1.0_PA32_ncp-uart-hw_115200.gbl create mode 100644 silabs_flasher/rootfs/root/skyconnect_ncp-uart-hw_7.4.3.0.gbl create mode 100644 silabs_flasher/rootfs/root/yellow_ncp-uart-hw_7.4.3.0.gbl diff --git a/silabs_flasher/CHANGELOG.md b/silabs_flasher/CHANGELOG.md index aca26de0dd6..e75a5de101b 100644 --- a/silabs_flasher/CHANGELOG.md +++ b/silabs_flasher/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.3.0 +- Update firmwares to EmberZNet 7.4.3 +- Update universal-silabs-flasher to v0.0.22 + ## 0.2.3 - Upgrade to Alpine 3.19 diff --git a/silabs_flasher/build.yaml b/silabs_flasher/build.yaml index c822ad830a0..6748f36608a 100644 --- a/silabs_flasher/build.yaml +++ b/silabs_flasher/build.yaml @@ -6,4 +6,4 @@ build_from: armv7: ghcr.io/home-assistant/armv7-base-python:3.11-alpine3.19 i386: ghcr.io/home-assistant/i386-base-python:3.11-alpine3.19 args: - UNIVERSAL_SILABS_FLASHER: 0.0.19 + UNIVERSAL_SILABS_FLASHER: 0.0.22 diff --git a/silabs_flasher/config.yaml b/silabs_flasher/config.yaml index 64f8e9d7bb7..872a0f405aa 100644 --- a/silabs_flasher/config.yaml +++ b/silabs_flasher/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.2.3 +version: 0.3.0 slug: silabs_flasher name: Silicon Labs Flasher description: Silicon Labs firmware flasher add-on diff --git a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index ce554c1925f..0a433710a9f 100755 --- a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -51,7 +51,7 @@ if bashio::config.has_value 'firmware_url'; then else # Assume to run on Yellow if UART4 is mapped to ttyAMA1 if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then - firmware="NabuCasa_Yellow_EZSP_v7.3.1.0_PA32_ncp-uart-hw_115200.gbl" + firmware="yellow_ncp-uart-hw_7.4.3.0.gbl" else # Check device manufacturer/product information usb_device_path=$(realpath /sys/class/tty/$(readlink /sys/class/tty/$(basename ${device}) | sed 's:/[^/]*tty[^/]*::g' )/../) @@ -70,9 +70,9 @@ else bashio::log.info "Checking ${device} identifying ${usb_product} from ${usb_manufacturer}." if [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "SkyConnect"* ]]; then - firmware="NabuCasa_SkyConnect_EZSP_v7.3.1.0_ncp-uart-hw_115200.gbl" + firmware="skyconnect_ncp-uart-hw_7.4.3.0.gbl" elif [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "Home Assistant Connect ZBT-1"* ]]; then - firmware="NabuCasa_SkyConnect_EZSP_v7.3.1.0_ncp-uart-hw_115200.gbl" + firmware="skyconnect_ncp-uart-hw_7.4.3.0.gbl" else exit_no_firmware fi diff --git a/silabs_flasher/rootfs/root/NabuCasa_SkyConnect_EZSP_v7.3.1.0_ncp-uart-hw_115200.gbl b/silabs_flasher/rootfs/root/NabuCasa_SkyConnect_EZSP_v7.3.1.0_ncp-uart-hw_115200.gbl deleted file mode 100644 index 03d0905111f390a80382c33304d73ebbc5913a49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233264 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
2j@L$=`%gh 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 D=nkg9 diff --git a/silabs_flasher/rootfs/root/NabuCasa_Yellow_EZSP_v7.3.1.0_PA32_ncp-uart-hw_115200.gbl b/silabs_flasher/rootfs/root/NabuCasa_Yellow_EZSP_v7.3.1.0_PA32_ncp-uart-hw_115200.gbl deleted file mode 100644 index cfbd65bddb06cc71f4c8284af0d736e15647a3d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234388 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 diff --git a/silabs_flasher/rootfs/root/skyconnect_ncp-uart-hw_7.4.3.0.gbl b/silabs_flasher/rootfs/root/skyconnect_ncp-uart-hw_7.4.3.0.gbl new file mode 100644 index 0000000000000000000000000000000000000000..43ae9248c00db814072bc6c8d254a2c0852fb9ef GIT binary patch literal 239228 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

ap4rwEOwS7k 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 hR zzW)rZ>~}|ESOaJ-Pub_Jjqh7yhh|DtTF`L|?5u==blz%eh}R`5ecn!INnfF}eZhDw zOxvAX<5%$FYe!gn26#?r^wlb}kl9Ci1j%CT%rIusuhJHb)q3zGW$Y)59I~J6qudU| z`B>h>zWOryl=`0fn`G-<_@+I0CH(6~g#{=z4CFFLh&v;))f;c-1#cT`o93~>)2Xr8 zd>mpEwBmE&d>?VL;vD{32IhahywHzqNHt`Eo3JB;4j3wHWw(a#(5_( zCup3nL@WW5W5kO2hX~>rN)2LJl+9BKX*WONBa3x7M!BA8XE2Cc@Ql8o3L~9)o)ITR z`hxK3;0}j!hv8;p8`X#I>cL$q_*LUqj!Q0>HqS#;c#BlFzHUdE)|MfjrKHl%LbY1w#HD1}UlRP(1K9c5} zGnw&EI-(H;NF_8X|1d};;cgE3Qv+ty^Y@5Jd_aXZ$=dBmP% z5OYw&FM~X;y*+v%7z3{m`A?~?RA*{027L8>3i1OzSe=i!s-3VBXdLv!HxNl(+D5)p z18}G7QO9#3e$ye>$nKj;SXhQmYVSK=9p7ZkTg&I z336Vf;COeutjm!Jihqdu-5dElc$4rcaLW;M0uU6JfwSf}HGmbpz9he+Uf|co?|Bc; zAb%G%zpuWG!RKucd<(l+yuwhUj!l8+j{{+YfbmDD=@9jbK-1j6wWk z5l{$IFAKf@%2fA5`UMcg3HF zxia*;KP%4zk2Ek?bceC@lb{+hDT4@CAiYYzhdiw=9pk+$We$E8%(8wRq<5n>q;{b` zqjx8ZHf0?#h~I{oe(z#>!v#uaLxX6?n>s5pVbNjCsfrJT?4xSIV6^ug8@^#2+ z&umFYW)ilpS2BmmUv~NtRzawXPa)HVSQT1_U2P3CZmlpA>=!$Gt(p&dt^BmIyb#}~ z4r#7t7d`0=AYb}~qQauT;hO>98jw9c!uI?UqPR71K;$yHREvP0W;x%)TER;Jt?QHM zI<#WhfLF;KpRI7KEVv5MLk7GPy-~UHMtiVZy$CN-jcjn#1!Gg5^K0D4U>hA@G_B|(d~XUy znmEQe0r)(O#aZ|!pSwXUR`NgoKWu#qd=q8X{#i$V zw21B^=o-ZR4C=S0vhD`ml@tVniWcexVfhwCcL5cfU|lNKqPV+WcM~pd3%J%BSzCb# zEzC5%x3*xm zVWYScGoVrI=x4+pAl5GZ*1l&_xw~FPvwG3M^ zIcn>MT>*YtAD{(K;lOWd{FZTZcZT}DZWVK1x0WpiVhMVrH+_Vn%Zi^r~;N4p^hypA_tCh70}PULRCv72Y#i@g))Tt=5u_(zS84zV2I{nUh9(7(RyCu?3&KV*6FW#tZb zB2(HHWo`U3To*I3MBtx+Z3pY$_WAq{rUZRv>Veqj=qcwYHlCg>uEjc&4+K|!^8w7A zJ0TZR8&N-?K0x!o+ydN&katjj&{Z;_BWD3K$>=pLU?%JEA5!fsgCDD@peldNtv4eoo+7wK5j*X2Kad*56Xw~6I=2Z!ftriMBllv z*qRH!)sVZOlf|yGw)@=-bSV{LZCPD2iWyVUebfF2CLgR zo!FYRwAxpnMxO9kZey=D&m%=%;mhf#D2-?7-ZZnk>*sr7NNv)-;Pib@E zr6VI|1~joqZCkPqS5IsEPLMtGPhgritHoHV7^C!u^RHr;f2c?F6Dpx_>LQ7Y3#N^#7~=R3{nBEm*6p zs0|Lsf8Hlssl#YEOR2+Aons?cYLVer!%LURjG{e!Gvpi#*Z0*OC9Qesxz$4T%HkNQ z7wTgMC9Qzcf;)g+``;(hZdJZ zR=Y3y5<^jbzKN*Hxb3=jzPJ}YRfI*D3+eV*$oxN#)_c?uRiimz6xXJLRb}m}9vy2n zE0PBG=bZhnT6ND~)LQuNFHJV|0@VNw*Y8r#$f_gvtOZj%3;hHi!W$NvSD5)7r@>Y* z^OR}_J+F$54VPozx}vJ|j7i|&iKb7fBO|Gmt{tzZyB?0tgM3P9^6=J&@33Nh1^>u2 zm-tBVbLkiTM|zFyg6f3y+tfX4>ku7;=Zh-utp|d3c<-7tMr3i+?O7rehP3buE^?x` zLZblu7?3)=o!^##@BJ>E!$-hWsONW>+i5*R42C>&JJ}2PZSVw6s-EX}gxu<#d<^#n zbz-(|T6Lq$9Let*BWGp62ZZ6H#sq7mxF-9doBN5J`~8zud@L`l3)8Ga2ryhv$EbN1plyQ5Xq7k*fbJj%PAL=x=XSo#^0akmVcRQlKOE!`T;+&=&755%d@P%Km0zkUOK$!pjvU+F^?I@nS- zHg7>(6)*@OehN?=e%K-^x&21*p(J4?I>M8&g6;+ues?3G9ll2U6?Xvh01k4axFtES zXujy>Ea-O$#0w!@9^yd(t8!ES=hAlBTtjUG%-5ymOW5goh>EsZm*C=s+m`8}4LaQKDjPScNTlu|eaSt$`m;JDuLH9n|xdbs=8r-8W z+Z^pZ!k;#~dKg#_nCVu5ht`6JM(1DPW(zJQ6n`~%vZuf!fkj${ux%RP5Bpnar41I1 zhrPPs=AcdODY*GPybsv~$%h0FSV*t+GLGHL(s~aQY=gk3NPj|1!OSRIHXHJ`rpC^} z+r>0C%=YBv?di$MBR@)08?`s-N|bpCoFUo5ezasI_%|vMU5#-Pe+k!7r_4;`(U^(o zgc)F{0$v}{3AHE4)8QxKa>%l*!GZ7WtgqwtZVhJR|CEt<7j!j6;9lzdfv;hP%oVcb z&Tf|NgV)*R_{jSZcNtd8`bV1|b8iCo;V#+f?~k&*E#^tdGpfJU(B z124G6PR0tXf%i?5M&vZ?RzG%2%(E%!r?4S>g{XhFnhI3XE_t@ovbd15p^QKYRDdbV zLI`qxztOG+N8>KA9gnRcF5WSiugspjo5}yf*bc8YaP{QfO!p$j!~~fL8)1zC4&w1J8cw`SScPUa5zXwxKqo_L_zEqw#j;=5*VU zJ~EB}2KL>m@~DtDucYjsPjxeLuNF0FR%()P-~Rc)gqBT$#mqzg7x z@=Iy5kdFqnTiM_dt#mToTUqqhg?RTY3wY{2UhUngb$Fd8az!23kyY?hF1??gURXb|(9 zIL{~!)9+E2RM*rFl>e2!U%MXqs8OWf&^_Kf0ln@fV0-JD)lG|uC8>|1W{`)G1Wv1h zjxpGy-4Hc*QJL1j2GRiSn%SyFUH(yt=lpQ%^U&>(%(qLPix>DD@TR05z^toS zvY)Ra?*sUI?9;;b$3S048qN>me{gF>PCqr;D{0YtSHzqiC;GwCWT-b+wg>55Pbo9` zsaTg(GXO*b>gyPyvJkdEh&?&9SYWDV$troU1o*N#fo$P7Lx&usaY7^c8v3h_?+EFeS^j) z^-YqY)+)B-%}TtM$D37AW)ifbN;_tVTM@AYJfLXpe)Nr1upG+x{7tmffO<-dXSYC- zfH!wtLdt?2YlASVy&1jCqSM&3?B@1^h%7}h2*Fh^b`P@fWPl&CgJR2nA^-M;Ewb4H z%#H=jdfzdy#uixMgU)F7)B203kwJs_HuNQo<4t&+P6O^D8~*YJu`79vpn?~{Gw>2r z?aL6=Lw;yXREU6Fma0aNAqzk$?W^jmu{Ik~e!>N%O0zKUk!9jBoIQzsG3od$#u1yr zBb^3t;~sJc!4M)34Z@aD=uFwwu)`ENHTIpj-=sS##9>ERGE5QIPoPZS4DEGKjg^60 z>&C;pwHkP>ThZ757Nz`v^7e;d{b8VsQ6pfS4ki8s_j54|%D6Oa5dVVQG_kU|<#qL7ee}Hunk-a<_Lb}FGor;fVX;yT{c#6w# z3kysx^1W`*3|@yyAYa}dq8L9W>qUj9hx&0DD>G?}JjTM>fO9liA53$T z=bBy!>B_grc_zJKi=1!z64(K{ZUpp0tMR9Cs*U%gtP@L7^p2vS|6pe`jAos z>x1nH%)qO`O7+jALHrwV{ucO^mCLIT!Hx%Kmk}OEpA4n_wHz|px((usGW;SG zYg(TF>v|=!J$%hr`=0uwQs&Pvep3`@w)QEoX^a-sTPa3O!9mt;1Q+tpfOELIP9 zOgza4h<-0*-sgbv_)S9UlCOo0K##bMAETCB;uFDrn#m^-N46_Z zpmfTwq_bDE>ZHcTb?w)f;oF4B0?)U}GyH~1q*A^BUK8n56Vf4hwy;TLIZE+Gq__%u z6d{V-{RYu9_^5jUyoxi#UkqRrO{;>1U|KT+hC8D;0IPSIlW#N&8lbLjhSm@DGpO0Q z!R?N|d1YK*-w9?!Ue$C>jNfT&Wv0!FB1V88QDQ{1dO~F?qMHhaBmccIiyh4CWiHX( zkRh(cPEL1__DPXoxxh|}2*2u5N-nBUnnU0hV0DMdCq>7URYZU9`D*Q5A-?B5O}RV+ zsOA~)1XL4V0;4EfnG;ds-LxaqVO=8Inse}vGPgTJd|y5fjieK3m#dKDJoE@){gmHA zi>HQZ_m%-})m0&|l8Ogp+IM~y1&4~QT2McqlG?F`{XKdOaD_%Oocs{;%MP^cr6Uu~@Yg^sxIwuM*$z1bY_4z=hGU6YC z6jP>q?G861K986|F7c^gPdziy)rDw*3TwbzptMLfejCx5*-3fORI`()yc1$)q{8IG z3hJE@@9O8T71Yx|1adu?tOkx{fNV6Fq4nZbh*HG^H?TkPuz|xY3hU9uUT_^~cD{^~ zl%fPPo%hw3)`Pp{erB2*`%as)r=Fcixy%LM1Jc0UpM`NYw{P0(B{(y}7b`r3C~A`? z3Nyh?!tX@9;C2HdQyCI&!zT(i&Oc(S@xJ;_%HzIzrt~rN(rwXVuw>^8D(Fz>_UT@K z3ie|4>wME0>COHP+I4-Y1H4kE`|ADilpXa@b{G}{`&z0on#1k&Z(O-Px9`7SXC`7t zTXsBlSDcx)4tvmuFcH0PsW3~)zd80(;YOiSnM=t&Ux)b=abG>Cl?P}i!3l=y-^1e) zQgfFk^ek42{WvrF{cW4pGSk4kUaoVVjzGUl>o}fg!2b3hKDRXc+by96cz};xyIISE z(Jd#egJ<9cXy{2dJMtXuU0C2O$q%bT;f+gKOl@1;e1heZQQZuZxkv6LTR}=X3w;PU zykc{$#_H43r;4o&vT1NnJ#Wnr_a(I+E#l}Pj_{0QCT>8@wEcUwODp~wwyPHGxk+}p zQ<0O<6DQ>^%B{T?nowv^frO+Ukqz`nHW=(Sx{V!jTdItUzOoiOv>3@o?J1yJu09*5 ztL6vcSsNQ09D6_U)18e|9Z)$J{gr7eSxCdrU|N6}&kC2M41E2@_VJ+um;st(?U9$NRMD_I&A<13 zTyCTM=$$CIK(_`p%HRb_TCljxqb{gpHgR5znL(kn_Hym~XEd26578e*!RrW|gHqn)$z;#_`n zq@ueaFRxxVgLR&Y&y)>M9D)R%FRSLf;#POAC{*Dad$nQa$+$t>3}h$nn4^-p-xkY; z-|C^U#9GhN9AplI6Am^NZz^BrGg8v6sjt!ggfq~=_VyuUhLOGyMIF;S!{51>N(^my zHTKj;G=c2uZzBg3ZDDqoI<(7eid`FKOGdZHgfwM+q5cVm+;`s3qHnVf+f4>!O#HR9BieXRxj z7IQIfKabniZqsumU(&dmc{*}D&aVY~rgnTgjcbz4`1*hTFxE!;@R}B?H#JIV8+L{H zwL7%x7`PEtD)7Vcc!E#^H0xhQ9!u!k;{tZ-fJ-gmxpSCg$nM;P`^WeBU@8{w3p32 z+S|ZCR{wFmsf~q=gNLOgJ$|VTsa~C!B|gy=2K0-x<)=-|0PliS4E^NeuCiNCM{>hO z6=gR$+lsq+RZ`jC&{*}i7-4sy5`oG4q6cxePD`;NW}+6_(|<=c&_2D5tiUNa>9Mo= zl;>z%P+v(oOwrVotf?7iZ= zXAud2e0&Xv|7Q;SEu(22Zh++O+o_dKWWHY3O5XneOf`mIwup*F{&$d$`(idA@3@31 z!#)zJ{OBE3Mc`n;Jr=jyzl@tLo6v@Yng0mm zk7T}&71`@uBR*H@4>(_ZfbQU>(zm!Plch##_i zrtp1HIf&PhbZg^`3w?-8DumF>>l%4*@#*2MvDZCU*@@>zf7uF)ulIUERZN~* zG%~7XYX3A#J9+16VdysjDCl zorzr!S@aD>779mI;H8`=xWycfbjT8-TWFNh8pQ6{i^X^);#A?k&*}s9^fW|{WNiy2au!Ql@8|uYB4DWVlv}SbN>;6p8xx?&BnP>%Rv|j_^u!$23`CAJdhBr3lf;5GyPQ zGy?rHUcrwnQTozc_^4hV<@awBrV|HG*3(y5SV?obrs@via*VW9W57p2dp+92>#*P3 zB~Ni`_fmZ7E%>I!jyV*j-|07%omg0laCO^|GtB*P_V`eB>k_alsm1JJOSn&3rNo?k z;PnvJgc6jQ$ESrDhJfyPXjm_v!Y%0ARc<`cEJUnb^rM;;ZeRcEj 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 E11@`D@c;k- literal 0 HcmV?d00001 From bd72870a82a3a7f91af5540305659bfe37e25985 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 10:25:11 +0200 Subject: [PATCH 083/346] build(deps): bump home-assistant/builder from 2024.08.1 to 2024.08.2 (#3738) Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2024.08.1 to 2024.08.2. - [Release notes](https://github.com/home-assistant/builder/releases) - [Commits](https://github.com/home-assistant/builder/compare/2024.08.1...2024.08.2) --- updated-dependencies: - dependency-name: home-assistant/builder dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 2a82fca246d..a23a874a9bf 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -107,7 +107,7 @@ jobs: - name: Build ${{ matrix.addon }} add-on if: steps.check.outputs.build_arch == 'true' - uses: home-assistant/builder@2024.08.1 + uses: home-assistant/builder@2024.08.2 with: args: | ${{ env.BUILD_ARGS }} \ From 378780a61dfc6bd16788986580d6a33316f97d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Nenz=C3=A9n?= Date: Mon, 26 Aug 2024 10:27:09 +0200 Subject: [PATCH 084/346] letsencrypt: Fixes subdomain DNS challange for Simply.com (#3733) * Fixes subdomain DNS challange for Simply.com * Updates version and changelog * Update build.yaml --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/build.yaml | 2 +- letsencrypt/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 2191372819a..bbff04faef2 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.1.2 + +- Fixes subdomain DNS challenge not working for Simply.com + ## 5.1.1 - Add Simply.com DNS support diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 1a265b03ef6..ab47a75287d 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -30,7 +30,7 @@ args: CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 CERTBOT_DNS_PORKBUN_VERSION: 0.8.0 CERTBOT_DNS_WEBSUPPORT_VERSION: 2.0.1 - CERTBOT_DNS_SIMPLY_VERSION: 0.1.0 + CERTBOT_DNS_SIMPLY_VERSION: 0.1.2 CERTBOT_GANDI_VERSION: 1.5.0 CERTBOT_NETCUP_VERSION: 1.4.3 CERTBOT_NJALLA_VERSION: 1.0.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 3942f10258d..991795a607d 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.1.1 +version: 5.1.2 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt From 972ea56ba35a98ef2fb1e7431509644a382d46be Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 26 Aug 2024 18:44:57 +0200 Subject: [PATCH 085/346] openthread_border_router: bump to latest and smaller improvements (#3732) * openthread_border_router: Update OTBR POSIX version b66cabfaa0 (2024-08-14) Update to the latest OTBR POSIX version b66cabfaa0 (2024-08-14 08:01:56 -0700). Bump to silabs-universal-flasher 0.0.22. This also adds a patch which gets rid of messages printed by OTBR web on the system console. * openthread_border_router: Update to OpenThread RCP v4.4.3.0 Update to the latest OTBR RCP builds for Yellow/Connect ZBT-1 (formerly SkyConnect). This firmware is built from the very same sources (there was no bump between Gecko SDK v4.4.0.0 and v4.4.3.0). However, it uses the new build infrastructure which could mean that there are small differences in build configuration. * openthread_border_router: Actually start otbr-web without syslog --- ...> 0001-support-deleting-the-dataset.patch} | 13 ++--- ...d-with-custom-netif-prefix-route-set.patch | 37 ------------- ...> 0002-set-netif-route-metric-lower.patch} | 11 ++-- ...-disable-syslog-for-otbr-web-as-well.patch | 52 ++++++++++++++++++ ...-and-RTS-if-flow-control-is-disabled.patch | 40 -------------- openthread_border_router/CHANGELOG.md | 6 ++ openthread_border_router/Dockerfile | 14 ++--- openthread_border_router/build.yaml | 4 +- openthread_border_router/config.yaml | 2 +- .../etc/s6-overlay/s6-rc.d/otbr-web/run | 2 +- .../scripts/universal-silabs-flasher-up | 6 +- ...enThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl | Bin 107332 -> 0 bytes ...ead_RCP_v2.4.0.0_PA32_ot-rcp_hw_460800.gbl | Bin 108440 -> 0 bytes ...cp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl | Bin 0 -> 107888 bytes ...cp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl | Bin 0 -> 109028 bytes 15 files changed, 81 insertions(+), 106 deletions(-) rename openthread_border_router/{0002-rest-support-deleting-the-dataset.patch => 0001-support-deleting-the-dataset.patch} (90%) delete mode 100644 openthread_border_router/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch rename openthread_border_router/{0003-openthread-set-netif-route-metric-lower.patch => 0002-set-netif-route-metric-lower.patch} (73%) create mode 100644 openthread_border_router/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch delete mode 100644 openthread_border_router/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch delete mode 100644 openthread_border_router/rootfs/root/NabuCasa_SkyConnect_OpenThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl delete mode 100644 openthread_border_router/rootfs/root/NabuCasa_Yellow_OpenThread_RCP_v2.4.0.0_PA32_ot-rcp_hw_460800.gbl create mode 100644 openthread_border_router/rootfs/root/skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl create mode 100644 openthread_border_router/rootfs/root/yellow_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl diff --git a/openthread_border_router/0002-rest-support-deleting-the-dataset.patch b/openthread_border_router/0001-support-deleting-the-dataset.patch similarity index 90% rename from openthread_border_router/0002-rest-support-deleting-the-dataset.patch rename to openthread_border_router/0001-support-deleting-the-dataset.patch index f92d332ce60..578b67b09d5 100644 --- a/openthread_border_router/0002-rest-support-deleting-the-dataset.patch +++ b/openthread_border_router/0001-support-deleting-the-dataset.patch @@ -1,10 +1,7 @@ -From 2c0c78e5f4dc85a63934fc0c32c035a9c5b5babd Mon Sep 17 00:00:00 2001 -Message-ID: <2c0c78e5f4dc85a63934fc0c32c035a9c5b5babd.1692864566.git.stefan@agner.ch> -In-Reply-To: -References: +From e67d11327f3ee5f67107d866c2df575a2695727c Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 5 Jun 2023 23:41:50 +0200 -Subject: [PATCH] [rest] support deleting the dataset +Subject: [PATCH] support deleting the dataset Add REST API to support deleting the active or pending operational dataset. Deleting the active operational dataset requires the Thread @@ -58,7 +55,7 @@ index 2ba2a4dd56..2edc4af29a 100644 schemas: LeaderData: diff --git a/src/rest/resource.cpp b/src/rest/resource.cpp -index a60e9d9483..829835341a 100644 +index ce154c2e5b..1708faf6ab 100644 --- a/src/rest/resource.cpp +++ b/src/rest/resource.cpp @@ -767,12 +767,47 @@ exit: @@ -110,7 +107,7 @@ index a60e9d9483..829835341a 100644 GetDataset(aDatasetType, aRequest, aResponse); break; diff --git a/src/rest/resource.hpp b/src/rest/resource.hpp -index d79085dbfc..362e501471 100644 +index 0929dbcc50..cbe1702f2f 100644 --- a/src/rest/resource.hpp +++ b/src/rest/resource.hpp @@ -150,6 +150,7 @@ private: @@ -122,5 +119,5 @@ index d79085dbfc..362e501471 100644 void DeleteOutDatedDiagnostic(void); void UpdateDiag(std::string aKey, std::vector &aDiag); -- -2.42.0 +2.46.0 diff --git a/openthread_border_router/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch b/openthread_border_router/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch deleted file mode 100644 index f52c40e156e..00000000000 --- a/openthread_border_router/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 482f1323f8b8141b12d027afa71f77b93d88061b Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Mon, 24 Jun 2024 11:35:23 +0200 -Subject: [PATCH] [posix] fix build with custom netif prefix route set -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This fixes a build error when the pre-processor define -OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC is set: - -``` -/usr/src/ot-br-posix/third_party/openthread/repo/src/posix/platform/netif.cpp:486:26: error: ‘kLinkLocalScope’ does not name a type - 486 | static constexpr kLinkLocalScope = 2; - | ^~~~~~~~~~~~~~~ -compilation terminated due to -Wfatal-errors. -``` ---- - src/posix/platform/netif.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/posix/platform/netif.cpp b/src/posix/platform/netif.cpp -index ebb0e79a1..12bee4256 100644 ---- a/src/posix/platform/netif.cpp -+++ b/src/posix/platform/netif.cpp -@@ -483,7 +483,7 @@ static void UpdateUnicastLinux(otInstance *aInstance, const otIp6AddressInfo &aA - #endif - { - #if OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC > 0 -- static constexpr kLinkLocalScope = 2; -+ static constexpr uint8_t kLinkLocalScope = 2; - - if (aAddressInfo.mScope > kLinkLocalScope) - { --- -2.45.2 - diff --git a/openthread_border_router/0003-openthread-set-netif-route-metric-lower.patch b/openthread_border_router/0002-set-netif-route-metric-lower.patch similarity index 73% rename from openthread_border_router/0003-openthread-set-netif-route-metric-lower.patch rename to openthread_border_router/0002-set-netif-route-metric-lower.patch index fcc0504887f..1f8b4cde56b 100644 --- a/openthread_border_router/0003-openthread-set-netif-route-metric-lower.patch +++ b/openthread_border_router/0002-set-netif-route-metric-lower.patch @@ -1,8 +1,7 @@ -From e1857ad3e14df6e950d51cd1f76c12f1c0f59f18 Mon Sep 17 00:00:00 2001 -Message-ID: +From 7662acaaffb9cf730a8ba1d4f6014832dad23d0f Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Sat, 20 Jan 2024 16:31:28 +0100 -Subject: [PATCH] [openthread] set netif route metric lower +Subject: [PATCH] set netif route metric lower It seems that routes learned through IPv6 Neighbor Discovery Protocol get a metric of 128 when NetworkManager is used. Make sure the @@ -12,10 +11,10 @@ OpenThread network interface's own route is lower than that. 1 file changed, 1 insertion(+) diff --git a/third_party/openthread/CMakeLists.txt b/third_party/openthread/CMakeLists.txt -index f07625da96..0bcca3b79c 100644 +index 8ea4516e4e..97007a58cd 100644 --- a/third_party/openthread/CMakeLists.txt +++ b/third_party/openthread/CMakeLists.txt -@@ -105,6 +105,7 @@ target_compile_definitions(ot-config INTERFACE +@@ -106,6 +106,7 @@ target_compile_definitions(ot-config INTERFACE "-DOPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS=3" "-DOPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE=1" "-DOPENTHREAD_CONFIG_TCP_ENABLE=0" @@ -24,5 +23,5 @@ index f07625da96..0bcca3b79c 100644 ) -- -2.43.0 +2.46.0 diff --git a/openthread_border_router/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch b/openthread_border_router/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch new file mode 100644 index 00000000000..e088d212844 --- /dev/null +++ b/openthread_border_router/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch @@ -0,0 +1,52 @@ +From 4c8958890eb01448e08921bf3b313cb2169760d0 Mon Sep 17 00:00:00 2001 +From: Stefan Agner +Date: Fri, 16 Aug 2024 11:46:17 +0200 +Subject: [PATCH] [logging] support disable syslog for otbr-web as well + +Commit c88a5fce6659 ("[logging] add command line arg to disable syslog") +allows to disable logging to syslog via command line argument. Support +the same -s command line argument for otbr-web as well. +--- + src/web/main.cpp | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/src/web/main.cpp b/src/web/main.cpp +index 922038d88c..8b2c20c4e6 100644 +--- a/src/web/main.cpp ++++ b/src/web/main.cpp +@@ -76,9 +76,10 @@ int main(int argc, char **argv) + otbrLogLevel logLevel = OTBR_LOG_INFO; + int ret = 0; + int opt; +- uint16_t port = OT_HTTP_PORT; ++ uint16_t port = OT_HTTP_PORT; ++ bool syslogDisable = false; + +- while ((opt = getopt(argc, argv, "d:I:p:va:")) != -1) ++ while ((opt = getopt(argc, argv, "d:I:p:va:s")) != -1) + { + switch (opt) + { +@@ -103,6 +104,10 @@ int main(int argc, char **argv) + ExitNow(); + break; + ++ case 's': ++ syslogDisable = true; ++ break; ++ + default: + fprintf(stderr, "Usage: %s [-d DEBUG_LEVEL] [-I interfaceName] [-p port] [-a listenAddress] [-v]\n", + argv[0]); +@@ -111,7 +116,7 @@ int main(int argc, char **argv) + } + } + +- otbrLogInit(argv[0], logLevel, true, false); ++ otbrLogInit(argv[0], logLevel, true, syslogDisable); + otbrLogInfo("Running %s", OTBR_PACKAGE_VERSION); + + if (interfaceName == nullptr) +-- +2.46.0 + diff --git a/openthread_border_router/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch b/openthread_border_router/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch deleted file mode 100644 index 53fe40f3a2f..00000000000 --- a/openthread_border_router/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b5adc7fb59939a5054e2e2d301b26b5132254262 Mon Sep 17 00:00:00 2001 -From: Tim Lunn -Date: Mon, 1 Jul 2024 14:27:40 +1000 -Subject: [PATCH] Deassert DTR and RTS if flow control is disabled - -Many USB radio devices (particularly those based on TI CC2652) have -reset and bootloader activation directly connected to DTR/RTS lines. -These devices will fail to start, in the default state where both -DTR/RTS are asserted on connection. - -This patch ensures flow control is disabled and both DTR and RTS are -deasserted on startup while configuring the terminal. ---- - src/posix/platform/hdlc_interface.cpp | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/src/posix/platform/hdlc_interface.cpp b/src/posix/platform/hdlc_interface.cpp -index 12726fc72..056224786 100644 ---- a/src/posix/platform/hdlc_interface.cpp -+++ b/src/posix/platform/hdlc_interface.cpp -@@ -600,6 +600,16 @@ int HdlcInterface::OpenFile(const Url::Url &aRadioUrl) - { - tios.c_cflag |= CRTSCTS; - } -+ else -+ { -+ tios.c_cflag &= ~(CRTSCTS); -+ -+ // Deassert DTR and RTS -+ int flags; -+ VerifyOrExit((ioctl(fd, TIOCMGET, &flags)) != -1, perror("tiocmget")); -+ flags &= ~(TIOCM_DTR | TIOCM_RTS); -+ VerifyOrExit((ioctl(fd, TIOCMSET, &flags)) != -1, perror("tiocmset")); -+ } - - VerifyOrExit((rval = cfsetspeed(&tios, static_cast(speed))) == 0, perror("cfsetspeed")); - rval = tcsetattr(fd, TCSANOW, &tios); --- -2.43.0 - diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 769314ea3ce..84de0218483 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.10.0 + +- Bump to OTBR POSIX version b66cabfaa0 (2024-08-14 08:01:56 -0700) +- Avoid OTBR Web spamming system console +- Bump universal SiLabs flasher to 0.0.22 + ## 2.9.1 - Abort firmware flasher if network device is selected diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index dc366a69439..e9aa7e8b497 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -16,11 +16,10 @@ ENV WEB_GUI 1 ENV REST_API 1 ENV DOCKER 1 -COPY 0002-rest-support-deleting-the-dataset.patch /usr/src -COPY 0003-openthread-set-netif-route-metric-lower.patch /usr/src +COPY 0001-support-deleting-the-dataset.patch /usr/src +COPY 0002-set-netif-route-metric-lower.patch /usr/src +COPY 0003-logging-support-disable-syslog-for-otbr-web-as-well.patch /usr/src COPY 0001-channel-monitor-disable-by-default.patch /usr/src -COPY 0002-posix-fix-build-with-custom-netif-prefix-route-set.patch /usr/src -COPY 0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch /usr/src # Required and installed (script/bootstrap) can be removed after build ENV OTBR_BUILD_DEPS build-essential ninja-build cmake wget ca-certificates \ libreadline-dev libncurses-dev libcpputest-dev libdbus-1-dev libavahi-common-dev \ @@ -55,13 +54,12 @@ RUN \ && git checkout ${OTBR_VERSION} \ && git submodule update --init \ && ./script/bootstrap \ - && patch -p1 < /usr/src/0002-rest-support-deleting-the-dataset.patch \ - && patch -p1 < /usr/src/0003-openthread-set-netif-route-metric-lower.patch \ + && patch -p1 < /usr/src/0001-support-deleting-the-dataset.patch \ + && patch -p1 < /usr/src/0002-set-netif-route-metric-lower.patch \ + && patch -p1 < /usr/src/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch \ && ( \ cd third_party/openthread/repo \ && patch -p1 < /usr/src/0001-channel-monitor-disable-by-default.patch \ - && patch -p1 < /usr/src/0002-posix-fix-build-with-custom-netif-prefix-route-set.patch \ - && patch -p1 < /usr/src/0004-Deassert-DTR-and-RTS-if-flow-control-is-disabled.patch \ ) \ # Mimic rt_tables_install \ && echo "88 openthread" >> /etc/iproute2/rt_tables \ diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index 646e894eb04..1301515a07a 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -3,5 +3,5 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm args: - OTBR_VERSION: 41474ce29ab45dd24c393d899c9f461844dc1e34 - UNIVERSAL_SILABS_FLASHER: 0.0.20 + OTBR_VERSION: b66cabfaa0b6829314e8c326c4f92bfbaa55ad9b + UNIVERSAL_SILABS_FLASHER: 0.0.22 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 92af7c7d89c..4b48145e0b7 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.9.1 +version: 2.10.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run index 53fc7e616a0..951719294d3 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run @@ -7,4 +7,4 @@ declare otbr_web_port otbr_web_port="$(bashio::addon.port 8080)" -exec /usr/sbin/otbr-web -I wpan0 -d6 -p "${otbr_web_port}" +exec /usr/sbin/otbr-web -I wpan0 -d6 -s -p "${otbr_web_port}" diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 0cda7351658..a7a982fdb4a 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -32,7 +32,7 @@ fi # Assume to run on Yellow if UART4 is mapped to ttyAMA1 if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then bashio::log.info "Detected Home Assistant Yellow" - firmware="NabuCasa_Yellow_OpenThread_RCP_v2.4.0.0_PA32_ot-rcp_hw_460800.gbl" + firmware="yellow_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl" gpio_reset_flag="--bootloader-reset yellow" else # Check device manufacturer/product information @@ -52,9 +52,9 @@ else bashio::log.info "Checking ${device} identifying ${usb_product} from ${usb_manufacturer}." if [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "SkyConnect"* ]]; then - firmware="NabuCasa_SkyConnect_OpenThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl" + firmware="skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl" elif [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "Home Assistant Connect ZBT-1"* ]]; then - firmware="NabuCasa_SkyConnect_OpenThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl" + firmware="skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl" elif [[ "${usb_manufacturer}" == "ITEAD" && "${usb_product}" == "SONOFF Zigbee 3.0 USB Dongle Plus V2" ]]; then firmware="ot-rcp-v2.4.2.0-zbdonglee-460800.gbl" gpio_reset_flag="--bootloader-reset sonoff" diff --git a/openthread_border_router/rootfs/root/NabuCasa_SkyConnect_OpenThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl b/openthread_border_router/rootfs/root/NabuCasa_SkyConnect_OpenThread_RCP_v2.4.0.0_ot-rcp_hw_460800.gbl deleted file mode 100644 index efc4b32e91202a819bcf7f782a3c716ddf855de6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107332 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 C0NV@z diff --git a/openthread_border_router/rootfs/root/skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl b/openthread_border_router/rootfs/root/skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl new file mode 100644 index 0000000000000000000000000000000000000000..d351e375f7a385d935be666afe182bee3838fb1f GIT binary patch literal 107888 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%0Dp;{7$I<&5$z{cG~_0GVJ%K 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 KV2YhTv;GIT)NNn@ literal 0 HcmV?d00001 diff --git a/openthread_border_router/rootfs/root/yellow_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl b/openthread_border_router/rootfs/root/yellow_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl new file mode 100644 index 0000000000000000000000000000000000000000..f15fc7edee8402ea4edc39ed5fcf8939f65e0ad2 GIT binary patch literal 109028 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 literal 0 HcmV?d00001 From 32009349f2f6a78ad9f87d31da8895e6ba00892a Mon Sep 17 00:00:00 2001 From: dim-0 <1191898+dim-0@users.noreply.github.com> Date: Fri, 30 Aug 2024 15:40:13 +0200 Subject: [PATCH 086/346] letsencrypt: Added support for GoDaddy DNS challenge (#3736) * Added Support for GoDaddy DNS Challenge - Updated configuration options - Added Documentation for GoDaddy DNS Challenge and configuration - Added GoDaddy DNS Challenge to script * Adjusted versioning Modified versions for the certbot-dns-godaddy library Adjusted the Addon's version * Uncommented Image Uncommented Container Image * Update build.yaml Reduced certbot-dns-godaddy version to 2.7.4, to meet dependency requirements * Update run Removed ttl option, as not supported with certbot-dns-godaddy version 2.7.4 * Update config.yaml Removed ttl option, as not supported with certbot-dns-godaddy version 2.7.4 * Update DOCS.md Removed ttl option, as not supported with certbot-dns-godaddy version 2.7.4 * Update DOCS.md Satisfying CodeRabbit's request to use more obvious placeholders in GoDaddy's configuration --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 24 +++++++++++++++++++ letsencrypt/Dockerfile | 4 +++- letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 6 +++-- .../rootfs/etc/cont-init.d/file-structure.sh | 2 ++ .../rootfs/etc/services.d/lets-encrypt/run | 6 +++++ 7 files changed, 44 insertions(+), 3 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index bbff04faef2..d5e6a460dfc 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.1.3 + +- Add godaddy.com DNS support + ## 5.1.2 - Fixes subdomain DNS challenge not working for Simply.com diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 3636b15fffd..4061c176e4c 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -52,6 +52,7 @@ dns-duckdns dns-dreamhost dns-dynu dns-gehirn +dns-godaddy dns-google dns-hetzner dns-infomaniak @@ -107,6 +108,8 @@ google_domains_zone: '' hetzner_api_token: '' gehirn_api_token: '' gehirn_api_secret: '' +godaddy_secret: '' +godaddy_key: '' infomaniak_api_token: '' joker_username: '' joker_password: '' @@ -352,6 +355,27 @@ on the DNS zone to be used for authentication. +

+ GoDaddy DNS challenge + + ```yaml + email: your.email@example.com + domains: + - subdomain.home-assistant.io + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-godaddy + godaddy_secret: YOUR_GODADDY_SECRET + godaddy_key: YOUR_GODADDY_KEY + ``` + +To obtain the ACME DNS API Key and Secret, follow the instructions here: + + +
+
Google Cloud DNS challenge diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 6cda377d9d1..c5724867fdc 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -32,6 +32,7 @@ ARG \ CERTBOT_GANDI_VERSION \ CERTBOT_DNS_DOMAINOFFENSIVE_VERSION \ CERTBOT_DNS_PLESK_VERSION \ + CERTBOT_DNS_GODADDY_VERSION \ ACME_VERSION RUN \ @@ -47,7 +48,7 @@ RUN \ openssl-dev \ cargo \ && pip3 install --no-cache-dir --find-links \ - "https://wheels.home-assistant.io/alpine-$(cut -d '.' -f 1-2 < /etc/alpine-release)/${BUILD_ARCH}/" \ + "https://wheels.home-assistant.io/alpine-$(cut -d '.' -f 1-2 < /etc/alpine-release)/${BUILD_ARCH}/" \ cloudflare==${CLOUDFLARE_VERSION} \ cryptography==${CRYPTOGRAPHY_VERSION} \ certbot==${CERTBOT_VERSION} \ @@ -62,6 +63,7 @@ RUN \ certbot-dns-duckdns==${CERTBOT_DNS_DUCKDNS_VERSION} \ certbot-dns-dynu-dev==${CERTBOT_DNS_DYNU_VERSION} \ certbot-dns-gehirn==${CERTBOT_VERSION} \ + certbot-dns-godaddy==${CERTBOT_DNS_GODADDY_VERSION} \ certbot-dns-google==${CERTBOT_VERSION} \ certbot-dns-google-domains==${CERTBOT_DNS_GOOGLE_DOMAINS_VERSION} \ certbot-dns-hetzner==${CERTBOT_DNS_HETZNER_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index ab47a75287d..6557547244f 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -37,4 +37,5 @@ args: CERTBOT_DNS_DREAMHOST_VERSION: 1.0 CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 CERTBOT_DNS_PLESK_VERSION: 0.3.0 + CERTBOT_DNS_GODADDY_VERSION: 2.7.4 ACME_VERSION: 2.7.4 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 991795a607d..646f897d290 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.1.2 +version: 5.1.3 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -65,6 +65,8 @@ schema: gandi_sharing_id: str? gehirn_api_secret: str? gehirn_api_token: str? + godaddy_secret: str? + godaddy_key: str? google_creds: str? google_domains_access_token: str? google_domains_zone: str? @@ -99,7 +101,7 @@ schema: propagation_seconds: int(60,3600)? provider: "list(dns-azure|dns-cloudflare|dns-cloudns|dns-desec|\ dns-digitalocean|dns-directadmin|dns-dnsimple|dns-dnsmadeeasy|\ - dns-duckdns|dns-dynu|dns-gehirn|dns-google|dns-google-domains|\ + dns-duckdns|dns-dynu|dns-gehirn|dns-godaddy|dns-google|dns-google-domains|\ dns-hetzner|dns-infomaniak|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index ade1ef89e23..eeba3d90bb2 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -18,6 +18,8 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_dynu_auth_token = $(bashio::config 'dns.dynu_auth_token')\n" \ "dns_gehirn_api_token = $(bashio::config 'dns.gehirn_api_token')\n" \ "dns_gehirn_api_secret = $(bashio::config 'dns.gehirn_api_secret')\n" \ + "dns_godaddy_secret = $(bashio::config 'dns.godaddy_secret')\n" \ + "dns_godaddy_key = $(bashio::config 'dns.godaddy_key')\n" \ "dns_hetzner_api_token = $(bashio::config 'dns.hetzner_api_token')\n" \ "dns_infomaniak_token = $(bashio::config 'dns.infomaniak_api_token')\n" \ "dns_joker_username = $(bashio::config 'dns.joker_username')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 3464a3c2ad8..14c54fa2cab 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -139,6 +139,12 @@ elif [ "${DNS_PROVIDER}" == "dns-gandi" ]; then fi PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}" ) +# GoDaddy +elif [ "${DNS_PROVIDER}" == "dns-godaddy" ]; then + bashio::config.require 'dns.godaddy_secret' + bashio::config.require 'dns.godaddy_key' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # Hetzner elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-hetzner" ]; then bashio::config.require 'dns.hetzner_api_token' From cca82beace8c3838f350998738d146db41d64301 Mon Sep 17 00:00:00 2001 From: Jannick Fahlbusch Date: Fri, 30 Aug 2024 18:40:34 +0200 Subject: [PATCH 087/346] Upgrade deConz to v2.28.1 (#3708) * Upgrade deConz to v2.27.6 * Fix typo in Deconz Version Co-authored-by: Maxime D. * Use Debian Bookworm as base WiringPi fails compilation due to missing symbols - according to the deCONZ forum it is not required anymore, therefore I removed it. Debian Buster is out of support since a few weeks now. This should be updated to Bookworm. The new release has no package for wmii anymore and manual compilation seems to be not possible as various required libraries are not available anymore (Not even as source). I've changed the window manager to dwm for now. Additionally the netcat package has been renamed to netcat-traditional. * Upgrade deCONZ to v2.28.1 * Let this update be v7.0.0 of the addon * Remove old otau script usage --------- Co-authored-by: Maxime D. --- deconz/CHANGELOG.md | 8 +++++- deconz/Dockerfile | 29 ++------------------ deconz/build.yaml | 8 +++--- deconz/config.yaml | 2 +- deconz/rootfs/etc/services.d/otau-deconz/run | 10 ------- 5 files changed, 15 insertions(+), 42 deletions(-) delete mode 100755 deconz/rootfs/etc/services.d/otau-deconz/run diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index 38e38e628b7..41026268f66 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 7.0.0 + +- Bump deCONZ to 2.28.1 +- Use debian bookworm for all arch types +- Use dwm instead of wmii as window manager + ## 6.23.0 - Bump deCONZ to 2.25.3 @@ -23,7 +29,7 @@ ## 6.18.0 - Bump deCONZ to 2.20.1 - + ## 6.17.1 - Bump deCONZ to 2.19.3 diff --git a/deconz/Dockerfile b/deconz/Dockerfile index 77be1453cce..3734a30ed36 100644 --- a/deconz/Dockerfile +++ b/deconz/Dockerfile @@ -11,6 +11,7 @@ RUN \ && apt-get update \ && apt-get install -y --no-install-recommends \ curl \ + dwm \ iproute2 \ iputils-ping \ kmod \ @@ -24,7 +25,7 @@ RUN \ libqt5widgets5 \ libqt5qml5 \ lsof \ - netcat \ + netcat-traditional \ nginx \ novnc \ sqlite3 \ @@ -32,33 +33,9 @@ RUN \ tigervnc-standalone-server \ udev \ wget \ - wmii \ xfonts-base \ xfonts-scalable \ - && rm -rf /var/lib/apt/lists/* \ - && if [[ "armhf aarch64" = *"$BUILD_ARCH"* ]]; \ - then \ - apt-get update \ - && apt-get install -y --no-install-recommends \ - build-essential \ - git \ - && git clone --depth 1 https://github.com/WiringPi/WiringPi /usr/src/wiringpi \ - && cd /usr/src/wiringpi/wiringPi \ - && make \ - && make install \ - && cd ../devLib \ - && make \ - && make install \ - && cd ../gpio \ - && make \ - && make install \ - && apt-get purge -y --auto-remove \ - build-essential \ - git \ - && rm -rf \ - /var/lib/apt/lists/* \ - /usr/src/wiringpi; \ - fi + && rm -rf /var/lib/apt/lists/* # Install deCONZ ARG DECONZ_VERSION diff --git a/deconz/build.yaml b/deconz/build.yaml index 5072ef8c9da..9fb3332a1cb 100644 --- a/deconz/build.yaml +++ b/deconz/build.yaml @@ -1,10 +1,10 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base-debian:buster - amd64: ghcr.io/home-assistant/amd64-base-debian:buster - armhf: ghcr.io/home-assistant/armhf-base-raspbian:buster + aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm + amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm + armhf: ghcr.io/home-assistant/armhf-base-raspbian:bookworm codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - DECONZ_VERSION: 2.25.3 + DECONZ_VERSION: 2.28.1 diff --git a/deconz/config.yaml b/deconz/config.yaml index 8727163ba55..5224c0ab4da 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.23.0 +version: 7.0.0 slug: deconz name: deCONZ description: >- diff --git a/deconz/rootfs/etc/services.d/otau-deconz/run b/deconz/rootfs/etc/services.d/otau-deconz/run deleted file mode 100755 index 109535eb7bd..00000000000 --- a/deconz/rootfs/etc/services.d/otau-deconz/run +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/with-contenv bashio -# ============================================================================== -# Download available firmware update for IKEA -# ============================================================================== - -# Start OTA updates for deCONZ -bashio::log.info "Running the deCONZ OTA updater..." -deCONZ-otau-dl.sh &> /dev/null - -exec sleep 259200 From 5b8fa76fa32fa717d29ecbfde7ac0daa892f9c0d Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 2 Sep 2024 14:35:16 +0200 Subject: [PATCH 088/346] matter_server: Add optional settings for development and testing (#3744) * matter_server: Add support for extra Matter Server arguments This adds an optional configuration to pass additional command line arguments to the Matter Server. This is useful for not commonly used settings (e.g. for testing and debugging) which we don't want to expose as actual add-on configuration. * matter_server: Allow to set a custom version to be installed Add an option to install a custom Matter Server and Matter SDK (CHIP wheels) version. This is an extension to the existing beta flag, but instead of simply allowing the latest version, a version can be specified. This can be helpful for development and testing. * Apply suggestions from code review Co-authored-by: Martin Hjelmare --------- Co-authored-by: Martin Hjelmare --- matter_server/CHANGELOG.md | 5 ++++ matter_server/config.yaml | 6 ++++- .../etc/s6-overlay/s6-rc.d/matter-server/run | 24 ++++++++++++++++--- matter_server/translations/en.yaml | 18 ++++++++++++++ 4 files changed, 49 insertions(+), 4 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 51c8c23e7d0..c7b3dfb9cc3 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 6.4.2 + +- Add support for custom Matter Server arguments +- Add support to install custom Matter Server and Matter SDK (CHIP) versions + ## 6.4.1 - Bump Python Matter Server to [6.4.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.4.0) diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 4fc18f5314c..882a3ee66a5 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.4.1 +version: 6.4.2 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. @@ -34,6 +34,10 @@ schema: beta: bool? enable_test_net_dcl: bool? bluetooth_adapter_id: int? + matter_server_args: + - str? + matter_server_version: str? + matter_sdk_wheels_version: str? ports: 5580/tcp: null stage: stable diff --git a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run index 057faa0a890..e51690c9d52 100755 --- a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run +++ b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run @@ -8,6 +8,8 @@ declare server_port declare log_level declare log_level_sdk declare primary_interface +declare matter_server_version +declare chip_version matter_server_args=() extra_args=() @@ -19,9 +21,21 @@ log_level=$(bashio::string.lower "$(bashio::config log_level info)") # Make Matter SDK log level currently default to error log_level_sdk=$(bashio::string.lower "$(bashio::config log_level_sdk error)") -if bashio::config.true "beta"; then - bashio::log.info 'Upgrading Python Matter Server to latest pre-release' - pip3 install --upgrade --pre python-matter-server[server] +if bashio::config.has_value "matter_server_version"; then + matter_server_version=$(bashio::config 'matter_server_version') + bashio::log.info "Installing Python Matter Server ${matter_server_version}" + pip3 install --pre python-matter-server[server]=="${matter_server_version}" +elif bashio::config.true "beta"; then + bashio::log.info 'Upgrading Python Matter Server to latest pre-release' + pip3 install --upgrade --pre python-matter-server[server] +fi + +if bashio::config.has_value "matter_sdk_wheels_version"; then + chip_version=$(bashio::config 'matter_sdk_wheels_version') + bashio::log.info "Installing Matter SDK ${chip_version}" + pip3 install --pre --no-dependencies \ + home-assistant-chip-clusters=="${chip_version}" \ + home-assistant-chip-core=="${chip_version}" fi # Bind to internal hassio network only unless user requests to expose @@ -51,6 +65,10 @@ if bashio::config.has_value "bluetooth_adapter_id"; then extra_args+=('--bluetooth-adapter' $(bashio::config 'bluetooth_adapter_id')) fi +if bashio::config.has_value "matter_server_args"; then + extra_args+=($(bashio::config 'matter_server_args')) +fi + bashio::log.info "Using '${primary_interface}' as primary network interface." # Send out discovery information to Home Assistant diff --git a/matter_server/translations/en.yaml b/matter_server/translations/en.yaml index 132d44259f1..d7e4432f33c 100644 --- a/matter_server/translations/en.yaml +++ b/matter_server/translations/en.yaml @@ -24,5 +24,23 @@ configuration: Home Assistant Companion app commissioning method is recommended as it is better tested and allows to commission directly in proximity of the device itself. + matter_server_args: + name: Extra Matter Server arguments + description: >- + This allows to pass additional command line arguments to the Python Matter + Server. Use `--help` to get a list of possible arguments. Note that + arguments are also added by the startup script controlled by other add-on + options. + matter_server_version: + name: Matter Server version + description: >- + Install custom Matter Server version. WARNING: An older version might have + an incompatible storage format! Use this feature with caution! Make sure + you have a recent backup of the add-on! + matter_sdk_wheels_version: + name: Matter SDK wheels version + description: >- + Install custom Matter SDK wheels version. NOTE: The API might not be + compatible with the Python Matter server. network: 5580/tcp: Matter Server WebSocket server port. From e9dc73b952c1d02ec54df9cc51278382edc0fba1 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 5 Sep 2024 09:37:16 +0200 Subject: [PATCH 089/346] letsencrypt: Drop Google Domains support (#3750) Google Domains is no longer operational, all domains have been transferred to Squarespace. Squarespace does not support ACME. Drop Google Domains support for the Let's Encrypt add-on. --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 26 ------------------- letsencrypt/Dockerfile | 2 -- letsencrypt/build.yaml | 1 - letsencrypt/config.yaml | 6 ++--- .../rootfs/etc/cont-init.d/file-structure.sh | 11 ++++---- .../rootfs/etc/services.d/lets-encrypt/run | 4 --- 7 files changed, 12 insertions(+), 42 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index d5e6a460dfc..121deae6a00 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.1.4 + +- Drop Google Domains support (the new operator Squarespace has no ACME support) + ## 5.1.3 - Add godaddy.com DNS support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 4061c176e4c..b17835eeea1 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -103,8 +103,6 @@ dnsmadeeasy_secret_key: '' duckdns_token: '' dynu_auth_token: '' google_creds: '' -google_domains_access_token: '' -google_domains_zone: '' hetzner_api_token: '' gehirn_api_token: '' gehirn_api_secret: '' @@ -402,30 +400,6 @@ You can find additional information regarding the required permissions in the "c
-
- Google Domains DNS challenge - - ```yaml - email: your.email@example.com - domains: - - subdomain.home-assistant.io - certfile: fullchain.pem - keyfile: privkey.pem - challenge: dns - dns: - provider: dns-google-domains - google_domains_access_token: XXXX - google_domains_zone: home-assistant.io - ``` - -To obtain the ACME DNS API token follow the instructions here: - - - -The optional `google_domains_zone` option specifies the domain name registered with Google Domains. If not specified, it is guessed based on the public suffix list. - -
-
Infomaniak DNS challenge diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index c5724867fdc..43f96cda67e 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -15,7 +15,6 @@ ARG \ CERTBOT_DNS_DUCKDNS_VERSION \ CERTBOT_DNS_DYNU_VERSION \ CERTBOT_DNS_EASYDNS_VERSION \ - CERTBOT_DNS_GOOGLE_DOMAINS_VERSION \ CERTBOT_DNS_HE_VERSION \ CERTBOT_DNS_HETZNER_VERSION \ CERTBOT_DNS_INFOMANIAK_VERSION \ @@ -65,7 +64,6 @@ RUN \ certbot-dns-gehirn==${CERTBOT_VERSION} \ certbot-dns-godaddy==${CERTBOT_DNS_GODADDY_VERSION} \ certbot-dns-google==${CERTBOT_VERSION} \ - certbot-dns-google-domains==${CERTBOT_DNS_GOOGLE_DOMAINS_VERSION} \ certbot-dns-hetzner==${CERTBOT_DNS_HETZNER_VERSION} \ certbot-dns-infomaniak==${CERTBOT_DNS_INFOMANIAK_VERSION} \ certbot-dns-joker==${CERTBOT_DNS_JOKER_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 6557547244f..e4338321c25 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -26,7 +26,6 @@ args: CERTBOT_DNS_JOKER_VERSION: 1.1.0 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 CERTBOT_DNS_NORISNETWORK_VERSION: 0.2.1 - CERTBOT_DNS_GOOGLE_DOMAINS_VERSION: 0.1.11 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 CERTBOT_DNS_PORKBUN_VERSION: 0.8.0 CERTBOT_DNS_WEBSUPPORT_VERSION: 2.0.1 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 646f897d290..35fe5a7f93c 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.1.3 +version: 5.1.4 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -68,8 +68,6 @@ schema: godaddy_secret: str? godaddy_key: str? google_creds: str? - google_domains_access_token: str? - google_domains_zone: str? hetzner_api_token: str? infomaniak_api_token: str? linode_key: str? @@ -101,7 +99,7 @@ schema: propagation_seconds: int(60,3600)? provider: "list(dns-azure|dns-cloudflare|dns-cloudns|dns-desec|\ dns-digitalocean|dns-directadmin|dns-dnsimple|dns-dnsmadeeasy|\ - dns-duckdns|dns-dynu|dns-gehirn|dns-godaddy|dns-google|dns-google-domains|\ + dns-duckdns|dns-dynu|dns-gehirn|dns-godaddy|dns-google|\ dns-hetzner|dns-infomaniak|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index eeba3d90bb2..0fbe8a09391 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -63,7 +63,6 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_inwx_username = $(bashio::config 'dns.inwx_username')\n" \ "dns_inwx_password = $(bashio::config 'dns.inwx_password')\n" \ "dns_inwx_shared_secret = $(bashio::config 'dns.inwx_shared_secret')\n" \ - "dns_google_domains_access_token = $(bashio::config 'dns.google_domains_access_token')\n" \ "dns_cloudns_auth_password = $(bashio::config 'dns.cloudns_auth_password')\n" \ "dns_dreamhost_baseurl = $(bashio::config 'dns.dreamhost_baseurl')\n" \ "dns_dreamhost_api_key = $(bashio::config 'dns.dreamhost_api_key')\n" \ @@ -76,10 +75,6 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_websupport_identifier = $(bashio::config 'dns.websupport_identifier')\n" \ "dns_websupport_secret_key = $(bashio::config 'dns.websupport_secret_key')\n" > /data/dnsapikey -if bashio::config.exists 'dns.google_domains_zone'; then - echo -e "dns_google_domains_zone = $(bashio::config 'dns.google_domains_zone')\n" >> /data/dnsapikey -fi - # ClouDNS # Only a single non-empty auth option must be in /data/dnsapikey when using ClouDNS to avoid a certbot error if bashio::config.exists 'dns.cloudns_auth_id'; then @@ -113,3 +108,9 @@ fi if bashio::config.exists 'keytype'; then bashio::addon.option 'keytype' fi +if bashio::config.exists 'dns.google_domains_access_token'; then + bashio::addon.option 'dns.google_domains_access_token' +fi +if bashio::config.exists 'dns.google_domains_zone'; then + bashio::addon.option 'dns.google_domains_zone' +fi diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 14c54fa2cab..ad5a0461026 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -56,10 +56,6 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-google" ]; then bashio::log.info "Google Credentials File doesnt exists in folder share." fi PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/${GOOGLE_CREDS}") -#Google Domains -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-google-domains" ]; then - bashio::config.require 'dns.google_domains_access_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") #Namecheap elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-namecheap" ]; then bashio::config.require 'dns.namecheap_username' From e514344e97a18162331bece2fe2d2e90a38d926c Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 10 Sep 2024 18:14:02 +0200 Subject: [PATCH 090/346] matter_server: Bump Python Matter server to 6.5.0 (#3756) Update to the lastest Python Matter server. This especially adds some fixes around subscription recovery, making sure subscriptions get setup correctly even if a first attempt fails. It also includes new custom attributes for Eve Weather. --- matter_server/CHANGELOG.md | 4 ++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index c7b3dfb9cc3..45912f59e5e 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.5.0 + +- Bump Python Matter Server to [6.5.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.5.0) + ## 6.4.2 - Add support for custom Matter Server arguments diff --git a/matter_server/build.yaml b/matter_server/build.yaml index c679bd21095..8991dd9462e 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.4.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.4.0 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.5.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.5.0 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 882a3ee66a5..e21d68bb559 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.4.2 +version: 6.5.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From 216238efe25096e1e4d647956a9d937ef833b431 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Thu, 12 Sep 2024 13:47:40 +0200 Subject: [PATCH 091/346] Bump zwave-js to 13.3.0 and zwave-js-server to 1.38.0 (#3758) --- zwave_js/CHANGELOG.md | 92 +++++++++++++++++++++++++++++++++++++++++++ zwave_js/build.yaml | 4 +- zwave_js/config.yaml | 2 +- 3 files changed, 95 insertions(+), 3 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 4e8e553f5f5..0340e242203 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,97 @@ # Changelog +## 0.7.0 + +### Features + +- Z-Wave JS: Add support for EU Long Range +- Z-Wave JS: Support learn mode to become a secondary controller +- Z-Wave JS: Add method to query supported RF regions and their info +- Z-Wave JS: Support Firmware Update Meta Data CC v8 +- Z-Wave JS: Implement 32-bit addressed NVM operations +- Z-Wave JS: Add methods to reset SPAN of one or all nodes +- Z-Wave JS: Add method to enumerate all device classes +- Z-Wave JS: Update list of manufacturers and existing CCs +- Z-Wave JS: Add inclusion state changed event +- Z-Wave JS: Add support for new notifications +- Z-Wave JS: Bump version of Association CC and Multi Channel Association CC +- Z-Wave JS: Add link reliability check feature +- Z-Wave JS: Enable hardware watchdog on 700/800 series controllers +- Z-Wave JS: Add method to query supported RF regions +- Z-Wave JS: Add notification variable for Door/Window tilt state + +### Bug fixes + +- Fix missing values in endpoint dump +- Z-Wave JS: Preserve granted security classes of provisioning entries when switching protocols +- Z-Wave JS: Version of Humidity Control Mode CC is 1, not 2 +- Z-Wave JS: Abort S2 bootstrapping when KEXSetEcho has reserved bits set +- Z-Wave JS: Fixed an issue causing non-implemented CCs to be dropped before applications could handle them +- Z-Wave JS: Fixed an issue causing all ZWLR multicast groups to be considered identical +- Z-Wave JS: Fixed a startup crash on Zniffers older than FW 2.55 +- Z-Wave JS: Fixed latency calculation in link reliability check, distinguish between latency and RTT +- Z-Wave JS: Fixed a regression that could cause incorrect units and missing sensor readings +- Z-Wave JS: Don't verify delivery of S2 frames in link reliability check +- Z-Wave JS: Reset aborted flags when starting link reliability or route health check +- Z-Wave JS: Supported CCs of endpoints are now reset during a re-interview +- Z-Wave JS: Basic CC is no longer automatically marked as supported if included in the list of securely supported commands +- Z-Wave JS: Set highest version also for Basic CC if Version CC is not supported +- Z-Wave JS: Fixed an issue where CC values could be returned for the controller node +- Z-Wave JS: Fixed a regression from v12.12.3 would result in Basic CC values being exposed unnecessarily for some devices +- Z-Wave JS: Fixed an issue where Basic CC values would be exposed unnecessarily for devices with a compat flag that maps Basic CC Set to a different CC +- Z-Wave JS: When responding to Version CC Get queries, Z-Wave JS's own version is now included as the Firmware 1 version +- Z-Wave JS: When receiving a notification with an unknown notification type, the created "unknown" value now correctly has metadata set +- Z-Wave JS: When receiving an idle notification, the values for unknown notification events are now also reset to idle +- Z-Wave JS: Auto-enable all supported Barrier Operator signaling subsystem during the interview +- Z-Wave JS: Fixed an issue where the watchdog feature could cause Z-Wave JS to stall after attempting controller recovery +- Z-Wave JS: Reset controller again when transmitting to a problematic node makes the controller become unresponsive again after automatic recovery +- Z-Wave JS: Node interviews are now aborted in more cases when node is determined to be dead +- Z-Wave JS: Expose Basic CC currentValue when certain compat flags are set +- Z-Wave JS: Fixed an issue where value metadata for unknown notification events with known notification types would only be created if the CC version was exactly 2 + +### Config file changes + +- Add new fingerprint for TZ45 thermostat +- Add alarm mapping for Schlage lock CKPD FE599 +- Add fingerprint for Climax Technology SDCO-1 +- Add Shelly Wave Pro 3 and Wave Pro Shutter +- Remove endpoint workaround for Zooz ZEN30, FW 3.20+ +- Add ZVIDAR ZW872 800 series Pi Module +- Add ZVIDAR ZW871 800 series USB Controller +- Rename Zvidar config file name Z-PI to Z-PI.json +- Update Zooz ZEN30 to latest revisions +- Support MCO Home MH-S412 parameters properly +- Add Ring Flood Freeze Sensor +- Override user code count for Yale ZW2 locks to expose admin code +- Add GDZW7-ECO Ecolink 700 Series Garage Door Controller +- Correct label for Remote 3-Way Switch parameter on Zooz ZEN32 +- Add UltraPro 700 Series Z-Wave In-Wall Smart Dimmer +- Add Yale Assure 2 Biometric Deadbolt locks +- Add iDevices In-Wall Smart Dimmer +- Support Comet parameters properly +- Update label of Nortek GD00Z-6, -7, -8 +- Disable Supervision for Zooz ZSE11 +- Clarify parameters and units for Everspring AN158 +- Force-add support for Multilevel Switch CC to FGRM-222, remove Binary Switch CC +- Add ZVIDAR Z-PI 800 Series PI Module + +### Detailed changelogs + +- [Z-Wave JS 13.3.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.3.0) +- [Z-Wave JS 13.2.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.2.0) +- [Z-Wave JS 13.1.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.1.0) +- [Z-Wave JS 13.0.3](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.0.3) +- [Z-Wave JS 13.0.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.0.2) +- [Z-Wave JS 13.0.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.0.1) +- [Z-Wave JS 13.0.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.0.0) +- [Z-Wave JS 12.13.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.13.0) +- [Z-Wave JS 12.12.5](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.12.5) +- [Z-Wave JS 12.12.4](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.12.4) +- [Z-Wave JS 12.12.3](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.12.3) +- [Z-Wave JS 12.12.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.12.2) +- [Z-Wave JS 12.12.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.12.1) +- [Z-Wave JS 12.12.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v12.12.0) + ## 0.6.2 ### Bug fixes diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index d7ed1ea0806..58906c48ef8 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 1.36.0 - ZWAVEJS_VERSION: 12.11.2 + ZWAVEJS_SERVER_VERSION: 1.38.0 + ZWAVEJS_VERSION: 13.3.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 042ffda6079..c068f65ef24 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.6.2 +version: 0.7.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 0fba9e9b661073a96daf9b5522cb8ba2fd3afda4 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 12 Sep 2024 18:51:36 +0200 Subject: [PATCH 092/346] matter_server: Bump Python Matter server to 6.5.1 (#3759) --- matter_server/CHANGELOG.md | 4 ++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 45912f59e5e..9e4198f289e 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.5.1 + +- Bump Python Matter Server to [6.5.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.5.1) + ## 6.5.0 - Bump Python Matter Server to [6.5.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.5.0) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 8991dd9462e..902f6a5cac8 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.5.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.5.0 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.5.1 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.5.1 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index e21d68bb559..90e2e349f55 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.5.0 +version: 6.5.1 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From 1bb2ba9488af8ae3f575e8d8731cb3c0ae5d4795 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Thu, 12 Sep 2024 18:54:20 +0200 Subject: [PATCH 093/346] Fix zwave_js soft reset option (#3760) * Fix zwave_js soft reset option * Fix weird edits --- zwave_js/CHANGELOG.md | 6 ++++++ zwave_js/config.yaml | 2 +- zwave_js/rootfs/usr/share/tempio/zwave_config.conf | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 0340e242203..16926f3335d 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.7.1 + +### Bug fixes + +- Add-on: Fix the soft reset driver option that was moved in driver v.13. + ## 0.7.0 ### Features diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index c068f65ef24..b37e0899736 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.7.0 +version: 0.7.1 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS diff --git a/zwave_js/rootfs/usr/share/tempio/zwave_config.conf b/zwave_js/rootfs/usr/share/tempio/zwave_config.conf index 8200c7e3cd7..4f95abe6579 100644 --- a/zwave_js/rootfs/usr/share/tempio/zwave_config.conf +++ b/zwave_js/rootfs/usr/share/tempio/zwave_config.conf @@ -21,6 +21,8 @@ "S2_AccessControl": "{{ .lr_s2_access_control }}", "S2_Authenticated": "{{ .lr_s2_authenticated }}" }, - "enableSoftReset": {{ .soft_reset }}, + "features": { + "softReset": {{ .soft_reset }} + }, "presets": {{ .presets }} } From 5aac8033ebd738afd77ec37e9b36f3cbff04c522 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Tue, 17 Sep 2024 15:25:32 +0200 Subject: [PATCH 094/346] Bump Z-Wave JS to 13.3.1 (#3764) --- zwave_js/CHANGELOG.md | 19 ++++++++++++++++++- zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 16926f3335d..d800faaa041 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## 0.7.2 + +### Bug fixes + +- Z-Wave JS: Fixed the identification of the primary controller role on some older controllers +- Z-Wave JS: Fixed an issue where passing a custom log transport to updateOptions would cause a call stack overflow +- Z-Wave JS: Implement deserialization for more WindowCoveringCC commands to be used in mocks + +### Config file changes + +- Add Philio Technology Smart Keypad +- Add LED indication parameter for Inovelli NZW31 dimmer + +### Detailed changelogs + +- [Z-Wave JS 13.3.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.3.1) + ## 0.7.1 ### Bug fixes @@ -28,7 +45,7 @@ ### Bug fixes -- Fix missing values in endpoint dump +- Z-Wave JS: Fix missing values in endpoint dump - Z-Wave JS: Preserve granted security classes of provisioning entries when switching protocols - Z-Wave JS: Version of Humidity Control Mode CC is 1, not 2 - Z-Wave JS: Abort S2 bootstrapping when KEXSetEcho has reserved bits set diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 58906c48ef8..f175adb2bd8 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 1.38.0 - ZWAVEJS_VERSION: 13.3.0 + ZWAVEJS_VERSION: 13.3.1 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index b37e0899736..bd8c89a93ed 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.7.1 +version: 0.7.2 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 9c18024bebbae4f576adccd75671ca13289f8827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Wed, 25 Sep 2024 17:37:41 +0200 Subject: [PATCH 095/346] ssh: Bump CLI to v4.36.0 (#3771) --- ssh/CHANGELOG.md | 4 ++++ ssh/build.yaml | 2 +- ssh/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index c2ffe02b3f3..8d6615eea7c 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 9.15.0 + +- Upgrade Home Assistant CLI to 4.36.0 + ## 9.14.0 - Upgrade Home Assistant CLI to 4.34.0 diff --git a/ssh/build.yaml b/ssh/build.yaml index 4c4e936de6e..e0062d60ec1 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -9,6 +9,6 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - CLI_VERSION: 4.34.0 + CLI_VERSION: 4.36.0 LIBWEBSOCKETS_VERSION: 4.3.3 TTYD_VERSION: 1.7.4 diff --git a/ssh/config.yaml b/ssh/config.yaml index 7ee047b534e..fa01e59cb1b 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.14.0 +version: 9.15.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH From 8cc097be640f21be06c413b1dcd4775a0ebb2b40 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 26 Sep 2024 17:58:48 +0200 Subject: [PATCH 096/346] letsencrypt: Update to Certbot 2.11.0/Alpine 3.20/Python 3.12 (#3751) * letsencrypt: Update to Certbot 2.11.0/Alpine 3.20/Python 3.12 Update to the latest version of Certbot and ACME 2.11.0. While at it, also use the latest base container with Alpine 3.20 with Python 3.12. * Fix Cloudflare dependency * Move back to directadmin 1.0.4 * Bump ClouDNS to 0.7.0 --- letsencrypt/CHANGELOG.md | 6 ++++++ letsencrypt/build.yaml | 32 ++++++++++++++++---------------- letsencrypt/config.yaml | 2 +- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 121deae6a00..08f1c9877d5 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 5.2.0 + +- Update Certbot/ACME to 2.11.0 & update all plugins to their latest version +- Update to Python 3.12 +- Update to Alpine 3.20 + ## 5.1.4 - Drop Google Domains support (the new operator Squarespace has no ACME support) diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index e4338321c25..8fe107def1d 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -1,27 +1,27 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base-python:3.11-alpine3.18 - amd64: ghcr.io/home-assistant/amd64-base-python:3.11-alpine3.18 - armhf: ghcr.io/home-assistant/armhf-base-python:3.11-alpine3.18 - armv7: ghcr.io/home-assistant/armv7-base-python:3.11-alpine3.18 - i386: ghcr.io/home-assistant/i386-base-python:3.11-alpine3.18 + aarch64: ghcr.io/home-assistant/aarch64-base-python:3.12-alpine3.20 + amd64: ghcr.io/home-assistant/amd64-base-python:3.12-alpine3.20 + armhf: ghcr.io/home-assistant/armhf-base-python:3.12-alpine3.20 + armv7: ghcr.io/home-assistant/armv7-base-python:3.12-alpine3.20 + i386: ghcr.io/home-assistant/i386-base-python:3.12-alpine3.20 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - CLOUDFLARE_VERSION: 2.9.11 - CRYPTOGRAPHY_VERSION: 41.0.5 - CERTBOT_VERSION: 2.7.4 - CERTBOT_DNS_AZURE_VERSION: 2.4.0 - CERTBOT_DNS_CLOUDNS_VERSION: 0.6.0 + CLOUDFLARE_VERSION: 2.19.4 + CRYPTOGRAPHY_VERSION: 43.0.1 + CERTBOT_VERSION: 2.11.0 + CERTBOT_DNS_AZURE_VERSION: 2.5.0 + CERTBOT_DNS_CLOUDNS_VERSION: 0.7.0 CERTBOT_DNS_DESEC_VERSION: 1.2.1 - CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.3 + CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.4 CERTBOT_DNS_DUCKDNS_VERSION: 1.3 CERTBOT_DNS_DYNU_VERSION: 0.0.5 - CERTBOT_DNS_EASYDNS_VERSION: 0.1.2 + CERTBOT_DNS_EASYDNS_VERSION: 0.1.4 CERTBOT_DNS_HE_VERSION: 1.0.0 - CERTBOT_DNS_HETZNER_VERSION: 2.0.0 - CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.1 + CERTBOT_DNS_HETZNER_VERSION: 2.0.1 + CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.2 CERTBOT_DNS_INWX_VERSION: 2.2.0 CERTBOT_DNS_JOKER_VERSION: 1.1.0 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 @@ -36,5 +36,5 @@ args: CERTBOT_DNS_DREAMHOST_VERSION: 1.0 CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 CERTBOT_DNS_PLESK_VERSION: 0.3.0 - CERTBOT_DNS_GODADDY_VERSION: 2.7.4 - ACME_VERSION: 2.7.4 + CERTBOT_DNS_GODADDY_VERSION: 2.8.0 + ACME_VERSION: 2.11.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 35fe5a7f93c..3a1f53274d4 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.1.4 +version: 5.2.0 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt From ed0f4e9dcc143f646dbca17c12f2fa5c9063f234 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 27 Sep 2024 10:00:19 +0200 Subject: [PATCH 097/346] letsencrypt: Avoid deprecation warnings (#3776) --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/build.yaml | 2 +- letsencrypt/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 08f1c9877d5..e489deea2ad 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.1 + +- Revert Cryptography to 42.0.8 to avoid deprecation warnings + ## 5.2.0 - Update Certbot/ACME to 2.11.0 & update all plugins to their latest version diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 8fe107def1d..726320051c4 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -10,7 +10,7 @@ codenotary: base_image: notary@home-assistant.io args: CLOUDFLARE_VERSION: 2.19.4 - CRYPTOGRAPHY_VERSION: 43.0.1 + CRYPTOGRAPHY_VERSION: 42.0.8 CERTBOT_VERSION: 2.11.0 CERTBOT_DNS_AZURE_VERSION: 2.5.0 CERTBOT_DNS_CLOUDNS_VERSION: 0.7.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 3a1f53274d4..60f34e25649 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.0 +version: 5.2.1 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt From a16142af9e06921a3b1eeca4d3179dfeb7b3d9c3 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 27 Sep 2024 15:23:45 +0200 Subject: [PATCH 098/346] openthread_border_router: bump to latest and smaller improvements (#3772) * openthread_border_router: bump to latest and smaller improvements Bump to OTBR POSIX version 09574a202c2 (2024-09-23 08:54:32 -0700) and fix some smaller issues, specifically make sure that the log output is not buffered and avoid ipset errors. * openthread_border_router: bump to latest again Bump to OTBR POSIX version ff7227ea9a2 (2024-09-25 14:54:08 -0700). Gets rid of a local patch. --- .../0001-support-deleting-the-dataset.patch | 10 ++-- .../0002-set-netif-route-metric-lower.patch | 8 +-- ...-disable-syslog-for-otbr-web-as-well.patch | 52 ------------------- openthread_border_router/CHANGELOG.md | 6 +++ openthread_border_router/Dockerfile | 4 +- openthread_border_router/build.yaml | 2 +- openthread_border_router/config.yaml | 2 +- .../etc/s6-overlay/s6-rc.d/otbr-agent/run | 15 +++--- .../etc/s6-overlay/s6-rc.d/otbr-web/run | 2 +- 9 files changed, 29 insertions(+), 72 deletions(-) delete mode 100644 openthread_border_router/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch diff --git a/openthread_border_router/0001-support-deleting-the-dataset.patch b/openthread_border_router/0001-support-deleting-the-dataset.patch index 578b67b09d5..3804f5c76b8 100644 --- a/openthread_border_router/0001-support-deleting-the-dataset.patch +++ b/openthread_border_router/0001-support-deleting-the-dataset.patch @@ -1,4 +1,4 @@ -From e67d11327f3ee5f67107d866c2df575a2695727c Mon Sep 17 00:00:00 2001 +From 2efa60f83b71402ce0c1ef176be8f88a9bfdefac Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 5 Jun 2023 23:41:50 +0200 Subject: [PATCH] support deleting the dataset @@ -16,7 +16,7 @@ otDatasetCreateNewNetwork). 3 files changed, 57 insertions(+) diff --git a/src/rest/openapi.yaml b/src/rest/openapi.yaml -index 2ba2a4dd56..2edc4af29a 100644 +index 2ba2a4dd56f..2edc4af29ad 100644 --- a/src/rest/openapi.yaml +++ b/src/rest/openapi.yaml @@ -248,6 +248,18 @@ paths: @@ -55,7 +55,7 @@ index 2ba2a4dd56..2edc4af29a 100644 schemas: LeaderData: diff --git a/src/rest/resource.cpp b/src/rest/resource.cpp -index ce154c2e5b..1708faf6ab 100644 +index ce154c2e5b3..1708faf6abc 100644 --- a/src/rest/resource.cpp +++ b/src/rest/resource.cpp @@ -767,12 +767,47 @@ exit: @@ -107,7 +107,7 @@ index ce154c2e5b..1708faf6ab 100644 GetDataset(aDatasetType, aRequest, aResponse); break; diff --git a/src/rest/resource.hpp b/src/rest/resource.hpp -index 0929dbcc50..cbe1702f2f 100644 +index 0929dbcc50c..cbe1702f2fb 100644 --- a/src/rest/resource.hpp +++ b/src/rest/resource.hpp @@ -150,6 +150,7 @@ private: @@ -119,5 +119,5 @@ index 0929dbcc50..cbe1702f2f 100644 void DeleteOutDatedDiagnostic(void); void UpdateDiag(std::string aKey, std::vector &aDiag); -- -2.46.0 +2.46.1 diff --git a/openthread_border_router/0002-set-netif-route-metric-lower.patch b/openthread_border_router/0002-set-netif-route-metric-lower.patch index 1f8b4cde56b..9643ab75d58 100644 --- a/openthread_border_router/0002-set-netif-route-metric-lower.patch +++ b/openthread_border_router/0002-set-netif-route-metric-lower.patch @@ -1,4 +1,4 @@ -From 7662acaaffb9cf730a8ba1d4f6014832dad23d0f Mon Sep 17 00:00:00 2001 +From afb29a91024247f46e9e75954b930f4518444360 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Sat, 20 Jan 2024 16:31:28 +0100 Subject: [PATCH] set netif route metric lower @@ -11,17 +11,17 @@ OpenThread network interface's own route is lower than that. 1 file changed, 1 insertion(+) diff --git a/third_party/openthread/CMakeLists.txt b/third_party/openthread/CMakeLists.txt -index 8ea4516e4e..97007a58cd 100644 +index eab6e7c6007..9e01d66aefd 100644 --- a/third_party/openthread/CMakeLists.txt +++ b/third_party/openthread/CMakeLists.txt @@ -106,6 +106,7 @@ target_compile_definitions(ot-config INTERFACE + "-DOPENTHREAD_CONFIG_LOG_CLI=1" "-DOPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS=3" "-DOPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE=1" - "-DOPENTHREAD_CONFIG_TCP_ENABLE=0" + "-DOPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC=64" "-DOPENTHREAD_POSIX_CONFIG_FILE=\"${PROJECT_BINARY_DIR}/src/agent/openthread-otbr-posix-config.h\"" ) -- -2.46.0 +2.46.1 diff --git a/openthread_border_router/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch b/openthread_border_router/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch deleted file mode 100644 index e088d212844..00000000000 --- a/openthread_border_router/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 4c8958890eb01448e08921bf3b313cb2169760d0 Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Fri, 16 Aug 2024 11:46:17 +0200 -Subject: [PATCH] [logging] support disable syslog for otbr-web as well - -Commit c88a5fce6659 ("[logging] add command line arg to disable syslog") -allows to disable logging to syslog via command line argument. Support -the same -s command line argument for otbr-web as well. ---- - src/web/main.cpp | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/src/web/main.cpp b/src/web/main.cpp -index 922038d88c..8b2c20c4e6 100644 ---- a/src/web/main.cpp -+++ b/src/web/main.cpp -@@ -76,9 +76,10 @@ int main(int argc, char **argv) - otbrLogLevel logLevel = OTBR_LOG_INFO; - int ret = 0; - int opt; -- uint16_t port = OT_HTTP_PORT; -+ uint16_t port = OT_HTTP_PORT; -+ bool syslogDisable = false; - -- while ((opt = getopt(argc, argv, "d:I:p:va:")) != -1) -+ while ((opt = getopt(argc, argv, "d:I:p:va:s")) != -1) - { - switch (opt) - { -@@ -103,6 +104,10 @@ int main(int argc, char **argv) - ExitNow(); - break; - -+ case 's': -+ syslogDisable = true; -+ break; -+ - default: - fprintf(stderr, "Usage: %s [-d DEBUG_LEVEL] [-I interfaceName] [-p port] [-a listenAddress] [-v]\n", - argv[0]); -@@ -111,7 +116,7 @@ int main(int argc, char **argv) - } - } - -- otbrLogInit(argv[0], logLevel, true, false); -+ otbrLogInit(argv[0], logLevel, true, syslogDisable); - otbrLogInfo("Running %s", OTBR_PACKAGE_VERSION); - - if (interfaceName == nullptr) --- -2.46.0 - diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 84de0218483..85714af9683 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.11.0 + +- Bump to OTBR POSIX version ff7227ea9a2 (2024-09-25 14:54:08 -0700) +- Make log output unbuffered +- Avoid ipset errors when firewall is disabled + ## 2.10.0 - Bump to OTBR POSIX version b66cabfaa0 (2024-08-14 08:01:56 -0700) diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index e9aa7e8b497..3f329d80e43 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -18,7 +18,6 @@ ENV DOCKER 1 COPY 0001-support-deleting-the-dataset.patch /usr/src COPY 0002-set-netif-route-metric-lower.patch /usr/src -COPY 0003-logging-support-disable-syslog-for-otbr-web-as-well.patch /usr/src COPY 0001-channel-monitor-disable-by-default.patch /usr/src # Required and installed (script/bootstrap) can be removed after build ENV OTBR_BUILD_DEPS build-essential ninja-build cmake wget ca-certificates \ @@ -56,7 +55,6 @@ RUN \ && ./script/bootstrap \ && patch -p1 < /usr/src/0001-support-deleting-the-dataset.patch \ && patch -p1 < /usr/src/0002-set-netif-route-metric-lower.patch \ - && patch -p1 < /usr/src/0003-logging-support-disable-syslog-for-otbr-web-as-well.patch \ && ( \ cd third_party/openthread/repo \ && patch -p1 < /usr/src/0001-channel-monitor-disable-by-default.patch \ @@ -89,6 +87,8 @@ RUN \ -DOT_CHANNEL_MONITOR=ON \ -DOT_COAP=OFF \ -DOT_COAPS=OFF \ + -DOT_DNS_CLIENT_OVER_TCP=OFF \ + -DOT_THREAD_VERSION=1.3 \ && cd build/otbr/ \ && ninja \ && ninja install) \ diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index 1301515a07a..1b31c91d500 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -3,5 +3,5 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm args: - OTBR_VERSION: b66cabfaa0b6829314e8c326c4f92bfbaa55ad9b + OTBR_VERSION: ff7227ea9a2dc0e50f92ab93bd5c9a29e82fe793 UNIVERSAL_SILABS_FLASHER: 0.0.22 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 4b48145e0b7..976b075d36c 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.10.0 +version: 2.11.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run index 56f78bd4ae9..d539cc2da49 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run @@ -66,13 +66,16 @@ fi mkdir -p /data/thread && ln -sft /var/lib /data/thread || bashio::exit.nok "Could not create directory /var/lib/thread to store Thread data." +# We compile the OTBR with firewall support, so otbr-agent tries to update the +# ipsets. Therefor, create ipsets always to avoid errors from otbr-agent. Just +# the ipsets won't have an effect in practice when the firewall is disabled. +ipset create -exist otbr-ingress-deny-src hash:net family inet6 +ipset create -exist otbr-ingress-deny-src-swap hash:net family inet6 +ipset create -exist otbr-ingress-allow-dst hash:net family inet6 +ipset create -exist otbr-ingress-allow-dst-swap hash:net family inet6 + if bashio::config.true 'firewall'; then bashio::log.info "Setup OTBR firewall..." - ipset create -exist otbr-ingress-deny-src hash:net family inet6 - ipset create -exist otbr-ingress-deny-src-swap hash:net family inet6 - ipset create -exist otbr-ingress-allow-dst hash:net family inet6 - ipset create -exist otbr-ingress-allow-dst-swap hash:net family inet6 - ip6tables -N $otbr_forward_ingress_chain ip6tables -I FORWARD 1 -o $thread_if -j $otbr_forward_ingress_chain @@ -116,7 +119,7 @@ echo "${otbr_rest_listen}" > /tmp/otbr-agent-rest-api echo "${otbr_rest_listen_port}" >> /tmp/otbr-agent-rest-api bashio::log.info "Starting otbr-agent..." -exec s6-notifyoncheck -d -s 300 -w 300 -n 0 \ +exec s6-notifyoncheck -d -s 300 -w 300 -n 0 stdbuf -oL \ "/usr/sbin/otbr-agent" -I ${thread_if} -B "${backbone_if}" \ --rest-listen-address "${otbr_rest_listen}" \ -d${otbr_log_level_int} -v -s \ diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run index 951719294d3..76c619348c4 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run @@ -7,4 +7,4 @@ declare otbr_web_port otbr_web_port="$(bashio::addon.port 8080)" -exec /usr/sbin/otbr-web -I wpan0 -d6 -s -p "${otbr_web_port}" +exec stdbuf -oL /usr/sbin/otbr-web -I wpan0 -d6 -s -p "${otbr_web_port}" From 1d04013e82fcc06302f6622a8fdda24be0940a79 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 08:39:01 +0200 Subject: [PATCH 099/346] build(deps): bump actions/checkout from 4.1.7 to 4.2.0 (#3778) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index a23a874a9bf..a9b99b5a07f 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v4.1.7 + uses: actions/checkout@v4.2.0 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4.1.7 + uses: actions/checkout@v4.2.0 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9cd707dc928..12d7e89e0b7 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v4.1.7 + uses: actions/checkout@v4.2.0 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v4.1.7 + uses: actions/checkout@v4.2.0 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v4.1.7 + uses: actions/checkout@v4.2.0 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From d3a3e66aae8ea522f8a6a3eec25536ad134d592a Mon Sep 17 00:00:00 2001 From: Darren Griffin Date: Mon, 30 Sep 2024 17:47:53 +0100 Subject: [PATCH 100/346] Add OHF logo to README (#3780) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 64bffcc197f..3329492739e 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ the [File Editor](/configurator/README.md)). Add-ons can be installed and configured via the Home Assistant frontend on systems that have installed Home Assistant. +[![Home Assistant - A project from the Open Home Foundation](https://www.openhomefoundation.org/badges/home-assistant.png)](https://www.openhomefoundation.org/) + ## Add-ons provided by this repository - **[CEC Scanner](/cec_scan/README.md)** From 6658d1bd1f2b6c48be43cda184a009602e59d857 Mon Sep 17 00:00:00 2001 From: David Rapan Date: Thu, 3 Oct 2024 09:51:39 +0200 Subject: [PATCH 101/346] nginx: Update to Alpine Linux 3.20 (nginx 1.26.x) (#3783) --- nginx_proxy/CHANGELOG.md | 4 ++++ nginx_proxy/build.yaml | 10 +++++----- nginx_proxy/config.yaml | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/nginx_proxy/CHANGELOG.md b/nginx_proxy/CHANGELOG.md index 2a32dd613b5..1dc5addebc3 100644 --- a/nginx_proxy/CHANGELOG.md +++ b/nginx_proxy/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.11.0 + +- Update Alpine Linux to 3.20 (nginx 1.26.x) + ## 3.10.1 - Make `real_ip_from` optional through an empty default value diff --git a/nginx_proxy/build.yaml b/nginx_proxy/build.yaml index 039821f92e6..ddb806cecdd 100644 --- a/nginx_proxy/build.yaml +++ b/nginx_proxy/build.yaml @@ -1,10 +1,10 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.19 - amd64: ghcr.io/home-assistant/amd64-base:3.19 - armhf: ghcr.io/home-assistant/armhf-base:3.19 - armv7: ghcr.io/home-assistant/armv7-base:3.19 - i386: ghcr.io/home-assistant/i386-base:3.19 + aarch64: ghcr.io/home-assistant/aarch64-base:3.20 + amd64: ghcr.io/home-assistant/amd64-base:3.20 + armhf: ghcr.io/home-assistant/armhf-base:3.20 + armv7: ghcr.io/home-assistant/armv7-base:3.20 + i386: ghcr.io/home-assistant/i386-base:3.20 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io diff --git a/nginx_proxy/config.yaml b/nginx_proxy/config.yaml index e5c4055e369..2c3c7d302a4 100644 --- a/nginx_proxy/config.yaml +++ b/nginx_proxy/config.yaml @@ -1,5 +1,5 @@ --- -version: 3.10.1 +version: 3.11.0 hassio_api: true slug: nginx_proxy name: NGINX Home Assistant SSL proxy From ae7c1b9e2cc80ea0784f4cc2b830262e8203b315 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 7 Oct 2024 18:17:22 +0200 Subject: [PATCH 102/346] matter_server: Bump Python Matter server to 6.6.0 (#3789) Update to the lastest Python Matter server. This adds a new feature which sets the fabric labels and aborts the update process when the node goes offline during update. --- matter_server/CHANGELOG.md | 4 ++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 9e4198f289e..985ad36a8bf 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.6.0 + +- Bump Python Matter Server to [6.6.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.6.0) + ## 6.5.1 - Bump Python Matter Server to [6.5.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.5.1) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 902f6a5cac8..408645a8ed5 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.5.1 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.5.1 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.6.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.6.0 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 90e2e349f55..327c9fe857d 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.5.1 +version: 6.6.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From 04ab28178c52978cd3160a7bc16135aa9c8aa427 Mon Sep 17 00:00:00 2001 From: TimL Date: Tue, 8 Oct 2024 03:47:39 +1100 Subject: [PATCH 103/346] Fix otbr for USB cc2652 dongles (#3782) * fix deassert when flow control disabled * Bump version to 2.11.1 --- openthread_border_router/CHANGELOG.md | 4 ++++ openthread_border_router/config.yaml | 2 +- .../rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 85714af9683..5feb9466ebe 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.11.1 + +- Fix issue with USB TI CC2652 based devices + ## 2.11.0 - Bump to OTBR POSIX version ff7227ea9a2 (2024-09-25 14:54:08 -0700) diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 976b075d36c..fadb3242657 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.11.0 +version: 2.11.1 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run index d539cc2da49..62cee950756 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run @@ -26,6 +26,8 @@ flow_control="" if bashio::config.true 'flow_control'; then flow_control="&uart-flow-control" +else + flow_control="&uart-init-deassert" fi otbr_log_level=$(bashio::string.lower "$(bashio::config otbr_log_level)") From 34fb6fb2780ff7f9bc49b2a8bfeb5e7597eafe7f Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Fri, 11 Oct 2024 14:46:01 -0500 Subject: [PATCH 104/346] Update wyoming-whisper to 2.2.0 (#3795) * Update wyoming-whisper to 2.2.0 * Update CHANGELOG --- whisper/CHANGELOG.md | 4 ++++ whisper/build.yaml | 2 +- whisper/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index 9f203d35003..dff47ae3e8c 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.2.0 + +- Bump `wyoming-whisper` to 2.2.0 (`faster-whisper` to 1.0.3) + ## 2.1.2 - Fix excluding models files from backup diff --git a/whisper/build.yaml b/whisper/build.yaml index abe0b9f8895..40d12db550e 100644 --- a/whisper/build.yaml +++ b/whisper/build.yaml @@ -6,4 +6,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - WYOMING_WHISPER_VERSION: 2.1.0 + WYOMING_WHISPER_VERSION: 2.2.0 diff --git a/whisper/config.yaml b/whisper/config.yaml index 91fb63dbe65..aad413b9aba 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.1.2 +version: 2.2.0 slug: whisper name: Whisper description: Speech-to-text with Whisper From 0390860403f69b2c706ec982152761c1ca321644 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:16:16 +0200 Subject: [PATCH 105/346] build(deps): bump actions/checkout from 4.2.0 to 4.2.1 (#3798) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index a9b99b5a07f..636f6d0c8b4 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v4.2.0 + uses: actions/checkout@v4.2.1 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4.2.0 + uses: actions/checkout@v4.2.1 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 12d7e89e0b7..bf85e0d930f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v4.2.0 + uses: actions/checkout@v4.2.1 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v4.2.0 + uses: actions/checkout@v4.2.1 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v4.2.0 + uses: actions/checkout@v4.2.1 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From a7de204ee083bfdf1191fa499ca831f8f5dad8c0 Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Mon, 14 Oct 2024 11:49:13 +0200 Subject: [PATCH 106/346] Bump zwave-js to 13.9.0 and add watchdog configuration option (#3769) * Bump zwave-js to 13.4.0 and add watchdog configuration option * Update zwave_js/CHANGELOG.md Co-authored-by: Martin Hjelmare * fix lint * bump again, update changelog --------- Co-authored-by: Martin Hjelmare --- zwave_js/CHANGELOG.md | 31 +++++++++++++++++++++++ zwave_js/DOCS.md | 9 ++++++- zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 3 ++- zwave_js/rootfs/etc/cont-init.d/config.sh | 6 +++++ zwave_js/translations/en.yaml | 7 +++++ 6 files changed, 55 insertions(+), 3 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index d800faaa041..6615d628872 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +## 0.8.0 + +### Features + +- Add-on: Add `disable_watchdog` configuration option. When enabled, the driver will not enable the hardware watchdog of the Z-Wave controller. This is an advanced configuration option that should not be adjusted in most cases and is therefore hidden from the default view. +- Z-Wave JS: Multiple parallel firmware updates are now supported + +### Bug fixes + +- Z-Wave JS: Fixed an issue where open/close for some covers was inverted + +### Config file changes + +- Update Z-Wave SDK warnings to mention recommended versions +- Update Zooz device labels +- Add fingerprint to Aeotec ZWA024 +- Correct max. value of SKU parameters for Kwikset locks +- Add fingerprint to Remotec ZXT-800 +- Add incompatibility warning to UZB1 +- Override Central Scene CC version for Springs Window Fashions VCZ1 +- Add manual and reset metadata for Danfoss LC-13 + +### Detailed changelogs + +- [Z-Wave JS 13.4.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.4.0) +- [Z-Wave JS 13.5.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.5.0) +- [Z-Wave JS 13.6.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.6.0) +- [Z-Wave JS 13.7.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.7.0) +- [Z-Wave JS 13.8.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.8.0) +- [Z-Wave JS 13.9.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.9.0) + ## 0.7.2 ### Bug fixes diff --git a/zwave_js/DOCS.md b/zwave_js/DOCS.md index af020bb16b1..6030c868b2c 100644 --- a/zwave_js/DOCS.md +++ b/zwave_js/DOCS.md @@ -175,7 +175,7 @@ This setting tells the add-on how to handle soft-resets for 500 series controlle If you don't have a USB stick, you can use a fake stick for testing purposes. It will not be able to control any real devices. -### Optional `disable_controller_recovery` (optional): +### Option `disable_controller_recovery` (optional): This setting will disable Z-Wave JS's automatic recovery process when the controller appears to be unresponsive and will instead let the controller @@ -186,6 +186,13 @@ will need to restart the add-on to attempt recovery. In most cases, users will never need to use this feature, so only change this setting if you know what you are doing and/or you are asked to. +### Option `disable_watchdog` (optional): + +This setting will prevent Z-Wave JS from enabling the hardware watchdog +on supporting controllers. In most cases, users will never need to use this +feature, so only change this setting if you know what you are doing and/or +you are asked to. + ### Option `safe_mode` (optional) This setting puts your network in safe mode, which could significantly decrease diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index f175adb2bd8..96264b4c239 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 1.38.0 - ZWAVEJS_VERSION: 13.3.1 + ZWAVEJS_VERSION: 13.9.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index bd8c89a93ed..093cf8f1e51 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.7.2 +version: 0.8.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS @@ -48,6 +48,7 @@ schema: network_key: match(|[0-9a-fA-F]{32,32})? emulate_hardware: bool? disable_controller_recovery: bool? + disable_watchdog: bool? safe_mode: bool? stage: stable startup: services diff --git a/zwave_js/rootfs/etc/cont-init.d/config.sh b/zwave_js/rootfs/etc/cont-init.d/config.sh index 0adcc1555bb..bcb554be780 100755 --- a/zwave_js/rootfs/etc/cont-init.d/config.sh +++ b/zwave_js/rootfs/etc/cont-init.d/config.sh @@ -142,6 +142,12 @@ if bashio::config.true 'disable_controller_recovery'; then presets_array+=("NO_CONTROLLER_RECOVERY") fi +if bashio::config.true 'disable_watchdog'; then + bashio::log.info "Hardware watchdog disabled" + # Add NO_WATCHDOG to presets array + presets_array+=("NO_WATCHDOG") +fi + # Convert presets array to JSON string and add to config if [[ ${#presets_array[@]} -eq 0 ]]; then presets="[]" diff --git a/zwave_js/translations/en.yaml b/zwave_js/translations/en.yaml index a04c9d791d7..230ff5a552e 100644 --- a/zwave_js/translations/en.yaml +++ b/zwave_js/translations/en.yaml @@ -77,6 +77,13 @@ configuration: will need to restart the add-on to attempt recovery. In most cases, users will never need to use this feature, so only change this setting if you know what you are doing and/or you are asked to. + disable_watchdog: + name: Disable watchdog + description: >- + This setting will prevent Z-Wave JS from enabling the hardware watchdog + on supporting controllers. In most cases, users will never need to use + this feature, so only change this setting if you know what you are doing + and/or you are asked to. safe_mode: name: Enable safe mode description: >- From 5c01a323ba84e6aa534302ace0b7539d3582e65d Mon Sep 17 00:00:00 2001 From: badblocks <4161747+badbl0cks@users.noreply.github.com> Date: Mon, 14 Oct 2024 03:56:36 -0700 Subject: [PATCH 107/346] Add note that anonymous logins are not supported to mosquitto/DOCS.md (#3777) --- mosquitto/DOCS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mosquitto/DOCS.md b/mosquitto/DOCS.md index d6c1feef5f4..4a1ace6728f 100644 --- a/mosquitto/DOCS.md +++ b/mosquitto/DOCS.md @@ -68,6 +68,8 @@ logins: password_pre_hashed: true ``` +**Note:** This add-on does not support anonymous logins; all connections must use a username/password to connect. `allow_anonymous true` nor any anonymous ACLs will not work with this add-on. + #### Option: `customize.active` If set to `true` additional configuration files will be read, see the next option. From f053b1bdc0ec0c762891e98923df284d31c0efb8 Mon Sep 17 00:00:00 2001 From: dim-0 <1191898+dim-0@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:31:54 +0200 Subject: [PATCH 108/346] Add support for IONOS DNS challenge (#3743) * Add support for IONOS DNS challenge * Added Support for IONOS DNS Challenge - Added certbot-dns-ionos dependency - Updated configuration options - Added Documentation for IONOS DNS Challenge and configuration - Added IONOS DNS Challenge to script * Adjusted the Addon's version * Added entry to Change Log * Update run Make `dns.ionos_endpoint` required for IONOS configuration --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 28 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 7 +++-- .../rootfs/etc/cont-init.d/file-structure.sh | 3 ++ .../rootfs/etc/services.d/lets-encrypt/run | 7 +++++ 7 files changed, 50 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index e489deea2ad..9d3fc0e6b74 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.2 + +- Add IONOS DNS support + ## 5.2.1 - Revert Cryptography to 42.0.8 to avoid deprecation warnings diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index b17835eeea1..5e9501500f2 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -56,6 +56,7 @@ dns-godaddy dns-google dns-hetzner dns-infomaniak +dns-ionos dns-joker dns-linode dns-luadns @@ -109,6 +110,9 @@ gehirn_api_secret: '' godaddy_secret: '' godaddy_key: '' infomaniak_api_token: '' +ionos_prefix: '' +ionos_secret: '' +ionos_endpoint: '' joker_username: '' joker_password: '' joker_domain: '' @@ -423,6 +427,29 @@ Choose "Domain" as the scope.
+
+ IONOS DNS challenge + + ```yaml + email: your.email@example.com + domains: + - subdomain.home-assistant.io + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-ionos + ionos_prefix: YOUR_IONOS_API_KEY_PREFIX + ionos_secret: YOUR_IONOS_API_KEY_SECRET + ionos_endpoint: https://api.hosting.ionos.com + ``` + +To obtain the DNS API Key Information, follow the instructions here: + + +
+ +
Joker DNS challenge @@ -1044,6 +1071,7 @@ dns-gehirn dns-google dns-hetzner dns-infomaniak +dns-ionos dns-linode dns-luadns dns-njalla diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 43f96cda67e..896ae5fb921 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -19,6 +19,7 @@ ARG \ CERTBOT_DNS_HETZNER_VERSION \ CERTBOT_DNS_INFOMANIAK_VERSION \ CERTBOT_DNS_INWX_VERSION \ + CERTBOT_DNS_IONOS_VERSION \ CERTBOT_DNS_JOKER_VERSION \ CERTBOT_DNS_NAMECHEAP_VERSION \ CERTBOT_DNS_NORISNETWORK_VERSION \ @@ -66,6 +67,7 @@ RUN \ certbot-dns-google==${CERTBOT_VERSION} \ certbot-dns-hetzner==${CERTBOT_DNS_HETZNER_VERSION} \ certbot-dns-infomaniak==${CERTBOT_DNS_INFOMANIAK_VERSION} \ + certbot-dns-ionos==${CERTBOT_DNS_IONOS_VERSION} \ certbot-dns-joker==${CERTBOT_DNS_JOKER_VERSION} \ certbot-dns-linode==${CERTBOT_VERSION} \ certbot-dns-luadns==${CERTBOT_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 726320051c4..5b5088eb0d6 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -23,6 +23,7 @@ args: CERTBOT_DNS_HETZNER_VERSION: 2.0.1 CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.2 CERTBOT_DNS_INWX_VERSION: 2.2.0 + CERTBOT_DNS_IONOS_VERSION: 2024.1.8 CERTBOT_DNS_JOKER_VERSION: 1.1.0 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 CERTBOT_DNS_NORISNETWORK_VERSION: 0.2.1 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 60f34e25649..206f7bf3dc0 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.1 +version: 5.2.2 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -70,6 +70,9 @@ schema: google_creds: str? hetzner_api_token: str? infomaniak_api_token: str? + ionos_prefix: str? + ionos_secret: str? + ionos_endpoint: str? linode_key: str? linode_version: str? luadns_email: email? @@ -100,7 +103,7 @@ schema: provider: "list(dns-azure|dns-cloudflare|dns-cloudns|dns-desec|\ dns-digitalocean|dns-directadmin|dns-dnsimple|dns-dnsmadeeasy|\ dns-duckdns|dns-dynu|dns-gehirn|dns-godaddy|dns-google|\ - dns-hetzner|dns-infomaniak|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ + dns-hetzner|dns-infomaniak|dns-ionos|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris|dns-plesk)?" diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 0fbe8a09391..42c5c1390dc 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -22,6 +22,9 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_godaddy_key = $(bashio::config 'dns.godaddy_key')\n" \ "dns_hetzner_api_token = $(bashio::config 'dns.hetzner_api_token')\n" \ "dns_infomaniak_token = $(bashio::config 'dns.infomaniak_api_token')\n" \ + "dns_ionos_prefix = $(bashio::config 'dns.ionos_prefix')\n" \ + "dns_ionos_secret = $(bashio::config 'dns.ionos_secret')\n" \ + "dns_ionos_endpoint = $(bashio::config 'dns.ionos_endpoint')\n" \ "dns_joker_username = $(bashio::config 'dns.joker_username')\n" \ "dns_joker_password = $(bashio::config 'dns.joker_password')\n" \ "dns_joker_domain = $(bashio::config 'dns.joker_domain')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index ad5a0461026..cd1cd4fccbb 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -151,6 +151,13 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-infomaniak" ]; t bashio::config.require 'dns.infomaniak_api_token' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" /data/dnsapikey "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# IONOS +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-ionos" ]; then + bashio::config.require 'dns.ionos_prefix' + bashio::config.require 'dns.ionos_secret' + bashio::config.require 'dns.ionos_endpoint' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" /data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # Joker elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-joker" ]; then bashio::config.require 'dns.joker_username' From 3f21e0614fa3092d9bba2e5e456a29fc86d45d55 Mon Sep 17 00:00:00 2001 From: dim-0 <1191898+dim-0@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:55:58 +0200 Subject: [PATCH 109/346] LetsEncrypt - GoDaddy Documentation (#3799) * LetsEncrypt - GoDaddy Documentation Adding an Information Box to the GoDaddy configuration example, warning about API access limitations * Update DOCS.md * Update DOCS.md --- letsencrypt/DOCS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 5e9501500f2..02ae30d4c09 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -376,6 +376,8 @@ on the DNS zone to be used for authentication. To obtain the ACME DNS API Key and Secret, follow the instructions here: +**IMPORTANT**: GoDaddy limits DNS API access to customers with 10 or more domains and/or an active "Discount Domain Club – Premier Membership" plan; the API will respond with a HTTP401 otherwise. See the [Terms of Use](https://developer.godaddy.com/getstarted) for more information. +
From d678e93c477be897ce9bc34739c3246609a1f78e Mon Sep 17 00:00:00 2001 From: dim-0 <1191898+dim-0@users.noreply.github.com> Date: Fri, 18 Oct 2024 21:04:19 +0200 Subject: [PATCH 110/346] Fix LetsEncrypt add-on - IONOS syntax error (#3800) * Update LetsEncrypt IONOS Fixed Syntax Error * Bump version and add changelog entry --------- Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/config.yaml | 2 +- letsencrypt/rootfs/etc/services.d/lets-encrypt/run | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 9d3fc0e6b74..2dd8792e95f 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.3 + +- Fix syntax error in run script + ## 5.2.2 - Add IONOS DNS support diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 206f7bf3dc0..17afa8fdea8 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.2 +version: 5.2.3 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index cd1cd4fccbb..6cb87e7b46d 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -156,7 +156,7 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-ionos" ]; then bashio::config.require 'dns.ionos_prefix' bashio::config.require 'dns.ionos_secret' bashio::config.require 'dns.ionos_endpoint' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" /data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") # Joker elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-joker" ]; then From da16c57fe653cf6f0c1b02d34bcfd53cfa291491 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Wed, 23 Oct 2024 15:43:03 +0200 Subject: [PATCH 111/346] Z-Wave JS: Rename watchdog option to avoid confusion with add-on watchdog (#3802) * Rename watchdog option to avoid confusion with add-on watchdog * Update config.yaml * Update CHANGELOG.md --- zwave_js/CHANGELOG.md | 4 ++++ zwave_js/config.yaml | 2 +- zwave_js/translations/en.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 6615d628872..6fb51d1e666 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.8.1 + +Rename Z-Wave watchdog option to avoid confusion with add-on watchdog. + ## 0.8.0 ### Features diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 093cf8f1e51..0f4bc3f5387 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.8.0 +version: 0.8.1 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS diff --git a/zwave_js/translations/en.yaml b/zwave_js/translations/en.yaml index 230ff5a552e..5a000030f2b 100644 --- a/zwave_js/translations/en.yaml +++ b/zwave_js/translations/en.yaml @@ -78,7 +78,7 @@ configuration: will never need to use this feature, so only change this setting if you know what you are doing and/or you are asked to. disable_watchdog: - name: Disable watchdog + name: Disable Z-Wave JS (hardware) watchdog description: >- This setting will prevent Z-Wave JS from enabling the hardware watchdog on supporting controllers. In most cases, users will never need to use From de30123a5c930830590ae2db0c946f4d4273968d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:13:03 +0100 Subject: [PATCH 112/346] build(deps): bump actions/checkout from 4.2.1 to 4.2.2 (#3814) --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 636f6d0c8b4..0700f3e14df 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v4.2.1 + uses: actions/checkout@v4.2.2 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4.2.1 + uses: actions/checkout@v4.2.2 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index bf85e0d930f..1cb0228bdd4 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v4.2.1 + uses: actions/checkout@v4.2.2 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v4.2.1 + uses: actions/checkout@v4.2.2 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v4.2.1 + uses: actions/checkout@v4.2.2 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From 3c20eb004da4ec84792a20fca34c6a7cca3da7fe Mon Sep 17 00:00:00 2001 From: Petar Petrov Date: Wed, 6 Nov 2024 15:00:56 +0200 Subject: [PATCH 113/346] Bump zwavejs to 13.10.3 (#3819) * bump zwavejs to 13.10.3 * update changelog * reverse order of changelogs * Fix Z-Wave JS Server link Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Fix bullet --------- Co-authored-by: Martin Hjelmare Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- zwave_js/CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++++ zwave_js/build.yaml | 4 ++-- zwave_js/config.yaml | 2 +- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 6fb51d1e666..76e84e26616 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,42 @@ # Changelog +## 0.9.0 + +### Features + +- Z-Wave JS: mock-server now supports putting the simulated controller into add and remove mode +- Z-Wave JS Server: Support get_raw_config_parameter_value +- Z-Wave JS Server: Support all signatures of node.manuallyIdleNotificationValue + +### Bug fixes + +- Z-Wave JS: Fixed an issue where preferred scales were not being found when set as a string +- Z-Wave JS: Correct unit of Meter CC values +- Z-Wave JS: Bootloader mode is now detected even when short chunks of data are received +- Z-Wave JS: Corrected the wording of idle/busy queue logging + +### Config file changes + +- Add Heatit Z-TEMP3 +- Add new parameters 17 and 18 for HeatIt TF016_TF021 FW 1.92 +- Disable Supervision for Heatit TF021 +- Add ZVIDAR WB04V Smartwings Day Night Shades +- Add ZVIDAR WM25L Smartwings Smart Motor +- Add ZVIDAR ZW881 Multi-Protocol Gateway +- Add include, exclude, and wakeup instructions for VCZ1 +- Add new Product ID to Namron 16A Switch +- Add Minoston MP24Z 800LR Outdoor Smart Plug - 2 Outlet +- Disable Supervision for Everspring SE813 + +### Detailed changelogs + +- [Z-Wave JS Server 1.39.0](https://github.com/zwave-js/zwave-js-server/releases/tag/1.39.0) +- [Z-Wave JS 13.10.3](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.10.3) +- [Z-Wave JS 13.10.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.10.2) +- [Z-Wave JS 13.10.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.10.1) +- [Z-Wave JS 13.10.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.10.0) +- [Z-Wave JS 13.9.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.9.1) + ## 0.8.1 Rename Z-Wave watchdog option to avoid confusion with add-on watchdog. diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 96264b4c239..6826529213e 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 1.38.0 - ZWAVEJS_VERSION: 13.9.0 + ZWAVEJS_SERVER_VERSION: 1.39.0 + ZWAVEJS_VERSION: 13.10.3 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 0f4bc3f5387..0b5cd561134 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.8.1 +version: 0.9.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 7678e871a4d4786b55e940963fffecc5ced909e4 Mon Sep 17 00:00:00 2001 From: Ronnie Dilli Date: Mon, 11 Nov 2024 05:33:40 -0300 Subject: [PATCH 114/346] Update nginx.conf.gtpl to suppress: 'listen ... http2' directive is deprecated (#3804) --- nginx_proxy/CHANGELOG.md | 4 ++++ nginx_proxy/config.yaml | 2 +- nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl | 9 ++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/nginx_proxy/CHANGELOG.md b/nginx_proxy/CHANGELOG.md index 1dc5addebc3..9dc6ee2027a 100644 --- a/nginx_proxy/CHANGELOG.md +++ b/nginx_proxy/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.11.1 + +- Update to new nginx http2 directive. This also suppress a deprecation warning. + ## 3.11.0 - Update Alpine Linux to 3.20 (nginx 1.26.x) diff --git a/nginx_proxy/config.yaml b/nginx_proxy/config.yaml index 2c3c7d302a4..9bfcac14182 100644 --- a/nginx_proxy/config.yaml +++ b/nginx_proxy/config.yaml @@ -1,5 +1,5 @@ --- -version: 3.11.0 +version: 3.11.1 hassio_api: true slug: nginx_proxy name: NGINX Home Assistant SSL proxy diff --git a/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl index 9590987517b..58cd8d06e8f 100644 --- a/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl +++ b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl @@ -34,7 +34,8 @@ http { server { server_name _; listen 80 default_server; - listen 443 ssl http2 default_server; + listen 443 ssl default_server; + http2 on; ssl_reject_handshake on; return 444; } @@ -60,9 +61,11 @@ http { ssl_dhparam /data/dhparams.pem; {{- if not .options.real_ip_from }} - listen 443 ssl http2; + listen 443 ssl; + http2 on; {{- else }} - listen 443 ssl http2 proxy_protocol; + listen 443 ssl proxy_protocol; + http2 on; {{- range .options.real_ip_from }} set_real_ip_from {{.}}; {{- end }} From 5a91f7a6a137a551dc0e929fa1d722332ccd6f69 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Fri, 15 Nov 2024 11:33:30 -0500 Subject: [PATCH 115/346] openthread-border-router: Bump firmwares, flasher, and OTBR to latest versions (#3808) Co-authored-by: Stefan Agner Co-authored-by: Franck Nijhof --- openthread_border_router/CHANGELOG.md | 6 ++++++ openthread_border_router/Dockerfile | 1 + openthread_border_router/build.yaml | 4 ++-- openthread_border_router/config.yaml | 2 +- .../scripts/otbr-agent-rest-discovery.sh | 2 ++ .../scripts/universal-silabs-flasher-up | 6 +++--- ...p_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl} | Bin 107888 -> 107908 bytes ...p_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl} | Bin 109028 -> 109048 bytes 8 files changed, 15 insertions(+), 6 deletions(-) rename openthread_border_router/rootfs/root/{skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl => skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl} (95%) rename openthread_border_router/rootfs/root/{yellow_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl => yellow_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl} (65%) diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 5feb9466ebe..3b24d7ee789 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.12.0 +- Bump universal-silabs-flasher to 0.0.23 +- Bump OTBR firmwares to latest versions +- Bump to OTBR POSIX version b041fa52daa (2024-11-14 08:18:28 -0800) +- Add radio firmware version to discovery information + ## 2.11.1 - Fix issue with USB TI CC2652 based devices diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index 3f329d80e43..2cc834bfd6c 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -14,6 +14,7 @@ ENV PLATFORM debian ENV RELEASE 1 ENV WEB_GUI 1 ENV REST_API 1 +ENV DHCPV6_PD_REF 0 ENV DOCKER 1 COPY 0001-support-deleting-the-dataset.patch /usr/src diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index 1b31c91d500..34d922dccea 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -3,5 +3,5 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm args: - OTBR_VERSION: ff7227ea9a2dc0e50f92ab93bd5c9a29e82fe793 - UNIVERSAL_SILABS_FLASHER: 0.0.22 + OTBR_VERSION: b041fa52daaa4dfbf6aa4665d8925c1be0350ca5 + UNIVERSAL_SILABS_FLASHER: 0.0.25 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index fadb3242657..ddd125fa54f 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.11.1 +version: 2.12.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh b/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh index 7377f674867..e503e187000 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh @@ -7,6 +7,8 @@ declare config config=$(bashio::var.json \ host "$(bashio::addon.hostname)" \ port "^8081" \ + device "$(bashio::config 'device')" \ + firmware "$(ot-ctl rcp version | head -n 1)" \ ) # Send discovery info diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index a7a982fdb4a..476c844fe9f 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -32,7 +32,7 @@ fi # Assume to run on Yellow if UART4 is mapped to ttyAMA1 if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then bashio::log.info "Detected Home Assistant Yellow" - firmware="yellow_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl" + firmware="yellow_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl" gpio_reset_flag="--bootloader-reset yellow" else # Check device manufacturer/product information @@ -52,9 +52,9 @@ else bashio::log.info "Checking ${device} identifying ${usb_product} from ${usb_manufacturer}." if [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "SkyConnect"* ]]; then - firmware="skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl" + firmware="skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl" elif [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "Home Assistant Connect ZBT-1"* ]]; then - firmware="skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl" + firmware="skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl" elif [[ "${usb_manufacturer}" == "ITEAD" && "${usb_product}" == "SONOFF Zigbee 3.0 USB Dongle Plus V2" ]]; then firmware="ot-rcp-v2.4.2.0-zbdonglee-460800.gbl" gpio_reset_flag="--bootloader-reset sonoff" diff --git a/openthread_border_router/rootfs/root/skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl b/openthread_border_router/rootfs/root/skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl similarity index 95% rename from openthread_border_router/rootfs/root/skyconnect_ot-rcp_2.4.0.0_GitHub-7074a43e4_gsdk_4.4.3.gbl rename to openthread_border_router/rootfs/root/skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl index d351e375f7a385d935be666afe182bee3838fb1f..2b7b9cb91d3127c058bc7487600ade3d08429d8f 100644 GIT binary patch delta 1595 zcmZ8hZA?>V6n@WbxfF%=-u42mfVKrPP|1LSeEkrNKc+_1*iDTYSP{id@wOtOOg<*r zs+$%Ha$ZrFvS6|p=GK|4MH~XzoO3LhCT3-fxJBbOH5)%>Bt~VYsDE~o_v4=Teb0H$ zb3Uf7iETfK?S;@5C|a+9_ReFPRA|2t&@9zPwcG*L()loYa~%H-Sl`QW;Vs=75n?(& z)91sz!?*Rp+jva+VC&YGKJ&CSluv*zR# z=Vce?7X&ZY!}q!<&jc_Pk2OPLi4e`$>uSGYxmv5wR>LNNPbU_tU4}gMq9I%TL|RNE zLtSW0Qc@s;^`6nJZZ|1v58i5q4dBCq7RZ|0WMRX~Fbj$NPH;~P900h6f3-p< zc<|7B5QMZ~{$W@RrZ@E#C-cdhY?)#`8-26RyTL`rfWDtF>o}BUmFsgdr}v5c$~;GW z1UQWA2>AQaqAK#my5vDeBY{kWaKy?%JarthR(TBOfjO#qK;#|+8;FqCWKdV?W>+?v zQOZKfi~WOA2*u9st#)a4l|0#=hAkobV9PmL2jNwBcWR_JZtW@uUOA^K4 zIZ$gz`zf0yhK#MUkYl7*Y*Z;_4zn?Br7&P7XA+F;+ZIZ&NEFMlvJ+l`e*B;lGNBv; zov+O07 z>)e`1lUik+Gg46k-!?CK z@Qp^D(@K#RxMLpk^itta2I7X3l+BKP^9LInCAG2f-9|R4bscJi!NT|l=?)XS<#1`! zqiA--+hi*xVL4tu37M8i3y_|-fF#mmQRJENEoA8&ntC9W*ei%E3Anija#EWt620V# zv{m{==hE4f_^EV<%to2@*^D*QNOd%YpZ7rG+#yq$OvmK)5MJ*gUwt@33SzjT8;tY= zJr*uXgX aOy^<2Sy*Vuvmbh*)jrXZe)&Pt(*FQnV+zs$ delta 1549 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 B+Qk3> delta 10569 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 Date: Thu, 21 Nov 2024 19:44:28 +1100 Subject: [PATCH 116/346] OTBR: fix start order of services calling ot-ctl (#3831) * Run agent-discovery after agent-config * Bump release to 2.12.1 * update version in config.yaml * update changelog message --- openthread_border_router/CHANGELOG.md | 4 ++++ openthread_border_router/config.yaml | 2 +- .../dependencies.d/otbr-agent-configure | 0 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-rest-discovery/dependencies.d/otbr-agent-configure diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 3b24d7ee789..c5a19e1b3eb 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.12.1 +- Fix possible race condition between otbr-agent-configure and otbr-agent-rest-discovery + services causing failed startup ([#3826](https://github.com/home-assistant/addons/issues/3826)) + ## 2.12.0 - Bump universal-silabs-flasher to 0.0.23 - Bump OTBR firmwares to latest versions diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index ddd125fa54f..62d16bdb5e4 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.12.0 +version: 2.12.1 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-rest-discovery/dependencies.d/otbr-agent-configure b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-rest-discovery/dependencies.d/otbr-agent-configure new file mode 100644 index 00000000000..e69de29bb2d From de2dfd9d85085e59dc488d81c27bf66be227c567 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Fri, 22 Nov 2024 07:27:17 -0500 Subject: [PATCH 117/346] universal-silabs-flasher: Bump flasher and firmwares (#3807) * Bump firmware images to latest version * Bump `UNIVERSAL_SILABS_FLASHER` * Update release notes * Bump flasher to 0.0.25 --- silabs_flasher/CHANGELOG.md | 4 ++++ silabs_flasher/build.yaml | 2 +- silabs_flasher/config.yaml | 2 +- .../scripts/universal-silabs-flasher-up | 6 +++--- .../root/skyconnect_ncp-uart-hw_7.4.3.0.gbl | Bin 239228 -> 0 bytes .../root/skyconnect_zigbee_ncp_7.4.4.0.gbl | Bin 0 -> 240312 bytes .../rootfs/root/yellow_ncp-uart-hw_7.4.3.0.gbl | Bin 240388 -> 0 bytes .../rootfs/root/yellow_zigbee_ncp_7.4.4.0.gbl | Bin 0 -> 241480 bytes 8 files changed, 9 insertions(+), 5 deletions(-) delete mode 100644 silabs_flasher/rootfs/root/skyconnect_ncp-uart-hw_7.4.3.0.gbl create mode 100644 silabs_flasher/rootfs/root/skyconnect_zigbee_ncp_7.4.4.0.gbl delete mode 100644 silabs_flasher/rootfs/root/yellow_ncp-uart-hw_7.4.3.0.gbl create mode 100644 silabs_flasher/rootfs/root/yellow_zigbee_ncp_7.4.4.0.gbl diff --git a/silabs_flasher/CHANGELOG.md b/silabs_flasher/CHANGELOG.md index e75a5de101b..48fed29abaa 100644 --- a/silabs_flasher/CHANGELOG.md +++ b/silabs_flasher/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.3.1 +- Update firmwares to EmberZNet 7.4.4 +- Update universal-silabs-flasher to v0.0.25 + ## 0.3.0 - Update firmwares to EmberZNet 7.4.3 - Update universal-silabs-flasher to v0.0.22 diff --git a/silabs_flasher/build.yaml b/silabs_flasher/build.yaml index 6748f36608a..0ac17423164 100644 --- a/silabs_flasher/build.yaml +++ b/silabs_flasher/build.yaml @@ -6,4 +6,4 @@ build_from: armv7: ghcr.io/home-assistant/armv7-base-python:3.11-alpine3.19 i386: ghcr.io/home-assistant/i386-base-python:3.11-alpine3.19 args: - UNIVERSAL_SILABS_FLASHER: 0.0.22 + UNIVERSAL_SILABS_FLASHER: 0.0.25 diff --git a/silabs_flasher/config.yaml b/silabs_flasher/config.yaml index 872a0f405aa..e1a1b405734 100644 --- a/silabs_flasher/config.yaml +++ b/silabs_flasher/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.3.0 +version: 0.3.1 slug: silabs_flasher name: Silicon Labs Flasher description: Silicon Labs firmware flasher add-on diff --git a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 0a433710a9f..c97b0a5ee8c 100755 --- a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -51,7 +51,7 @@ if bashio::config.has_value 'firmware_url'; then else # Assume to run on Yellow if UART4 is mapped to ttyAMA1 if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then - firmware="yellow_ncp-uart-hw_7.4.3.0.gbl" + firmware="yellow_zigbee_ncp_7.4.4.0.gbl" else # Check device manufacturer/product information usb_device_path=$(realpath /sys/class/tty/$(readlink /sys/class/tty/$(basename ${device}) | sed 's:/[^/]*tty[^/]*::g' )/../) @@ -70,9 +70,9 @@ else bashio::log.info "Checking ${device} identifying ${usb_product} from ${usb_manufacturer}." if [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "SkyConnect"* ]]; then - firmware="skyconnect_ncp-uart-hw_7.4.3.0.gbl" + firmware="skyconnect_zigbee_ncp_7.4.4.0.gbl" elif [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "Home Assistant Connect ZBT-1"* ]]; then - firmware="skyconnect_ncp-uart-hw_7.4.3.0.gbl" + firmware="skyconnect_zigbee_ncp_7.4.4.0.gbl" else exit_no_firmware fi diff --git a/silabs_flasher/rootfs/root/skyconnect_ncp-uart-hw_7.4.3.0.gbl b/silabs_flasher/rootfs/root/skyconnect_ncp-uart-hw_7.4.3.0.gbl deleted file mode 100644 index 43ae9248c00db814072bc6c8d254a2c0852fb9ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239228 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
L`PFj|jVenm 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 z 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

qZz|JDu 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%0D{$B4fsk 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

ap4rwEOwS7k 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 hR zzW)rZ>~}|ESOaJ-Pub_Jjqh7yhh|DtTF`L|?5u==blz%eh}R`5ecn!INnfF}eZhDw zOxvAX<5%$FYe!gn26#?r^wlb}kl9Ci1j%CT%rIusuhJHb)q3zGW$Y)59I~J6qudU| z`B>h>zWOryl=`0fn`G-<_@+I0CH(6~g#{=z4CFFLh&v;))f;c-1#cT`o93~>)2Xr8 zd>mpEwBmE&d>?VL;vD{32IhahywHzqNHt`Eo3JB;4j3wHWw(a#(5_( zCup3nL@WW5W5kO2hX~>rN)2LJl+9BKX*WONBa3x7M!BA8XE2Cc@Ql8o3L~9)o)ITR z`hxK3;0}j!hv8;p8`X#I>cL$q_*LUqj!Q0>HqS#;c#BlFzHUdE)|MfjrKHl%LbY1w#HD1}UlRP(1K9c5} zGnw&EI-(H;NF_8X|1d};;cgE3Qv+ty^Y@5Jd_aXZ$=dBmP% z5OYw&FM~X;y*+v%7z3{m`A?~?RA*{027L8>3i1OzSe=i!s-3VBXdLv!HxNl(+D5)p z18}G7QO9#3e$ye>$nKj;SXhQmYVSK=9p7ZkTg&I z336Vf;COeutjm!Jihqdu-5dElc$4rcaLW;M0uU6JfwSf}HGmbpz9he+Uf|co?|Bc; zAb%G%zpuWG!RKucd<(l+yuwhUj!l8+j{{+YfbmDD=@9jbK-1j6wWk z5l{$IFAKf@%2fA5`UMcg3HF zxia*;KP%4zk2Ek?bceC@lb{+hDT4@CAiYYzhdiw=9pk+$We$E8%(8wRq<5n>q;{b` zqjx8ZHf0?#h~I{oe(z#>!v#uaLxX6?n>s5pVbNjCsfrJT?4xSIV6^ug8@^#2+ z&umFYW)ilpS2BmmUv~NtRzawXPa)HVSQT1_U2P3CZmlpA>=!$Gt(p&dt^BmIyb#}~ z4r#7t7d`0=AYb}~qQauT;hO>98jw9c!uI?UqPR71K;$yHREvP0W;x%)TER;Jt?QHM zI<#WhfLF;KpRI7KEVv5MLk7GPy-~UHMtiVZy$CN-jcjn#1!Gg5^K0D4U>hA@G_B|(d~XUy znmEQe0r)(O#aZ|!pSwXUR`NgoKWu#qd=q8X{#i$V zw21B^=o-ZR4C=S0vhD`ml@tVniWcexVfhwCcL5cfU|lNKqPV+WcM~pd3%J%BSzCb# zEzC5%x3*xm zVWYScGoVrI=x4+pAl5GZ*1l&_xw~FPvwG3M^ zIcn>MT>*YtAD{(K;lOWd{FZTZcZT}DZWVK1x0WpiVhMVrH+_Vn%Zi^r~;N4p^hypA_tCh70}PULRCv72Y#i@g))Tt=5u_(zS84zV2I{nUh9(7(RyCu?3&KV*6FW#tZb zB2(HHWo`U3To*I3MBtx+Z3pY$_WAq{rUZRv>Veqj=qcwYHlCg>uEjc&4+K|!^8w7A zJ0TZR8&N-?K0x!o+ydN&katjj&{Z;_BWD3K$>=pLU?%JEA5!fsgCDD@peldNtv4eoo+7wK5j*X2Kad*56Xw~6I=2Z!ftriMBllv z*qRH!)sVZOlf|yGw)@=-bSV{LZCPD2iWyVUebfF2CLgR zo!FYRwAxpnMxO9kZey=D&m%=%;mhf#D2-?7-ZZnk>*sr7NNv)-;Pib@E zr6VI|1~joqZCkPqS5IsEPLMtGPhgritHoHV7^C!u^RHr;f2c?F6Dpx_>LQ7Y3#N^#7~=R3{nBEm*6p zs0|Lsf8Hlssl#YEOR2+Aons?cYLVer!%LURjG{e!Gvpi#*Z0*OC9Qesxz$4T%HkNQ z7wTgMC9Qzcf;)g+``;(hZdJZ zR=Y3y5<^jbzKN*Hxb3=jzPJ}YRfI*D3+eV*$oxN#)_c?uRiimz6xXJLRb}m}9vy2n zE0PBG=bZhnT6ND~)LQuNFHJV|0@VNw*Y8r#$f_gvtOZj%3;hHi!W$NvSD5)7r@>Y* z^OR}_J+F$54VPozx}vJ|j7i|&iKb7fBO|Gmt{tzZyB?0tgM3P9^6=J&@33Nh1^>u2 zm-tBVbLkiTM|zFyg6f3y+tfX4>ku7;=Zh-utp|d3c<-7tMr3i+?O7rehP3buE^?x` zLZblu7?3)=o!^##@BJ>E!$-hWsONW>+i5*R42C>&JJ}2PZSVw6s-EX}gxu<#d<^#n zbz-(|T6Lq$9Let*BWGp62ZZ6H#sq7mxF-9doBN5J`~8zud@L`l3)8Ga2ryhv$EbN1plyQ5Xq7k*fbJj%PAL=x=XSo#^0akmVcRQlKOE!`T;+&=&755%d@P%Km0zkUOK$!pjvU+F^?I@nS- zHg7>(6)*@OehN?=e%K-^x&21*p(J4?I>M8&g6;+ues?3G9ll2U6?Xvh01k4axFtES zXujy>Ea-O$#0w!@9^yd(t8!ES=hAlBTtjUG%-5ymOW5goh>EsZm*C=s+m`8}4LaQKDjPScNTlu|eaSt$`m;JDuLH9n|xdbs=8r-8W z+Z^pZ!k;#~dKg#_nCVu5ht`6JM(1DPW(zJQ6n`~%vZuf!fkj${ux%RP5Bpnar41I1 zhrPPs=AcdODY*GPybsv~$%h0FSV*t+GLGHL(s~aQY=gk3NPj|1!OSRIHXHJ`rpC^} z+r>0C%=YBv?di$MBR@)08?`s-N|bpCoFUo5ezasI_%|vMU5#-Pe+k!7r_4;`(U^(o zgc)F{0$v}{3AHE4)8QxKa>%l*!GZ7WtgqwtZVhJR|CEt<7j!j6;9lzdfv;hP%oVcb z&Tf|NgV)*R_{jSZcNtd8`bV1|b8iCo;V#+f?~k&*E#^tdGpfJU(B z124G6PR0tXf%i?5M&vZ?RzG%2%(E%!r?4S>g{XhFnhI3XE_t@ovbd15p^QKYRDdbV zLI`qxztOG+N8>KA9gnRcF5WSiugspjo5}yf*bc8YaP{QfO!p$j!~~fL8)1zC4&w1J8cw`SScPUa5zXwxKqo_L_zEqw#j;=5*VU zJ~EB}2KL>m@~DtDucYjsPjxeLuNF0FR%()P-~Rc)gqBT$#mqzg7x z@=Iy5kdFqnTiM_dt#mToTUqqhg?RTY3wY{2UhUngb$Fd8az!23kyY?hF1??gURXb|(9 zIL{~!)9+E2RM*rFl>e2!U%MXqs8OWf&^_Kf0ln@fV0-JD)lG|uC8>|1W{`)G1Wv1h zjxpGy-4Hc*QJL1j2GRiSn%SyFUH(yt=lpQ%^U&>(%(qLPix>DD@TR05z^toS zvY)Ra?*sUI?9;;b$3S048qN>me{gF>PCqr;D{0YtSHzqiC;GwCWT-b+wg>55Pbo9` zsaTg(GXO*b>gyPyvJkdEh&?&9SYWDV$troU1o*N#fo$P7Lx&usaY7^c8v3h_?+EFeS^j) z^-YqY)+)B-%}TtM$D37AW)ifbN;_tVTM@AYJfLXpe)Nr1upG+x{7tmffO<-dXSYC- zfH!wtLdt?2YlASVy&1jCqSM&3?B@1^h%7}h2*Fh^b`P@fWPl&CgJR2nA^-M;Ewb4H z%#H=jdfzdy#uixMgU)F7)B203kwJs_HuNQo<4t&+P6O^D8~*YJu`79vpn?~{Gw>2r z?aL6=Lw;yXREU6Fma0aNAqzk$?W^jmu{Ik~e!>N%O0zKUk!9jBoIQzsG3od$#u1yr zBb^3t;~sJc!4M)34Z@aD=uFwwu)`ENHTIpj-=sS##9>ERGE5QIPoPZS4DEGKjg^60 z>&C;pwHkP>ThZ757Nz`v^7e;d{b8VsQ6pfS4ki8s_j54|%D6Oa5dVVQG_kU|<#qL7ee}Hunk-a<_Lb}FGor;fVX;yT{c#6w# z3kysx^1W`*3|@yyAYa}dq8L9W>qUj9hx&0DD>G?}JjTM>fO9liA53$T z=bBy!>B_grc_zJKi=1!z64(K{ZUpp0tMR9Cs*U%gtP@L7^p2vS|6pe`jAos z>x1nH%)qO`O7+jALHrwV{ucO^mCLIT!Hx%Kmk}OEpA4n_wHz|px((usGW;SG zYg(TF>v|=!J$%hr`=0uwQs&Pvep3`@w)QEoX^a-sTPa3O!9mt;1Q+tpfOELIP9 zOgza4h<-0*-sgbv_)S9UlCOo0K##bMAETCB;uFDrn#m^-N46_Z zpmfTwq_bDE>ZHcTb?w)f;oF4B0?)U}GyH~1q*A^BUK8n56Vf4hwy;TLIZE+Gq__%u z6d{V-{RYu9_^5jUyoxi#UkqRrO{;>1U|KT+hC8D;0IPSIlW#N&8lbLjhSm@DGpO0Q z!R?N|d1YK*-w9?!Ue$C>jNfT&Wv0!FB1V88QDQ{1dO~F?qMHhaBmccIiyh4CWiHX( zkRh(cPEL1__DPXoxxh|}2*2u5N-nBUnnU0hV0DMdCq>7URYZU9`D*Q5A-?B5O}RV+ zsOA~)1XL4V0;4EfnG;ds-LxaqVO=8Inse}vGPgTJd|y5fjieK3m#dKDJoE@){gmHA zi>HQZ_m%-})m0&|l8Ogp+IM~y1&4~QT2McqlG?F`{XKdOaD_%Oocs{;%MP^cr6Uu~@Yg^sxIwuM*$z1bY_4z=hGU6YC z6jP>q?G861K986|F7c^gPdziy)rDw*3TwbzptMLfejCx5*-3fORI`()yc1$)q{8IG z3hJE@@9O8T71Yx|1adu?tOkx{fNV6Fq4nZbh*HG^H?TkPuz|xY3hU9uUT_^~cD{^~ zl%fPPo%hw3)`Pp{erB2*`%as)r=Fcixy%LM1Jc0UpM`NYw{P0(B{(y}7b`r3C~A`? z3Nyh?!tX@9;C2HdQyCI&!zT(i&Oc(S@xJ;_%HzIzrt~rN(rwXVuw>^8D(Fz>_UT@K z3ie|4>wME0>COHP+I4-Y1H4kE`|ADilpXa@b{G}{`&z0on#1k&Z(O-Px9`7SXC`7t zTXsBlSDcx)4tvmuFcH0PsW3~)zd80(;YOiSnM=t&Ux)b=abG>Cl?P}i!3l=y-^1e) zQgfFk^ek42{WvrF{cW4pGSk4kUaoVVjzGUl>o}fg!2b3hKDRXc+by96cz};xyIISE z(Jd#egJ<9cXy{2dJMtXuU0C2O$q%bT;f+gKOl@1;e1heZQQZuZxkv6LTR}=X3w;PU zykc{$#_H43r;4o&vT1NnJ#Wnr_a(I+E#l}Pj_{0QCT>8@wEcUwODp~wwyPHGxk+}p zQ<0O<6DQ>^%B{T?nowv^frO+Ukqz`nHW=(Sx{V!jTdItUzOoiOv>3@o?J1yJu09*5 ztL6vcSsNQ09D6_U)18e|9Z)$J{gr7eSxCdrU|N6}&kC2M41E2@_VJ+um;st(?U9$NRMD_I&A<13 zTyCTM=$$CIK(_`p%HRb_TCljxqb{gpHgR5znL(kn_Hym~XEd26578e*!RrW|gHqn)$z;#_`n zq@ueaFRxxVgLR&Y&y)>M9D)R%FRSLf;#POAC{*Dad$nQa$+$t>3}h$nn4^-p-xkY; z-|C^U#9GhN9AplI6Am^NZz^BrGg8v6sjt!ggfq~=_VyuUhLOGyMIF;S!{51>N(^my zHTKj;G=c2uZzBg3ZDDqoI<(7eid`FKOGdZHgfwM+q5cVm+;`s3qHnVf+f4>!O#HR9BieXRxj z7IQIfKabniZqsumU(&dmc{*}D&aVY~rgnTgjcbz4`1*hTFxE!;@R}B?H#JIV8+L{H zwL7%x7`PEtD)7Vcc!E#^H0xhQ9!u!k;{tZ-fJ-gmxpSCg$nM;P`^WeBU@8{w3p32 z+S|ZCR{wFmsf~q=gNLOgJ$|VTsa~C!B|gy=2K0-x<)=-|0PliS4E^NeuCiNCM{>hO z6=gR$+lsq+RZ`jC&{*}i7-4sy5`oG4q6cxePD`;NW}+6_(|<=c&_2D5tiUNa>9Mo= zl;>z%P+v(oOwrVotf?7iZ= zXAud2e0&Xv|7Q;SEu(22Zh++O+o_dKWWHY3O5XneOf`mIwup*F{&$d$`(idA@3@31 z!#)zJ{OBE3Mc`n;Jr=jyzl@tLo6v@Yng0mm zk7T}&71`@uBR*H@4>(_ZfbQU>(zm!Plch##_i zrtp1HIf&PhbZg^`3w?-8DumF>>l%4*@#*2MvDZCU*@@>zf7uF)ulIUERZN~* zG%~7XYX3A#J9+16VdysjDCl zorzr!S@aD>779mI;H8`=xWycfbjT8-TWFNh8pQ6{i^X^);#A?k&*}s9^fW|{WNiy2au!Ql@8|uYB4DWVlv}SbN>;6p8xx?&BnP>%Rv|j_^u!$23`CAJdhBr3lf;5GyPQ zGy?rHUcrwnQTozc_^4hV<@awBrV|HG*3(y5SV?obrs@via*VW9W57p2dp+92>#*P3 zB~Ni`_fmZ7E%>I!jyV*j-|07%omg0laCO^|GtB*P_V`eB>k_alsm1JJOSn&3rNo?k z;PnvJgc6jQ$ESrDhJfyPXjm_v!Y%0ARc<`cEJUnb^rM;;ZeRcEj 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 E11@`D@c;k- diff --git a/silabs_flasher/rootfs/root/yellow_zigbee_ncp_7.4.4.0.gbl b/silabs_flasher/rootfs/root/yellow_zigbee_ncp_7.4.4.0.gbl new file mode 100644 index 0000000000000000000000000000000000000000..14a8f5e949038a93b043dadd061fd96af3bfae8a GIT binary patch literal 241480 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
w6!)x^$844w<8@~CN6D;7Uudo|I&&R} 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
$MO%V6Zc0?+^aTgIt6oQ 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

cK{b`3DmG^*?2Ne7TFkF?ROuzIQvaS&(!z`Gh zRX#!^B?w2Q)4_M$=dmBazNpA7Fvu!LwR$$HhE*#NT;QWqM^+W$RMcO7)e_3}hImxvS*;!6fVt67i9-!EVw;Xb_$IOUc*MUW9>=10L2iW~O*rR}GX`7LuuTMbML3Y-qATd3Mf^@%&coFj` zV|`rxR_s#EPLseOmK`w(utzE1r#DenuPVbHQsygh3D3d$U>0V=I~z~&rO-DU!8FVw zHs2-e_ug4LALH!T0s41CfN=GkTvq&n%{Zo=Ig^nms5z_MRFAbABY8>0)DVZAdA!sv z@lIU>dEesd8*yw#^sLnmPYqz?EHuQ8EqVL>0P~x1uJ=P9^?Lal+1O=f3$?N<~D)IIFtekg-h~gNWIL zA^5R<%rwINk^LB!7U4{kG%1~b<`hjpT~D!xTA_7FjXJ$PAm=mRoCBnSjb~ns+s_K; zv13`#x8Y#pgg+ur(hlOxE9Vd|wfqi9dxQHY>~sY%8`N8~3%4~(h>JD~Qg|jfOTJ8@C|ATf_U&s)^cjU8!`Wri zN+EN9J-?Fpa2jFrW*qZ@41ot2@kx_lvs%`c4ZL0~Cf8oLI!_X7!zS6=LL)lUQH(dD z@ypdqqAuKy7TfFI(Qz^*HMI^o{ZgFYv>}=qx$lzUn{WZa?rllN2;(sB;zM*cRjugM z)|do;T3lwmzCjb%9e=BON_&hL1jT)X{*%Ft;at8GFi zQq3%$?$yrV{_wGTDlY~aQ9F3|k;`uHqpE7y!7Ax};)LEvPn)`d!yNge#Mm?OE^&ep z_L?pr5uwe1B`t$DW5$jfG!+9E4=+su?AmjH&@(}LY3(fTjp-4m{U?GR@Teu*dV}O& z3jrTH@;)RZft-cpOChWXFuaN`g)INjJ1G59n8{*!Ln$-yn*SX)EX$cBNhktW0`A?$ zUkp-9O&Mfou`-V$&0#8=EfmGyehQpD9bLSZ> z4lQCGIoZa%OPc89F!L0g2D5S^WIzd!=p5e6+3w)8%O3?t4A(&S+As^R!H-4nWgV~5ISvK@zfI8^4S$X&w;$*@dmJ6NZu zo%U}^#0001hmB* z^!rGR1|4f!8RTqZtCGumpj2ffnL1cx@Hmra> z^vf|$*l90D&$ehUGu&QeoI#drcv_UYw2pn3waDe_;8y?}1>A$qa9O4QR?;?4NmbVe z#R~&Jwiv*;4ixgMbPd)Glyo&ZvyzynB=I@m{9$K9?3g6(0PBylQiM;F=F<}1>jPd5 zJD}YX3;nKLO0vQcH+J&XrFy@UPF4PKfxYb$#3U>pNzah^_1~G z5o{Jp-5iyDy`g+wG z^rB)#{@d5RPbQRW>+|84J9F<0o_O!i+&LKt8Z)e&S|E|xYVCf;f&IX1bnkx+%)q;8 zu}X~!7s<7xb(!KG;)Hi28`D&<4?1zYXXpafe0l?JAU<2eCv_Q19!*QThoT`QaX^}! zubOtYMHNtG>$=dN_Yfll$#3vFyW)gRKm$^o!)@@P72-p@+HuIiNqW5d3=)2U#i|?&*$KsBq_IUW8I3Ty9KyE*Y@-c5@toBRL;T0uhxsT;Tpzq)| zlyNCqz7AU6-1fKKs$N!Q32@-KURhqV2vQ)BZnF~-f3->22GsTy~@rUUD9 zK9I;$z8ESi8P8%I39ZD@n^02Y&IlMPPiPdKAK55Is7{j)W(SHtS2|548|-P76eX^} z+G_+F9OZ*|ObzRP5c?Meq^wc+7oPS5xCc(7{BePg|NJlHuBGx#MVxnoUExrICymN5 zLTB71shxCxst=ja1qeMar1_*x9rR6sZ&U-iAA9$5a59wTA&KPi3yI+<5vzl2FN%GV__`%yJh0GghV&$FrG>DqJtP zl$U}>WJH_7p{S+^0YZnZg|9Uk=u^Vjsr_#iN#g6Um>}QN9s62Tbt|y8E(YsvexG8s zBqkvy*Tyi}j|Gx#xAnxz;v8K;ZG!~t!{~uiQWkScnrKyH1$`Nw?a|Go0ho|a7jmiU ztDqX!al*Y}qvPqk=dlOkn*Swx1K)DHu7ggac=;_QLbaSPTJf zsVk_gUelmyf#WO6O~q<3ca!_VskK;dNJ`Q3kMLhZx@fDO z4=U?YEA!e?AmP-I{U@+b_Xft;E+WEZ37>+UTOV2N*W6niSGm)j=C=x8Mmc^(vCKMAVfAs@XZMf8b;{) z;C}VzosY2`Y>WD-;N`){T_yYubDQk>h~dfr0`C=VJtN$N^|;ahKrjVsg|S(=m$#3+~LH*REuF}5lRg}>#t`p2Se*IJp)fcw3J7G=#Jg~=hQ&5Xl zz7Tg@^^3toUzXs4cal&FbX^Fju+Jhnu*^;jzG9nz`Im+{Li1$VgRnuYirHtS;Wg9q z!6;sHTf1a+Ilbz_6kg?FY`YK#NBJ&2pQxc#t@xDgr|X>`DDVXBVnZRWaH+idLZt_v z3S_Lhr~sqkkjEg)8fG#^3-A1d!`<_t?~L5P1p0A8tAf`K-@`cR`XSh5qpM^0&>i*& z&3C$1Y)$7K@~+s(gFl+r2j2CO6b*!FR4OBz+{W&;Hf;}$=iY8DcH&21xx5m1Mb_0G z@+qdI1kQ_@gS*{{-SL<;iP-HE7F+>Ol88O84q2Ee4v1NWy$bB@QSs~$vhhJ?u~WhU z(l_?H#qJ)=tgqoq7{WY`VWy}Z7ots^;J<$!m~|sC%*)HU{oLm@fXZy!~Sb zbnZs5WirIe1IdY8_6}Vow_jt!4sJ2>+7D5@jve|R`IqFqI^uIk+D9SRh?hr;53T=L z^_s0BtbS>;dY>CD7$rfMCr5&M=|c>z)?-oqm+Dp`_**I!!TI3a~l-0b{YLWG}c75-OIb#d!?H8|EhoMi#NGu*0S} zSE@N!ag&&+_)t{g2q4af)&=tUkBkj!1A5mNp}jRq>6m*hLrkwiug3n`iu`}TA-KSt zfOmWYzGWNU|0sNDh`?1kfsR}{_~EVD-Z3!aEPeioI3C;N9bFl~h9(D~D zSRX<&WP=s&j%b|ljnn|$ezV(x8m7a(949<6T=F}ER@5DFMW_cW90kkWZbTf%Fd}aj z(OJyh(5~U5*D)(=;oW5%uNBj831GGA8GH>ELiz^oguxv@ADqvH(dhN(o!63>3&&1m%4_5ft$-4t&^^ePW z1D2u%(1dCN2f;}8u(Ttnb)19TwhG@2;{aS&uY1|a47}zF{JU-=GkFt6#^H@rv%^?* zk>!?ALIMw>eKX6H&{5)qD-z}|+Sd*XzJuAF_Hcz&*c+zY9y74gQ_F7Rr&J!66fU*E zs+p@%FM}0CYg5A?I}!T8aw-e_+;PHJh!0TkML?Ds5#<@X7yR8_hX>R)dO9;nb#fU- z1|bWg;0PwUxu9>xLE4QnIV*wcR^jj6!)$P1QUK=)GJdltpW)z(zch4OI@`?jMsGlN zcqbuFRn=5(5&C&NqplW_V?tf0+=+Z1)pp2PRn70Ox#G?vPXetTk)~p-R+GTxGaeZl z{|mjips%l~@T!8tyFr%$f1Z?SMac{!T#25Ryk6b@g|JyTz{9&8NHOwZ{G%yDNmt-X z+cTXG$oF{U45j=Pvw^2}VBc-zjIg;>dk;%mNbuFN-Qo95;0lnmR)tU)i7VL;JiH={ z%SwhEq}HXkL%zkS4DMnbJ9?N7nj8PXew$>4fH`vsAM!(!J(=tc7ilrVWg-+J_=+PPA>;QCVs?HIFNh#Cfx+oqVbpzra6z&Ko=-$cl6@+Qu1 zdH`rdrE^RnQ%yZT1M3-6sSv&&8in~ottt0AT2z}uEoJo2;@^S?`Bw+`_0Cl+buV2w ziPsh>5tnT}Pi?BqQf2)Mo?q15rYK^Cvas?z(?M-`2i6v9Q);sTv>n;}wS`u}153hU zA9%2_3M~l{qXAj-DL$s9o%XR5SHmH*PD%w=xE-V5kKp`rV;xAlgKT^S$x1@%O@AMl zc58{XFr@-fr4D2ZIB5pAQC=GI{`4!tNx21*&Fa7^YwSssSi=wC|7H2J!NroYWDjDy z*j)J2U~?ZSH-!3WT9wGlLHlnj=4I3WZ~xteaWJyK{$G#(b6?H^Aw4?$?|nI4OER~* znFDvqsf%gr)Ya4*n|V{cvf7Ll$0+ z`n3ut7;#5i zM6p56Wk!~Vz^8SFVPn_h9aderAWtF@v92sjC;UucarL zdNcKOH&@*pG#gss6n9g4{B-8b+w`k}YZpbUxMw{$Gh|R;RIcE=T5Ot8g}A z=+$wHLz}OGl_nfJ_j!c5Y*6>N#QNZKi@sOMnf!QP+x97@kLliGM^ytV3^6L1J+U&T>mG5H=Tj~*m6Ww#5klD z03XCaem#0nT?U) z&akl<5cf4=AES9jynsfG$sa?mL+liAv`!i2_t@fkfW9b4Ub(LO(?q|+z*fhVu=X^R zL$e(ku=o*tA>`2kw*{^{*Y!Z!8TmSG30)Plo?QyAO6#JtQ`qY7QL^9<1nHS%OQZR% zA4kU|X;XuOJJ&PD@9hgLiG0G;J|4Dvc6Yg9a$D*-mYM zkbJWhbj9O{2*;{onMOeun;Tz zx3Fc?*gNb+`H&^7fe$z^!l*`8VEH`0r;4p|e8{~#_eC<+mJ0*gs)+cjp#v>7?i;!+ zkQVcyP0eX~L5<3SMa5&lgba`|nA4uFkzTpBg7}_93o`Ubn+AsmTuD1uYb(?u6ryR5J z9lVReqN{!Y9JcZDuR!Nfyh+`1&9Y7lG|u^+!~>?@wMNS~FJX@T=Np_F`T#mKlYOh7 z1va5y>;&K5Y};l;3hB1@!za!-#_+mYrfM19KpdD_VuyzZyp+{rVecDh;e}{nYTvO# z*+;aHIJy4#{iS`IRs+wqcP#32nq#`wlYhxv+De?-Aj-pKa4u#p;wabn2qcq1nk)eGt^v{+WJjrkd-A za(Jd{1zKLSb5Sr>qB!V>eoyx2wHSk>qfpOtLL6tsN`LFYo1qKj;i&K+;s(lBsyAHE zJ7}xa_Np+~H-yo?(8cB*T!<0cFMc1HSz;Az7A?FI@z_nDKupwh9GL`U&&$5uPsc`K z%^>R--^5g79y<~n=(;}qx}k6M!Fcq*Gz~^TnL^eBW22IN9dUw#^@rM}TBp^PCuq6k z{fP~Y_!cMJfSvV*zED#Q1ufILcVtsxmG1`c}ck zg#1+En#d{Wi;l8W@P_>qr2AqyLQ~5Vu$xu|k};>F;;JZkedNgTSba&xz18f6d>zYI zL(=cw{byei_AmzFSCJG!p-J>B+eW`nK0z1H9x%d&ZGuF}DI?~PcPB6tu!6~R-qdt9 z$R41pRQrv>Uqfpu^a87o=4ARwHne;1@u~Jh&oCzN+&8NVY{+Grf)>>(`vY0NCo7hf zaF;i6Ib~#v>V(Bc>Fibqh>Ku#vhB$V1NeWBO!!j}oGPyr_^iT91IfN_thcqADbT)i z%IFx#GRzOwZ_CLFj7Do*8PWnrX6pR~YZM-a&pdWbKIh6AC39OR26VVegeN%H!%U8G zXV*ZM{bIm#$T=3gJkeKzxh4MKyA!qr>E4sv`A)jyd-;wxj?g%5!u9-sR=$2p^ga2y zm?zZf*J0+&G^QY9-~;m8CJeu=x+jZ|)rCB!ll=57OEkNO&aqi^_cghk*l~Bz3bZ1V zecjJyb>i3p>^PJCXFrqmT`(Rav<|h2hXz&XJSX-I*?Db-i$5n`LuQ;cUdmc6wiS&~+sC@7Ss}vcHu!ChG z%T+d?Q)Cq0!5ycOWhQow8b`DT|65?ZjGCnU*DU7IcKNE(KE)blyk0IL2lLqMd<_4> z7G&pu@jV2qY9ZM5+k#1Q86N6;; zvNkmsf=!u(ub$|Mig!md_;Sn`Rd{qyPR0B~ql%IW^%YD-l{=%Gox$elJtpvKm-g*m z4GX{U{!nupwY3>7y?BstHssmIFAbuYDY@DdXxDu3C2(>kgg*@ggUZZ51;ePzAU>~R z&lKyI)Z$dIF)t~%mOs}#wSs)d>2fZLSRdUD7E3W;5&EIIUh{L1>4{)`V1XhuGl&it z+U+xy%#iEkmy5BN*-dp6iLuzVFT#iFYJvEzdc z)2rG~tHDaiU>gk%&g2dScnvf7L zM6V-yg%u8?hE%Khq0iM{p;kr1wK@bXiq209eW5;r^9=k5MY7K@R%_HwqV{+@ptJ1> zlHEBK{YUe9C&n<@@_{YN)Q^X~;nqnN@c(sv4z4?oi{_>6$nwfZ+t_(Wfw`OH`N#lReeT(oe+E5}m6Z>`=Z3P+$~eI>C1Z-mRxpl#w7la+HuLsG z{$XG#o^vaD^@_g0nRV|}0#Tya*7j!~@h6;FZNdJZtKftU9OucXWG0>iCzHpeLoF75 z%w#;|-Q#5@U6jv7#dkZ%+SeWtgY-OlE_KG*;Q$Q-2pN(w0E7ChowjM->Rl2 z-$wtb7=_aUZ!0sU#Q!LC&wl|UUXJ!{K|~zOsA&~{9=?j8qQQpI_jLF%{=fKB;O{#n z#aW%jK%cCiAth8zE%x8@ly5pl&dXs$bFR-RqTXcDo6{vnRn_{}(tg68KfFFr5Z?`C zm9R+maMrk0e7v7*qbyeDI}23ZXV#ri8;&!!&x5xD9Yb-Q7Qs5e+CIj20VNDp6d=w! zW&=zK{1v_nco9~!&;%ZqEuO@sH!k`;t{fshuKh}z_+WDstQCj0iJ*~Ze*dEdEp?5rPK&aEB=eKOI1 zR@@N<`VV#fKB`7 zx`{=0xh4kKwJ1W+;Q3;8R>`|*KxG^{v#v&+-f1t=Rovf({kS6zwP&_R#m}S~AH4yG zH!$`rR|}onHUH{l?8=|7IEeM^oS$+J(G2~bR^>n$`0KtJf+Y?a*6D67?xxH$8#v1F zM`vivrK-<#Y7hs4kLUX!@!QedAfE#He_zA=xEpO1!7=57R)hIs>cBnlCLNNPs$}nq zlHHee%G8Q|;I^xQWf|H#Q2Ei{RCc7ME-kL?psdTMrDeVbphMuPEy1q%>KJ6AGk2MN zSlftK3AS2B*y_CjT-LE1(EZ|{4> z-^18zQckS69v9BBmaIU$`r2_sbUr|LQ;qGAk8VMscoD~_qwRH|!A66}gtKia`2J{u z+T3YGo9iztm@RJYiQ@d*Q*q4FTLfXPL0-#@H-oC5+vEGg$*`GHAB@Nr>Lcnan)jIV z3z;na1pRHNB`1)wSI`&AF3jPDn!@Yig(I4*ATPZR~ZiC(O>eBFhXj%B1^A z_8D(A-IfDCowh3#%<4IwHM0C8$+P>g^70nu;S4q5IA%u0ErVxUkRKAV?thUxsDm2# z!?;_Bg#(d0w#&#c#L4x5@4KDG|Kk$jd2P{Vw;rQY68FQV(3+9VKL9y6H8jEdh*v+8 zoz;UmO7)`hrPjF8xLa?om{NgKKT}_RPTA@%y_9b@Ud~s>L-*zSHZRS)l;9}y?pck@ z5Ko?2&CZ?-zu-IGo3X~fiAIX8Uivh1Z_@odY&@woezb=LcF;0%=tY_^nqIR(8I}o)FX+^8r{u4~* zJ{jk_Cpd)nyczE~(l=zA*S6|}JEHKzR(_V^ZD|ItqpF+u#efUP_<)BDeM#eMWc?sk zDHCe^qRfnSUHpB7m`c_J;LWqBvCjogoK}cMQSs$ZY(P4#jr?AHH*lyH;mP4U>WQ75 zevujU%)*2S2P?J>7GI<0HA!8C6?||_g^{8Rq=HPkbCtD1<#wH}suvP5Fv6g@1FNw&UR} zAW?xgj0?1eo&_Q-BxV6=ZWe9@Dj%6=ZF*sUB(};uoOLlsmJCEPzsl{`15XOXFt``# zU4INz%Gh$6Cyd?Nsw+vW(3J#QUP9h1?8Mv0tlx+@+@0$b6BT}aE;|G9EI>m3dtR`> z-4btGT7|a6k9;<dsb>-CvW$Zm&$LCz+I5LpSSoBNi-?a# z&mapXBVYG0SR~0G!!S>3lqD-G9eovf4q+R|c_9;^`^M}B*lY1$KpKAmWRam5JO$+e z#IV{d$sG#?D?7$ptzlsiI}{}zV#;;;Qb)B7V-Drg{j`4~Za*XPHhmPX!A>K&q5}V> zmZvDqozM6Z1h<6={L07mxz-%I?%H7NU~C@&gY_!rY&|fEK>r0l0*;H;A}WtCvfG-0 z&g7G@5@kdvo|=Oezb|@^&%tx=bG=rLeZ(^J`4M*_EHmr`uHm^$8X51I=Gi8V1yht` zzWGzkA0yDohI7Gv1h*nlWnz}q+0W1`&!e%0XW zode9|e*f^*9)qA6_zC?_?@U-qp_R?5hF!{3Z$w?c0aJwuSnrv*FMfbUoj;azII~Tf zwHU~)GP>JT4}NLmQ4-uDgsyG^p-uDcPJF%h<} zsJJ>Rife|5(-!yyVR3Xwybx;cWlGs@DZ%Q+q4${40_9Xcq=-7Kc@LAJ@p3?|b}nZm|k! zk8Dy5<4ZOJYb(Wq9`hyQ zUy@>@y2+mTGO(yMKE=9t%v585vWJ!Ukb6z|t3vJHnO@>9S-6r-$+NG99nTR8iXw4H zNx){tyr)XxY8%Y~TK8{+d?y}vGctfCw2JhCZR1goH#Q3)^L{>H#MXkB#Ab+H9_G6+>d@f})TiGKFyfh+e@tQmB? zIW|@{!=8ijQo0SSI4|(yWZUmO-g#|YeMJ0fu=xm~{t2r%3hS98!-{pZA3PPXc4YVZ zuZ!Cy6;PJswDw9wUKzE3X zBTr$TQQVuSl^b8xjMbpbEbxfL_Smf0gIyOFLEcGzMI(8Pvv7RXpH>pHc>Wl0UA5$m zDJDNdLb*AvW?;+0MMsF$@Y;I~M#y4#jnUX}K6ugMY*`$e)ag{fmZ*mLY< zHjat?-^)Iy*rWI>{y&VUWt~69fO5FkYS9Ot#hhITzUGj4VF)`fc=iSY{|bi0A5fn^ z`|0|x@Nb;uOaB>URZ&@by6F9XJD{r4!3JR#{vvGz&J^n^rAmt9*;v2` zfABKnsYdf*?Y%C>kHquyN_@A1=c?Yl)32<97mjlEIz~BQf4j)+osa&V6nQDgO*Q^GtdI4}!I|mR?18$HT4l4168~SD)oWUzHsMN2+4)nO2RpXz$1 zX_s`D^>&`QfmRO6`J)%MME-vMeITP1IT>J*SqQv^ze!n_+ZGZ(8(a?b3BA!rp^(^y zmRr#Gc@uP>fjy;FzWL=TD#dXJ>Shca(CCl95B$OWLEm}oDbR}D{szt8kMBP}w;ZSo zMiBs$zMw?Jaa_)*!2I%iRPmkI>5E0fc`9FT!metd2_>Wqk}ePt$A?AHHu%E%dW=8H zr%F4(DliSdDkZm-_Iam6|3^%h7deqr%B;eB(x#wU7=TwEOi)eFpv4F`@_17NA_sqs zwy9+oTz{zP<6fi1)LXy+8<-jYK9KxT%CW)h*d;AuOuaX8N}*wJ$$72)S4H^77=$kd zY;6kU=A`_s1?S6AYAp8M)kME5gxh7i4tSh+HOA;o(6!DC?FMqriCEH*cy1u)JfUJO z4N76cn$xU{Jmey z89WTz;)1@RMv_tw0B@=T{#KJ3ZMgw@kXfjMPLhUIYeC;XYWY|Fct4c?il6rVnW1e#!_O`CY-6l72gR2|zdQFobyXVg zG|owHr1ffKeleIak2Y$t!jqo4pl?-ULdiG}dcsLa{|7T4%8ZDc!yM-4Tx6?@h?fWE z;$JT!i?!g|d2Oip9HGTeb`ulsK8*jr1s0xj;&}JqP3LHS(Yzu)F_oM*pa%NZ%UC^J zJ{CxE;z&dLd6DlOque5F1gbbHz80!Lo}tw8Iu^Fz|8W)gI3`01@@ytFQ6|O)M)TLx z`a-h`wMhpSn%zGN-uXnQwgfxC|BY{61-)TnNRPFd>DUT=XT+!TI&^6q%Q1xMI3{}} z*2}z|ZZB*gVDkiGWh|szF>IL31X!5YrQUW%d~;0FG}exvXs$qQY?%Bj2-myp*`uBE&`6Imd&$++jc6e*iIb zIA7H#$E}gAddkHpba|}bS@e7`>A+fbgSA|{JZBg=b z(sN_?oe{-HjDmZ1Xw44vL>g}>na(?;Q7(PSvOBZUtKHZ|qV$cpYAtyuB5QvPK8oD1 zPsz3)st2_%`V74BK(h8nDlDaD{TXo!-cs2W&7>TjbU(FjUV(AAb+<#4RmCi(*gvSz z?w9-&J@8NHnZxf^YD7$aO>7iA{e1H-$pvfWJymSg8S$?0zraJmc16c0_1plBctt@v zbQuL~l@CW2070#@xeG?2T%+ywg1A6_8(qWJ)uL~m!?|5(HAlW_Ru8sz@)EPNj>&y% zMNTY>kO%7-VR+#+F47Cf5sMPjE2E1v@G@z6tv$0S9kc(V7{?NJd(ri$r7ftLE_`2T zi{vUWbUk}$E>`qYAvVicm+WC}vplhJdjn#WmllkJAIgO%nIr3=IkK>=CI!|5H?6=? zTwvb1UBH3Vx{a8P7)5NwSiP_@k_~O^?_jmk3BL~=gZ=X>MEmK4BcbmQ7eTlwsw1_X z0N#L6wl~tS%@OOoV|c7NEr@K#S=$5H@eQp(AFk#mX*&!&=A{$p z`C0St>_*Q=ksE5Hza`jFsJElPF_su_#l9b&FxBPFs&_Cy8T7f-?x;NCrY!B#`Q2%H z!7jJ5aVFUoCg!=&v7K5a{A(=_i=b?;-6mUibvnHLt-Vuv%@e>Z#0kY`P^P?h%w@T{ZN?;wo=Q7%to*$Dh zQeIMt2380&zuE2Rj)-3ab+0`_n$Kl9TZue!1*5jg4ZAw84Qs9%ZguhpZdYAa=-@Yw zZp9A15HlAXY1nyQ8l)L6ZT=-B>aQVDN9r2O?}F>0eNv9H7b8sD-1cXmM8v979Ig-6 z%Z1w|t#=%Jw^4XBf6Af0Pvk3`4c(g@+u$jo5kMXjTQMX24i?BcJ!aSllvtC$9{d38 z`LO$dxgp+p25dwd6qsv%HYXFAlE{LxcWa|G%4zQ5pqF5sm(QKSetDGB@#wd}h&X;r z>;8Ma8Eml|eajUuWU8r`Eu6AGDmJ2@I|9Qtu8mB`6!6p2ewfJ|Tk$HeJPKC1-2t7B zCA-NTt|F80(hzBal5a0Ro}YknY&ui#T*&WzQcRL1bP{|AYZZL|BP_}H6%Y+>g_TiBV$uY9}(kay#9IldOZd&tm#2i`~cpWb5j0`3MXgtlF|rB;Y00t>n(M>qY{~Csw~j8 zkpr}9W!vpOlQ4DAh73EQ`}smS&aJdh{72hq$+i)(NsE~&kAaWw8uGt=c5M-2y|0On zBR)v`ieg6_B=TuVxreR(7)S87S2OmN=p*o83ZEdxH=Rj7q`I7MU^DM6h!0%B{7zro z>4WFJBKHVTwAh)bY8asi9yR2cayH;&=pp+EaNe?}z6FThs1g=x)%UPJ*^7y>1AM*n z$y?3jygSTv9~IYkn1q|K|IEg$x_LmKu~|O40gONILas+Ae;4>FNZDdcrG{z#)eI|u)L$fcZ*j6EmI}m~9@Z@;3g?(ZT@c7R59PA@OKP&p8eL>}Ly*d1)cY%Gp@S6Dk zpc4N!#PYr1Xx}Fz<0WNy%xrDmiZv6NieOzS^d!9LJd`A{2gpk5@aub{GxsrPTc)Ge zO+u>lnK=~^clkh@(DwwX4&!HLzI|Og_-hsgypBSYqxcQx@NX6tW3+>n>BgQ-{ORBw z{Hb7S_LXkB&nSq|AdsWVjnPTWC9T!~9>6o}_N*&g$6n?#z;ZzIwbU#e{&;$kuKYz} zxSupH082ISAGRr_h}6&rqFMT$i5LZ%?XWh43JW>{n%c|3nu05VER4Qrj?#Ys?8UL( zjUqc5W9t=;4oB^ zw#%H}|J_CV``W^co?7{q>(pa0*8e>Q1{MA{=n};4IOJl$IcWC5Hb{`_K zVtah#NI*1LpBRAb81SDKJBeXK{PTdWgz{)5dkhY6^IYY^@%j3h`&#bLqcLzM+WB*i z1Os%keZUJsX5`H+VKUPzO8caQIi>F)cIu{zM#<_D#ZglGfEh8B@yuR#qm<}Up9G?` zg6374hu8#=W!TlgD>BIng-pX`zJiIz7_97u`kOrX?llSTN*CnJ={n4A;D=UYTyWg} zs6!3zv)7`n?rBF)ixrYVW;&;OE5Zqk-sx>wn3sh5z8KA-k+7MvVkm?ip_;ZOljFLS zy;U4Vq-bZV53sWc9m0Kcw#6+yXmm?uX+O45yoYW$!%b^YiJ8JlCxZ08Mtsz0b9!&% z2eg|r?l<$dOUhJa0ou+?{9T}3n#sg0>WuJ;H+LQU447ZP4lF8o2@+igiLTWapbesv z*9JZuP+*VV(BUqbxt?0(?T(RlIV~}-fITPUnm8B%h5<2(;6j@83qM;OMP`%>y9s@t zi`_hADl;g)i#biX9!cv_@gyhLPRR|-!0&{W*2DfvJb@*$o$xL9_%3>`r;^FZI8g|O zRYy@~3AKNfJF#Oca)g?MuR=vU$G-r+8QR;M5PPzbUxr-w3nAA(0PB0KWb{N$SUe6~ zhOGTB0%B_9H%4){-9 zIw2F0brxqf&mt;I2@XqDLoT${oTyf|73@QqPL$=H#biF;%)Qz!WiLjJ;z={n6mvY+ z&@N2|uTUJyj9*NnH7c598O(HS##-v@WuBn1p2$z`xWPWx{$lf3_|F*l7}Jpl2;s!& zUsku1k4{ztL7L{&ZYRG$>7}?u<3bxHOTa8VEKxk~n82uFNH|pSFMP54{dR}+tTi&a)&y>Tz1)$mSON4mhI*AH1md_!oXV))t{pkYEoeGNzoYdh_= zn&h@(GVxvyJx@4kxs|kXE77&oO5Bcrx6`@^tyN4%3-0r@j^fj?y2YM8@@&>FKOGSd zDIOpPyjtXM3yW_JIj9Zp(iM-?;SSWn)2>G5_ay5Wj{YB~a zz0D0)l%SunORDmq)uQdv+}&Q-bFYbu!Zgl-f6n<(QdfN_DVmih82ce$;}}~>4_z@k z>?*i^jJS=?v@p}aLEg7}-KZR0b#})n2b0O>LI<9)1Tlk0TN3M;9oNL3!6z=2gq%ko+^=~331IrKM#1?G>**bSX7U~KT}uMv!4!CS59*4D@-0$c z!Q5^{jewE=bFkrb_}B%c|Na!DCm{FN?T-T=RvdG9qxkeM@Nr=qpuLU(CdRFnc3Oig8r88PQL4#!5g8U(-lt+GKfIH zu`>>HU_SO`tAa*Y`sXo5;q!lb!8MgL!Mm=j)4{vI9VA;Rb8y$d^0ImS z2UacaS;8oh+terwMxEekoHE>7b0eN3lWCpISC>h7;`K3zV4W$>%>=`ue1fcpnOY_?R&eJA1jpdQ{k zoN?|v_OB9R_^@Nl?g{h+w>iEK>gu3RZC4_;Z3&_W6`N&S>qTb0p)L;5RmD;rVz(() zn_|jn&VGowLAGJi6=-incxc+|QqEnVf-AtH=cJoh^aZu-Y*?vTVFei9u~s=YIv7~=F?OF^ z#rALZ((wS!A3AaBqGd)x-pLkXLZ7~g znX*4n4<7{WLLbK{kA^CK*i_QiJI?~n((b~m^SPY`T7Oc{Z&9C>;CPL_kFJaO1c0~6 ztH>aqr0z8Hv5gjcxh9nkuXzo4H)iK z=m3O*el7Iqd805IUZlmi>PuKTDr~!?^;YHfcInr)B8J1?wYERCpw{kP(mG@Yyq!7P zqMf17XSTDzRc^uhaTGe(I%xclLz8;MN&YBT6EmJzN*-ZT_|*Dq;sG$fk#}t-{Iria zFM(%R*M+CR_VI`_$%nD;%P=-YCRLv{IB~rATR@yI+#nSrqS;cz$!{8$l!Z zLzKKA?v)&{wPBU9J%Bn?$zEJ#6LHKoN^2QGtd_{CZt6nJFlN_U%&x@)_>1T>YOSa^ zCUgZpFF{-du4Rk^M(-!aAJn&DEO3R_fPtbKpKN4jbp?}=H%Cz=h_}kumLpQ=*ru@! z2CyMei6sRZ+3WC1flK&mQ?ioj{c;nvNJ90Ru_s#+F%#nvwH!yBXu5BunN{YV#5!{g zcX=T=M2y0l;D#Pmm9Xy8!c$RG-Kg44u;`-gt4G(dxyQf>uBJRw*ADYZ)$9KGZW?9% zdT0F=kzkvJWxZ#W^!lLUb)E~dz&gZ=Vy?E(+n<~X9cbD%WI!0$+sF2 zj}Ot`*my(cYV22OEqD*>4~^YF;nRe1PqKSM|NKUyuyb%(!GgZojo*vA2L5-uwtd*O zHA~mT=YU06&}VN1%Yr?bf2#;~iz*{ncW5loFQXcn3GD2vEjRHu@;5`HdR!ZBDJe)i zMjQni+%<_G+mKR!Ra^@M+=jjgVqMA7SB{=viukQ^CktjE7jNFlyk^>dRlF8mh&?@6 zfhenXt;N3uOpKNsLw5~fczV0I$MPSXPfWntS?tUoTh6v9h!<_niIy*eBs2f|{us@I z>+>5+V11E|k@>EX z9(6QUR@IQHE;&E0uEuTr2S!}&Sj^U|Vyo;&U+}&~zQ%fNi8~9s=$RC1Z5!;?SKrzzaUL2Q;=>3XA z?y_#;#(5&=IQ(Pd8u}2MGp+=-NE>_#&h2e6PL7o~Y-Um*TcP7mUFFU2?~8*37L@tqjw zq-(7O4yV5^9Y+3R9kJGiQl2aiy~G>_RXucP{Wjy%%m6i39TqZc5D8$*YY2d4PI z%v&k$cXt|)1+vUsh;rXT)Spp!BSd>Wmuhlx<5|KbD-i2-M4si-4!Ejf>(=<;nGz8f zciav;D`6mAcbMv8b%}_7YNxZbU!k+tg0WhdYF#^GS8&3J<^b&@ zNEc)0gfWwTLfnuE<8(oPN+Vh1kQwCw<$V~*)$%X&?VIRR>U-*M(yasNUs{9Lz`t&k zS%5wW1G%gq#GO%iG-SMu3BzjJ?g8e0r2I8tFjWKlqsCkUK7rTz=;^WV$i@l&`q#pLT+dAX5qLGT z@F`Zc3y}4;AyvsSNx6iX@`FDYa%~|{T=k1iVouOFU(?D!Mi?P6|7!?w421?{L1VL& ze9~=Od{jyuN>K%9WiSXc@QiCgB}O{)DgzepYeD#QaED*M!*H9ijp{>pd2yE#e%08O zqvVwZ2z%Ur1<#!UThL5=rd*UtfdPUCeJ4tvJ(N{E9(!2Ig_hV+1+TgbXWu4<1i8~wbcU827pIz^j47QAxO4f!wMA z3+ib??vCe?K~*g*lTM;VvV0}j10Zh4R=;VI@#I>4}SA2PCt((@m)3cOh=;A@}I+TMAfMm5ZVb zP<;krF0Rw`M(5oZdLh)=c1r=pQWHMj5_R!1lIHoRq2~?d9Pf^mwLLOP_773N+aiAo z-ok$c-13k`2L#1c;Ha2bIF4@y1U4YOQ$WkD*1p_ULh!WEF zQW~&D^i@&EC^N4?oiPO+gU$>oCHHtj_a7PI4$5;LfUY>#=EX*BLrjdF%QAS;> z3U^*3Q^`4ex)L!HMt&!KI?Xe>FBMBMg#Q1_;0#FluwTOlQv_`~mF}Vvg>ObQIaLFh z5u>~j_+&dHzBxc^%ebgoyaGG|YGEQq$HPP5pF}JZJ3iMXZJwPiV?%X$V-oe^I>hif zCmrnP?V9?vv=HG+r*&2Tg*>gUnh-oEv4bDR3M`++sBYAT)GpL#RCm&7Q`8Y7A~i96 z!JDXtq7wBGNI}%pRg({m4wIRy*g!}>suuj=bJ7F-jNMgTAAq)PlNpgo*v7bYAwl-C z6DwE+p)Nj#NEf1RpdP#0LpX73g)6{*u`O=V9Ee-^84D&R`19(7=HmGBM_p0GQZFhm zEq@p9jJOrM$E+}6d(I@tmkS&ag-jupA{wDt&hKI^;HAK+>x1EXwBlv`K_#yIc!dKu zH=4Yx9lEUjQAbZ6v@f1;m9QCp)s8Tw&;-B3X~Hq+t`NH(w&h)5gJuh-3EPE3vHRgY zWJH~)M%7APS5O5Aaym^twB1!fu0Z^BLPn}BKh-EdP|D^?p8wxwBE0gYlH!HB&;tY1XROmn`E zkX=mQH{MiCR``-yPQ|`O+VI~kN8R;WoNrVOjChCAGE>kVoNm;j;?T>GmT7%St@5LR zCvc*^Ecy*PYF);n)3gRFJHl$jjZ7CihxUQ_X1b8u0qyxt^b_yR6)Q!#hp^I{3$KNmQRk@PQk7KKdleZgGcegZ)*IOcEhPO z^?j#Q%zdY{Y#|U!&?6<@(`Lf2h!JD`$Dk!*iYuezux~KpcUWzi=|-@pZ=PQ`cJ(|u z4LRU-y#69dfA4oAcl&jxc=o;MJ2B2>bUB5OmGN?{zf*hi$ONEfsr^QSZ6dVNRBXbY z_NJ0U&i-+Tsg4^SFM<^1y6T8Q6(TaeIWd@y~EQ%)}yre+IT4?0=i* z^IMoAjG3u>qF-X9oTj*WdbY3z`%EqnT)9nquy$^RTu6OHa2rBSi@wEG zG@&bN0W-+l~^?M#CoyQ!cmecY`+&RDNwbYKa@Q|+BU@OSaDYN1``7LN1Y z=4GdwOMi@65upLxFUW)Pq5Q(2u)FDr>JtEoR&lTMfEJPxZfB&L!3 zf!QK`rmrmQ2s4w?JQD)voBsy8KFLdZ@YP^<8>bT&4OrUj%a0*Xcr3TGmz&E7hx2n9 zqhOsF=gSbj3j;wLc+734k^=kHsh-qUy!@y(8(umxVrD=Si_|6!)Z*$fZQo(CXZ{^b z^JX<-eidSt{`CEu=*6Gf(SX?B`95cBG1?(Fz}QlLq)Cgj{kG5s_>qoVep)LZW@ng7 z<3Bw^9CurRXp&ZJg!aOqw4eU}w4dq-W4Rf7l@+bQ;q`NUGL<%rgfo;j9MwIx`BEz~ z{Bn5dGU*ZYhi`_QW#Rh1xwEJ(C$+X(s9jmSM%snOm_bP^p!DDtVAuX{N_?dAJY!1r z$j|vxpWkz-&r@Z7k3p|9EXE*vWb>^lR_CAZPgC+}2pg61rvH>j{?-B^8yYv0cdRcO&QeCI(tFGeNvr2k?N^c_PN_Q2NQ&cfNZsx@ZYdQB*d9e1*XC@^lHw&W|fs28B^I?-&*YANx z^(>O39xGmTS#c&LyfkrxT)gUDoZPj*{PU`{?vjpg&4uP~o3~eLx~~`7u*cO1*)!S8 zkH;J#7Cwy>8=((nq%$m?g=n2$-?Rn@zV0N~P>bCO=f_F&5ZU6R=2{^RKD9ETMF*PBs6rrZ(~Dh11Qu-M{aC_}Ws)YWGE6VkpYbx6P^&ZnLg~FFY?TQW)dr zLb`o6nRNUrQs+@Os~XIKG_b}6D@!_5y*k!vRwNCa&pG>DHR|4fstWYvLtR;7trFwXOQ2sO+%-(u#s90OZH*-_ONdR`SB8!pAU^_I%w<0gTFC)%#0 zx_KnE;#K4Ibl0CE^B|v6nmoMq)5Hmi^%eXh(_G>s!7rux@`3Y4c0pBKx-)sts#-(` z;rW7!d+Q8{_r7yw3L|oD#O+xueXcbY(ai1h?|mRfV}|0K()smU=u5uDS^3f!D%Zi5`e@Sz#8uHChAVuUFAn-)i>Tms z8^wIZ`>-oK89V4UVBxnl5Zd7c`meAHm8xfy%Ucr3P%ULk);)oYQxIDyz0#>D} z|G4x}(p*h_1I*WjrHk3=If#n3UYFyCr!vXV<#B2KJ7ziK*88T8>2e89Is59VEU}mw zq3ctNezl_ls7A!%Z@DR<&YIm{6~Em*$13RlU%H@!x+5NzGW} z(v8r2QoS)}${j#>U6h;yMS;l+CIe^54(hE%fk{<5@d}xlWP|MVG-~>ELowD7;-=72 zIoBHDcW1WpJJsU*zxP(yrRp7~<0*?e1Y30MVX@Ea0F+mwD8V`GU-VH&U+LL#~d#DfD1j&a44_HXA z6~k-WO)0&H3ARDtQ>4EmreJ!6Etv&*TT^Z4;O$}>8)kcRa(47)<&Ynxsh#?pbS28V z1kR95VK;iR0{j~lh_1#siNA#Fs#R7d@@Py)biy<+Q~|G#=!DwCK1YjEH* zJM%=$eoBMY_~$Yb?}Dzn0NhL6Kk+rpkhy%e)Om_!``~qUF*Z^k;x5B(S@&4e{(xFUYf;mTU7l8_EcjKslJQEQBEEcN^_$u@9D#GUwQ8;^G~H^~&tY zxqVE!)9+zGe`p2zVuM;>&|+ z)$r_xo-fD0{Zc!O^bPeH_18@FAI-PpH>CQG^pPq2H?Z$kl}ClNc_n54d}^DKd$nju zv(l0wVzHVJOlYaKFSyu-_N29cq#Z~6KzgJ+_&RW1jTZ9JpnfYEJfM}1q(&=?(fV7| zJ;MT?x=)sSH)~l$gN{3ZYbo_VjvkmB&+&^``i=ZJ6i@^i?5%`u@$GVo;DLACn9d4zfbx+K{^kz ze+LoY(*nqE*)el*%6O-lgLfc82F=0w8w2XQ8c z77I+(ELkO6ihwVx704ET1GFw3kv{2)#JfVaQfhNzr~6aH7G^SAafag%AInVjlzA}v z)AtH+byIGGSRu);Q4Ja51$Y{>h*RyrY4eYX^WY0|fUi=A@+mW*0V_S#4K~Xk+Nd4> zuFUC?aZ7DZ?Jc)5lT0;p0vDQJb7yuj6Ei%&W^CXwNUs{_*TScOK2zi@LzPwxwv(^I z-LSLJj{YTZYS3NvvzJqx4I1Yo{YZVtd4llQ;PBLM+UYmSYgQ{F`YNrG8!;@JiS;fY z(xcv^N0|}z`g+JE75Nsmcwt~BX15*ld?MawwbR(3`Kj0oAVaNEY{~1Dcr8yfsUplI zXhoHNOcSRoOq&*noD5k7qYPl7KgNEzYN~W33fNbu?j=S#%nE zhTYuJg2+-7gAiQxK>f4uWPl&CgW}GACI8{Y4YJt+%#H=jdOt9*#^zbzgU)Dn)BcO7 zkwJraYZBTR$D8mt{rB)bcP9Mh4PtQMNkk86jM^E3Y+(@Z#r<5=f-)`%8^qrrH%+u8Y+psP8d;X?b&QS5orW3RkYFcmj}Z&J zF0SPm@j+-v;QI`p=~Pbn$m!##o$OwSf3yLmz8b0XQ5{leiXV;G6$UqZ9nDvJ@Q<<4 zLhetv*cZ_E2I%Jz*~^nAq*~0>t@wBrXGFG)r??C^v%usc->U}A;B}|~^5s?~#*fK* zPT?scUJ#Nco@jdXp(a_=pi=bR1~CDT^B{DHF7-U{qIp9`ac=_Nz0)e9IxuLwTM6{D zCauH1fZIjbH2#C_Eu58^v_T$YVQs)Unye3{xXH6kFNSob8{{05-mpQ=HGK{20NpoA z`99j@4NVtRyMgknHHZtK6Ap&&2pPm({i~Q6XfswEX3tCOfwt)haTp_wkV5_u1=pG) z$vAy=K8ng!DVo$Kd&{MmeNuS{s6ed%whQsv1okM!Hc*ST0X@LZQe-=C{~yD&s&G*r zcF)tzYX7o8o_6$+<+wL4)q^7ztz}8+qjXjuQnI3-EgA5Iwk5oe9c(bEr@*E$T2ODK7&UnF%w+Y}cJQ_F;HOw19BkI_gv|RF zU_2g-OCQLyVI$BZZsRAAC|u%`!CjikM-WH0Cr6-k4qZxTr)Jp^jg9Nstue#536TY! zYnNyE4HZbGbOF33QmMwJzsj?Obt21AirbOmGMrI_2y*uu#NNTj+za4UoF=Nl8o*4e zgoR*Q69a}ja0&zOP~zkp%z_4Irwaqb{lvvsZ89eMN8yuP{{%!s_I@yaN_)!4>N zn;Aij06(I{h-USKie$5HDj1IZ_eL#tRU=d465aJUuYm_v*Fxu{=3uG7PHGnJ?@>w) zU*gBy`@k>2>h_aQijFBMk38@BX4PFGzV|&%sXPOy<{9t=R1;nTvnW$p6H(%AbRyGX zUn1LDWbhT4+lELI{b!(&bOP=2InIvrFd~5UQ+^9wJ2jj-y}dQKECg0k@!EbmcYYB8 zhl;IAP(PQHISe8rp&2TTilHJ9AXB!#HWJ2b<9Lp zPn!5!Wks3`lorXxZzDQ0J1Ga6YIYKpcS7{IG$j8?LA?{=UH#l_K|TE=AlHM5D&SbY zCL0Y_XubG3qEzv~4eXBp$-rS1h4tthFgOX#)|XL|Vw9lFd0$;|9k^RoFw@*PciNo2 zb?ijSWiI$0kOtQNJqn^`+TJ33Gr|`uJcKA}lO_sf;3na>B3^KZ0gfAov-lt$MR`2B-k4u~7wc6Ev$vwPMru*vr zv7{aCP_iEu0{bdzF;dljw($fm&^b-XoATri;Z zXc0#TafD|aG;srJrv3X_F0E*2V>-UWnVV#nS0KB{NQ;@2y(qh8HZ-BopaKa=BO(*% zkxVeyJ?b`g$?eG!F7oOsoY0~q8+9asZn^wqjINp=g6DX2Y;f!f;-@60~60vqq z_lyfw=D*(jUDzB%?hj($q}b>co##KyC4ST#f03uSdVHW0Y*p!9%p|%eWq&121GUZQ zuGEf_1FzonNY1L~w1%jvw=s*G;^^S4yf~L%-&}sGJ}0M6H-mK^jg`rUC-*@D&y`hk zUUjRxZ^>8T6MMO#>`08534)clV~$GZ{!l0z{-B4(5_>&MYmhk%PB_?9yvbadPfJR- zCQqRM31=`1wl^bWhLN!lK^s$@;qP2XC5AS<3TNsAnm}gNcg=egZDD4QI`o3u6rCMr zi$-_+bCr749PrQWa%-de(WANcwRK{<`XOfOK*Zo=%TB~b+K}2)ZcT?C713zX?<=u3 zUXC>i`TSwLXTrjM1ndWfx*^$V?ALLZuun^|SWLK}b{97wdil zX0%FCr_KvZtUEOBsL2_~@^Ax;QzO2cw6C&&-(oK2?Uymzs!e*X=xdr+WyhKi#rRcV z&(x0Z7?I8Ry8rw%*G9(h%2sMOHA-k3c7^#>TeRvZxDiz<@Wb&uUq`3`lI%Yxk0p%l zaREC{URtjPGwo6L+3v_HwzSEu>c|RatuSDwjnv=NN=VGL?s15Km>NaqZd0|YnQR)H zS8Z#<=(QMvOGDMcdv^1 zoW8fDjijXq<%aOf7E!UtkHd)Ri`sy^#Z$XXHn0oq(jW#ZNtLNn za|mbuG2kFB^=1bi?^x-z+pS=o8z13-8nXgD3m;Z+ER$YxKw90uEj;p+kvyB2H67sR z1=4wA?2ZBkseja*kPZw-V|M%3h<3gXeMp%3G|WGe`O+2H-5^%TA$X`$E2JOxLFWDt zEEXKj^}J))zH(%0!{htupTEJ#+iXwHQ+*m z#JT}b=*2mZWQpnP8%UceulE5d4f^*B&{uTD_F2AA_`awd#Op}9wei9t&y!90K13!J zLKx+>4LrE`^zhc$>7J{c#B(FRYlFqtd$ph{Bu_1x8Q;s)|0$Ms^8V2{uNE|gvwMjD zWuJ1gRY%TA-z7}I> z@a@Ar|B9$!@4BXiJUypHU@tGE=ShY)fMrvaybSWt@#xi%Mc+_lp>RY6UdnlbTg>99 zgnv=|P*SDch!)80fKAr2L)pV~BP^xnrPQ8@{wHQEgm!F~h!_uA!H0MX8gT-+i*N^X zI>r`?u?obgz&HO%Xu7Es#J55HDuJ_<#zUw#21aYSG_nf1`lQ(jFW79z z{tfH~G#&zKmeyg0C5(sOP%q9+ZgZz~XlzDU{?cF}C*8(u`Nvp_Pg3!>Q2OZC)JH&Z zrX#m6<=Wu>7QJXqI$LhXDB7&GA@T{uSS{%)SMWm?jMXKBdeM}86!PCIK|<4R?cat| z=CJfbKX_1w-%`$s@HPc!g3^og)5NdZ{vPfhAB{8m1--03m10IW4}=hOaRYkbuy(pv zD-!kd?n5MZ>wg4Fj_^u!$33#bKBg-MOVKPKS{mgb&u}zCL7w8&?xgtC8}Laj{(C4Crr+r| zm7Q2v3vjh_$QkB-`u6rvRoh~)E8#>tYzg-v?g61!AJ`khdA$f_=J9SJh9RIk9v;?< z521EG#nb3CHoK;lYbhv0~WLMrTtk#_E*hr7^Ggu2BD6zj>BWBfeMJ~})uiwL={Dk&l@%#( HW=Wrr*2U_@KJ8f=1ku-?;&a9sT} zh=jEcFX|<-089nnBmI(556jUmtZqvzh{KkUvXya}W7Sw&V~?VA@GH>mjdGWhMS5+O zM*I@z!M{f+rZt@|J`DyvLGYIp?+1r!atdM)ERFJe>Flc({}=i}Mr^~F6Q#CGjCF*} zc`b-&KE|6+w$)16UJBAV;I8Owp&4hVa^ZJ9Q$lU~b$H4xJA#zPdqKn&f$hYBYwzG> zP2cGAKH&CeV;y$@p;CyDf=#j`bQW_L%pn+WEY9on{ek4g=5=meG>LVx(8B5h@GN^@B3NFl`IKmS(&&_Z$U0M_nWM1ke(=A->)P6*RCpz z>YLFH55o73>Z%d1!#6)9Iz!>L!b{D6QqH1|kRzOJ6{RbIwZYjQzOrv26_=eP3$%C3 zVu80Oq@}~=7A@HB)bI+ScK8~)<>SMNlQe$LO7Fr`E|;mo+Ns{fir){xV#A!3($Gi$ zf%L^RRzrJi5sG13-9GehpaMIFGp*exfq5OyvK~1J&eVv;8a=6g9eoWBQGRE?R7ebv zVT1L9lj+b$!|uH676y!R&|WE}T0&#MgkABQXpZ%blWJ@8$!u%WNuzboNt5-plNr|C zCuywz5B7M%tlofkiuXff9Dbv%=?foivIRCkYj(uEK~`Hbpb^p_R^mkeXR;R264_m! z$wrIOc2+t{9%10xCY?XiLA<5lmA9uM76rFQjUJ-4glX)TK26-z#$yLVi!Fl}Fc5dx zSBKz<$biKZ(piePCl`5}7d+9l8b~xmxbMYG6t9CeBG-9TYdxGJYBD>|&*O9*_;1UE z-{NTY`CEO^iEBh(0+DE)s8enb5XE2)`y-Zi8U~*yDa+ok+J-)yT$=BMw4X?s9UL zg%`c^jN)}e#!KvzGR7NVF%3>64N(oa>JlS!4hJH7*>B$bt8&A*s<&$jn$rzP^ z_-;@NNJms7Y7eB17dt~+z3`%oWj1Lnlsd`y>HH!E z8|4nq>^tarir`HtL@%X4c{`Eg26-az_Nn&ESg=t(?25`=wP-WckJ?acKR%sr)FG-I z%QG7(2lU50okjNy)&m!8^+=D#Af*RC@QcI0pS*A!{BMpr-;ldZE$*k0()K3!SX-yV z3hF99UbaCtLf4&UdL24p{?qjMDAi|(cJi5=WwQCR4R`t(8$}J;?*9huud(RFlbFRC zCK%>+smkumW5Fp)xVW=8%M!X4NJi^f=_Sl<4P(QIMtxx~PDh=PKBU-GUc`$7pLEq{ zN}JPeLKg3@lr#2;jKD<2=HBB@LlsYMp05>K7gw`n+(mNCl6S zJfPDvA-DQlbqjUZ+5;DE9T&dFs;xRIRSzd^cGx@5UC)4jgw}=(+(-8sFlTwiVi~zL zISc+6IIWEQMm$nlut;eT<%`xN8X>mzF1?EZD^`aKD~+jrJf0_vZU!`U&_#kjp0Q`w zP_GtaH`4%1_bd?PCZOKwT$92*lAm7?Z7_DQ{P7mIwtH)S`I?l}tb-5giCFpiTeLk# zt_o2MfMMWcb*+Y~vl5fkgWuz!x}@~4q!#x4yWulT=wXF-0>57m=5VH?0{1&`HgiHl zLcD`qo37gATkNA)USub=crDly(`xfWcX;jfsWp~-cqf2M3a1!o*S<+=s#wS|=0QvN ztn{w|*ZKqJU5xtD+LB89(WZ2|8)(g>^l?(B+|LZw;{Ls0Vg$+`yRcgPHtD_eth1e- z13ntq1)aDexh!Nx1PNO2=(-FUS%xJd6SY#IwRVQnYbQ<(Gmaq z?&K^Wv{##6t^m-0wM{u&^a_YF8vp1TIh*B5|W0$xhceWmi704_Sj z{6*RCMN3j$w-30&Ww^U`AQ!bFiF93(ki#Y=&7a%mdh`L^|MqD3!XQi8mup6Rn6nr|`pa7bI zY0wPNxS_E?nDli`P2r@pnY?qDtmtQ$Nq6`@le3xEWfW2w8MgH*)GIHTlwM5|3xieJ z(^BQ82niFwuT#~Mlzu<#+)q~3P01egLKbSL9ylwtCd${VR|+d1TS@Y_b$vPT^l|AN z5FD60k+^goQE3^(#RHZBy`WO8xGj)WzKqDoX)s3l5SBn{MI>ccIy}i+T9X5u15fc zl6?*Nfia8t-nBfWRIj?XTzz|DjVx3ex?c^cF-ms0M|T_S&3RLVrR8eTKFnSYZWixr ziX_cP!DofC&K-nL5IEZA2;;nmz<$V_cTHFm-@A*kWZ`{6>!|8c3kk76 zd{%e(FjjW+?^)MFr-k#zL9;qyuv?JN*MOd$0TM$48+AIYL21x3K9}T$H6iR%7CiHD zcF63#*_&5SH3pvP7kNOMg_c@hHP)~9&706z*K4n)}#@rki}SEuwEnOpWB1t zVu8(D{QJOHvfR*2QM&ytI6Z$Q{}`N*2oCR)nFD1D_w=UmTbtQNdtk;Qp!+ZqFbeqB zdNb01#T73Hl1Ww1g%q80%~@&o{uWu) z!#?-t%Iq$(^f1pg%3KdSJtLmH=A&kI_6}Lqv=&#GjR%{di@*G{*vSf9>ycv=IlMaj z%XCdh7qY^DJ&@C;r2iCgG-4J*v!oN>NU)fZdNDd=!AkE4!T%unL+pR8{lBO`^(nP6 zjYE=SzJk1hXd!}WYa7ZQ62=8Kw=so~)+$QCQbt^R`GKMZI`Kb4JodEF3}d7CI|JZZ zzozG`v<|4re`%O$-$h#8R~`f=q3M1^iqw^W?+R&f*R#(eRrp{hmH6pQBXMb&7obS zLGelOQ?Qwj$>7_G-nWXGxKq#oXW6Tu%N0pztqz(aI@L@kJw@=W^jW{IjN8eGwcjwiX^*CD z9XO#IIwp8#0B<{mq$xU|LBo{cB(&{WaByG^+y+f^P$znaY7ujg;8fzS zlkIm&@@eRdx9}8+iwAc0{n#w*YDF>w`|ui!s3F8|)%6^~h-@_vfxAivBC zwAD!a2W>3$%l`SPb|b0aRKI3{w%Qmlw&euu(5vS7Rnn=Mh9g{6360C1yQNpieFClDA+>{tr8%D?WzRP~vOla#d z*e4vJkD3Wd2Hghq9lFeOh}5BD*+NI?T=PfGXQek~JnMw4SxRhUTF?A*-``Q-KPz>~ z7U6($_Mvi9y+-Od3p)$hHnfZK+Z+L1o5ee;T@7zdGuEl)vc>BNT#Ws)El7^nD01O9 zkTRLVbkCQvDmWo<0`pDXWmHC7N{(0czOSyVP<$~UrFj!<8RO`UKGUybh=-TT@bg%# zhjt|?wL#vgxa6y}vsbMq40sV%M8q&*q5n+4gQaxE*n*0ci!s}`E%D~80G=9i{V$l+ z+bRpX5dot2eIws%)aYyr@EqHy275c>_%ZsM0x(6*-dV|ltKsoP1Qw9w3`(OM`ji#k z87r=WKJLA!x>{3}_-(W6O=J%@@E5(AYTDKtQ23-Ky&$dmN zznk6MQQ(vOIzRFIP&$;}-!Ol3P!^oIz#VA|+1hkgoR4Ko(A1vdj3(XQ8R-*XooQ_1 z^x+{EQTi;mW-ih~*VWlZyY<&#Hj-IK=#2Crq-RJxVgqn@@ZF5iwTFlLnh%`+oPXYZ z>JV}Uj^KRk(pp@@O;JO4{#et($XKMLAfunsihH5^Q^m*Y?IE^!arA4PB6(mP&PYp> zUk89GpH7^eXQU;`c^BDbOs~cgY~G9*TTjdUHirOQ0+=<Y9>TEXrxpjz4(&+ zO#o8yjHML^n^nLc(Oz^$dJL#2L{{qMAkF<7_LXhW7TZ_-sseJ#z%7-ZbT!206<@ei z(o}9u!-TJ+HSt~Zf@We?Zy)+LMmTR;^GH6bhkxiMV7bmn&kn8?3ffw&^QyX`E3Lwn z4TD(@zUvZ3>!~W>v2KEgC}IT;>uun8!rF9Nipq#^*;~y8@!bLj8MXMTyk9-je*zJ{ zba4|r^`8LKcu3ZiA);*Liokpzk5(1jT*)5eEC*vBHCGAjrZdv5!&gFYN_pNm%xneM zzyYS0w{LFF2bB^6zACGOU{MRw2SS9m+FdqAp!x&kO7i%jGurtS2O!uE| z)|BmyWjY`s*!qC^SciFBh5djJECCAu=XVFz`tyqTDEaoU#T?Ci@gK+w*vkMZ{r=UiYRBAsyz4@oNS{Ma z*n)Xa_l@_gY|RT1s|n=VVy-J6<+iucO6zx>ksf)6DKvY`iwgW^aGVtf9)^8&aOLQ0 ziG`B1R8C+6e}yyR(8>~jDdhFc9-!NWu>tT`W5!%Wx${Ew>lQb>ne3dU*q=%{DQ!R* z4xo%wju-ISir4day@hLk#XIYO6d&OnX%P$1!e+46o{_GGZ-3IMQ#{U-QbPyrdpZ|n z|6kOHbEJ3u?-XMctL-I(pIY%ME^~ws4eD=?$vW~Pf z-B0cBguKULuPzM(mkksMWA6exJbNe!eF0lqCfjSDabJi!+i7fW$NkTOLmjd^ybaVC zTVSBTD=)AK+WpRV==Ux7{YAXf{ZcF9YJs;?%hIXt;e;JHBxdS7*t?TbXVQ9Y(lI>% z&aJ4W+7x)yJ+-^CV3a@P9vdmB&R?{N=C1i+8#%HYAwkkE`s~`&3@8M7@+@6J(Vo#kA8wk1LtE@Mk*_n znaWOj0O(qP#Zn2&$(p)iW(^N6o#Vl>YbVQg%VwFWMLd9LO6DpJSeol`?$`DPnFf>( zzQ*<`)wd_s_Ajb@TF`VO!eawl`eG#)S8?Z~Pf`tfumbfE2Srgn*6Zn;m@6w(V)}3h z>6R+o!#muCxSSC#g}l11l!y0*ptBd{wkV$B-qBkD`4x7=Ewpw)H4O6Zy{ zf(=O}OaZfZQW6zT{!yOM*8+V8Pn?b5r%GZy2Ui|ii4{gi5K*$m-mFE;@GDTJXW>Dl z0y;t0k(`*E1_lCP%;0ldIvU`mh%)3_ld@vE>C>vI-3|G-{SQW0e)0;NEj=Es_Zi!pXaTG55bRJ6*Y>emCw zsTZT!V$$$qq~=t$ngbU#Gc6X;^{QDXBp9vuYuH@>8@-Outw=MO0CV;X$m1;HsOz1f zgOI_=Q}B#*E>VaSA5pyo7U6$I?9B@Vw7A6?LaZ~r7OeMl*Xh_qXeF7N12Jk-idm!q zhhu&R-y2kwBIX%yF$TwX>bntf=LWCk-FkoEk+Bxvh<^vVAmfwmIDMiVL zm8rgy&8T?&pd(q;lUblBH|YLhh&GYDF6hVt_EYp-#UTNYe62dP3`q-1EYl#E41Pjkbt(Wm@*ErTEyE1 z?|ImM{}|7*J9xW&r4T+N?Hx3QH{t|!#~?A=XY?4vw82j3x>Z0+4%Io~bMWhdGt%>e zH$mH*sN-#Vj{$3)!86{U+8J+oi=K85Qmoh#l%)_ce2I_yGRV>IL#CgKcW`YkGGO2O zI#CqRFQmC?4P>?Ha7vq#NFrh)u-?^ne~u!HZ$la{;kmJR&Wx9?HLcnxWZ`~ewJF%> z*H>dsh}#l6SmwrtG*yV<4K3Cg_!#n4yf~|$G+M=YPK5r(4Y{0nKU3Th{`piU6ZKm_ zQ>>0QIQS@8ViMS+Etl>wwbMQH3_pPwDpJqjJU?#=MXL;?3;Ei0P1Vr`*@5UmLR2%3 zFjs338{-%_g|)(m`}e`V$%tzamE-<_&4`gu;OUZ8OrHN9p-a}8V0*0KJE22!k_ANP z+zdR`yo;LYu%kICLPVM~3wjYlt-4V!4)yPYee@oInW6(P@4Pw|Ypw%44G~y3W(mF0 zzN86OEUow}=%FdPh*{om+rlAhh2UL&p@justzU$iPzkfd6LudEZttPwH#_ggu zd;-xDjqv|0?tj|Ci6u$Qe0-bJ-v}ln2EW$~XcY@g683S4TQL-#;~UN#;DtV$knY~a=5q#C(S0H z@W6Q+i_;*mC5Uow5Z_OvwOJ5{(z2*HP};_b>k##W z5$7XHW-&aW-X8o)_HTnP4ns2d^MkwqjSDOQMSe51^JuN7R*dJ1%w5D-V-*Y*>^shD zaFXu^k4TdLF|wtfVc14oZP1E;9AvlRG~4tjzI_#Q`2F_dKee+3Z6j-%BzBKfJD(8lNARx4FML^dCjyE$e6P=VHH{H#Cn%`heyV z#WBz#%7UehVkZ+SP6q^MLV1SfnX}ck&{g$B(-|qF-yYzLZ-ZxgY?yOA-=V=Axk`~% zT#?xxvl8hqqhsDh)pQ!UV73r<;yhD^Xwqe#vCyf0I$R1ViYz1#LpM+noxaE*e$!7e z7Kr&MS$ZELCYxOrlz@8iYm~egl4KZpX}W0*nt-}FWi4`LEWJ|YaHu8aSL1YP#qal> zm##&W9oAM*B}=y_$OGoz{Y3(m#05M4C|;6&)&Gx}7W13%GgiM&+|hqDM)BSL(?z`h z#ju|k#2XP+kfckR|4HeO;D#bA`!Cll!jVwyw~;mNMYLx=+Gz}4SP$m&U>Lf$=Fd&n z1o+(=F;m0D9cj5EvAW-1R%rtc)a-NH&tqg;yiEMv;8*hIdW?M+`Hj34d%JY#ucj*YgtkqmrDD4pFE~5Ju+>a4RQY9`3Rpw z?|z?emrn(&YB8)FqydCioAXs5Trz;MJdN1{9V9%r?ES>ah0Cp)9b{uvd&f|Oc|#V zC-(2$fA_;Jc}(%Xj$7Ox7Uu|KzHD|oI!eJA{#W<7NK*PI;$miXYsK+Eo3I!akTC{< zOHVdaMde@u%R9(2HK!!;AeN#QcTtEAw_a&Z)FFQJ+$O zQol>BnKdfmDy;B8>I=D8?=bd;ib)Htu>p~(Tc8!cgYMWIB=p`@kfX7NU_}1o9g?V- z4oYJg(sg0aAsKD_wM-$-%GkrldCL5xGuDbXW2NTA_rTVjlDxR$Nzu`ZV9yix4e4Ny zfJLA}D_+%~ZY8AGY3ZI}ogF#?SQ(}$sG-x6WmxYi38qq;kzj%3{qX#O91gvCb)pP> z;}#)`^><_~qOyps8_AJu@ek<1ZwI-lx8MZ&eV644z4#bp-Ty`q;nAXdRTVd}h&KnV;*sc8@RrlY zb!nqV=D-KbDrYEj!0Fu@Y6+5MqMiIP(c6rjeEa8gz_NipG~;?Uyr5Fo3zX~GxSosa zd3fcTwz#jsGp_?Z`MPqY09QwY@e|K6bdO$q6lG|Pz7lw#?b^19p7B1F)obR&{~6Zz zaE={aPXJ}igIVkRrFXk9t{RxC{|Bnm>>K0x6nn<(&^Z5S&*+*w;3u4Ex>xfA{^L6< zXL(n7bHG5S(_V~DZR0TuGpo-?n}%-z-qs>)FR+f&!wy6Ylh^KjF<`-3xNTq&`lA-I z8SN7yWD=51NG_qZ3o4AeN1LWZ$5fq`79zgQRsM-#Mca;(eaYL{ zh5FUPvtin;m!tPiV;*zBQUHzZ^m=#r+c9%r^xA`3@r|T+CB@tVfGSZ|RgZkfhe6^!)&4ZWmcVR)(KMw7N#bkRe2b*zXLp ztE|9%m|Q%{y0o42vE)lk{12>$tIqTK=f8%!zKQuTa(#i#oPL0Po5r-Rl@)IsVlE_VSqEu<@Vu9BCv)(;vz3{W28I=5;rgbd z;j9IQzzqfI{w%9o4035NU`@;Z><7)vh39_7)qpbsGj4_v{JKnIhE?lfpVj~`qQ_34 zt{!X64$w2-qW`W!U)7;5v+)kzM{p|ZFL@?#U6|3ZM4bXgWjQc9iNqxql9{A~e-&+_ zYqhj##d=^tc`%#t>deDw_WWX9#FF6SA8FwQ#p#Y5YgY6UHsEvpx^|;oisdMLk5?kU zSxTM;^6mHO7p--}E6~na*_~`7C!T~{Qsyo8(mCDXqjKOZi8iRh3-*>)x=+23?u_D2 zJMOzPX~BKeUoL8E_;h7>)&W(Y1#A{9cJ?H6=z6gP_XZT`xC{N38YqjX~^84mmwuWzfQV{Qv zN_f3_OjILYgpc0PstxiIhPCGIw#&8H6}N)N_(GQoxKj??hq#8dbFxhFB-lu$ z=v4P=tFRv6G|W{YX4p;6EO>;oJn4JQJF6(>--AhM09fhTp|!~SpM#kV7~w-14K9r8 zn-P`k`C!Ht?8K%_#1}BkL;8@*x$ATrUyzsJ6Vsx_r<+Ww1|ala%&<+inmzizn9%}X z46`K;>xl)^8=8Z(anxvKGzL(1e@PcdF4IPNij3 z8{wU5(qmk3R&Z-tHLz^5mz!o@Y$i_Vf5m8CorqOnj?%bz3@@4kR42mYl0Jbf>I)m6 zYeLEV8expcY6)@PBy&xk2oJfls_UOvah8SCcP6BP!A{Q${berfceQ$P`JkiX5%;WP zr2%l5=-A>XJH`}d6*Bgh;B$O4JdDXhSZDuk+-Ye;q8#|xn*}{~)+c2-d=tjuyRs^t z&aZWwk6HzPNF&}ov_^Qbz>i&aU*fH}5m7}->n&m$&x2QdT74-b!KWgxHmzZDg58W|NBUTPkFK%|b#BAtND8;7|Dp=IkD4*9SMnei? z&Z+7N5#bVl2)>I*1HD0iNCixlMywbj27=GPsK3%=8|V%NFe;OME$x$lFSQ(fnx!I$G{2C~CZSt{iR zJUNJ+WUtr^AB!J@?9{)Y9;c-%(H_%K>V_y7xMAZwEtMti@u=b%2D85e%(m$}9|&QF z8F}aohyy(LRg$_myME7SKN$C~!{^12$~Iu+e+IUj)6yu^Ig{NW-_DSQBLm+|_;#!E zO^a_?z%eYvH;wrEpemk&Zwr-g@8jDTPKS7Q*$tS%O&L2+ORx8<;uBa(=M+9!kj^|M zofG(G#Wxtzkj{EMX-7IRd*a&~e4B`GHz{{QhK^6dowq69{?)$}CH)nnvu4mt!4A!c z9|Uj08TxveQhPzZ6(fas4jA|}bNK&WkYc^_d)rY;)WWX^GgT6P83{1<-v+seJO`+a zIPop{?8&zfzrzrHPn&UAJ9RE%yVI=OjCkKC_88&EGZuEsPVi7`_R_EX-sD6kwp(z< zUXGifbJrB7;SBn!E2qzq?GkUT&*|Ga!G+SHKgHkILl2_NQ}D1tRwZ2zt?#sUzlym< z`w{J>wC}0KAwH{^jf|R_9c_XBK3P1sZ^s_C^i}v6|7}mw?hfhzzrlxv+b)=<>xUq-#P;b&WnbN<*vtwbt&l2>2wf>R$Y zCy7qTuEei-?MW~RV2sc0tKNg?VfeHfe%IwEvtgSAkIrO%^6VHlc~;CJ{3v}ntcp+8 z9>~`?R!gOOuEZETE&T^$*@50JQAWZa2UPJQjD%^*x8LJi3BEa%k?}ymQHAneIh6d)guYl8%${oQ;3hv1VkV{L2Z-qs z*9kOonP+L#A_f|e`&6E%Waim5f(gIS*w*8>3j8)%GdD~Y*3;5zDzAn{b?W*@I_o5N{BI)rtx^l?VIlEJ*na^P({vpcX!~=U{NA~30$@b;o zsJAkWIXkbyc=$YF9|vjC=C)#Q_c=T{SW!MsFjFfd4%@PaH^?iUK)gHMRvk_!mpgNI zYVq!LYVd!WQ;q*+P8I&oaPs(H;^Z1((Qkwfx^XmQgjW(1!Na|NAlKuzQe?7Owj3q> zEeW?(6)(`t5OUBazXeZsRhw}qE50&}_{`N4{3n*@c!s;dgnrra{fHI-_Q z9_fxx6j-&p!6hP|PnwYK%SaFXU9J(HYSOJwS0adGe1S9le zE%)hW@|}w+|B5s4XR_l!+9vk(r;*2_czp~#>3`8T2T&g^@Imlltjh~v9xY=UmlQCw zfh4za&|BomyrOSS>Gsz(0RxE6gazkS@~;G{A)d{VcZ5!iA@WLwa{woei~W}1C`hEa z7TbPkx9U&e!CW9U%$4y3<$eO623 zdcNfjB_ES>t-I^X?V)9%E$+i#(y5(t+v5KBm)qAbTffEKcKjoxZ890n>{XrTYxreB z_No_yuY+moDCMc#y}drC;?l46>{X;QKwPyB0c*f&_+ouKEAD-zu+%jTI-*0 zvO2-&!31&!n4FR8`M$-0Phgj4nMPpnf_TS$ts(OA+{|p!Hl%Nchgkz8dq&-0+^oVU z2g5foh%CW6jnG6MmKG&+IOqB2=U@)AJC8_z8z6kO9WjuDE0+b2NG}hNrk~D}N2F2v zb*)Dv%>b2@^amBESUv|bl}^w{8x@`rQ~UL>e7f*rOE1K%!X}0jWgs>DsPSQm?N?A4 z$aUY_;GD1=mVVVi_PBU5g>ATiZ-=Gh@QOSPUPiihSh~97?0Hjg#hcIRGWdp;{T@;Rtn@z1~X2SiCO?3mv+n(f8$6;a-OA+rhV_}Q%JR z9pyrB$x`np<&Ee`17Ci}ygRbmmTN>3f7fAZr#lSruP6;KyPGK8sR<3sqrEK2`Z zE~fwGJG@!2f;S~|9x`H9*zZiugiH&3r0}9y@&9~xwQ_48UU1p1zx)ASTt|g-FGPmH$ zTwO<%g?xGFcNe~ufEBsvg7dO0+|hKQ=d#R5(*?_Ax(*X;T}>BOXX-jMmXk3L?k~bC z3ok2Px>i3BD_j!2TE6t&gXr~}erxLUTU3$Mcz(CTikYHob%ZUDE;w;FJUMlWCkoJq zZB`3fYRW)_hljJ@t;X7u!5h5~hZ!&-^I~nq8#n=~Bh7JV4Tt}(nv+ptdO3}rW{P_v zM(?Q@xI?hNn~;*C7n*|T&31MdqUTDVLs!}tE%UKkb47mzk9bRV%u_=o?4wlQJs+I$ z?s?aARg~+U$1N!@_Wn2aM%+@vMhz7bJ~?X=kvEW|6p12_G@M<3A7Q54kJOD`-p7mn za-;V>pDoN6-5o7Q>{X+8t?xbG3oI|X>aIT$j=NSPu4d7#6t`fd&1Vx`EAq;1-cBE1 ztdH``FBaEy=d1X>)x525HJ4Lv$J66g?hd=JypO>*<-UmB$NB7i$#OgD{NDKt<8F=zYt#pqs@)y*TkuYsSM3`m`i1dF zM%rc`+GbjWT8v7{N8RBX(Y10n+B~?DDS9Q!6u%U)TF%6j=iN3hGv$-$zhgOlAC{kw zrdrp66#fgYr{1XD$8Pz*rDQC2Zv-(ZYAain{(DpDzcUS*QYcv(BBNoh``^0t3$Xv@2+#!Ffc80bHOtPmA zvTWoFIg@Q1E%nh92wDOjK1 zPWsw<3ut7%{{ydGc1L9!%@dNwMh#LbdT6v+!D92_O4{Jvc!qpuUPS#*q2-w^Tihq3 z%g_T`+}}iZ_&B`(H@aiF2Jc6sCzfmR{$=EdQj+f25$W4^j!55kfFBEGFtvRl74^>w zmxG+`wV~e2V--?KECs3W254Vb5;j;(C3}shlE0j4rI?4k?JNr_?3cU0;2#636R# zV|r%Ps)J0EKaALIv3Y_Vi#LNYSm*=)kzV}QMbyAQ?r>`&`zMUO?Yr15 z))TR%)~{o?S-*<$h;q^(&$2YgbC{wq2kZoETPx4ON~dx_`^w4ClKJNcXP2?r=A}kz#X-xV}x5n6ecCjl3-Hm zA9xz2=7lX-jp_4MIKh4k-$vG2g=b&sCwy44kn&-y3D-re5Emx zBePSoz;TdMWQ}f*XYotjOXocTW+lrq%CiM!Ax+083j3ZWQXDW8^U-wVcVhYG`SgF3 z%;s;N&p6(Sq%d~Rxz}{qmlGoH7W2Pjaw~cRI0{}&YId}NH3OxjR+{BR9nn53fF>aJ zhc2m1X~W+QaQJl&+K{{V(7hBB?$EDE9#je3y^YInh8)4zpOytvp769>$sCp@Ab!x( za+UIZKE96`dRkrtz5=asU$t_50j?XB>sv2fU#ML7;CgbEQgu+$Pvv3Y2yQ_w%}& zaB*7@D3&(Rf=;1uCP|a|KkrP7xZn5x_19!FbIzGFXU^q4@B6&Z%i9FVA8+F~(ET3k zqURS~CGiHrA49gm`IS|5#tc}a2ydmZrQlkoXR|+3+B9@0V5^=iYp#4|Wbnn}Cy%_L8PTzMy z7(N%>))%rDs^jJ@PmQUz!@?e|8RW?tTgF2|O-%zSb-)f#&TH zGY-sB*F%2lN%#sx!ebgIlo<;j#R`S^M=2$<=G^lu&M56s!tmYKeBQ(C_rSS@;eWqI z=D09>9^X7CNVkElLWkc^Bl@5Lnp{0+wuad=u`qiA7Fc)+LW`r9_D9;oVYX1U$v%ft zS7GN$rTFm8@5r5_HpB~@N_x`V|*YOYVZhjH}B=6%t<-f-D!+Zz- z5iA=?E3R&P4&Rk4Ol{BL`{yg3#pm6yC5-QQ6IQG+I{}u~Ffg=KZ@u(NB)g*@DLz_Z zZue@1wb)1jozKd>1C+fF9n?-OQ!k81OYfqF>?@lc1^ktlCXBYo=1F#8Ki1gaf8 z$w`|9L<9-5?NKA{u{CPKXLHn~@|zT4`~ai(hor4~#4-)DCg2V8xOPa_zX6Vza_&RU zweXD(!-hxsUsCgL9L!IQ>}vikdTC_jIP$rW4-AXAFWwai`%W+=PDlc3eph2?kD zd<&58IyK)^Um;BxT=MkR`dCZ!CY<|3J;yL}gjs(Cvkb1ChMY4Az4L5D zFWnRoq+Rg|NV#22`JI~b;$TV>B8%kW+JDEBwqTyeI68v#>+y@q(Mx%e6qNH>d3Y>{YpnEe&!1?ef`oE90g$melxdxWl!hEHYEmM}XMIgN9h zB8*LxVNr~q?AFS854~W0geUHd{G`o{T@yLft>t(lLcfFZ7s$6dVj8U9OQ_$i;9JJ{ z2Ocd)(AB2(=;e$CHoIBm@upGp>OR?6#SD3-R zhE~J(tf|oygiMkN)&R(#+P;O8et~)RxJ>az!fcORB_3hZ&_;)45AJlFba{Qifk|hJ1>g1Xoi%OMZHcn$6UGjU z)r9`?rc8DP1<(8^-0fI6%Kn;=!#cG6Sj;@IpP}|o!449JtW!rF9BDGuBX8u?FLD;g=U_7GTY6RMQfs+&l9d zX2&PVaT8VjV=udJuLUeF?QA3BO_DCHmmS(=Zfs|7XdY(yz3i)9T8^v%g+&!!S{Ebj zPdnR*^_9Ha66_s}OCDY%|6=Z#CeJ3=dQ~bU=?{PE{%8a&6aR{7{Rt676mN4TcuFiz zZry3{W|9V0vx8Ag*!5_Y4Op4VAx99O9xv@tO9nn1wdWC+lj>srNe&*q`d8-o<6w>} zOXa~Ga%Gw~2GdwR#v1D6*O7$COE2#xCLOAWN%{-k(+#Kv)nPSK!}~>gemBXqcxLH2 zoKax?BMr0W!^=y{Vl+F$??x%Z*&mOFU0>=K** zt+7JP%0S9NQlvZ6y9u*xgI90(x2szH9sfuD3x9HtAL~E*|5N|0pQInEf67nJYSC9U z85O>9KEgTiQY<=6)jVJ=!*58oisltQ)Vdd7vl?n$t-fdf*O{&>&J5lAm>Lsi=nZH& z5C0$OzWzzNXH~rv4@^D>Hirz35XkUQa>y(Pa#}hkgHMRCMhW;I(f9Gh#t5{yusNh# z3dIXxA~>dyg=XlT^U}MxXAkQhO#k;pUw}}+3i}>?AKG9r>X9alqH1Y(;-#0O+MPP^ zoq;k%ng3eO ztLLTvi5$amK9G3)qbOs?=sG%&e6@LXlvY@I4CxWsR?*l;wK?pwh&G4Oe6}ybNi?5P zjY*pS(N-`HXK02#fGDkPtY5|++HN0=BuhJEZ7--ktzGb?_^`veqLmztFTz#^7Bvgv zh5!w|4lBGBd)fMkAa3*%AKtbmy|e|mATvC0(dPv8c+OC36^{XBs<7KtBq_XqfiW-& z=firbb}%jS(&*p_&AbLk4db@XFg@29b{^=1)Rqrm`_ME4>I$H01n7urI`m2JUt1xD zo`cS0K}X6*Wm+THK7+6Z9vxIx9|Ux-e~I%(O9n z3%>f$MeIv95fMU!OVAP19Y}9c(~t{J1!%9)!n455i!m$!iJ`kw)~CGYD#vFeL@Bho z-GI80O;Q50BIynF()s9SKfk%3waYdBN0yHtH3F;#2E>Lc6H%rF$)<_lCQ3S^@TD8* z?MIeSSrjk1mu1PoL&Bm??2U7ApIX;+^={;CBB`8MUaSJC;!6!<(W+^Ez%on!k{5!t zY?NagK4Ef2JAxe;{sBX6xkGJB-o5}x5S>HAFOju$c7OenVL+{x_xmch107b2V?u0u z#0qsEPv_1F8?$(RWpjjrWsVhC2dmm5rnoz?u7^Q<}6=AVe#Iht!t(Zioy@Cg>v z?4FgG*bzHWj#{=3_!FHKv0waYeL5Y#1re};_v#E1@7_k(-hmNc0*gB^#G+QYq*ye5n7kct?TfAI`@@?Ye1E&~?hUA0Ay`qLwT;U6 zK$bb3D6TdXlNU~M2)k(=>9gN<0sAyEf;Ud}PU{;>Z9TGf@azS(lvK5xp;A6oOFFvf zT=A|i-ygAk(VHChd^JrC(hNs`u>GWtV7VSFaRy4nNHUH#&x+8utW-r>sB4y4XU>M(Rk)T3($dz+o(5QVbRqX#zSYxyR} zCJ&I8@^nYB2!x4g%H zAWBs#&VgkQ_6H8^vf4RaD9@USK2N_Yy&P5`^VW720B@Gulw+S?odfHCf<@pBBW#D9 zJveXdc3p)#S1zB22t&8FU?=b3w^p=N!h*F1$2sJf2=%8U3nde zsa$@asiMVc1J=WuiylYF6SB$C@1uw^=2m-r1(?|#G!Z)|_&8YGRc>=RcnLbF zDzpLc)$k0SXw|SFWHrr#-L#$ka$sRit||90aiUwS2I+dNr0wi>oP`$+bl}ilVooqY z(lOyaf5dt6Z_CHbP1eKX#vbH^PtT}!wjPnh-$uM&o&8k!0aMRm!QO#;>qW%h#;D<> z?Fl>B?aV+3oH#8=217~)n0X8at_rIS2M&JXtD}|oH%bKlJqmkC0eS)+`(*8=R(+v? z-=eb(vm-J(+ln17Vn}Z8^ctiu<35Rp^Af+s?bWW<4PM=Zt9#U|R_}RsW7O^Dtc2(% z-au-TBH03;NUGbl35^Gt>d@v7`OCp?BV1WqQ&LJ=T1Lh&4lDE?g^d6^!$bIgYp=qF z=swMmvp6R+Rl*rDaNYR{Tx$s92vCnpcNk6@2Re4Q5|Czhdvba+H7?5X&L za68))1Hg&>Py8G{Er}kSxj7yV=NEM2KaA1&0+90jX0qME({ezMv7mS4`K_LL9>_fV zfb;_D-QZT(JK&Xs^oaC?XCa9i9_#~xol;UB-8RJga%(w&R8&)wG?#`}AxUeaVr?Re zpa;i236dkV_8(@~R=pn9Gq9-|ZvYr7Q*aI5gc0wBR<0g)Y=Bl+T2Xu0zXm#gl8WA* zmg>t!-|GlzzaQ3gm?2kDgWzih3cNioSSmPzci%Pd`&f}z2 zahlYnmCGQG%1GIS#@stUv~GKrlj1k+$J3R97A9N;Q4%CpG=;<(gjkjCPdqzn}5ppX9uAFegcY z*?ymm&u?do_9*y8l4=_2)~~X43=if23#QH4V`79v#CzYDV@JeRNMi{$8df**aU#}F zLdxVKEmwO1BS9PMny%+ZNt5OolB_vSL+kuIVu$Lps$mUqjX)4$ccDqCL*GBjth`zd z{pK29ZJ6gbY~!~kZ9#-dj4DJ2;4(Dda#&ToRvGiTHcIjSquPk(?dmvoVvIU48^QvX z)v^Qgt?G+pr}U}nT1RZBSjjl0&=llK(prF`v+46Wv{uvL=vu9gf0`{GMVwUq5*q*8 z)$u~^d{@A@H+$7-K*uquy1XcncT-Ge=#GuH$`{x;Fey! z?)Djo7h{`H@oo4$@q=D{3V4zF_!LT=EAwd$Gw&ARra2{l7SigK@LaB(NF-wh1XjJXhkQk)Y3@*q|n=Lt#bsZ*IU(Zkd0G>wH5?PI) zftYrZBZ+*EtR*9n+LCcqFt6YD*p$$I|A#I1|6B2+!@ z=6f9D7Uey24{U|OG%9y3KlNzXa*ahzH7QhGaHH2z@RV0quoM0?lY%6{@Qcldkg-7as=c$6C5jE2#*yz!+G#S;Dg0uKgW?d<9N_Ic7NDf(jL4Q zr5>bqD}Svadt>f@k9ucf(>TeZAA#o_C)z?IaQ`g$yiW%c*Sz!(MQ&_bpVjk%zDPvuWW9kzXr@-)ImibwRKHh*7{ro}eL_GHf#a zPVAKLHh)OEjB&~^)&BCn_zl%!_8Sd&Hv6$Nqn|u>##Z-BFb3l}`EeTzp#sSwWT94h z;&q`cwN}&Z^Xya~NAjk=Wb6cJd?RkI~4zXCYU z9E`i0602}zX>Mocy{DP6Ne})%%=aO)c!ur3sI}tz%XpGa)2g0kBclbm?+0`x>Fve8 zD#@nkRYI{j)W%E+9!x49%e+JIarS*);t-=53Vz^_Bih+YSe7hJh4Ay1n)z|pcnwQu zG&yV9*&6U=KkpNK<-X@1m%{u_JTyk8Io#M%XybTU|3De;zdJ#{%G9W5XW*x6U)mF> zb+xzG<-U~%8NiOXvc1#!Gwe?Z{#pqbfe`Ca^}+UD<{wC~&s5#?DK-l_AamnE)|EKIM#&mp zHrzzo>t7ATfzHrSh~KvyVR<|0x#_wb0ooAb+5owIEF}0_Wj&5cFw>pI`jg#4 z(pecwA>HT^2HrU6_;uL*a|Sb_q@&J?9uc{~4uW4mHsM#w;4cpTGh6}X=g0Ph`LSS( zDPZ89qI$w#6Zmt|;T&P9gHJ>=CiKOaFHf;Na29m4qw0KWadxqa7M=9nZY{-gYKkw_ z6jLCjlZ4R)E;PD&3jRBk^9e|mU5v`=VrP+((!|&#NUUcE)6GS?m}-mYW^2^c@2RQJ zT~0kkox@K-CZ&{hupo4^zpE)5)s$_QQ;yox#g@WO^XEO@nO!UwpXm8lXvqyyJ|x^P z_8O$|&0XxkZt&UQdA9C`pDvC+#PJEN3*MRC>9_b_hvVD!7^Jh!;NZr+CgK0rdvR?KFKtun^jyP2aV0c=wfNUH zbg^e~7W2q-FtRzZpMxgP3Qb-CG_`YZyz6xp zmd3RzR@~4bRO9MwtRKPbk+|kKAFgo$7t*WK>)Kbj?4qfyeDu36a}cSDQNkoxhbnmS zB_MJv%|KrLhYtS?=LE4a&*!i0g3O^8XDs5N zDR2sg7|(YsG0Hc`_B(2z|o)Zy)^_?ox=m^e!~T z^q22)CqFZ4>+;QT6jk{tzG3oxd2WW%2JZe(#6kaWVOt|ddZFN ztU@eDjmvuFcety(B*<(8}#9nIELPKO1L)c93y`J&a>L2_e1j$P=#P<5T>{?Xn=Z@A0{ zy^BgcTukp!Sy-K%v~)K=mEVF?RA$A6h4fUo?$w^@2DHMjN!J$QuZ6_&F|e!pI#c-~ zTgARUPDrlEZqZM9u7}s#;onQPGKICaSVTI~MqThs^3SLjyyGei?W@YN&F~VH@NG+9l+p#UaGaNyGlsY~+Ey1zamTw?@ccO{~~<*R3>eQ-O>i_<=W@BG zXFv0tYgj1P^O7sQ?S6cw9K64ZpK|}agJ%TYbFN!j)_a_?&B9N~okwe#Fu~HO+h7X4 zw_vVw{-V2FnKZ9Rx2qO(bK^e5K3G4K*1!;3wwo{XHfFWxtvV}L;407ae)Y6vlupv= zZg0x<^ERs_fWHeh7H;)qS9qI$JeT?mbZLE7!;!!`7e&OC!q>{B*5Bkk=Q6hQz54{@ z(X~}sDo%xcxus$+@bYVAm)ijRFto`6p;kXpdKdE7JW!Q}_*?vz_1I+zj!d#GAc{>h zb|iK;wEz!ojK&w5J(I>VSFpO_R!{H3@fayQ`XKD-4&A!-GvAP1@J)6~t9+Fux^~@q zdb{&V%x#8kq{Slp&R*c1vK%9K44r{x16a`=ik8z*cMoC$DvL2=N^kniHp3P@#_By0 zL)}LBXuya>*^1mj8KmaOimzb`w11vQ!V_ zr~jI`Qh5(K|a zzkyqKgk`I-?7>B1ukZkIIb{PeW!iSS9+B(x<^5yJ%cT#1O&ZF{LEmy6)@p9-NE<(jT9S4S3j08D zQ%j=H2Oq<}Q>u2-edzi~8!(>7%#I)-pxd> z=ZiDJ-S&mTJ5qxk9;#cQ*D`x{kEJ{*>YOh_#;hhij0N*uv*PyOUQLqFPO$0Q z%IBK&h}}avnQvL!UfT0ftC?YM->ls0|9Lg#*`zr9dT>-~wfdGtk8^stvZM`sQA)n(Q+<*t`UPSZa3r?zX;;l7l;&HY# zdPqLxD88cBd-v+l7RTALU7R$kX^Hw|9N2A+vr0Ia`|jiHj=l62s0~VD3m4`&ix=9D4AJ_w4?f zVZ=!}^cIe>>b+(>XJl`A9@*xKnx@T& zxA{{%e6g|p)+#6LGAiPq=0oI=fKeC?t>5Z~9K@Evz}nj>;CZ`u?wX{C1?esaRCQ5SG3D$~t4-YfMPc(=p*?+~o{-^wJ$O*?1FwOcF zP=rF9nT-)> z6xY_J=ZSGBv zd(k=r;aiH~qtrM|%xNcY?0tPXh`nM&pUEjs4;rzjh1I8^cGS_p2Iu>Mcfop?kG{|g z?EqOCVKV?5Yi5mEyrtOEIAW*-L}D-&Q3)wQV-ZTo=k32AbtmimS7Zu55FK5 z4zabnWQ;FD;|;K?$PJi@)X1gM0TtOcz$&3pfqnsfP{99j@&#_h{D!OMrVj7`(z7@( zopMsIroAggk>;dcM7gDTe->t-F4+!F)|8SBEd`QU|9&7JSH5KjBAgBHVKTkJC*dLB zZT97#WY6z;wsCHrVJmn8EV|cq`JC-&0R9m9!;oslfW|F*WeR=1ZZHKbx5)q4V45)~ zMfVzKGlMSz_GF}?65Iot4Hta*dh~_KC)xG5vl%{kufcZzGdqQoGZ-ECi6%Gp>miIdf`k$SCv?^aR^Me0@>ghc~{&Z*|ht`hyO$GSH!e-UF zO_~B)Z&LA2F2oM|DgSQ&16AAnuF(eq@d=sj$sT@+9$uEbF4>*zQ3`Y2rqFzx(}n2V zeD{3M{g9HN87n-G-7uTYkIfUwUj%l|TETNQkgO)bSh~?^=u^s4#CQGEJ^CJV$_KqE z$%azj=GzP_^n3Xk*b{+;v|WcWO!7)Aq&1pt&5g&| zFI1H5arQm*yn4*mcO+K1YFhX{W%6K8mjwPeJAqY%Y_Huwxxw#ADId8BaYxFUQ&M+a zESt?#4a}>75y4rPcwMb43*S0?4-f9R=$H+uvOp;K25%$9pX0f+=^MG#QP))H$>@O2 z25VwpSO=a_JM6hP;Qoim7sSD>=Zbqmr1j15a7CwsLsvh&eD!$fhj5T>-^od!5Xacg z3|aa+CbeGBRU`*nFYLGPi1qhd`di0jw>-odO48dNGM|7yfV%)IG( ziP!Ik#iK8*M-2q5P`B)yEtQquSM_!kdA=n(?}uNH=6~aX|J4b^NjHk?{eSQugZ_ME zGWpqm5EIIilA-arR)N+QtbnR#Lp!rY%iO>|;|aK4pS`trW#(MGKg4LW?dyFm^KaP2 zWma7A%k|?gp?8>@`m)L{(p1)b4=^`~_pI;U-{bwU8PXGN(6Je3HO_k6?!>vA-A!&He+^AZE{+BQlFl` zOU$o8q%MV0>CF61h%sgQpf?%uh}_VQujUaYS~2w+%;f1v_UJi5u5XM$_cn+>KX3y0 zjQnSZo-d{1y_fMs`TKfTWD32*?fSlKW42i20UAJ=Pz~SDrYg@o{}*}S`50q9u%P-b zj-LVsJwyjIU)$(96RNM;mrH9j@W~V8kjF#O;#_L#z5{2fw^qNH%TK1h;E;98hgxoK zboJ#n6?(6>^Vgrl$^?Wxdbh(5mX9U(me*hUaLx(#vz9w9xyh7;xNczC&9;N^b}(y_!z5(*XagQ11gfBB`+_l;91T#0?=7Rpc#fx?( zOoS#)l@217Dfcn988TrSV(_Gj*Y41)vG%17Xe@xMfGzgdSbKIh*{U}!y=yn&C_1mW zc0I1$+GMYu=AT#Nz)X8*jE85h0={;N50CCLo#{Jgzz*)-FG6;3L+Txs zOFs|m;6)8qmaxK%(AlTse=`2(?4c(=#-{CQm4g;)m2cU7yP?a$I+rfK&@db}R>JTm zz$9q*RAFV}YGLOE5~MGN$b@dvveN8wm6!zY;F$ws;nk~2@#FTCL9(Nkq&*KD>lUBwBx8|pc5q|)n@7m}E!%c%>T~FlCYag`h;$(I&JY~%=2r|-cz*HE zgIBkS#W%t$!c}}tu%fsC*bu#AQpYcgqanhA5h{e2_$c8sIqOMw5fa;?;{2eum=8Wu ze45gXoB*5HNp>0-RIc#v!ILZ$v8j5&AM>A#=xxU#IjCn)UVDVMeG|@tP3j|P|EP>v zzfNg77ibS-#+WFF4u_}8`j^Ry`cBXZuc0j21ctWLtVF(E{3Jkk^8;0~HuzciO7C=F zav<+RYpHsto6)P@iL}C(^rvYST#*K?Hv10^8|4jiirz_nW20OTyTUpz>modsRI!zfW$IYu0X*fA1@J2NuOGur9s;bbCV{{H0R(wAbToIPhN1(5K+>_ctpQf9b~g`VfV94wd0zTOL_2ojcuu5p8E-9kJFRaPcGV)V zw=)~o$hX$7k#AeOM*g{vmu^Aoac^g#U(fdPh$fI+$D!xl?HHY31T=Cwa76da>11yu zu2xr3T`>=4im&CH9hLZWIsS+vDY`w!A{=E0ohJ# ztrq8vY>mlH*y|f;RD?0tTKyPT`C;}iiduQ+=Y7Z{@dHWXO45Se)IX%a|0>;Vuxo6ES#ntA1-@W=49%qv#6^E#=uS6Y8 z9mui7G|Ai}2#Ci~+=^1wmVhPesoj}P#noy#liEWl%Z=xH_St^VpNp#R3FG&Cw9T_W zmOBQl3skNS9{iLmc~Va>ZBm+A&((>N>U!5}?L1=Wm3S#tCbSn7;o|C)NnrjJioLh= z-}q-be@lPapXtedo8ZTMj`#W(wPhYn2vb+N5WNeUvZ63W$|!*Ed1}jweC(bZGnc*E zpex2qVzGu&fqBDBj87AKHFWYG1K9eK9COhx(;UCY`C*Rd@HyNu7b7GS2*IRW&h}z} zm;NiF;cm?ND8bU(l<85><4sn3(__-&a$$?E_B2>Bx?Q^0eK?ub4uSQ{N1q+cc^_x!uKc1puf@mj~CQ<}(U>!dc_OJC=-T#1Q zp6*Oi@){s?2yI86)*i^sh1Qg};4M6dxWY~Xzpmk$XtwvD24%7j`|nmTV3aiq%V@k# zYf4_$)5LjFJenMU-Ba;Zp_FC1;^85)Ex`g2Z_~nM?qw?xp_k$i$BWHvd|7KCUbs$u zH;CZ_ZWZ489kg-l1KEfTCNF-we0Zn3|!!jpiFj>n3%Fhc0i@7VT%e69&7MAmwgAnd$QU8%sO_l+xs2MKuYLTtX-^4{rtQ+#x8*q z01<%MS``uS4dZtq(l~kwBw^sKh!5?btW(ylZ@nOtM+Ga3815y!_@{p;5dy z@zXgMkt|fd7A=iOJb*M}g3$kDH<+F3Jh6tYHBBQ4B-1lSj?eqnJVj2fqGTU*7v~_Ol7A|{m|7DDr=r9n{j2A zGF48-_h0Z$zXOB6KN|eK71}>u#bcV$*5}~$w@tCG=mgtI{o+n`EY^X~BQYxwivO*2 z;QXPO^$CS-SKRZo+AFM9vHBFYR&o0}*{3n<Z`R@`BK&I65p5=x&Iie_YS72?t~wMyGCo1dx8B_HL$4RhFB+iJ!V}D&Pm0M`urYs z>xBQm8=o)4>QT=J73*N#I^q9c56hJc`qF%OZO{`wh5U;LJt#W7ootbszY6)aJL67B z^=iyorQQ3Q!F$u$-=K9ImrDnZ8MPj2g#yLuR#?8`#%D5~dFcFZ1wINK;bOqe$x{uc zp_E9Xeig+H>sZyvior=!$aS*u_%6b?9p4l1JqF*!++cfPmvSaikG4CI=)mVc6V?|g zhKd`XpC{_^`S(Qqa;;7C2ix>$f@-usQSVdO-xBmL_9m<=uwzQN@wqcmkJdXEtsi`D z4tLm@urBR{et6y}dfGH_;$FpD5H*ncuTj&)FY9D|Q81u1S&_azL7y8F?qyn*8CR&`;F*ti@+1^G9hm(iKJqQ~RU+m}ghzaecXlPWE0D z5hqi5*cXz)UtO8V7p*I(%y**Hx4%c<1|LYmjVHP%Va4ZN2}t?)za#OzdQT3$=bfk< zb(;+yU^7RIPxUV;Y-*zZ=}z`qw7v>`0$1|zbdb})J6(b_w;(97sHADA%S3!%7qu=#tc5t0H&oh9 zT4^ZfvpALZX}o@LytJzG5Bfx$T4!IJTBB?K{u5XjnO%|1GqXgyTEU{wvWR{vF}FSXT?#d%nZ|G9CM}VWNIR zuK0*wCtU+y`D^_p{tsMZS~9-Q*kA0iLvI1iD>$|LV5!uLzg6ep$74Uv!9twoU>Tugj^-=zQk~G((@JH5jG(vjuO|cB zL#q<{rFx!reA*R_@1~Qzsd9#L@NVQY2`8P6XZ(F!TlwgDvVc(M#W{Y?=73%_G~m3< z7w#aD8+-y_1Gt0V1EE=lH_;ot$f4Yjcj(MwtvIk zia6x4R<8GXfwS6th>GYvTHT50YF_BHX}_BWwxE|I^{y18T^X5B!}YEbta5>svu>?! z^S*sKWg0wiZ-OUzA=c%8La$BM8uGdgv#D|T?BRSIM`1P|y^;3KVOG+t*m~Hs-Iv&> zEi!u-I{5b*fKfoK1X%LWORT`%!{2&~0_>wzv_T>hs_9K{qnNNhU-epO?sSEDLG$kX zrP#UaIO&Oq4$)$a7Pr^F7_9nOudAZe2LxaVjGTS(S@sUNTyPy%ler(l^)rNg?yZyt&Ma$9s$^>x?{YZh1|a0t$5rDr&LP?BT0+Jn*@ors~7 z`x^2vzc~YPINj@&82QUl+dQR?g6|{b8)?MzpBday zVkaJ>mhh@?bOiJrPa{qThkZY#Oh(E>5kmh9kiye&g`Nl=IWdpe&mJ1cZX%oBH>^}9 zxme>B^r`+xO=^AtJ67EsP6|XwI)W8ReJ(BCel^_(KS}q_V7e)4Izj>Qo7dy1UyuAa zdJEM0K8taq2X<0cYV*OEf*SiGK5 z)&BUlrInBOF5UDvG}_qjlRQioAH{Zxjl+od`McRe2qyJ;fX3jRk!$>TCfEW5FXV2F z9lI|Y{uylea^qEqbt%9rB^|RHpMQ!0IWIcktwbDf@DxBjUO_!<3V#il_wrXP1tziO zHqMNFHQze}x{(A=so*2C8}^6t8hAXJFlvb7jz%q6B~{D8N^Tsngm09IIoPoFeBiYi zQakbRk*(c1!`R0g`$J%_Y=qAR<{5>xDUQo_X5u;ww$Kjb6#FGm$EVocJ9YTHbEkmM zJ9g6BJjHHCzv8Uj;0K|1%2_$-pYUfkH-_;{+Rn|~oM3q>lh-Ns;4UidSG&5{A{>#G zDob1euDG10H0(kYYj#H(xSP3Z1NLjfJIocFG*kW*Ya=u#kLVC{6j;p?vuFq!N=6_u zsWT%RyoBE7PvNnxFKG)zf`5S~L`@a-tU}l3K>hnK~qUr z&|HGOz2mF!J;q*fkN1D2+Jz=t6o^HhDw7kAI@8E)$jk+hgneS7sw)t^@vHd)}ip+`T- z0Y{LlhqspZ=TY&TLJygMX6vi)YkWee8RgF_e>cGU%9`yxdj7>g1lYZ9 z$T3_Eang0Os}il%+K~n4DEf)^D{1hThT|}!Oan?x0P#V1vhVSBH7R(50&S2RjAi|t zJBIg9sd@)f9R*V0)+WnTa0=PF7`PHDXk@@Ms-?b$5ExYB!|_#WjVa$h2lKTcpV@C6 zg)~$3K;(2GMv1k84VJ!VFx7{b>u^8S!THlVY#B`T*5x`FQ3uQAIylujX!WffOuO=m z`x@2z$`QIRwbP0?w@ho9r{ZfPNrSEQWZXA+_VIYDhZwNwnHI+N>fVTsAC6aCK7KI1 z-%X4ya(M>O9$dZ&`-l#3e&Tn5KQI?(b5(4-yi!KXXJDtp<#)3_JWm5k8xKw@n!j#QOLL&KB`A&j*>-rb z7fp(D4jPZkI8pT!n2S)_TUCg1Rm!WtEw2px~L81fe8Za3K!y4WMY)p*rAtbqQ;-0ZAr zy^zWY4j+QE>tPK+%F7??nOoi}C%Xk-E960XF1;870$YZ`#Ew$r}IK^3_woHysg;XT1 z$N=I3{i}v%M6#wC{9}D(s*fYk)HPiG2&C;8XmG*q8lst$=3%@QNX=BrL0kbxFM3Hg z`x-ii3t>Xv(61w?Gp#Y0wejoV9zh%lw86_R9sEGM*p!BurR=TieS zXXrySW&oWtcB{&41FHudt3aVZ?cY`a6jZbOWPE2%0%pLMjAt;f&G(f%E6@JfxO4P z{M5OybDatt3s0Sx8WN`NaUDC7l04bF#G8_ul)l3|WmKQ{RG=3TdP;T132AK(L@6)M z+3ot`$ONR+5gX{I9$-*(+iXTzhGf*m3GOn8LYs3QG2pijENJ-EtM zSd-k|4Q@fmIk`FNTk|>(pkMuQ54Fpy@W>=f6wQ5is`7R>s{$V_k2kH&l<)7ARXo`! z*rT$&-R$O=zJlJ%4KYMk$)QxTa{%ZKFXkN{Yq}BFZja|fR;N@m<6N%+S}BTvz}pcu z6OkX1p-1B(eRZ=-gSZLm-#_M_h}--O1bZXXHoi6#SmQFZX;Os4Nq(Zl1F_<6eo9}Mp_itM z&cTuVW^B7`s0U&ve9ND=oA7_b4BY{4v z;OjmQ(2fo}>b>TVE%4noeF)3fG;W;$f4N?8>X1yqnM}JaEyLEezUuHNd$6cu}3E^_vcmR zSH0^>ZJFfGnKyo(MU1fZ3SWZQfnud+{mh>5A`f4p4@KA-jP2qja`U{Z$8-H)7Qfh* zUsdI{&+CFGEhM5V|9|=mS7?^tD{3@cb4xKgU$5`VY2e?=bV5J}_>s^YC ztWOCoz&uW?@rkH*L^}oeRblPOBxxA7iQ0w*kWRYTKcX8WIxbVyU|)Iu6EIJ3gXhhS zr&vKkYbTBMhVK5;zbo^;kA0N!a+#LK*WuBi-R%!iE}xFjf3Uv1A0H0c{>q%IkyHPF z=3I6;rye<1t2s#y&cM2e*$X{61HJKHScyv#4qr_Z&3@}69)Gq~lZtP}@3j$SQhl#U ze=3j_%xaqI1Ps*QuDalH{TBAhn8Xzmh zq&kwHFM%mFowER!Nc$+_Mx=dVI!4w)SWz#8C@xH&Doc@HfF{rBP>Tn^p+U9ohW?Uw z=zE=bBHH^C69Sdk%|-$(MY+M8t#IJ$IU48+;J5W$?)CtDH{Y<}iT@OTzb_qVH@c(3 zs-ZJ+G`oPs7%rJPWAK1UcL;MOhjD>DJz=kDzYKqfSb24(WYG-|Zt$ZubR)rd%fXMH zt1SYDv01pgC3}i>N;lgO<3J=W50!;B?}-0MY{Lv@(#mB>cf>^36OVQR5a5|UDaO?`aEeZfBCFAr^m1_YV| z181##+|;2!!;-{RLf`)pxHeM^Rz$Dn!2qs548#uJDHw`ZP+s^j%Qpot7^eYQ4fba2 zY&YjA#Flj}7|d_9`s|MvS2q|pEjCIB7u!-US%vG3;}4gEr$*Lmj7ZlT=$osYV(jz{ zJG`KJxFqP(fz`tb=9Hsauz{fyZwvxD&h4?~UsIpIUJU?{T9Vp{ooL zy5RGO2wkalkU4(Q(E5il=7)^kAO z<}v@YV*Z&74#q;vtT!p&jT)ZI0d;M*9tcFyJIEr*7aH3LLqifaZ|i0|Tfh_v3rjLe z(W8{VfEBdRufv|En{7o+Es(1R!lp*@)}l0*z#Hm-ym)~b;;jJLeSDO1>E09K01fj@gnfWws=woPv!d$;LsyMBc+Wv3%(BfL*+v z!;`-VtK2|D-CpAdZ9Wz6&~S&fXfZdigSnRkklcdKBVZ z1y@h0-Ang>P}b=S4!w;rkzZYB8grPx{@var-i4^Qp9gwbnqsfcuCRJDJFHDsFPLpq z#0WfBLUWMUAX|Y_elbADy!@}Q9uc(pu~fT!_#$kFW*m{lf+Vr?wrtdF8fuoK*6Y{* zXT7rIufsmcXRt~>ZUttbPcO7yl>nmgFz^DcA***U))>y3fOp1_1|?Ypcb=+e`QsqR z4|!jAv01x0co&>vFRFIh7r+kQ%_b^WuFlxC&E#yk`GWNf^Xv|@5zyPDibFfY+rUuy zp~oabAyd zX}?L*!eepTF9QDyozOv<)<-NcM_IUKdXXV`dr^OA zP5y=OWW?Ha<^KTrTtmCP4oT${Tb7^*A{6&+j2r8JWH?p_O^P|i79}>yV+N%LQzKy< z!fYA5UE#9>=@ZgsOu-1Dx`KmxK*O$ruY5OOM6z9~I4URAVj zeIa5*#q+LFM@aYe57~<2oFfJteUiK-RwFQ(6t*&E`>}u2d%xoeCchR9dkY}rGf^e{BhDW z(JVH7sk7!bGcOr=ARLp)7fFZlU`4O&QY^rJn{1@ZNyC#}ggkGCEI}5!lL`kZ*S<6p zn#ha6_3+}&7Fz>-VPUBqXL8DUlrJoWca;E~YNmi+ob5Ez?If%=y|cLDRK1W$n?yQB z2$kxpHAh+HSK!Aw-(!n%7mk86OJ!xSuXJXXSGqef@;bd2vEKKGPqUkL!Jcb3VFvDI zlh6aZz`DZqS@c#Qpns9jMwj+35^T<1V)?&HJU$8Om0))PMeJ~7SCm(8@XxE}ZNtE@f@tMnr{S!a zKV3k)Sxh#v?r?9MX0x;y0g&5%!1(QA)74mLob@!Lot$3fp?XTW+fQ0)gF}l9PhEd$T9N)ZsaF{40vN?zy?>86J!5?u3m=abUOIU1Sw#tQ5?N3bTEiaiVL$BUtl-RT(WFtcJqf9Jw5O7|3ZvcVDE6lM z2{%f+2$DXrZmJw`gy;BiHb6v2w2G12F6%Aa>s2DwA(U|}q0JR!(IJ#4Z2SuUwl>zf zQDdry1nvKrg^gNATxU2Y*( zP;S`Kz(dgW^Z_M`NZut^g?eF&(2F(xLhzQ}3*8oZ1XJEj^!njmJoWDqU@juY#-m~K z!oCKnd&7G1O!!%h`Vm;^)449fEg*UaN%)l`>jDT`! zQ+9&m$B2C@YeqJcm zINabJkuXgj}e!vWsVD}H`V1J>$PJN5y#DDFf^A8RH zPxx3mW|9P3g!(IJ175ru@xL(-V8-WcQT7RN(8S}PBzsib$ywGPcfxW?XQ{+q=GcRg z6(+mg>`Rw^7sRM39}RzJ=n&;LV5orG?GI58?`Ds}ckFw-2}JzB(HV6Hn+8c3rVW$fKN6QsjJoS%@O7&m2*?ex*KNmJ3@XIWLe+V2>ZV3$-G|I*R~+X(Mb zip8L68JyrN+tZMjVBKIXqp_oFr*REi2J(IoM}Jc4;q%R5XN;QRZJcOcC^mTdJii*uR=WH#ym8Tgh=0qVoCNS*pCYw zQA9IJ+I)yj7~r?il`LhPlwq1w0UMAR@t%{K!O(zs$y-V*?DOb)7Z^|vvFQVU>Ej+O zY4HPLkWO`5ZP;oT-xSvka*2M3DAMIK=8Km?#jtC^o{>zt!MQUu&ez8gb0NxF6LjD2 zV>YaYRI@EH{-(;&V0xK^UFMisGr+8&%k^Fg-6QUS*6T~y{jUZ>gyb&^p3eiup2$GU zj{Q3_O7v2O(cE4jW$14h)XqGoICqb)n1XhpbRP})Y?G>t;Gey&VqwK!FLDnGvZZ9w zyuX9_HTR(LnlZ;>TrQBW$w0t9unY5tbvstW1)>Ffg5>`UJ4cmeTJbys+WKa(Ej$kF zT)J!Y$o0T3^iB9|52Y0qq_k~<)Iv2ZnHNK3Q@Y>mp8dkt2Z-5{Y!$$~Zq7o<#R|;; z{ARMrqLoB`o8hB8Fe`uTvbgVb+eIDNCN9AjknH(q*~(_x&z)t@VpVw=J1Kt4S+*2b zCEpHWGw#TXvB#lv+~iFMy29dx9ob+xY=`g1>cz&7?C?oQ>nlv10^Z;GGl;ikQ zG^63Ly{26933i{cuF_46l0w~nc@(!_&bMrucMg_v_q;-p7?g*s>O9`wjwm4!h>a5n zUkA7mb--3wpYYpi?u4GBTrvuTwU`SQV(q$F{Y^PL2U!VePwj1d2|S0;&mtPgSvEXg zgE>PFEXfz}^2SrR6RGiEniYVB=^>_Glq7)P_a*wygEFA`J# z@LiyvcFohdaW6Dz%#v5ZV;_6$NAzzJ^5YbCA`?SJ9KLmMYdc=XAL^B-i#YuYIe$nuB8pinwk!HLy@on_Uxr% zVnC%`tXWoyl6ms!ob}53uVr)nA$DWre(}|}l6&=BjQtRWE~M}am0i#n)TwnqTA(d& z2J=h{#@P{Sf!XQemkm62{#WB|oMNST4`h*BAsR7qeygBgCv&}~l)Es`7mC#0*ncE; z%n%N6)>-ttuWsu#nkkl|xlb>wcU?GIIwre9Z{Ht4oc57N16=K0Xn!uB>Sx4^)QkNm zSJ)AHzc)pn+-nw21@1z*lOZAT>&nqWQi9$!xX0jC!%4D^j%#J=U#Dnx1Umaaa2-hX zIoQ{#=zs83L$W&o4d-9fH>$^KQ4*hymE%S9Iq)zKtVRDJx#IyD+DbuRY!Hir&|#WM zPsW8t?xywSjd-!qRIxWO;_%~nr1MCCfwsXPK?z;#7I-Z18QA?pW=ahT#mPa+@p9Zz z@dET5Bx3*+%|3;dg5E#bS+N5Gqm&-~E`j(mq$AEg{9)evu<_BEhJl^fC6U%-I7UoW z9%(eY5SL_(f3=Hm13!L9-#b(F4JOT$>`bsfplp)SAq#Ili~S%ZYG@WMhY&~b5Y5-x z*dmU$(Yt8Iw?JOT&Y(~Vk(^9SD|qu$NoU22M(a7;m(J^;131TY@|_0gPN5CU9Q-z8 z4m@b0wczE3+YWOzBzbsK)yv}I$)n~ zg%-n_=tstO@e? zS(bp-{X58c9k9K;G<2gwxRa60Uu4Uw37rhfcEqD>UU9Z+WjXazI66X7@ zGZO?<+V6gkzdXsBz0ZE{wbx#I?X@50d_;>wE911A=G=QG@c5W#Xcm1I*yPh_j~#kF z#_Rm^X}IvugHDC+Cuzi64oX#wdvocos5KzD=arOKC`uq8lOKygE+hoYWU4X!?YX!W`Eo>=dhdiG-h&H z@KHTYr@oNWxkqse?KS{rYn6+NAeE@;?)p7f++BZ*ORsP?imRcx{&T@!DRD82tEBkH zfl)3!2H&Gq^_>mYD!FPc=YmVIZl%Uri^jAY-$i-~U&EsvYf~+6U>`E4+^Wmc&)_u3 z+4o30rNdsVPlDR$m(3wVVz)&iX0?*>La=a%W>|dD)U@ds`$NIf@ST_&^ItNe%Z-v9 zx)wJ}yR(f}a>lR@(~MQ{ILJ!er=lif@<#TThHcrnk=@V;y0p*oO_%4nr>2E)ODIVq zk-6C$kT4)4LawHBm(N31$=lxq4X_D4ioT`7P?H~w|7A~~O&A>u{_9yL(+r4CPSPFA zT<#~(2H`ZWd@}f7xHlO)O%9*LI-7*{odO^x|jxCmCn zF#8H;a`;wkX#X3SpF@vTbYIFF!GiI3_h24`JG4&X4y|<4bGQX;I!v4-$J+hJiVli{ z1{?QUj+-z#lcuX^JQEs0+RKm)X?`Qtsz&xi&M9|e1iT-($65wA8+&W9>zc;=*!|cI zLOcv74R^m9n$>$E_?z=8@boy0iE-G0Xr}SKH>M9dzlq|L*QlPbNW7cvjN+@!>L8qqL{uj!IkGTj?*n$NyGa?vn_9h zlG$6K84~Tngw(z34e%JcT}TCaEI;&1?6inK%o$aEW5ND&#V0wWsD5q1Al)BIJRY~> zjEh98_aVhfhEtn;MSSiPp=8>huxHpd_Bw8vPs7(=`$#eYF9Sb{pHTIk3O}J=gIs_# z%_oEZj*|vjP|11v4hq8Jp3MQQi`(-Xv6bGAIX~i%UUC96dzvN7*by@kJOT}ZWH}i; zK0FcpM6u)cZ=6~>8T=E{(ITCCoR8#GQx0EFd!)}Ee-GMo)cj=d!1=IpkBF$OW71gg z26$?pE#(N^{!BMy*WXWad>T%DNr#Wlsj<~qk23J#e1i;ap&SQJ!|e_Qw?OwyeS&WI z7*M`s$rr`pq?ExJ3O3??{dg9cZ<_Y%unSRu_HP>Qa6wta+cAGW8JtRG<)&apeln;T z&lmGQIM8+vN{_Wljsq1ubC$Fwo0Pk3XqC%kIUD@R5NR-IK6x^D>|C!c8RyA@ZI9b@ zqj8Yr4A>tW3eKI#Dl(vy9M)d6mQZjW_HR&+Tz8&IOIUp)xEFB~(DzT`n?@1M1MMZC z-9dfOKt-^8>;*{)4GsnU2+cjo{Zw$)V1yr&6y1Xs`Wx;e5HLpeo|my#eIi&qZudXu z^QFA&q516z)N?SUH)_|6Ur3QXpDBB$42MbXn!qjVF*jU*w9%`?e)7UV%5i@r=Gb|= z$Jp81&83nYaw>RXzuc{?2wCs#-;R57NN+!Z)oo=CT&O9^8I4KnwPE&e!dSu6jchCp zy`3|>K)PN~v{C;8>9Oc76Kg~QZfsNG9`tWvRjGI2m$sRQCxZ8mYanF^CjU1k@MTtv zv2L1I^j)x^&4gX2aSp=(-FHMDhOT(mh2ZZ(R@CD{@Tm)@6uq~K^xk8)a-{o?tP-3; z|BLhzTHil|FWJ()H>ZLR?4z{{>KQt;^n(hvN#D+6e?RF1PX)hw+1GnRn90(toKC0V z41m3HfOP9B)go8g;F889*l$%Oxo>K`y_@u&l){Bz2I@om+C1k-0$c3*^gWX6&IM;c zxAWm)RT^?{U*!5LMrv+1?jqz!8%cK$)(mnznMglr%!E7HILy~0H6R&-bm(eu)o#oM zP6q!6R+=XuT?<9U!$eCzv1J_oDRh4HO~9-pn~F$@pZSzec3ciVAp-Oe=E4a zcjOyE&-+6+W2LsBcYmn7l6wf$;yMwmR#xE{?mIkzJK%3D`VKU6f5QH>6Zrlh+fHUz zXz@k>8 zwEP3y0T<$j*SO+}evMticOL%v8H=sfR%<=M@HL^Lc*MGIoIR$(o~GUpd1XHG1a6hs zTs^a9TMG5BTSE7M{!Ro}gkIV+w`jG}x>e)$8T{hE?V(Z?9Ih^se#AoDkI!M8#Z4UC znsZw}&BCrR?7a?YjVv|HG-G~^RCHthMDPSw2;v#}>1f|L%&d?Rw*YY10}#&$7o2f_ zs92_5A18uOgvgAnXzl@@_J>sdu;KpbH1J7=9jcIoO`zw$oQGt3YVDK{A#`>TW)Um>0sWt3=M*oMeZOXilhC}w0nJWFaw!!HVe0y=Ih4CEgg(rJe{LeSvhT46E*OMKM^3ID@;L=pG%CGimI- z^kh>A_gF`EO%a!-F9;;#%UY_wTGj(C>vDX9Zz}sVSaW{0QRth%3S(sbU;gN3*;foe=Ekt7|g4{`Hx6O#FX7k-w4 zbL3cG_}4vWgEO$w{CxjALDz-5KvmO6`CacoPmCE3-7pG$lg1<$$xpq3wVHQ=o3W;= zVejA@d}PW9dC!G!U68=@)L^NzW`ftXJnRI2{=Y9io98{Z08fkF#ABDBg(Hh+XQ(B|r{#Qc_aYim49C(p( zQ^pOZaoj+=^Zu!yE&;aphu?(+bTf7UeFJaR7j9P4Dm|-%{6Htd7nmZa@_wth|01k{ ziFGdQJIy;w(jv(iq^k@V$Ado%8@s7R$Ab@r9XM$-j$0CU!X*|i_lN)7t%A#U!$#yB z4;O#falZhU%}QAk;c{0v2Jg~^L?tirEbY>v^dCU_!$^MvQqI?_B>`24r6WYY_IpP z&~(t;{%)+~tH490v@NMAkY`yS6Smn#OeS!4o%ZLQjLM0yy#VZ{Z84_E!QdIXLttzy zKhnVj#(-fW!Y8T$}3g)_l@6WFDMQ-12hD%6RW)d(*@Qjbye z7|ED(v($;;Jd8ufm0ebv)G2Z(I0PNjM9^>^IzX9A#ag)uT)GW2Ip`A0KQr3q6@{TW zR0#+(L0`9_{Z}&}pSMBBk&K?Kru|J1<2*@P=4_l5r_;k6>8aku*=U?AW-&4K2wNkZ5`={ymYka;j-K_(@o{9EzLzT723X+=CUC zHOD7+wuEzpKdjnAJFOB>qNJja-}@YIt6#Wguawq^@8_ie$0d-!CT9<0*j-5LFyF=9 zH(OGrv=rzFg26mRPljVYvt{|r*YyJdnA2X5v@)fu4L3pqDY&rWWydNhPCLe0FpKbG#T6QYsDy^r zxwNz=!J}Dpu0#6;K2Pm07l0}3X#1YB3jsI!V?CRwNZps277YFo968Odd@Zgo%^eE< z;zA5&Pk%O$oOl-Jj>a>SciSdl%<6sg*vXf<4nF{d012>cP;?v-)>)62BnwlMT zZJRnAp7w^;yIPoHV+%Jp>+ft`*Vb_7LRYh+eSNEE>TY)tu3)%5gVy(Xl$47YHDwkoh^-y zmU?G{5-*mOw6wK*I_fF5>}Y84INREmCG8CBP+&(xQ_BWWe3W;$-*XTd}loW$hAqy%G=zf@g!= z-YP4NCeN3h3pOmsMrO|X4)U>;Rn}fni3;b&R*z4vaI`o!C=D}NqmpK7!DeJy59C~l zqkv9p^49wL4o|e5+vWB~XM_+I z#4;tH%$C*`XO`UD>S&OGzBXXfDLa4X)~ zl%Qi-Mu%MIYj?IG3Q(V!(UFmn1uR?=x3#04kaIC$duzL+IV+YS5kgx>ds`E7yqK5A z(Xzp5B-#b`JRPofvPi&nFeWyOlUJim;sLVn9_Map||bpfj=tYEekHEc!A zQdVFCR9M-{{7Bptl`^XaSSw8cGeBkq1cmvG{i;{Ro&&_~RIz!08vwTg$^dHt^?+8u z7QjydRLP^H}wb@FH*cn-RdgD6_me3+S$7 zl?3_BTUk?0?+Oi)W5kkQQ)|sHlj~aB+gmrXl6(ZJDW>0&Wwq<9`L!i03r&~U%}O^^ zcpNK0$7dB4*6M|}B5O6X(rdM|9i?!#qZrP1l*8GMqB`4ASZDiUR^Wgye$0&36xLcR zDhsQNm)F#;E2*w(flGz0de!Il+DUuGigh)G`75dmqked=tS(tuQeL>Uupr`A2sb5> z+LDUGYV#%boJ;JBBKGRq{QQV*MUAz(*0gRi*XZkH#>%Vta$obh%Y1V#_szNJTas_h zFD^7ivazi|mJw@tp;E%AN6qS*{Gz2%ACO_xRH>S);DSsJkiZ zTuha})LvMT6K%r$$@aDu)0su+@2pD zekX@eR`4b9|ADcMRjgQ6Q;RZIFOfSin9}g0WO7lKfW*<>;c1Bso)`uqBlo7JR>%bq zbifFr(Ur(Fj$IL75x>4HBKrGEYk3I-6zcjUrL<#=Y?C)RnwuJ;gLqVoVkKa+N+B=B z2}Y*~TB2E89Q#>ibzy!u3ReY@pg~ zjEI>Ll4J!XD{ZUS6jm?4H2ftw)gS;#dMn6O#P^1#O-*fZfw*L1O#7sY%>m2>Tn{J$ ztO3OQ9OE&}RzMfvKEMt@FW^^z=K-$*-UNII2mw@xqXWzaTnESjm;tu{$^dHs4S*Ja z53mjJeZUU^KL>RzX%@c6b?@}>=ozTWIo2_|0e(?Mwlf0IC*E&aAqcYKhIUnzs-yw1xgqYty zb`$&anHc{MdYHwQz*HsXS?U*+|`;Xbay9)L@qNL-G|vKCrT zj*C$oI9|{R0(mx9JEkrf96=n369nOC*Us}tHZkwcUw1n%&~OXGXU2Dt^;HOvH)`dl!>1b!JCVP=9$DSkPFkPe6AmvH9l1Y*!NzzKZ zR02iA5~yV&`i}g3YebtsIxkWlG%S%#-i%e3mC4iE-df+vg zbl%nKxpQHC>&A_(Em6O9@LPA$Z(YO>MT=-WNKvLF?}ZYgEsGU;+ntay8ssayb5=$C zFIDROx69Dh>~zu?Fo_*Dm8kOgHADijObxDoEt|_g9MR`0nJU66)QV6ML0pMedH&@4 z{AerBhoHTQ)L>V%>=iYLBz6&{ZS(JR`r78N?`UpDyo;qtW%HPkt#4_XM?b8^(L(0@ z$-=@MyEXEXZi$$yBc|oSh}nH8V%`x_O#ik8R)*(rV!dK+`_m5<)A{PF)>@}$V-w^g z^2bwKTP;@?E?rt!gBKccHlaDmBfBE2rV?fmX%1D#o$^`LM48@O*U4 z61iVzKL@+Wt$BZsV&cn1kOPkG`_B_vN@M)OBqRGO)4~ku)31~MxSzk}dB&!*lT5oA zvKX_npV(+D|6&?z*eUhD)LsZ1*^}H(?RhHsh-K~nIy(u zMjF3n-xIq=&W9`53I4s6;czzl8F$Zz;qXi_jOS)DrejaC6+oTtIE=}*t z>`<@sDwPnU7PVR}UQ~ic^YSH+N)SYPSbz)QbZr0O|4^~_0gC&@hK}ULYZxnbJ)KbC zYKb?wMw9rS(DXdlBMG^#p#+obXHqsG(=|6S-DOLZT|Y@kaea_zaIH_$yB|Dx#LZiEmLn;ifkaczzn5}L298P|5$Omhv%frT zbAhX|yZ~jrFIDL92i`B=I(og^azyZ?Z5GQYHDM@aaFdT6kS$zbv2TmfVPrn_pn4aF zH29tioWI<(neVal;^-Z2cA(b60(zZvh1 zCuZu!y3fH>ZYpO7Qk1v`z35;sWg@rQO)aE%3oh?(pQ%7;sJ-?r2&`>Ym304JeHdSiN(G)^^_B`OQvtP#z(yse8I-u$N4rqT1vtJ;N4b#>}@&Y1oph z?&;yVRaKcn2e-LCEaKbAtO~B)2p%3@75u!gqr@KWulIRXEGSssJUWpIn z=`@4wzEvn0(b-g!;1Pc7fZ+4ieVco3ZZnWZr2n zjdf+0rYDQe@={^3ctmi^>Fhu{%BxSrt#5DUxQX_;fYvp3RO`_m6Wu)e#y<FiLR zl?&u1J=lfzAKa0Iw(zJ1GhNyey-p`hn5Mp&;$b5Xp!|a5AC=r}gxXM${vw0kOV}Z5 zp>Tkcbym^MSq({II%i`CG8J0ntSQbaD`;msdsB_pxjsf-JO?g@q|Bt^Bz9;ULgh-T z(P?gtDdtVdJs>^kjrG9&MOCG-OX=Hz$y%h?jg@02t~yi4dM)Xi1~x(~mE6tK`+1pL zWyw@`7@p=nV!d)V8==+~5~u&#m?R{cszdG>4Hne%c3>k{((BYcE8}N4*h9M2#w_(F zHmqBXlEvRwXTC}B7}r?mg2E0q+F2klc#UIfi6N2on!33`or4`>$kZ&EGub|zpY71q zQjX^Nr(H7|s*|b>qgs!;=jrJj+Be>b)DDd#TnJb0F)!h4mAi>bnl<76 zd%dFj_Q0Lq7B4$k3yiXnQKBwMObnzNJJUL=LBD7(yRmOdV1~WC4_Uu83EkLyXS$r zgq*wYFj^=?$v)#?b)aOA=Iy!en72iD-Ddmd*; z`}sbVsn=^O@iIyj?nhtsAV-OMnx#)jO_!{F#4XrC;v?x2q@Ndwk63TiRf?b$YF*HWlDZMC zSOSa{14@u`_0z_uW#pso)O40S%|?o&t;2d(2Q1z-1Kg2ukIj1PdGr-+wwJzUvqV#3d zGySRZKpM(VbW%H+`-lLF2@l-s6Wk&=GAL)nKZRK=puF$^@e);_rf)!^abo4Lz3aB2 zI((gkkG`!|-ULwMEdjfijjYUr1aY7rW!9sdB6!Ci1#(Frp^@#UKH`hzeG8P7)$YlBvzr~rworW0p*D+dHmL5|jb7WMAJB0};=xD8X5qdO^f5M- z?S)jbHw66?#oic{QMZiqaE+Nng z2?AU#8vES784cFktFqb1D!4!n$yRqz`s$uhNHzw0%xI3=GNkTl)C&QpcL%UC4e6s7 zkI?vJ^s0Ma*Kw9u&+LE=_Mhwdp6BCc2i#sE(CoFst=?PU4G#zkADzKHundgRLv zwgX@3dT_~o#fjRol+sCiUK#op+&Q?H4i$9TI?I$_;wXa0(OEv!(CO^FWys!HF=z|i zI=t4m-skY~+6G^Yw%%vQZ=KKSTjOH~b2&bco)iP_LjA@TxC2yL3b5=8?-7rpZHCmY zGPJIY`naD)6++X8t0f)C@aEtFdzB{~);6uE&%a@?-^y#(jJ}Wp<2Wk;5V*vDn zcHs6+Yp}TZBR7LOD1OCYqu1iKdMS;`xD-QlyM0tIm#=Kd<8y+4QJrJ76rTqtv-lu7 zkCX#5#o(DF3wqJ2Y;$x3)cKF(xOeD;BiWuU@@!eqO_-;?C4=0W9hFk zj!#NMnYz2+Iv_pb%>&kY_!EP=)w)cKh>#L`Vdt`hj^4oCc8p(0IX8)$mn%VLf-2EA zV7^gjvGqZw@897)=e7l?oNOp-H+zxFL-E%c-0UMI_wLWUC6`<3#piRAYo$p(|Qm@UM>*9~;-POJ-UuD#feCD`>V>8|0 zyO^c0L%Bw@R?@A*MO~5Dw+vgl%7+WO3cJ`L1C?BFxmgB28quSQrOYHyY;mrhY`J9x zQCsQmvfV;pqjz?o%6ogD%)3nC3DgG#oz%?+4N_w<*|@1wE7j zAY<(?NNh)TG5t2uZ|{!AeEW{3e1~o=H&2&owVN}|YuS(qZEVhzORe=0n{?48UbG1p zZM6&?bgH}caEWa)T`6cbNiGsaY@*nC|N4C z9vYFl6AXi~E`wrYgEZ6pPJ*jcR7`eIk$p$#V)5xiYaxQ(AxKEATREql-S7A zltUurZ?vN29%UhOrY@7DLAVFV9)c7{BicbR9%WD0l1<(73g$G|Yjz|WG2f*zGuAr= zeOemiFhYF`<6?9qRB*Ocdcr&IVWAy~s+<(`PvQ@`N$kab%ywzCa`{wmtK9|OB`&vb zr$qAwzUNuVe=Nn#j~YBN0a3pbM9de9dPq$A9hhy4`q|)ZJ0TmXH&yxA&<>q!p6ww1 z6YpUM^3YCtv`wsAMs0WN*h4f6W`USRF=YmiSgv|oaBnX!pm`WHbk>`~X?eOwFr$df zN5p#nF|AuQWT;d3{6G?25mQ?t`lk5w66WQY2eAF>9uF@Ks@@bJB}D2B$-vDl%RH(9 zgCoIAqj7jN(*xbWsKKp%D;Av2!>isT34I!H_jA40rG86-Yf56VOAZKqc!M9|_IeE$ zvcQFfqP#RotmlrUx_3w%W@5U$*@F^v00ln65`XNRXJ=C8vC|$E%H-8i3bTi{bSh)W zOO3z;Y4$y2~-SZovHrY5|-Loo&@A*hX`YTk6t17t}sNsQJ z!lJ~D+R&#&`vnWt&mSSXaa;I|EZLf8$Ift zjZq*n>!()b0y;aJD{P`Vz5?uc73@$;qwl}88E>Gieb6-=ndb2ykv-gGE|z#Vw@*Sp zkI*R5C2_x361VDjb0SK^4(gTKq?hujO$7J;DDIcdA}SJeoKf#i8EWekWFawAhhMmy z1}7$(CKMNR*DMJ=QKNC+OuMajEn~`6wjEu9TtbPS%?;#YZ>rKH7 zIwE;5ROs+|l$PqX1l*hYM7pH16IbG@^31x**>*8;Hpa{-XHT5u>~va4kmO3i-R6_( z=M2{S*dYHAdsSD6-&Z(jOV}{qW167~SallnIb+HuwUNpREeg2B9PkZwPhz|&PwyfA ze=p`D*}y`UR|YSRu}3)R9n+B3?_&aKM-6V_*ipB9^p9@o=ztK?0wZvU}ZPi){PuGxc|eFoG^XEEwV%sLAm} zvNM@qtaeMs;yqk$tXl-HoD4D3as&H`}E z&2IM4VZ@z!RO_CzKmXgGU=)y4LfzD(_X4LeM{Wl_TF^hz6Q%S_Jx8-Y%p@$3Td2-P z$&e$s&!v*)6<+{N6+4I)LN1!^l8t7&!kdPRdbruZ1^jo?F=otz zM2TJ&mc>LXMv6$h&2D+0v}hChD>To@PoF$u)MZyC8ld%xcU!tiSFmb^HJ?3Fl_)w> z6j!S*;+oQ6%@>_jH?adRMtWbOSxPX0+YZGzNSCLxarT7K(;hQ;${c8UF^(<~J%UnB zz9)4$8=Sm+)MNKd%vn&=+T@*(r=%ml z@Q4}WXs=t$kVYSa%xF|bp7D&@MBUs_My*bpL2}O+Y*L1tC2TUTHYBr$_?~GqHG^*7 zR?s+UdI}(uSiLFG$VbL9qI%JtGFXCfp4NxXxv2~^+v?Fvb;QF7Ym_QGh&zkJa#kWF z0GcVpUX%mbBPqjHNh_lblfbErdQj=}N#@J~oi0(t%0@VcOO>i6j{)l*LV7`xke&y* z(%^tBuNTur=zt!={2g=h10JyG>Ju{r7m$fF7JVttk+$4V&>9wxcQ0c^B zqRaSM1!&XS8(1+Awh3SA;>iZK*?BPBF83lxN`;OTY!g)u}`g1g$?T} zRskpklmKXro%uJe-_YDtN9)=vTG~2Xu2v5n4xrrubU>h_K+f>8j!mqi1OIib<1W@w z*WqHEgqeIl(tvs4S6Gweu{sPh2Jauh)L=#RG)x9}9^nL-=kPw|cC3oSjMX#t5zMJ@ zKM7Nd@B+eBVU4;Ja4Vn!upF=qP!3oK_-7ZBZ-BWN@D0FiZYFob%mviKUIlmp_7cFq zdzk!Pm^xmi)`;`6XGlpYv*pye3l`-rz9HP)dY99KeF63JJ=oJYKhKo2z`S@tE)W59 zkkbMOW1LFpXsK^@G;MS?u)2=*>y;>zhhQkIa(-#P3)^g+?eilc;OyLly`b~m9nKCX z-k63-(3Q<(YOG8100Dm-0N;ng3Uw?_SOE>nbLtK3Hv`af8s<|25j$=|VX0AjI!rhG zreH0&5nznEXTZGYF!nscTnhIznAZTXupA>!iH%d1m}6$kD32hp-R#k4dFFhPV|&Lr zcH|wN{R`CMi&|A|G2lkPO@JE!S$FYlV+GF!ALW@5`wGsy&oMLHXH@g-`>*nB;0VVG zn>c2j;F;rXp52!kDRX51#C*_H1ku1mi?eA%V_mBUR!3V~YkiZl<(N=(>#XgwW|TgR zuYM?XpZtNMp8ahFui$6+UeFodOYlxA>KpJL1M|OXC$Wc@G&UY)#V!o6~7+#wju!1T)>}H|OT$n3)-n z(*`5Qj58EDd1jV}^Ar?C@q;70C_XF{h~?yvUfqx9{lGA{2mJ?}sqG74+W+|X)44p%m!~s+4X4_C zM8#4@!0B)Y08G;vY!j&*;n;mvlQ!MLbDEKArD(aZPnL0&h2t9dF!RGK<9fvhF7Z1K zw?zmz29v^%!+czhWtmovQ-N>ZY>m5^&SZL%=9hWgY>TAR>*qP_)L?%YVXV*3;bI}h zG{@Nfje9!!4$~Zy`hA9V9$dD@c%mq(<11IxQU7@z1*MLxj^()+Q|j2rC0GLK7OLYo zK3zn0OshYxqdKbmj6ILx#`z?w?yO9W}_EAS=uYtd@>M!eb>{qRm4vO)MXKlt%>ik^ebWen+2@ z`2zgbj$m)`{3(B}#i;b!Z+O-)A~FGN!XiuRmroWOu6h46w!h4itb5WBBjwa?>H%K6 zqv?x`;{+7K02A3T8K$_6u@tlcNC;QUB?;NElOG<{?UoqM3KmBW{TP&gsW>yX4PkzK zsI+|y-SiQQ27FL5Rl2rpiF#jVoIo3r!$&Z`-FM`BrxCY7xJT2S^zssBMP3e>{dVQz zM6FfDovlq|vPsD59=6~Du}C}<+#A&EwOXX|e$6@7NbgGgyOn%QHrnK=Jn{5f5T$F$ zkA8voJU`FrN+hKY-EgBYkHh>BZS!lGH=ugm*u{oTW&$dxD8cRg55yC2 zyJd<^I8A?SXS(VZc2yg4xuP0|*a*aL@Kw6B=e2lR*b-aJu945%n<(E_{aVgxT zPe1%GeZDk33UFC^7yjY&{yc**0(xfL%Biu&i5hciWrO^bh&%oEwvKNh+(7^8Qp z{Ed2*l4dsE{|J9-pB32O*S}lEh__80VT|^SA4VQ2I^5_7^Y9vUJ?tZ-_^py#W~Klsem{SO?yy8o`@SNH$h ziL3ihoV>dK&dDBQ^oK+H(5}Oaj@buTYdx! zv$4IpQeAoCGTiwY^KR2RP11i%9b9BfdQJ5K(>#c89mJK+w6M9_7ns~S#<8*e+>#Gp zYsC#cXWyf5QGSN63~}t#d+Y@|qXp3dgCWP_%3OPoH0e(J%~N0F(wCq1d&Fg8#c4Zk zU2T}@2nSyZ=Qey~ci}rlbk8e$f#NXbhMsJRTrtw_-oz?Rr)oj{Wl!7ufTU6xzq%d>l)nu{Nx!{bF?1! zSKp&P!)k>OMB(SNp2l5D*|-%p6?eOZgHPe6v%kJ}ZNbih`Lm8s;sSVJ$HU+<0BkHlq y;lXNIJN#O3L>hrNI@=v||IH<7<-i#?KwjdKN@?e&etTRH#!1b%^3<*a;r|7ss2JG* literal 0 HcmV?d00001 From 35b68b352a0588124712128fa774b82fe2bf181a Mon Sep 17 00:00:00 2001 From: Marcus Nordenberg Date: Mon, 25 Nov 2024 11:38:36 +0100 Subject: [PATCH 118/346] Add support for Loopia DNS challenge (#3821) * Add support for Loopia DNS challenge * Bump letsencrypt to 5.3.0 instead of 5.2.4 * Update DOCS.md for Loopia DNS challenge * Update DOCS.md for Loopia DNS challenge Adhere to coderabbits suggestion * Use patch version to add new DNS support --------- Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 31 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 6 ++-- .../rootfs/etc/cont-init.d/file-structure.sh | 2 ++ .../rootfs/etc/services.d/lets-encrypt/run | 10 ++++++ 7 files changed, 54 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 2dd8792e95f..014d0c16d39 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.4 + +- Add Loopia DNS support + ## 5.2.3 - Fix syntax error in run script diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 02ae30d4c09..da8ec988a58 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -59,6 +59,7 @@ dns-infomaniak dns-ionos dns-joker dns-linode +dns-loopia dns-luadns dns-njalla dns-noris @@ -118,6 +119,8 @@ joker_password: '' joker_domain: '' linode_key: '' linode_version: '' +loopia_username: '' +loopia_password: '' luadns_email: '' luadns_token: '' njalla_token: '' @@ -567,6 +570,33 @@ To use this addon with Linode DNS, first [create a new API/access key](https://w

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 aBAn)uRmhUc`urt9xWsgdH$Q%^`+os#?P_QM diff --git a/silabs_flasher/rootfs/root/skyconnect_zigbee_ncp_7.4.4.0.gbl b/silabs_flasher/rootfs/root/skyconnect_zigbee_ncp_7.4.4.0.gbl new file mode 100644 index 0000000000000000000000000000000000000000..bce7aec4eae4776fc129ea84041cb698c3c8f0d6 GIT binary patch literal 240312 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�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

+
+ Loopia + +To use this addon with Loopia DNS, first [create a new API user](https://customerzone.loopia.com/api/), with the following minimum required permissions: + +- `addZoneRecord` - Required to create DNS records +- `getZoneRecords` - Required to verify DNS records +- `removeZoneRecord` - Required to clean up DNS records +- `removeSubdomain` - Required for complete cleanup + +Example configuration in YAML edit mode: + +```yaml +email: you@mailprovider.com +domains: + - ha.yourdomain.com +certfile: fullchain.pem +keyfile: privkey.pem +challenge: dns +dns: + provider: dns-loopia + loopia_username: example@loopiaapi + loopia_password: supersecretpasswordhere +``` + +
+
DirectAdmin @@ -1075,6 +1105,7 @@ dns-hetzner dns-infomaniak dns-ionos dns-linode +dns-loopia dns-luadns dns-njalla dns-noris diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 896ae5fb921..a9f15441c5a 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -21,6 +21,7 @@ ARG \ CERTBOT_DNS_INWX_VERSION \ CERTBOT_DNS_IONOS_VERSION \ CERTBOT_DNS_JOKER_VERSION \ + CERTBOT_DNS_LOOPIA_VERSION \ CERTBOT_DNS_NAMECHEAP_VERSION \ CERTBOT_DNS_NORISNETWORK_VERSION \ CERTBOT_DNS_SIMPLY_VERSION \ @@ -70,6 +71,7 @@ RUN \ certbot-dns-ionos==${CERTBOT_DNS_IONOS_VERSION} \ certbot-dns-joker==${CERTBOT_DNS_JOKER_VERSION} \ certbot-dns-linode==${CERTBOT_VERSION} \ + certbot-dns-loopia==${CERTBOT_DNS_LOOPIA_VERSION} \ certbot-dns-luadns==${CERTBOT_VERSION} \ certbot-dns-njalla==${CERTBOT_NJALLA_VERSION} \ certbot-dns-norisnetwork==${CERTBOT_DNS_NORISNETWORK_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 5b5088eb0d6..40958868ec9 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -25,6 +25,7 @@ args: CERTBOT_DNS_INWX_VERSION: 2.2.0 CERTBOT_DNS_IONOS_VERSION: 2024.1.8 CERTBOT_DNS_JOKER_VERSION: 1.1.0 + CERTBOT_DNS_LOOPIA_VERSION: 1.0.1 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 CERTBOT_DNS_NORISNETWORK_VERSION: 0.2.1 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 17afa8fdea8..b95529cc979 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.3 +version: 5.2.4 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -75,6 +75,8 @@ schema: ionos_endpoint: str? linode_key: str? linode_version: str? + loopia_username: str? + loopia_password: str? luadns_email: email? luadns_token: str? joker_username: str? @@ -103,7 +105,7 @@ schema: provider: "list(dns-azure|dns-cloudflare|dns-cloudns|dns-desec|\ dns-digitalocean|dns-directadmin|dns-dnsimple|dns-dnsmadeeasy|\ dns-duckdns|dns-dynu|dns-gehirn|dns-godaddy|dns-google|\ - dns-hetzner|dns-infomaniak|dns-ionos|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ + dns-hetzner|dns-infomaniak|dns-ionos|dns-joker|dns-linode|dns-loopia|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris|dns-plesk)?" diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 42c5c1390dc..c06ebfcbb76 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -33,6 +33,8 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_plesk_api_url = $(bashio::config 'dns.plesk_api_url')\n" \ "dns_linode_key = $(bashio::config 'dns.linode_key')\n" \ "dns_linode_version = $(bashio::config 'dns.linode_version')\n" \ + "dns_loopia_username = $(bashio::config 'dns.loopia_username')\n" \ + "dns_loopia_password = $(bashio::config 'dns.loopia_password')\n" \ "dns_luadns_email = $(bashio::config 'dns.luadns_email')\n" \ "dns_luadns_token = $(bashio::config 'dns.luadns_token')\n" \ "dns_namecheap_username = $(bashio::config 'dns.namecheap_username')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 6cb87e7b46d..193562fbb45 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -164,6 +164,16 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-joker" ]; then bashio::config.require 'dns.joker_password' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# Loopia +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-loopia" ]; then + bashio::config.require 'dns.loopia_username' + bashio::config.require 'dns.loopia_password' + if (( PROPAGATION_SECONDS < 900 )); then + bashio::log.info "Increasing DNS propagation limit for Loopia to at least 900 seconds due to caching issues." + PROPAGATION_SECONDS=900 + fi + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # Plesk elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-plesk" ]; then bashio::config.require 'dns.plesk_username' From 3bd532fca416f1ef7f41b2f91dce766e54cb7ee0 Mon Sep 17 00:00:00 2001 From: Felix Matouschek Date: Mon, 25 Nov 2024 11:47:38 +0100 Subject: [PATCH 119/346] letsencrypt: Bump certbot-dns-directadmin to 1.0.12 (#3828) Signed-off-by: Felix Matouschek --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/build.yaml | 2 +- letsencrypt/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 014d0c16d39..65703418940 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.5 + +- Update certbot-dns-directadmin to 1.0.12 + ## 5.2.4 - Add Loopia DNS support diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 40958868ec9..d75aeb159ef 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -15,7 +15,7 @@ args: CERTBOT_DNS_AZURE_VERSION: 2.5.0 CERTBOT_DNS_CLOUDNS_VERSION: 0.7.0 CERTBOT_DNS_DESEC_VERSION: 1.2.1 - CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.4 + CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.12 CERTBOT_DNS_DUCKDNS_VERSION: 1.3 CERTBOT_DNS_DYNU_VERSION: 0.0.5 CERTBOT_DNS_EASYDNS_VERSION: 0.1.4 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index b95529cc979..1a832642270 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.4 +version: 5.2.5 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt From 63d078c24d7c2424bd82d7fc674aea705783d439 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 25 Nov 2024 21:35:32 +0100 Subject: [PATCH 120/346] matter_server: Bump Python Matter server to 6.6.1 (#3837) Update to the latest Python Matter server. This release comes with a container based on Debian 12 and Python 3.12. It will be compatible with future Matter Server beta releases. --- matter_server/CHANGELOG.md | 4 ++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 985ad36a8bf..10ee9b3e727 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.6.1 + +- Bump Python Matter Server to [6.6.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.6.1) + ## 6.6.0 - Bump Python Matter Server to [6.6.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.6.0) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 408645a8ed5..f217a1403e9 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.6.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.6.0 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.6.1 + amd64: ghcr.io/home-assistant-libs/python-matter-server:6.6.1 args: BASHIO_VERSION: 0.14.3 TEMPIO_VERSION: 2021.09.0 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 327c9fe857d..adf69e7a2c5 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.6.0 +version: 6.6.1 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From 5d9cb42794ff976cc2ccf66bcfb8bdf27ac9c714 Mon Sep 17 00:00:00 2001 From: Marcus Nordenberg Date: Tue, 26 Nov 2024 08:59:47 +0100 Subject: [PATCH 121/346] Fix dns-loopia username error (#3838) --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 4 ++-- letsencrypt/config.yaml | 2 +- letsencrypt/rootfs/etc/cont-init.d/file-structure.sh | 2 +- letsencrypt/rootfs/etc/services.d/lets-encrypt/run | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 65703418940..a5afa800282 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.6 + +- Fix dns-loopia username error + ## 5.2.5 - Update certbot-dns-directadmin to 1.0.12 diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index da8ec988a58..062bbd4378a 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -119,7 +119,7 @@ joker_password: '' joker_domain: '' linode_key: '' linode_version: '' -loopia_username: '' +loopia_user: '' loopia_password: '' luadns_email: '' luadns_token: '' @@ -591,7 +591,7 @@ keyfile: privkey.pem challenge: dns dns: provider: dns-loopia - loopia_username: example@loopiaapi + loopia_user: example@loopiaapi loopia_password: supersecretpasswordhere ``` diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 1a832642270..e9bad1f942c 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -75,7 +75,7 @@ schema: ionos_endpoint: str? linode_key: str? linode_version: str? - loopia_username: str? + loopia_user: str? loopia_password: str? luadns_email: email? luadns_token: str? diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index c06ebfcbb76..fd15b32734f 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -33,7 +33,7 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_plesk_api_url = $(bashio::config 'dns.plesk_api_url')\n" \ "dns_linode_key = $(bashio::config 'dns.linode_key')\n" \ "dns_linode_version = $(bashio::config 'dns.linode_version')\n" \ - "dns_loopia_username = $(bashio::config 'dns.loopia_username')\n" \ + "dns_loopia_user = $(bashio::config 'dns.loopia_user')\n" \ "dns_loopia_password = $(bashio::config 'dns.loopia_password')\n" \ "dns_luadns_email = $(bashio::config 'dns.luadns_email')\n" \ "dns_luadns_token = $(bashio::config 'dns.luadns_token')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 193562fbb45..35c64aa76b1 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -166,7 +166,7 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-joker" ]; then # Loopia elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-loopia" ]; then - bashio::config.require 'dns.loopia_username' + bashio::config.require 'dns.loopia_user' bashio::config.require 'dns.loopia_password' if (( PROPAGATION_SECONDS < 900 )); then bashio::log.info "Increasing DNS propagation limit for Loopia to at least 900 seconds due to caching issues." From 620a3ca787b0239fad0c90c104b5146f1909b620 Mon Sep 17 00:00:00 2001 From: Shubham Sharma Date: Tue, 3 Dec 2024 23:04:16 +0530 Subject: [PATCH 122/346] add support for mijn.host DNS challenge (#3749) * add support for mijn.host DNS challenge * Update letsencrypt/config.yaml Co-authored-by: Stefan Agner * version change * Update letsencrypt/CHANGELOG.md * Bump version in config.yaml --------- Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 25 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 12 +++++---- .../rootfs/etc/cont-init.d/file-structure.sh | 1 + .../rootfs/etc/services.d/lets-encrypt/run | 6 +++++ 7 files changed, 46 insertions(+), 5 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index a5afa800282..5a1be9d1dbe 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.7 + +- Add mijn.host DNS support + ## 5.2.6 - Fix dns-loopia username error diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 062bbd4378a..d10344e3c58 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -61,6 +61,7 @@ dns-joker dns-linode dns-loopia dns-luadns +dns-mijn-host dns-njalla dns-noris dns-simply @@ -123,6 +124,7 @@ loopia_user: '' loopia_password: '' luadns_email: '' luadns_token: '' +mijn_host_api_key: '' njalla_token: '' noris_token: '' nsone_api_key: '' @@ -1078,6 +1080,28 @@ The API key assigned to your Simply.com account can be found in your Simply.com
+
+ mijn.host DNS challenge + + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-mijn-host + mijn_host_api_key: XXXXXX + propagation_seconds: 60 + ``` + +The `mijn_host_api_key` is the account's API key. +The API key assigned to your mijn.host account can be found in your mijn.host Control panel. + +
+ + ## Certificate files The certificate files will be available within the "ssl" share after successful request of the certificates. @@ -1107,6 +1131,7 @@ dns-ionos dns-linode dns-loopia dns-luadns +dns-mijn-host dns-njalla dns-noris dns-plesk diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index a9f15441c5a..ef4b69a752a 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -22,6 +22,7 @@ ARG \ CERTBOT_DNS_IONOS_VERSION \ CERTBOT_DNS_JOKER_VERSION \ CERTBOT_DNS_LOOPIA_VERSION \ + CERTBOT_DNS_MIJN_HOST_VERSION \ CERTBOT_DNS_NAMECHEAP_VERSION \ CERTBOT_DNS_NORISNETWORK_VERSION \ CERTBOT_DNS_SIMPLY_VERSION \ @@ -73,6 +74,7 @@ RUN \ certbot-dns-linode==${CERTBOT_VERSION} \ certbot-dns-loopia==${CERTBOT_DNS_LOOPIA_VERSION} \ certbot-dns-luadns==${CERTBOT_VERSION} \ + certbot-dns-mijn-host==${CERTBOT_DNS_MIJN_HOST_VERSION} \ certbot-dns-njalla==${CERTBOT_NJALLA_VERSION} \ certbot-dns-norisnetwork==${CERTBOT_DNS_NORISNETWORK_VERSION} \ certbot-dns-nsone==${CERTBOT_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index d75aeb159ef..b19965e081a 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -26,6 +26,7 @@ args: CERTBOT_DNS_IONOS_VERSION: 2024.1.8 CERTBOT_DNS_JOKER_VERSION: 1.1.0 CERTBOT_DNS_LOOPIA_VERSION: 1.0.1 + CERTBOT_DNS_MIJN_HOST_VERSION: 0.0.5 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 CERTBOT_DNS_NORISNETWORK_VERSION: 0.2.1 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index e9bad1f942c..7ca738a1074 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.5 +version: 5.2.7 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -79,6 +79,7 @@ schema: loopia_password: str? luadns_email: email? luadns_token: str? + mijn_host_api_key: str? joker_username: str? joker_password: str? joker_domain: str? @@ -105,10 +106,11 @@ schema: provider: "list(dns-azure|dns-cloudflare|dns-cloudns|dns-desec|\ dns-digitalocean|dns-directadmin|dns-dnsimple|dns-dnsmadeeasy|\ dns-duckdns|dns-dynu|dns-gehirn|dns-godaddy|dns-google|\ - dns-hetzner|dns-infomaniak|dns-ionos|dns-joker|dns-linode|dns-loopia|dns-luadns|dns-njalla|dns-nsone|\ - dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ - dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ - dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris|dns-plesk)?" + dns-hetzner|dns-infomaniak|dns-ionos|dns-joker|dns-linode|dns-loopia|dns-luadns|\ + dns-mijn-host|dns-njalla|dns-nsone|dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|\ + dns-sakuracloud|dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|\ + dns-dreamhost|dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris|\ + dns-plesk)?" rfc2136_algorithm: str? rfc2136_name: str? rfc2136_port: str? diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index fd15b32734f..6382d6cc8ff 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -37,6 +37,7 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_loopia_password = $(bashio::config 'dns.loopia_password')\n" \ "dns_luadns_email = $(bashio::config 'dns.luadns_email')\n" \ "dns_luadns_token = $(bashio::config 'dns.luadns_token')\n" \ + "dns_mijn_host_api_key = $(bashio::config 'dns.mijn_host_api_key')\n" \ "dns_namecheap_username = $(bashio::config 'dns.namecheap_username')\n" \ "dns_namecheap_api_key = $(bashio::config 'dns.namecheap_api_key')\n" \ "dns_netcup_customer_id = $(bashio::config 'dns.netcup_customer_id')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 35c64aa76b1..041f6db4b0a 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -61,6 +61,12 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-namecheap" ]; th bashio::config.require 'dns.namecheap_username' bashio::config.require 'dns.namecheap_api_key' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + +#mijn.host +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-mijn-host" ]; then + bashio::config.require 'dns.mijn_host_api_key' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + #Netcup elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-netcup" ]; then bashio::config.require 'dns.netcup_customer_id' From dedf6cd97b606f91c90cb944b68285578e1d8c4b Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 3 Dec 2024 18:43:34 +0100 Subject: [PATCH 123/346] silabs-flasher: Support Yellow with CM5 (#3851) Support flashing the internal radio on Home Assistant Yellow with CM5. --- silabs_flasher/CHANGELOG.md | 4 ++++ silabs_flasher/config.yaml | 2 +- .../scripts/universal-silabs-flasher-up | 24 +++++++++++++++++-- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/silabs_flasher/CHANGELOG.md b/silabs_flasher/CHANGELOG.md index 48fed29abaa..22b7b305c04 100644 --- a/silabs_flasher/CHANGELOG.md +++ b/silabs_flasher/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.3.2 + +- Update flasher script to work with Home Assistant Yellow with CM5 + ## 0.3.1 - Update firmwares to EmberZNet 7.4.4 - Update universal-silabs-flasher to v0.0.25 diff --git a/silabs_flasher/config.yaml b/silabs_flasher/config.yaml index e1a1b405734..a9f33694b5d 100644 --- a/silabs_flasher/config.yaml +++ b/silabs_flasher/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.3.1 +version: 0.3.2 slug: silabs_flasher name: Silicon Labs Flasher description: Silicon Labs firmware flasher add-on diff --git a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index c97b0a5ee8c..e394924d001 100755 --- a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -30,10 +30,30 @@ function exit_no_firmware { exit 0 } +# Function to check if the device is Home Assistant Yellow +function is_home_assistant_yellow { + # First, ensure the device is /dev/ttyAMA1 + if [ "${device}" != "/dev/ttyAMA1" ]; then + return 1 + fi + + # Check the known paths for Home Assistant Yellow + local paths=( + "/sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1" + "/sys/devices/platform/axi/1000120000.pcie/1f0003c000.serial/tty/ttyAMA1" + ) + for path in "${paths[@]}"; do + if [ -d "${path}" ]; then + return 0 + fi + done + return 1 +} + device=$(bashio::config 'device') bootloader_baudrate=$(bashio::config 'bootloader_baudrate') -if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then +if is_home_assistant_yellow; then bashio::log.info "Detected Home Assistant Yellow" gpio_reset_flag="--bootloader-reset yellow" else @@ -50,7 +70,7 @@ if bashio::config.has_value 'firmware_url'; then firmware="firmware.gbl" else # Assume to run on Yellow if UART4 is mapped to ttyAMA1 - if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then + if is_home_assistant_yellow; then firmware="yellow_zigbee_ncp_7.4.4.0.gbl" else # Check device manufacturer/product information From 81a32267778f7f0c8345f22c557a9412fabd12b4 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 3 Dec 2024 18:47:22 +0100 Subject: [PATCH 124/346] openthread_border_router: Support Yellow with CM5 (#3852) Support flashing the internal radio on Home Assistant Yellow with CM5. --- openthread_border_router/CHANGELOG.md | 4 ++++ openthread_border_router/config.yaml | 2 +- .../scripts/universal-silabs-flasher-up | 23 +++++++++++++++++-- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index c5a19e1b3eb..91c94c694be 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.12.2 + +- Update flasher script to work with Home Assistant Yellow with CM5 + ## 2.12.1 - Fix possible race condition between otbr-agent-configure and otbr-agent-rest-discovery services causing failed startup ([#3826](https://github.com/home-assistant/addons/issues/3826)) diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 62d16bdb5e4..51f8cde3eb5 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.12.1 +version: 2.12.2 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 476c844fe9f..31cbee77d13 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -16,6 +16,26 @@ function exit_no_firmware { exit 0 } +# Function to check if the device is Home Assistant Yellow +function is_home_assistant_yellow { + # First, ensure the device is /dev/ttyAMA1 + if [ "${device}" != "/dev/ttyAMA1" ]; then + return 1 + fi + + # Check the known paths for Home Assistant Yellow + local paths=( + "/sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1" + "/sys/devices/platform/axi/1000120000.pcie/1f0003c000.serial/tty/ttyAMA1" + ) + for path in "${paths[@]}"; do + if [ -d "${path}" ]; then + return 0 + fi + done + return 1 +} + device=$(bashio::config 'device') gpio_reset_flag="" @@ -29,8 +49,7 @@ if bashio::config.has_value 'network_device'; then exit 0 fi -# Assume to run on Yellow if UART4 is mapped to ttyAMA1 -if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" == "/dev/ttyAMA1" ]; then +if is_home_assistant_yellow; then bashio::log.info "Detected Home Assistant Yellow" firmware="yellow_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl" gpio_reset_flag="--bootloader-reset yellow" From 5dd4f1854f8bba4d724a8439e7c9dba955f335da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gir=C3=B3n?= Date: Tue, 3 Dec 2024 19:28:39 +0100 Subject: [PATCH 125/346] Update wyoming-whisper to 2.3.0 (#3848) * Update wyoming-whisper to 2.3.0 * update docs --- whisper/CHANGELOG.md | 5 +++++ whisper/DOCS.md | 1 + whisper/build.yaml | 2 +- whisper/config.yaml | 4 ++-- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index dff47ae3e8c..08f24546fcd 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 2.3.0 + +- Bump `wyoming-whisper` to 2.3.0 (`faster-whisper` to 1.1.0) +- Supports model `turbo` for faster processing + ## 2.2.0 - Bump `wyoming-whisper` to 2.2.0 (`faster-whisper` to 1.0.3) diff --git a/whisper/DOCS.md b/whisper/DOCS.md index 4eea1799d6a..df962a8f624 100644 --- a/whisper/DOCS.md +++ b/whisper/DOCS.md @@ -41,6 +41,7 @@ Compressed models (`int8`) are slightly less accurate than their counterparts, b Available models: +- `turbo` (faster than `large-v3`) - `tiny-int8` (compressed) - `tiny` - `tiny.en` (English only) diff --git a/whisper/build.yaml b/whisper/build.yaml index 40d12db550e..b472ba83878 100644 --- a/whisper/build.yaml +++ b/whisper/build.yaml @@ -6,4 +6,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - WYOMING_WHISPER_VERSION: 2.2.0 + WYOMING_WHISPER_VERSION: 2.3.0 diff --git a/whisper/config.yaml b/whisper/config.yaml index aad413b9aba..6a607a55d08 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.2.0 +version: 2.3.0 slug: whisper name: Whisper description: Speech-to-text with Whisper @@ -19,7 +19,7 @@ options: debug_logging: false schema: model: | - list(tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|distil-large-v3|large-v3|custom) + list(turbo|tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|distil-large-v3|large-v3|custom) custom_model: str? language: | list(auto|af|am|ar|as|az|ba|be|bg|bn|bo|br|bs|ca|cs|cy|da|de|el|en|es|et|eu|fa|fi|fo|fr|gl|gu|ha|haw|he|hi|hr|ht|hu|hy|id|is|it|ja|jw|ka|kk|km|kn|ko|la|lb|ln|lo|lt|lv|mg|mi|mk|ml|mn|mr|ms|mt|my|ne|nl|nn|no|oc|pa|pl|ps|pt|ro|ru|sa|sd|si|sk|sl|sn|so|sq|sr|su|sv|sw|ta|te|tg|th|tk|tl|tr|tt|uk|ur|uz|vi|yi|yo|zh|yue) From 422dbf620507f4e279eeb3d30db64ebb2b40bd3d Mon Sep 17 00:00:00 2001 From: Nathan Samson Date: Mon, 9 Dec 2024 11:18:39 +0100 Subject: [PATCH 126/346] letsencrypt: Add transip global_key parameter (#3835) * letsencrypt Addon: Fix issue 3606. Add transip global_key parameter * Add documentation * Code review comments * Update CHANGELOG.md --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 3 +++ letsencrypt/config.yaml | 2 +- letsencrypt/rootfs/etc/cont-init.d/file-structure.sh | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 5a1be9d1dbe..ea494c5fd4f 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.8 + +- Add transip global_key parameter to support authentication without IP whitelist requirements + ## 5.2.7 - Add mijn.host DNS support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index d10344e3c58..2d914b83588 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -151,6 +151,7 @@ gandi_token: '' gandi_sharing_id: '' transip_username: '' transip_api_key: '' +transip_global_key: '' inwx_username: '' inwx_password: '' inwx_shared_secret: '' @@ -678,6 +679,8 @@ Example configuration: You will need to generate an API key from the TransIP Control Panel at https://www.transip.nl/cp/account/api/. +If you can't use IP whitelisting, set the `transip_global_key` parameter to `'yes'`. See [Certbot TransIP DNS plugin documentation](https://github.com/hsmade/certbot-dns-transip/blob/master/USAGE.rst#ip-whitelistsing) for more details. + The propagation limit will be automatically raised to 240 seconds. Example configuration: diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 7ca738a1074..c65f30cd26b 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.7 +version: 5.2.8 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 6382d6cc8ff..3fc49c04427 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -64,6 +64,7 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_sakuracloud_api_token = $(bashio::config 'dns.sakuracloud_api_token')\n" \ "dns_sakuracloud_api_secret = $(bashio::config 'dns.sakuracloud_api_secret')\n" \ "dns_transip_username = $(bashio::config 'dns.transip_username')\n" \ + "dns_transip_global_key = $(bashio::config 'dns.transip_global_key')\n" \ "dns_transip_key_file = /data/transip-rsa.key\n" \ "dns_inwx_url = https://api.domrobot.com/xmlrpc/\n" \ "dns_inwx_username = $(bashio::config 'dns.inwx_username')\n" \ From 324751d1196764c80f3869dd787c517e697963be Mon Sep 17 00:00:00 2001 From: Gord <31004434+googanhiem@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:53:37 +0000 Subject: [PATCH 127/346] Move Turbo closer to Large to avoid confusing it with Tiny (#3857) --- whisper/CHANGELOG.md | 4 ++++ whisper/DOCS.md | 2 +- whisper/config.yaml | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index 08f24546fcd..9c08f592f99 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.3.1 + +- Move `turbo` down the list closer to `large` to avoid confusion + ## 2.3.0 - Bump `wyoming-whisper` to 2.3.0 (`faster-whisper` to 1.1.0) diff --git a/whisper/DOCS.md b/whisper/DOCS.md index df962a8f624..d5c35c213a4 100644 --- a/whisper/DOCS.md +++ b/whisper/DOCS.md @@ -41,7 +41,6 @@ Compressed models (`int8`) are slightly less accurate than their counterparts, b Available models: -- `turbo` (faster than `large-v3`) - `tiny-int8` (compressed) - `tiny` - `tiny.en` (English only) @@ -62,6 +61,7 @@ Available models: - `large-v2` - `distil-large-v3` (distilled, English only) - `large-v3` +- `turbo` (faster than `large-v3`) ### Option: `custom_model` diff --git a/whisper/config.yaml b/whisper/config.yaml index 6a607a55d08..b333bad195e 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.3.0 +version: 2.3.1 slug: whisper name: Whisper description: Speech-to-text with Whisper @@ -19,7 +19,7 @@ options: debug_logging: false schema: model: | - list(turbo|tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|distil-large-v3|large-v3|custom) + list(tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|distil-large-v3|large-v3|turbo|custom) custom_model: str? language: | list(auto|af|am|ar|as|az|ba|be|bg|bn|bo|br|bs|ca|cs|cy|da|de|el|en|es|et|eu|fa|fi|fo|fr|gl|gu|ha|haw|he|hi|hr|ht|hu|hy|id|is|it|ja|jw|ka|kk|km|kn|ko|la|lb|ln|lo|lt|lv|mg|mi|mk|ml|mn|mr|ms|mt|my|ne|nl|nn|no|oc|pa|pl|ps|pt|ro|ru|sa|sd|si|sk|sl|sn|so|sq|sr|su|sv|sw|ta|te|tg|th|tk|tl|tr|tt|uk|ur|uz|vi|yi|yo|zh|yue) From cb3540ebd84ee2511f4313050e97a63ee3281172 Mon Sep 17 00:00:00 2001 From: Floran Brutel Date: Wed, 11 Dec 2024 09:56:19 +0100 Subject: [PATCH 128/346] letsencrypt: Bump certbot-dns-infomaniak to 0.2.3 (#3860) --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/build.yaml | 2 +- letsencrypt/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index ea494c5fd4f..cbfa9caefed 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.9 + +- Update certbot-dns-infomaniak to 0.2.3 + ## 5.2.8 - Add transip global_key parameter to support authentication without IP whitelist requirements diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index b19965e081a..fae77fc118f 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -21,7 +21,7 @@ args: CERTBOT_DNS_EASYDNS_VERSION: 0.1.4 CERTBOT_DNS_HE_VERSION: 1.0.0 CERTBOT_DNS_HETZNER_VERSION: 2.0.1 - CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.2 + CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.3 CERTBOT_DNS_INWX_VERSION: 2.2.0 CERTBOT_DNS_IONOS_VERSION: 2024.1.8 CERTBOT_DNS_JOKER_VERSION: 1.1.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index c65f30cd26b..055338ca70f 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.8 +version: 5.2.9 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt From 7901ba483ed074d613d926b79a1b868400df753d Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Wed, 11 Dec 2024 10:58:42 -0600 Subject: [PATCH 129/346] Add auto to model/beam size to whisper (#3859) --- whisper/CHANGELOG.md | 4 ++++ whisper/DOCS.md | 4 +++- whisper/build.yaml | 2 +- whisper/config.yaml | 8 ++++---- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index 9c08f592f99..46636f52029 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.4.0 + +- Add "auto" for model and beam size (0) to select values based on CPU + ## 2.3.1 - Move `turbo` down the list closer to `large` to avoid confusion diff --git a/whisper/DOCS.md b/whisper/DOCS.md index d5c35c213a4..6079448f363 100644 --- a/whisper/DOCS.md +++ b/whisper/DOCS.md @@ -36,11 +36,12 @@ If you select "auto", the model will run **much** slower but will auto-detect th Whisper model that will be used for transcription. Choose `custom` to use the model name in `custom_model`, which may be a HuggingFace model ID like "Systran/faster-distil-whisper-small.en". -The default model is `tiny-int8`, a compressed version of the smallest Whisper model which is able to run on a Raspberry Pi 4. +The default model is `auto`, which selects `tiny-int8` for ARM devices like the Raspberry Pi 4 and `base-int8` otherwise. Compressed models (`int8`) are slightly less accurate than their counterparts, but smaller and faster. [Distilled](https://github.com/huggingface/distil-whisper) models are not compressed, but are faster and smaller than their non-distilled counterparts. Available models: +- `auto` (select based on CPU) - `tiny-int8` (compressed) - `tiny` - `tiny.en` (English only) @@ -70,6 +71,7 @@ Path to a converted model directory, or a CTranslate2-converted Whisper model ID ### Option: `beam_size` Number of candidates to consider simultaneously during transcription (see [beam search](https://en.wikipedia.org/wiki/Beam_search)). +The default value of `0` will automatically select `1` of ARM devices like the Raspberry Pi 4 and `5` otherwise. Increasing the beam size will increase accuracy at the cost of performance. diff --git a/whisper/build.yaml b/whisper/build.yaml index b472ba83878..c9e004246ab 100644 --- a/whisper/build.yaml +++ b/whisper/build.yaml @@ -6,4 +6,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - WYOMING_WHISPER_VERSION: 2.3.0 + WYOMING_WHISPER_VERSION: 2.4.0 diff --git a/whisper/config.yaml b/whisper/config.yaml index b333bad195e..788b0e03d45 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.3.1 +version: 2.4.0 slug: whisper name: Whisper description: Speech-to-text with Whisper @@ -13,13 +13,13 @@ discovery: backup_exclude: - "models*" options: - model: tiny-int8 + model: auto language: en - beam_size: 1 + beam_size: 0 debug_logging: false schema: model: | - list(tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|distil-large-v3|large-v3|turbo|custom) + list(auto|tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|distil-large-v3|large-v3|turbo|custom) custom_model: str? language: | list(auto|af|am|ar|as|az|ba|be|bg|bn|bo|br|bs|ca|cs|cy|da|de|el|en|es|et|eu|fa|fi|fo|fr|gl|gu|ha|haw|he|hi|hr|ht|hu|hy|id|is|it|ja|jw|ka|kk|km|kn|ko|la|lb|ln|lo|lt|lv|mg|mi|mk|ml|mn|mr|ms|mt|my|ne|nl|nn|no|oc|pa|pl|ps|pt|ro|ru|sa|sd|si|sk|sl|sn|so|sq|sr|su|sv|sw|ta|te|tg|th|tk|tl|tr|tt|uk|ur|uz|vi|yi|yo|zh|yue) From 21ac292fb0d36e9978f339593500c86b7edf7280 Mon Sep 17 00:00:00 2001 From: Goopher Date: Thu, 12 Dec 2024 11:41:20 +0100 Subject: [PATCH 130/346] Added transip_global_key to config.yaml (#3855) * Added transip_global_key to config.yaml * Change str? to list(yes|no)?, update version, update changelog --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 1 + letsencrypt/config.yaml | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index cbfa9caefed..2bbc04ef5bd 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.10 + +- Add transip global_key parameter to config.yaml + ## 5.2.9 - Update certbot-dns-infomaniak to 0.2.3 diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 2d914b83588..6bfec051489 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -694,6 +694,7 @@ Example configuration: dns: provider: dns-transip transip_username: transip-user + transip_global_key: 'no' transip_api_key: | -----BEGIN PRIVATE KEY----- MII..ABCDEFGHIJKLMNOPQRSTUVWXYZ diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 055338ca70f..30248cc5fea 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.9 +version: 5.2.10 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -120,6 +120,7 @@ schema: sakuracloud_api_token: str? transip_api_key: str? transip_username: str? + transip_global_key: list(yes|no)? inwx_username: str? inwx_password: str? inwx_shared_secret: str? From c9a0c15959530b360446f1e01260c31e8a2cb36b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Thu, 12 Dec 2024 18:39:49 +0100 Subject: [PATCH 131/346] Lint bash scripts with custom shebangs (#3824) * Lint bash scripts with custom shebangs Many scripts in this repository have this shebang: #!/usr/bin/with-contenv bashio However, this doesn't match the shebang regex in action-shellcheck and therefore those files wouldn't get included in the linting check. * Fix or ignore current shellcheck violations * shellcheck: specify bash shell type for scripts with unrecognized shebangs * Convert shutdown script from CRLF line endings to LF * shellcheck: silence remaining violations for now * Apply suggestions from code review * mariadb: avoid adding extra newlines Co-authored-by: Stefan Agner * Fix GitHub syntax highlighting for bash scripts --------- Co-authored-by: Stefan Agner --- .github/workflows/lint.yml | 18 ++++++++++++++++++ .../s6-rc.d/assist_microphone/finish | 4 +++- .../s6-overlay/s6-rc.d/assist_microphone/run | 1 + .../etc/s6-overlay/s6-rc.d/discovery/run | 1 + .../rootfs/etc/services.d/cec-scan/finish | 1 + cec_scan/rootfs/etc/services.d/cec-scan/run | 2 ++ .../s6-overlay/s6-rc.d/configurator/finish | 4 +++- .../etc/s6-overlay/s6-rc.d/configurator/run | 2 ++ deconz/rootfs/etc/cont-init.d/firmware.sh | 1 + deconz/rootfs/etc/cont-init.d/nginx.sh | 1 + deconz/rootfs/etc/cont-init.d/novnc.sh | 1 + deconz/rootfs/etc/services.d/deconz/discovery | 2 ++ deconz/rootfs/etc/services.d/deconz/finish | 1 + deconz/rootfs/etc/services.d/deconz/run | 2 ++ deconz/rootfs/etc/services.d/nginx/finish | 1 + deconz/rootfs/etc/services.d/nginx/run | 2 ++ deconz/rootfs/etc/services.d/otau-ikea/run | 2 ++ .../rootfs/etc/services.d/otau-ledvance/run | 2 ++ deconz/rootfs/etc/services.d/websockify/run | 2 ++ dhcp_server/data/run.sh | 1 + dnsmasq/rootfs/etc/cont-init.d/config.sh | 1 + dnsmasq/rootfs/etc/services.d/dnsmasq/finish | 1 + dnsmasq/rootfs/etc/services.d/dnsmasq/run | 2 ++ .../etc/s6-overlay/s6-rc.d/duckdns/finish | 4 +++- .../rootfs/etc/s6-overlay/s6-rc.d/duckdns/run | 2 ++ .../rootfs/etc/cont-init.d/file-structure.sh | 1 + .../rootfs/etc/services.d/lets-encrypt/finish | 1 + .../rootfs/etc/services.d/lets-encrypt/run | 3 +++ .../s6-overlay/s6-rc.d/mariadb-core/finish | 4 +++- .../etc/s6-overlay/s6-rc.d/mariadb-core/run | 1 + .../s6-rc.d/mariadb-lock-core/finish | 1 + .../s6-overlay/s6-rc.d/mariadb-lock-core/run | 1 + .../s6-rc.d/mariadb-lock-post/finish | 3 +++ .../s6-overlay/s6-rc.d/mariadb-lock-post/run | 3 +++ .../s6-overlay/s6-rc.d/mariadb-post/finish | 1 + .../etc/s6-overlay/s6-rc.d/mariadb-post/run | 3 +++ .../etc/s6-overlay/s6-rc.d/mariadb-pre/run | 5 +++-- mariadb/rootfs/usr/bin/lock-tables-for-backup | 1 + .../rootfs/usr/bin/unlock-tables-for-backup | 1 + .../s6-overlay/s6-rc.d/matter-server/finish | 1 + .../etc/s6-overlay/s6-rc.d/matter-server/run | 10 ++++++++++ .../rootfs/etc/s6-overlay/scripts/banner.sh | 1 + .../scripts/matter-server-discovery | 2 ++ mosquitto/rootfs/etc/cont-init.d/mosquitto.sh | 1 + mosquitto/rootfs/etc/cont-init.d/nginx.sh | 1 + .../rootfs/etc/services.d/mosquitto/discovery | 2 ++ .../rootfs/etc/services.d/mosquitto/finish | 1 + mosquitto/rootfs/etc/services.d/mosquitto/run | 2 ++ mosquitto/rootfs/etc/services.d/nginx/finish | 1 + mosquitto/rootfs/etc/services.d/nginx/run | 2 ++ .../periodic/daily/check_certificate_renewal | 2 ++ .../etc/s6-overlay/s6-rc.d/crond/finish | 4 +++- .../rootfs/etc/s6-overlay/s6-rc.d/crond/run | 1 + .../etc/s6-overlay/s6-rc.d/nginx/finish | 4 +++- .../rootfs/etc/s6-overlay/s6-rc.d/nginx/run | 3 +++ .../rootfs/etc/s6-overlay/s6-rc.d/mdns/finish | 2 ++ .../rootfs/etc/s6-overlay/s6-rc.d/mdns/run | 2 ++ .../etc/s6-overlay/s6-rc.d/otbr-agent/finish | 8 ++++++++ .../etc/s6-overlay/s6-rc.d/otbr-agent/run | 19 +++++++++++++++++++ .../etc/s6-overlay/s6-rc.d/otbr-web/finish | 2 ++ .../etc/s6-overlay/s6-rc.d/otbr-web/run | 2 ++ .../etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run | 2 ++ .../rootfs/etc/s6-overlay/scripts/banner.sh | 1 + .../etc/s6-overlay/scripts/enable-check.sh | 1 + .../scripts/otbr-agent-configure.sh | 1 + .../scripts/otbr-agent-rest-discovery.sh | 1 + .../scripts/universal-silabs-flasher-up | 5 +++++ .../etc/s6-overlay/s6-rc.d/discovery/run | 1 + .../s6-overlay/s6-rc.d/openwakeword/finish | 4 +++- .../etc/s6-overlay/s6-rc.d/openwakeword/run | 2 ++ .../etc/s6-overlay/s6-rc.d/discovery/run | 1 + .../etc/s6-overlay/s6-rc.d/piper/finish | 4 +++- piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run | 2 ++ rpc_shutdown/data/run.sh | 1 + .../etc/s6-overlay/s6-rc.d/init-smbd/run | 2 ++ .../rootfs/etc/s6-overlay/s6-rc.d/nmbd/finish | 4 +++- samba/rootfs/etc/s6-overlay/s6-rc.d/nmbd/run | 2 ++ .../rootfs/etc/s6-overlay/s6-rc.d/smbd/finish | 4 +++- samba/rootfs/etc/s6-overlay/s6-rc.d/smbd/run | 2 ++ .../rootfs/etc/cont-init.d/check-cpcd-shm.sh | 1 + .../rootfs/etc/s6-overlay/s6-rc.d/cpcd/finish | 3 +++ .../rootfs/etc/s6-overlay/s6-rc.d/cpcd/run | 2 ++ .../rootfs/etc/s6-overlay/s6-rc.d/mdns/finish | 2 ++ .../rootfs/etc/s6-overlay/s6-rc.d/mdns/run | 2 ++ .../etc/s6-overlay/s6-rc.d/otbr-agent/finish | 13 +++++++++++++ .../etc/s6-overlay/s6-rc.d/otbr-agent/run | 19 +++++++++++++++++++ .../etc/s6-overlay/s6-rc.d/otbr-web/finish | 2 ++ .../etc/s6-overlay/s6-rc.d/otbr-web/run | 2 ++ .../etc/s6-overlay/s6-rc.d/socat-cpcd-tcp/run | 2 ++ .../etc/s6-overlay/s6-rc.d/zigbeed/finish | 2 ++ .../rootfs/etc/s6-overlay/s6-rc.d/zigbeed/run | 4 ++++ .../rootfs/etc/s6-overlay/scripts/banner.sh | 1 + .../etc/s6-overlay/scripts/cpcd-config-up | 2 ++ .../scripts/otbr-agent-rest-discovery.sh | 1 + .../s6-overlay/scripts/otbr-enable-check.sh | 1 + .../scripts/socat-cpcd-tcp-enable-check.sh | 1 + .../scripts/universal-silabs-flasher-up | 5 +++++ .../rootfs/etc/s6-overlay/scripts/banner.sh | 1 + .../scripts/universal-silabs-flasher-up | 5 +++++ ssh/rootfs/etc/cont-init.d/apks.sh | 1 + ssh/rootfs/etc/cont-init.d/keygen.sh | 1 + ssh/rootfs/etc/cont-init.d/profile.sh | 1 + ssh/rootfs/etc/cont-init.d/ssh.sh | 1 + ssh/rootfs/etc/services.d/sshd/finish | 1 + ssh/rootfs/etc/services.d/sshd/run | 2 ++ ssh/rootfs/etc/services.d/ttyd/finish | 1 + ssh/rootfs/etc/services.d/ttyd/run | 2 ++ ssh/rootfs/usr/bin/hassio | 1 + ssh/rootfs/usr/local/bin/reboot | 2 ++ ssh/rootfs/usr/local/bin/shutdown | 12 +++++++----- tellstick/data/run.sh | 1 + vlc/rootfs/etc/cont-init.d/ingress.sh | 1 + vlc/rootfs/etc/cont-init.d/secret.sh | 1 + .../etc/s6-overlay/s6-rc.d/nginx/finish | 1 + vlc/rootfs/etc/s6-overlay/s6-rc.d/nginx/run | 1 + vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/finish | 1 + vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run | 2 ++ .../etc/s6-overlay/scripts/vlc-discovery | 2 ++ .../etc/s6-overlay/s6-rc.d/discovery/run | 1 + .../etc/s6-overlay/s6-rc.d/whisper/finish | 4 +++- .../rootfs/etc/s6-overlay/s6-rc.d/whisper/run | 2 ++ zwave_js/rootfs/etc/cont-init.d/config.sh | 1 + zwave_js/rootfs/etc/cont-init.d/structure.sh | 1 + .../rootfs/etc/services.d/zwave_js/discovery | 2 ++ .../rootfs/etc/services.d/zwave_js/finish | 1 + zwave_js/rootfs/etc/services.d/zwave_js/run | 3 +++ 126 files changed, 306 insertions(+), 18 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1cb0228bdd4..9c758d0f580 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -50,3 +50,21 @@ jobs: - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 + with: + # Names of scripts with custom shebangs that the action would not + # discover on its own: + additional_files: >- + check_certificate_renewal + cpcd-config-up + discovery + finish + lock-tables-for-backup + matter-server-discovery + reboot + run + shutdown + universal-silabs-flasher-up + unlock-tables-for-backup + vlc-discovery + ignore_paths: >- + google_assistant diff --git a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/finish b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/finish index 438a276064a..8558b9a95ea 100755 --- a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/finish +++ b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/finish @@ -1,9 +1,11 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run index 937e5f4c8d1..6bcb82b49c7 100755 --- a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run +++ b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start service diff --git a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/discovery/run b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/discovery/run index 2f9de3a6daf..fa40eecd987 100755 --- a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/discovery/run +++ b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/discovery/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Sends discovery information to Home Assistant. diff --git a/cec_scan/rootfs/etc/services.d/cec-scan/finish b/cec_scan/rootfs/etc/services.d/cec-scan/finish index 7459a7608d2..2e68f50bc41 100755 --- a/cec_scan/rootfs/etc/services.d/cec-scan/finish +++ b/cec_scan/rootfs/etc/services.d/cec-scan/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service is done # ============================================================================== diff --git a/cec_scan/rootfs/etc/services.d/cec-scan/run b/cec_scan/rootfs/etc/services.d/cec-scan/run index 953fa237213..4d27f510d9b 100755 --- a/cec_scan/rootfs/etc/services.d/cec-scan/run +++ b/cec_scan/rootfs/etc/services.d/cec-scan/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start CEC scan service # ============================================================================== diff --git a/configurator/rootfs/etc/s6-overlay/s6-rc.d/configurator/finish b/configurator/rootfs/etc/s6-overlay/s6-rc.d/configurator/finish index 438a276064a..8558b9a95ea 100755 --- a/configurator/rootfs/etc/s6-overlay/s6-rc.d/configurator/finish +++ b/configurator/rootfs/etc/s6-overlay/s6-rc.d/configurator/finish @@ -1,9 +1,11 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/configurator/rootfs/etc/s6-overlay/s6-rc.d/configurator/run b/configurator/rootfs/etc/s6-overlay/s6-rc.d/configurator/run index e2ed3d64d10..37ab1afa586 100755 --- a/configurator/rootfs/etc/s6-overlay/s6-rc.d/configurator/run +++ b/configurator/rootfs/etc/s6-overlay/s6-rc.d/configurator/run @@ -1,4 +1,6 @@ #!/command/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start Configurator service # ============================================================================== diff --git a/deconz/rootfs/etc/cont-init.d/firmware.sh b/deconz/rootfs/etc/cont-init.d/firmware.sh index 8e0c23d524a..1254c356aa0 100755 --- a/deconz/rootfs/etc/cont-init.d/firmware.sh +++ b/deconz/rootfs/etc/cont-init.d/firmware.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Manage deCONZ firmware # ============================================================================== diff --git a/deconz/rootfs/etc/cont-init.d/nginx.sh b/deconz/rootfs/etc/cont-init.d/nginx.sh index 2f70a4c5011..66d8ca0b2e9 100755 --- a/deconz/rootfs/etc/cont-init.d/nginx.sh +++ b/deconz/rootfs/etc/cont-init.d/nginx.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Configure NGINX for use with deCONZ # ============================================================================== diff --git a/deconz/rootfs/etc/cont-init.d/novnc.sh b/deconz/rootfs/etc/cont-init.d/novnc.sh index c133526527a..6be4bc781f5 100755 --- a/deconz/rootfs/etc/cont-init.d/novnc.sh +++ b/deconz/rootfs/etc/cont-init.d/novnc.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Setup noVNC # ============================================================================== diff --git a/deconz/rootfs/etc/services.d/deconz/discovery b/deconz/rootfs/etc/services.d/deconz/discovery index 96cd7690a92..7d3355412cd 100755 --- a/deconz/rootfs/etc/services.d/deconz/discovery +++ b/deconz/rootfs/etc/services.d/deconz/discovery @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Send deCONZ discovery information to Home Assistant # ============================================================================== diff --git a/deconz/rootfs/etc/services.d/deconz/finish b/deconz/rootfs/etc/services.d/deconz/finish index 5a23d05348c..f4c53b282d0 100755 --- a/deconz/rootfs/etc/services.d/deconz/finish +++ b/deconz/rootfs/etc/services.d/deconz/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay diff --git a/deconz/rootfs/etc/services.d/deconz/run b/deconz/rootfs/etc/services.d/deconz/run index 1e8685e11e4..010299d028b 100755 --- a/deconz/rootfs/etc/services.d/deconz/run +++ b/deconz/rootfs/etc/services.d/deconz/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start deCONZ service # ============================================================================== diff --git a/deconz/rootfs/etc/services.d/nginx/finish b/deconz/rootfs/etc/services.d/nginx/finish index 5a23d05348c..f4c53b282d0 100755 --- a/deconz/rootfs/etc/services.d/nginx/finish +++ b/deconz/rootfs/etc/services.d/nginx/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay diff --git a/deconz/rootfs/etc/services.d/nginx/run b/deconz/rootfs/etc/services.d/nginx/run index 38ef478552e..e98c4571ac5 100755 --- a/deconz/rootfs/etc/services.d/nginx/run +++ b/deconz/rootfs/etc/services.d/nginx/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start NGINX service # ============================================================================== diff --git a/deconz/rootfs/etc/services.d/otau-ikea/run b/deconz/rootfs/etc/services.d/otau-ikea/run index 922a063440e..1f7053d54a0 100755 --- a/deconz/rootfs/etc/services.d/otau-ikea/run +++ b/deconz/rootfs/etc/services.d/otau-ikea/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Download available firmware update for IKEA # ============================================================================== diff --git a/deconz/rootfs/etc/services.d/otau-ledvance/run b/deconz/rootfs/etc/services.d/otau-ledvance/run index 1697f39aa48..7a69b94c045 100755 --- a/deconz/rootfs/etc/services.d/otau-ledvance/run +++ b/deconz/rootfs/etc/services.d/otau-ledvance/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Download available firmware update for OSRAM Ledvance # ============================================================================== diff --git a/deconz/rootfs/etc/services.d/websockify/run b/deconz/rootfs/etc/services.d/websockify/run index d75921d60b9..db2eb43503b 100755 --- a/deconz/rootfs/etc/services.d/websockify/run +++ b/deconz/rootfs/etc/services.d/websockify/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start ozw-admin # ============================================================================== diff --git a/dhcp_server/data/run.sh b/dhcp_server/data/run.sh index ff0b89871dc..11b673abc7a 100755 --- a/dhcp_server/data/run.sh +++ b/dhcp_server/data/run.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash set -e CONFIG="/etc/dhcpd.conf" diff --git a/dnsmasq/rootfs/etc/cont-init.d/config.sh b/dnsmasq/rootfs/etc/cont-init.d/config.sh index 24d3e00d2d6..e1b35e15b5a 100755 --- a/dnsmasq/rootfs/etc/cont-init.d/config.sh +++ b/dnsmasq/rootfs/etc/cont-init.d/config.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # DNSMASQ config # ============================================================================== diff --git a/dnsmasq/rootfs/etc/services.d/dnsmasq/finish b/dnsmasq/rootfs/etc/services.d/dnsmasq/finish index 5a23d05348c..f4c53b282d0 100755 --- a/dnsmasq/rootfs/etc/services.d/dnsmasq/finish +++ b/dnsmasq/rootfs/etc/services.d/dnsmasq/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay diff --git a/dnsmasq/rootfs/etc/services.d/dnsmasq/run b/dnsmasq/rootfs/etc/services.d/dnsmasq/run index 06224ffcc6a..62771823a80 100755 --- a/dnsmasq/rootfs/etc/services.d/dnsmasq/run +++ b/dnsmasq/rootfs/etc/services.d/dnsmasq/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash CONFIG="/etc/dnsmasq.conf" # Run dnsmasq diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/finish b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/finish index b65123fd243..57efe3f4f85 100755 --- a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/finish +++ b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/finish @@ -1,9 +1,11 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: chrony # Take down the S6 supervision tree when chrony fails # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run index 0c606d99467..78e01737e02 100755 --- a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run +++ b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash CERT_DIR=/data/letsencrypt WORK_DIR=/data/workdir diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 3fc49c04427..9cbdd7734f1 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Init folder & structures # ============================================================================== diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/finish b/letsencrypt/rootfs/etc/services.d/lets-encrypt/finish index ee6e08eee22..a5edea72dfa 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/finish +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service is done # ============================================================================== diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 041f6db4b0a..2be4e0bac7b 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start sshd service if enabled # ============================================================================== @@ -310,6 +312,7 @@ else bashio::log.info "Detecting existing certificate type for ${DOMAIN_ARR[1]}" readarray -t CBCERTS < <(certbot certificates --non-interactive --cert-name "${DOMAIN_ARR[1]}" --config-dir "$CERT_DIR" --work-dir "$WORK_DIR") for output in "${CBCERTS[@]}"; do + # shellcheck disable=SC2076 if [[ $output =~ "No certificates found." ]]; then bashio::log.info "No certificate found - using 'ecdsa' key type." KEY_ARGUMENTS+=("--key-type" "ecdsa") diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/finish b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/finish index 6be8aae00d7..5b47ebd627e 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/finish +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/finish @@ -1,8 +1,10 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when daemon fails # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/run b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/run index e486c2bf296..b2c6c5ec149 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/run +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start MariaDB service diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-core/finish b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-core/finish index 0362b4f8ff9..1bd7048c0a8 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-core/finish +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-core/finish @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # MariaDB client (to lock tables for backups) stopped diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-core/run b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-core/run index 64c61092756..29e8cc3ff62 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-core/run +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-core/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start MariaDB client (to lock tables for backups) diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-post/finish b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-post/finish index 10ed2404217..5761b87dbec 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-post/finish +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-post/finish @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Unlock tables locked for backups @@ -6,12 +7,14 @@ declare MARIADB_LOCK_CORE_PID MARIADB_LOCK_CORE_PID=$(s6-svstat -o pid "/run/service/mariadb-lock-core") +# shellcheck disable=SC2086 if bashio::var.equals ${MARIADB_LOCK_CORE_PID} -1; then bashio::log.error "Invalid mariadb-lock-core process id ${MARIADB_LOCK_CORE_PID}" bashio::exit.nok fi # File descriptor &4 is used as stdin for mysql, because &0 is closed after the mariadb-lock-core service is started +# shellcheck disable=SC2086 echo "UNLOCK TABLES;" > /proc/${MARIADB_LOCK_CORE_PID}/fd/4 bashio::log.info "MariaDB tables unlocked" diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-post/run b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-post/run index 38ba3a6485c..44ecf545321 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-post/run +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-lock-post/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Lock tables for backups @@ -6,12 +7,14 @@ declare MARIADB_LOCK_CORE_PID MARIADB_LOCK_CORE_PID=$(s6-svstat -o pid "/run/service/mariadb-lock-core") +# shellcheck disable=SC2086 if bashio::var.equals ${MARIADB_LOCK_CORE_PID} -1; then bashio::log.error "Invalid mariadb-lock-core process id ${MARIADB_LOCK_CORE_PID}" bashio::exit.nok fi # File descriptor &4 is used as stdin for mysql, because &0 is closed after the mariadb-lock-core service is started +# shellcheck disable=SC2086 echo "FLUSH TABLES WITH READ LOCK;" > /proc/${MARIADB_LOCK_CORE_PID}/fd/4 bashio::log.info "MariaDB tables locked" diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-post/finish b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-post/finish index a0719a3b1c3..59c6b743f57 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-post/finish +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-post/finish @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Post-start finalization of MariaDB service diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-post/run b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-post/run index fe7d792eb87..231072576f4 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-post/run +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-post/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Post-start initialization of MariaDB service @@ -8,7 +9,9 @@ function execute_without_error_messages() { local current_log_level="${__BASHIO_LOG_LEVELS[${__BASHIO_LOG_LEVEL}]}" bashio::log.level fatal local exit_code=0 + # shellcheck disable=SC2068 $@ || exit_code=$? + # shellcheck disable=SC2086 bashio::log.level ${current_log_level} return ${exit_code} } diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-pre/run b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-pre/run index 25ac5927d9e..5024041a543 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-pre/run +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-pre/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Pre-start initialization of MariaDB service @@ -11,8 +12,8 @@ if ! bashio::fs.directory_exists "${MARIADB_DATA}"; then fi # Save variables -printf "${MARIADB_DATA}" > /var/run/s6/container_environment/MARIADB_DATA -printf "${NEW_INSTALL}" > /var/run/s6/container_environment/NEW_INSTALL +echo -n "${MARIADB_DATA}" > /var/run/s6/container_environment/MARIADB_DATA +echo -n "${NEW_INSTALL}" > /var/run/s6/container_environment/NEW_INSTALL # Redirect log output mkdir -p "${MARIADB_DATA}" diff --git a/mariadb/rootfs/usr/bin/lock-tables-for-backup b/mariadb/rootfs/usr/bin/lock-tables-for-backup index b2ade4adf86..b63418732fc 100755 --- a/mariadb/rootfs/usr/bin/lock-tables-for-backup +++ b/mariadb/rootfs/usr/bin/lock-tables-for-backup @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Lock tables for backup diff --git a/mariadb/rootfs/usr/bin/unlock-tables-for-backup b/mariadb/rootfs/usr/bin/unlock-tables-for-backup index 650b1f083c3..2d09c79ce17 100755 --- a/mariadb/rootfs/usr/bin/unlock-tables-for-backup +++ b/mariadb/rootfs/usr/bin/unlock-tables-for-backup @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Unlock tables for backup diff --git a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/finish b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/finish index 51f54f4173e..40aba91d0b4 100755 --- a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/finish +++ b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # s6-overlay docs: https://github.com/just-containers/s6-overlay # ============================================================================== diff --git a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run index e51690c9d52..4b74c1065da 100755 --- a/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run +++ b/matter_server/rootfs/etc/s6-overlay/s6-rc.d/matter-server/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start matter-server service # ============================================================================== @@ -24,9 +26,11 @@ log_level_sdk=$(bashio::string.lower "$(bashio::config log_level_sdk error)") if bashio::config.has_value "matter_server_version"; then matter_server_version=$(bashio::config 'matter_server_version') bashio::log.info "Installing Python Matter Server ${matter_server_version}" + # shellcheck disable=SC2102 pip3 install --pre python-matter-server[server]=="${matter_server_version}" elif bashio::config.true "beta"; then bashio::log.info 'Upgrading Python Matter Server to latest pre-release' + # shellcheck disable=SC2102 pip3 install --upgrade --pre python-matter-server[server] fi @@ -52,20 +56,24 @@ fi primary_interface="$(bashio::api.supervisor 'GET' '/network/info' '' 'first(.interfaces[] | select (.primary == true)) .interface')" # Try fallback method (e.g. in case NetworkManager is not available) +# shellcheck disable=SC2086 if [ -z ${primary_interface} ]; then bashio::log.warning 'Trying fallback method to determine primary interface' primary_interface="$(ip --json route show default | jq --raw-output '.[0].dev')" fi +# shellcheck disable=SC2086 if [ -z ${primary_interface} ] || [ ${primary_interface} == "null" ]; then bashio::exit.nok "No primary network interface found!" fi if bashio::config.has_value "bluetooth_adapter_id"; then + # shellcheck disable=SC2207 extra_args+=('--bluetooth-adapter' $(bashio::config 'bluetooth_adapter_id')) fi if bashio::config.has_value "matter_server_args"; then + # shellcheck disable=SC2207 extra_args+=($(bashio::config 'matter_server_args')) fi @@ -74,8 +82,10 @@ bashio::log.info "Using '${primary_interface}' as primary network interface." # Send out discovery information to Home Assistant /etc/s6-overlay/scripts/matter-server-discovery & +# shellcheck disable=SC2164 cd /root +# shellcheck disable=SC2206 matter_server_args+=( '--storage-path' "/data" '--port' "${server_port}" diff --git a/matter_server/rootfs/etc/s6-overlay/scripts/banner.sh b/matter_server/rootfs/etc/s6-overlay/scripts/banner.sh index 37a8218fdf5..074dc4179e5 100755 --- a/matter_server/rootfs/etc/s6-overlay/scripts/banner.sh +++ b/matter_server/rootfs/etc/s6-overlay/scripts/banner.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Base Images # Displays a simple add-on banner on startup diff --git a/matter_server/rootfs/etc/s6-overlay/scripts/matter-server-discovery b/matter_server/rootfs/etc/s6-overlay/scripts/matter-server-discovery index f37ea192617..d36992d8b2f 100755 --- a/matter_server/rootfs/etc/s6-overlay/scripts/matter-server-discovery +++ b/matter_server/rootfs/etc/s6-overlay/scripts/matter-server-discovery @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Send matter discovery information to Home Assistant # ============================================================================== diff --git a/mosquitto/rootfs/etc/cont-init.d/mosquitto.sh b/mosquitto/rootfs/etc/cont-init.d/mosquitto.sh index 3882775b2ce..3a0600d8634 100755 --- a/mosquitto/rootfs/etc/cont-init.d/mosquitto.sh +++ b/mosquitto/rootfs/etc/cont-init.d/mosquitto.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Configures mosquitto # ============================================================================== diff --git a/mosquitto/rootfs/etc/cont-init.d/nginx.sh b/mosquitto/rootfs/etc/cont-init.d/nginx.sh index e4a4a5126f6..25dcfa5d6b8 100755 --- a/mosquitto/rootfs/etc/cont-init.d/nginx.sh +++ b/mosquitto/rootfs/etc/cont-init.d/nginx.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Configures NGINX # ============================================================================== diff --git a/mosquitto/rootfs/etc/services.d/mosquitto/discovery b/mosquitto/rootfs/etc/services.d/mosquitto/discovery index 0f45fda3c89..6f330537dbf 100755 --- a/mosquitto/rootfs/etc/services.d/mosquitto/discovery +++ b/mosquitto/rootfs/etc/services.d/mosquitto/discovery @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Send MQTT discovery information to Home Assistant and service information # to the Supervisor (for other add-ons). diff --git a/mosquitto/rootfs/etc/services.d/mosquitto/finish b/mosquitto/rootfs/etc/services.d/mosquitto/finish index 5a23d05348c..f4c53b282d0 100755 --- a/mosquitto/rootfs/etc/services.d/mosquitto/finish +++ b/mosquitto/rootfs/etc/services.d/mosquitto/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay diff --git a/mosquitto/rootfs/etc/services.d/mosquitto/run b/mosquitto/rootfs/etc/services.d/mosquitto/run index f25b2bc495b..79e114469ef 100755 --- a/mosquitto/rootfs/etc/services.d/mosquitto/run +++ b/mosquitto/rootfs/etc/services.d/mosquitto/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Runs mosquitto # ============================================================================== diff --git a/mosquitto/rootfs/etc/services.d/nginx/finish b/mosquitto/rootfs/etc/services.d/nginx/finish index 5a23d05348c..f4c53b282d0 100755 --- a/mosquitto/rootfs/etc/services.d/nginx/finish +++ b/mosquitto/rootfs/etc/services.d/nginx/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay diff --git a/mosquitto/rootfs/etc/services.d/nginx/run b/mosquitto/rootfs/etc/services.d/nginx/run index a585b2ba91c..b433b18d5bd 100755 --- a/mosquitto/rootfs/etc/services.d/nginx/run +++ b/mosquitto/rootfs/etc/services.d/nginx/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Runs the NGINX daemon # ============================================================================== diff --git a/nginx_proxy/rootfs/etc/periodic/daily/check_certificate_renewal b/nginx_proxy/rootfs/etc/periodic/daily/check_certificate_renewal index 120fbfca60d..95da6ff7044 100755 --- a/nginx_proxy/rootfs/etc/periodic/daily/check_certificate_renewal +++ b/nginx_proxy/rootfs/etc/periodic/daily/check_certificate_renewal @@ -1,4 +1,6 @@ #!/command/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Check certificate renewal # ============================================================================== diff --git a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/crond/finish b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/crond/finish index 62103a2ecdb..c24c56f2dfd 100644 --- a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/crond/finish +++ b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/crond/finish @@ -1,8 +1,10 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when daemon fails # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/crond/run b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/crond/run index 5e683ce3aea..a97b8f4bf73 100644 --- a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/crond/run +++ b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/crond/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start crond service diff --git a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish index 383d608a8fc..4a4c070f1bb 100644 --- a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish +++ b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish @@ -1,8 +1,10 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when daemon fails # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run index a68fcc0b78f..b04196a3e56 100644 --- a/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run +++ b/nginx_proxy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start nginx service @@ -7,10 +8,12 @@ set -e bashio::log.info "Merging options & variables for template" +# shellcheck disable=SC2046 JSON_CONF=$(jq --arg port $(bashio::core.port) \ '({options: .}) + ({variables: {port: $port}})' \ /data/options.json) bashio::log.info "Generating nginx.conf from template in /etc/nginx/nginx.conf.gtpl" +# shellcheck disable=SC2086 echo $JSON_CONF | tempio \ -template /etc/nginx/nginx.conf.gtpl \ -out /etc/nginx.conf diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/mdns/finish b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/mdns/finish index 208999d7977..92b89c6b491 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/mdns/finish +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/mdns/finish @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash #============================================================================== # mDNSResponder finish script #============================================================================== diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/mdns/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/mdns/run index 4d80c10f1da..6affe2c5577 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/mdns/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/mdns/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start mDNSResponder daemon # ============================================================================== diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish index dede3e34b9c..7ece6a29d75 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash #============================================================================== # OpenThread BorderRouter Daemon finish script #============================================================================== @@ -14,6 +16,7 @@ else bashio::log.info "otbr-agent exited with code $e (by signal $2)." fi +# shellcheck disable=SC1091 . /etc/s6-overlay/scripts/otbr-agent-common ipset_destroy_if_exist() @@ -25,10 +28,13 @@ ipset_destroy_if_exist() done } +# shellcheck disable=SC2154,SC2086 while ip6tables -C FORWARD -o $thread_if -j $otbr_forward_ingress_chain 2> /dev/null; do + # shellcheck disable=SC2086 ip6tables -D FORWARD -o $thread_if -j $otbr_forward_ingress_chain done +# shellcheck disable=SC2086 if ip6tables -L $otbr_forward_ingress_chain 2> /dev/null; then ip6tables -w -F $otbr_forward_ingress_chain ip6tables -w -X $otbr_forward_ingress_chain @@ -39,10 +45,12 @@ ipset_destroy_if_exist otbr-ingress-deny-src-swap ipset_destroy_if_exist otbr-ingress-allow-dst ipset_destroy_if_exist otbr-ingress-allow-dst-swap +# shellcheck disable=SC2154,SC2086 while ip6tables -C FORWARD -i $thread_if -j $otbr_forward_egress_chain 2> /dev/null; do ip6tables -D FORWARD -i $thread_if -j $otbr_forward_egress_chain done +# shellcheck disable=SC2086 if ip6tables -L $otbr_forward_egress_chain 2> /dev/null; then ip6tables -w -F $otbr_forward_egress_chain ip6tables -w -X $otbr_forward_egress_chain diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run index 62cee950756..af84f245307 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run @@ -1,8 +1,11 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # OpenThread BorderRouter start script # ============================================================================== +# shellcheck disable=SC1091 . /etc/s6-overlay/scripts/otbr-agent-common declare backbone_if @@ -61,11 +64,13 @@ case "${otbr_log_level}" in ;; esac +# shellcheck disable=SC2086 if [ -z ${backbone_if} ]; then bashio::log.warning "No primary network interface found! Using static eth0." backbone_if="eth0" fi +# shellcheck disable=SC2015 mkdir -p /data/thread && ln -sft /var/lib /data/thread || bashio::exit.nok "Could not create directory /var/lib/thread to store Thread data." # We compile the OTBR with firewall support, so otbr-agent tries to update the @@ -78,17 +83,27 @@ ipset create -exist otbr-ingress-allow-dst-swap hash:net family inet6 if bashio::config.true 'firewall'; then bashio::log.info "Setup OTBR firewall..." +# shellcheck disable=SC2086,SC2154 ip6tables -N $otbr_forward_ingress_chain +# shellcheck disable=SC2086,SC2154 ip6tables -I FORWARD 1 -o $thread_if -j $otbr_forward_ingress_chain + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -m pkttype --pkt-type unicast -i ${thread_if} -j DROP + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -m set --match-set otbr-ingress-deny-src src -j DROP + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -m set --match-set otbr-ingress-allow-dst dst -j ACCEPT + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -m pkttype --pkt-type unicast -j DROP + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -j ACCEPT + # shellcheck disable=SC2086,SC2154 ip6tables -N $otbr_forward_egress_chain + # shellcheck disable=SC2086 ip6tables -I FORWARD 2 -i $thread_if -j $otbr_forward_egress_chain + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_egress_chain -j ACCEPT else # Make sure ip6tables (as used by Docker) allow IP forwarding @@ -98,9 +113,12 @@ else fi if bashio::config.true 'nat64'; then + # shellcheck disable=SC2086 iptables -t mangle -A PREROUTING -i ${thread_if} -j MARK --set-mark 0x1001 iptables -t nat -A POSTROUTING -m mark --mark 0x1001 -j MASQUERADE + # shellcheck disable=SC2086 iptables -t filter -A FORWARD -o ${backbone_if} -j ACCEPT + # shellcheck disable=SC2086 iptables -t filter -A FORWARD -i ${backbone_if} -j ACCEPT fi @@ -121,6 +139,7 @@ echo "${otbr_rest_listen}" > /tmp/otbr-agent-rest-api echo "${otbr_rest_listen_port}" >> /tmp/otbr-agent-rest-api bashio::log.info "Starting otbr-agent..." +# shellcheck disable=SC2086 exec s6-notifyoncheck -d -s 300 -w 300 -n 0 stdbuf -oL \ "/usr/sbin/otbr-agent" -I ${thread_if} -B "${backbone_if}" \ --rest-listen-address "${otbr_rest_listen}" \ diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/finish b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/finish index 2c9cd489043..2035d588936 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/finish +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/finish @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash #============================================================================== # OpenThread BorderRouter web interface finish script #============================================================================== diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run index 76c619348c4..ac681f1838c 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start OpenThread BorderRouter web interface # ============================================================================== diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run index 9ae7451c100..c81a9ef86f2 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/socat-otbr-tcp/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start socat TCP client for OTBR agent daemon # ============================================================================== diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/banner.sh b/openthread_border_router/rootfs/etc/s6-overlay/scripts/banner.sh index 37a8218fdf5..074dc4179e5 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/banner.sh +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/banner.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Base Images # Displays a simple add-on banner on startup diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/enable-check.sh b/openthread_border_router/rootfs/etc/s6-overlay/scripts/enable-check.sh index 072b3ff21f2..1b38bffe06a 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/enable-check.sh +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/enable-check.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Disable OTBR Web if necessary ports are not exposed # ============================================================================== diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-configure.sh b/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-configure.sh index 348c835e940..d8f96785e92 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-configure.sh +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-configure.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Configure OTBR depending on add-on settings # ============================================================================== diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh b/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh index e503e187000..190bfd7dd45 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Send OTBR discovery information to Home Assistant # ============================================================================== diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 31cbee77d13..fc632d8139f 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -1,8 +1,11 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start universal-silabs-flasher if requested # ============================================================================== +# shellcheck disable=SC2034 declare autoflash_firmware declare device declare firmware @@ -55,6 +58,7 @@ if is_home_assistant_yellow; then gpio_reset_flag="--bootloader-reset yellow" else # Check device manufacturer/product information + # shellcheck disable=SC2046,SC2086 usb_device_path=$(realpath /sys/class/tty/$(readlink /sys/class/tty/$(basename ${device}) | sed 's:/[^/]*tty[^/]*::g' )/../) if [ ! -f "${usb_device_path}/idProduct" ]; then bashio::log.info "The selected serial port is not a USB device." @@ -86,5 +90,6 @@ else fi bashio::log.info "Starting universal-silabs-flasher with ${device}" +# shellcheck disable=SC2086 exec universal-silabs-flasher --device ${device} ${gpio_reset_flag} \ flash --ensure-exact-version --allow-cross-flashing --firmware "/root/${firmware}" diff --git a/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/discovery/run b/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/discovery/run index e217ccda1be..b584069e104 100755 --- a/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/discovery/run +++ b/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/discovery/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Sends discovery information to Home Assistant. diff --git a/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/finish b/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/finish index 438a276064a..8558b9a95ea 100755 --- a/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/finish +++ b/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/finish @@ -1,9 +1,11 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run b/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run index 6e77aa8fcef..17431b97304 100755 --- a/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run +++ b/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start openWakeWord service @@ -9,6 +10,7 @@ if bashio::config.true 'debug_logging'; then flags+=('--debug') fi +# shellcheck disable=SC2068 exec python3 -m wyoming_openwakeword \ --uri 'tcp://0.0.0.0:10400' \ --preload-model 'ok_nabu' \ diff --git a/piper/rootfs/etc/s6-overlay/s6-rc.d/discovery/run b/piper/rootfs/etc/s6-overlay/s6-rc.d/discovery/run index 5d7c4fdac78..17bf8e4c181 100755 --- a/piper/rootfs/etc/s6-overlay/s6-rc.d/discovery/run +++ b/piper/rootfs/etc/s6-overlay/s6-rc.d/discovery/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Sends discovery information to Home Assistant. diff --git a/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/finish b/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/finish index 438a276064a..8558b9a95ea 100755 --- a/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/finish +++ b/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/finish @@ -1,9 +1,11 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run b/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run index e638c7d1ddb..3b807607c44 100755 --- a/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run +++ b/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start Piper service @@ -12,6 +13,7 @@ if bashio::config.true 'debug_logging'; then flags+=('--debug') fi +# shellcheck disable=SC2068 exec python3 -m wyoming_piper \ --piper '/usr/share/piper/piper' \ --uri 'tcp://0.0.0.0:10200' \ diff --git a/rpc_shutdown/data/run.sh b/rpc_shutdown/data/run.sh index 6dd8139e4da..f3d5e2cec61 100755 --- a/rpc_shutdown/data/run.sh +++ b/rpc_shutdown/data/run.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash set -e # Read from STDIN aliases to send shutdown diff --git a/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run b/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run index 3fc7a2ae763..c6df56ac0f7 100755 --- a/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run +++ b/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run @@ -1,4 +1,6 @@ #!/command/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Prepare the Samba service for running # ============================================================================== diff --git a/samba/rootfs/etc/s6-overlay/s6-rc.d/nmbd/finish b/samba/rootfs/etc/s6-overlay/s6-rc.d/nmbd/finish index caf12de9d62..25b9f61011c 100755 --- a/samba/rootfs/etc/s6-overlay/s6-rc.d/nmbd/finish +++ b/samba/rootfs/etc/s6-overlay/s6-rc.d/nmbd/finish @@ -1,8 +1,10 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when nmbd fails # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/samba/rootfs/etc/s6-overlay/s6-rc.d/nmbd/run b/samba/rootfs/etc/s6-overlay/s6-rc.d/nmbd/run index ea8057041b9..74bb858e842 100755 --- a/samba/rootfs/etc/s6-overlay/s6-rc.d/nmbd/run +++ b/samba/rootfs/etc/s6-overlay/s6-rc.d/nmbd/run @@ -1,4 +1,6 @@ #!/command/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start nmbd service # ============================================================================== diff --git a/samba/rootfs/etc/s6-overlay/s6-rc.d/smbd/finish b/samba/rootfs/etc/s6-overlay/s6-rc.d/smbd/finish index 137f1e94061..e60184ba47e 100755 --- a/samba/rootfs/etc/s6-overlay/s6-rc.d/smbd/finish +++ b/samba/rootfs/etc/s6-overlay/s6-rc.d/smbd/finish @@ -1,8 +1,10 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when smbd fails # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/samba/rootfs/etc/s6-overlay/s6-rc.d/smbd/run b/samba/rootfs/etc/s6-overlay/s6-rc.d/smbd/run index 8f3d654782d..219d3d4ebfa 100755 --- a/samba/rootfs/etc/s6-overlay/s6-rc.d/smbd/run +++ b/samba/rootfs/etc/s6-overlay/s6-rc.d/smbd/run @@ -1,4 +1,6 @@ #!/command/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start smbd service # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/cont-init.d/check-cpcd-shm.sh b/silabs-multiprotocol/rootfs/etc/cont-init.d/check-cpcd-shm.sh index 30ae7d753b1..318970c6764 100755 --- a/silabs-multiprotocol/rootfs/etc/cont-init.d/check-cpcd-shm.sh +++ b/silabs-multiprotocol/rootfs/etc/cont-init.d/check-cpcd-shm.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Check that no other CPC instance is running on this system # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/cpcd/finish b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/cpcd/finish index ea4790f9963..89abb4b2c6b 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/cpcd/finish +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/cpcd/finish @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Take down the container if cpcd exits # ============================================================================== @@ -6,6 +8,7 @@ bashio::log.info "CPC ended with exit code ${1} (signal ${2})..." rm -r /dev/shm/cpcd +# shellcheck disable=SC2086 if [ ${1} -ne 0 ] && [ ${1} -ne 256 ]; then /run/s6/basedir/bin/halt fi diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/cpcd/run b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/cpcd/run index b85f3e94670..97f737aee39 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/cpcd/run +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/cpcd/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start Co-Processor Communication Daemon (CPCd) # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/mdns/finish b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/mdns/finish index 208999d7977..92b89c6b491 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/mdns/finish +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/mdns/finish @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash #============================================================================== # mDNSResponder finish script #============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/mdns/run b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/mdns/run index 4d80c10f1da..6affe2c5577 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/mdns/run +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/mdns/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start mDNSResponder daemon # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish index 222ad7dd9cb..78a78bf56f8 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish @@ -1,10 +1,13 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash #============================================================================== # OpenThread BorderRouter Daemon finish script #============================================================================== bashio::log.info "otbr-agent ended with exit code ${1} (signal ${2})..." +# shellcheck disable=SC1091 . /etc/s6-overlay/scripts/otbr-agent-common ipset_destroy_if_exist() @@ -16,12 +19,17 @@ ipset_destroy_if_exist() done } +# shellcheck disable=SC2086,SC2154 while ip6tables -C FORWARD -o $thread_if -j $otbr_forward_ingress_chain 2> /dev/null; do + # shellcheck disable=SC2086 ip6tables -D FORWARD -o $thread_if -j $otbr_forward_ingress_chain done +# shellcheck disable=SC2086 if ip6tables -L $otbr_forward_ingress_chain 2> /dev/null; then + # shellcheck disable=SC2086 ip6tables -w -F $otbr_forward_ingress_chain + # shellcheck disable=SC2086 ip6tables -w -X $otbr_forward_ingress_chain fi @@ -30,12 +38,17 @@ ipset_destroy_if_exist otbr-ingress-deny-src-swap ipset_destroy_if_exist otbr-ingress-allow-dst ipset_destroy_if_exist otbr-ingress-allow-dst-swap +# shellcheck disable=SC2086,SC2154 while ip6tables -C FORWARD -i $thread_if -j $otbr_forward_egress_chain 2> /dev/null; do + # shellcheck disable=SC2086 ip6tables -D FORWARD -i $thread_if -j $otbr_forward_egress_chain done +# shellcheck disable=SC2086 if ip6tables -L $otbr_forward_egress_chain 2> /dev/null; then + # shellcheck disable=SC2086 ip6tables -w -F $otbr_forward_egress_chain + # shellcheck disable=SC2086 ip6tables -w -X $otbr_forward_egress_chain fi bashio::log.info "OTBR firewall teardown completed." diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run index 1fd0b29ee76..b3bb2f7067c 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run @@ -1,13 +1,19 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # OpenThread BorderRouter start script # ============================================================================== +# shellcheck disable=SC1091 . /etc/s6-overlay/scripts/otbr-agent-common declare backbone_if +# shellcheck disable=SC2034 declare device +# shellcheck disable=SC2034 declare baudrate +# shellcheck disable=SC2034 declare flow_control declare otbr_log_level declare otbr_log_level_int @@ -47,11 +53,13 @@ case "${otbr_log_level}" in ;; esac +# shellcheck disable=SC2086 if [ -z ${backbone_if} ]; then bashio::log.warning "No primary network interface found! Using static eth0." backbone_if="eth0" fi +# shellcheck disable=SC2015 mkdir -p /data/thread && ln -sft /var/lib /data/thread || bashio::exit.nok "Could not create directory /var/lib/thread to store Thread data." if bashio::config.true 'otbr_firewall'; then @@ -61,17 +69,27 @@ if bashio::config.true 'otbr_firewall'; then ipset create -exist otbr-ingress-allow-dst hash:net family inet6 ipset create -exist otbr-ingress-allow-dst-swap hash:net family inet6 + # shellcheck disable=SC2086,SC2154 ip6tables -N $otbr_forward_ingress_chain + # shellcheck disable=SC2086,SC2154 ip6tables -I FORWARD 1 -o $thread_if -j $otbr_forward_ingress_chain + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -m pkttype --pkt-type unicast -i ${thread_if} -j DROP + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -m set --match-set otbr-ingress-deny-src src -j DROP + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -m set --match-set otbr-ingress-allow-dst dst -j ACCEPT + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -m pkttype --pkt-type unicast -j DROP + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_ingress_chain -j ACCEPT + # shellcheck disable=SC2086,SC2154 ip6tables -N $otbr_forward_egress_chain + # shellcheck disable=SC2086 ip6tables -I FORWARD 2 -i $thread_if -j $otbr_forward_egress_chain + # shellcheck disable=SC2086 ip6tables -A $otbr_forward_egress_chain -j ACCEPT else # Make sure ip6tables (as used by Docker) allow IP forwarding @@ -97,6 +115,7 @@ echo "${otbr_rest_listen}" > /tmp/otbr-agent-rest-api echo "${otbr_rest_listen_port}" >> /tmp/otbr-agent-rest-api bashio::log.info "Starting otbr-agent..." +# shellcheck disable=SC2086 exec s6-notifyoncheck -d -s 300 -w 300 -n 0 \ "/usr/sbin/otbr-agent" -I ${thread_if} -B "${backbone_if}" \ --rest-listen-address "${otbr_rest_listen}" \ diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/finish b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/finish index 2c9cd489043..2035d588936 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/finish +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/finish @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash #============================================================================== # OpenThread BorderRouter web interface finish script #============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run index 53fc7e616a0..8d82419865d 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start OpenThread BorderRouter web interface # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/socat-cpcd-tcp/run b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/socat-cpcd-tcp/run index ad24d16c4ce..5d3127a066f 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/socat-cpcd-tcp/run +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/socat-cpcd-tcp/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start socat TCP client for CPC daemon # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/zigbeed/finish b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/zigbeed/finish index 3e18c7d6c83..4dbf2fbea29 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/zigbeed/finish +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/zigbeed/finish @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash #============================================================================== # EmberZNet Zigbee Daemon finish script #============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/zigbeed/run b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/zigbeed/run index 3389e4f546f..56683e5f0f8 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/zigbeed/run +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/s6-rc.d/zigbeed/run @@ -1,7 +1,10 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start EmberZNet Zigbee Daemon # ============================================================================== +# shellcheck disable=SC2015 mkdir -p /data/zigbeed && cd /data/zigbeed || bashio::exit.nok "Could not change to zigbeed working directory" ezsp_listen="::" @@ -14,6 +17,7 @@ if ! bashio::var.has_value "${ezsp_listen_port}"; then fi bashio::log.info "Starting zigbeed..." +# shellcheck disable=SC2086 exec /usr/local/bin/zigbeed --radio-url "spinel+cpc://cpcd_0?iid=1&iid-list=0" \ --ezsp-listen ${ezsp_listen} \ --ezsp-listen-port ${ezsp_listen_port} diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/banner.sh b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/banner.sh index 37a8218fdf5..074dc4179e5 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/banner.sh +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/banner.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Base Images # Displays a simple add-on banner on startup diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/cpcd-config-up b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/cpcd-config-up index 9791f90b7a7..48793059b20 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/cpcd-config-up +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/cpcd-config-up @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Generate Silicon Labs Multiprotocol configurations # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh index 7377f674867..bc3ef5d28fa 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/otbr-agent-rest-discovery.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Send OTBR discovery information to Home Assistant # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/otbr-enable-check.sh b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/otbr-enable-check.sh index e6c253c68e2..8cd2c2d30dc 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/otbr-enable-check.sh +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/otbr-enable-check.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Disable OTBR if not enabled # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/socat-cpcd-tcp-enable-check.sh b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/socat-cpcd-tcp-enable-check.sh index 81c685a6255..6166b077da2 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/socat-cpcd-tcp-enable-check.sh +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/socat-cpcd-tcp-enable-check.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Enable socat-cpcd-tcp service if needed # ============================================================================== diff --git a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index eefa788dc88..a8410b36f18 100755 --- a/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/silabs-multiprotocol/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -1,8 +1,11 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start universal-silabs-flasher if requested # ============================================================================== +# shellcheck disable=SC2034 declare autoflash_firmware declare device declare firmware @@ -30,6 +33,7 @@ if [ -d /sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1 ] && [ "${device}" gpio_reset_flag="--yellow-gpio-reset" else # Check device manufacturer/product information + # shellcheck disable=SC2046,SC2086 usb_device_path=$(realpath /sys/class/tty/$(readlink /sys/class/tty/$(basename ${device}))/../../../../) if [ ! -f "${usb_device_path}/idProduct" ]; then bashio::log.info "The selected serial port is not a USB device." @@ -59,5 +63,6 @@ fi echo 460800 > /tmp/known-baudrate bashio::log.info "Starting universal-silabs-flasher with ${device}" +# shellcheck disable=SC2086 exec universal-silabs-flasher --device ${device} \ flash ${gpio_reset_flag} --ensure-exact-version --allow-cross-flashing --firmware "/root/${firmware}" diff --git a/silabs_flasher/rootfs/etc/s6-overlay/scripts/banner.sh b/silabs_flasher/rootfs/etc/s6-overlay/scripts/banner.sh index 37a8218fdf5..074dc4179e5 100755 --- a/silabs_flasher/rootfs/etc/s6-overlay/scripts/banner.sh +++ b/silabs_flasher/rootfs/etc/s6-overlay/scripts/banner.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Base Images # Displays a simple add-on banner on startup diff --git a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index e394924d001..5437841279e 100755 --- a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -1,10 +1,13 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start universal-silabs-flasher # ============================================================================== set -e +# shellcheck disable=SC2034 declare autoflash_firmware declare device declare bootloader_baudrate @@ -74,6 +77,7 @@ else firmware="yellow_zigbee_ncp_7.4.4.0.gbl" else # Check device manufacturer/product information + # shellcheck disable=SC2046,SC2086 usb_device_path=$(realpath /sys/class/tty/$(readlink /sys/class/tty/$(basename ${device}) | sed 's:/[^/]*tty[^/]*::g' )/../) if [ ! -f "${usb_device_path}/idProduct" ]; then bashio::log.info "The selected serial port is not a USB device." @@ -106,6 +110,7 @@ if bashio::config.true 'verbose'; then fi bashio::log.info "Starting universal-silabs-flasher with ${device} (bootloader baudrate ${bootloader_baudrate})" +# shellcheck disable=SC2086 universal-silabs-flasher \ ${verbose} \ --device ${device} \ diff --git a/ssh/rootfs/etc/cont-init.d/apks.sh b/ssh/rootfs/etc/cont-init.d/apks.sh index 35b1d44aa31..f30f784441e 100755 --- a/ssh/rootfs/etc/cont-init.d/apks.sh +++ b/ssh/rootfs/etc/cont-init.d/apks.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # SSH install additional packages on startup # ============================================================================== diff --git a/ssh/rootfs/etc/cont-init.d/keygen.sh b/ssh/rootfs/etc/cont-init.d/keygen.sh index c913a51a8b8..6dd9efdbd57 100755 --- a/ssh/rootfs/etc/cont-init.d/keygen.sh +++ b/ssh/rootfs/etc/cont-init.d/keygen.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # SSH Host keys # ============================================================================== diff --git a/ssh/rootfs/etc/cont-init.d/profile.sh b/ssh/rootfs/etc/cont-init.d/profile.sh index 9818f03e27f..6d4642db4eb 100755 --- a/ssh/rootfs/etc/cont-init.d/profile.sh +++ b/ssh/rootfs/etc/cont-init.d/profile.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Setup persistent user settings # ============================================================================== diff --git a/ssh/rootfs/etc/cont-init.d/ssh.sh b/ssh/rootfs/etc/cont-init.d/ssh.sh index b008be7e8dd..4b6f2b7b29b 100755 --- a/ssh/rootfs/etc/cont-init.d/ssh.sh +++ b/ssh/rootfs/etc/cont-init.d/ssh.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # SSH setup & user # ============================================================================== diff --git a/ssh/rootfs/etc/services.d/sshd/finish b/ssh/rootfs/etc/services.d/sshd/finish index 5a23d05348c..f4c53b282d0 100755 --- a/ssh/rootfs/etc/services.d/sshd/finish +++ b/ssh/rootfs/etc/services.d/sshd/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay diff --git a/ssh/rootfs/etc/services.d/sshd/run b/ssh/rootfs/etc/services.d/sshd/run index 4be0401f395..8c17525a26e 100755 --- a/ssh/rootfs/etc/services.d/sshd/run +++ b/ssh/rootfs/etc/services.d/sshd/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start sshd service if enabled # ============================================================================== diff --git a/ssh/rootfs/etc/services.d/ttyd/finish b/ssh/rootfs/etc/services.d/ttyd/finish index 5a23d05348c..f4c53b282d0 100755 --- a/ssh/rootfs/etc/services.d/ttyd/finish +++ b/ssh/rootfs/etc/services.d/ttyd/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay diff --git a/ssh/rootfs/etc/services.d/ttyd/run b/ssh/rootfs/etc/services.d/ttyd/run index b3a97fe1967..4f5caad76cb 100755 --- a/ssh/rootfs/etc/services.d/ttyd/run +++ b/ssh/rootfs/etc/services.d/ttyd/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start ttyd service for ingress # ============================================================================== diff --git a/ssh/rootfs/usr/bin/hassio b/ssh/rootfs/usr/bin/hassio index e38eb8633a2..d96db19561b 100755 --- a/ssh/rootfs/usr/bin/hassio +++ b/ssh/rootfs/usr/bin/hassio @@ -1,3 +1,4 @@ #!/usr/bin/env bashio +# vim: ft=bash bashio::log.yellow "The 'hassio' command is deprecated, please use 'ha' instead!" ha "$@" diff --git a/ssh/rootfs/usr/local/bin/reboot b/ssh/rootfs/usr/local/bin/reboot index 8ab18283c9d..15a93cd88dd 100755 --- a/ssh/rootfs/usr/local/bin/reboot +++ b/ssh/rootfs/usr/local/bin/reboot @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # This script overrides the reboot command to reboot the host machine. # ============================================================================== diff --git a/ssh/rootfs/usr/local/bin/shutdown b/ssh/rootfs/usr/local/bin/shutdown index 8dc27e3b5d7..3ab4529e2d5 100755 --- a/ssh/rootfs/usr/local/bin/shutdown +++ b/ssh/rootfs/usr/local/bin/shutdown @@ -1,5 +1,7 @@ -#!/usr/bin/with-contenv bashio -# ============================================================================== -# This script overrides the shutdown command to shutdown the host machine. -# ============================================================================== -bashio::host.shutdown +#!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash +# ============================================================================== +# This script overrides the shutdown command to shutdown the host machine. +# ============================================================================== +bashio::host.shutdown diff --git a/tellstick/data/run.sh b/tellstick/data/run.sh index 1b57bf3f96d..f2ca631f59d 100755 --- a/tellstick/data/run.sh +++ b/tellstick/data/run.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash set -e CONFIG="/etc/tellstick.conf" diff --git a/vlc/rootfs/etc/cont-init.d/ingress.sh b/vlc/rootfs/etc/cont-init.d/ingress.sh index e3e17951481..1a40e83ff0d 100755 --- a/vlc/rootfs/etc/cont-init.d/ingress.sh +++ b/vlc/rootfs/etc/cont-init.d/ingress.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Prepare VLC for ingress access # ============================================================================== diff --git a/vlc/rootfs/etc/cont-init.d/secret.sh b/vlc/rootfs/etc/cont-init.d/secret.sh index e44da81a8fb..c690bc8cc9d 100755 --- a/vlc/rootfs/etc/cont-init.d/secret.sh +++ b/vlc/rootfs/etc/cont-init.d/secret.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Create VLC secret # ============================================================================== diff --git a/vlc/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish b/vlc/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish index 68ccc43357e..277f3b37937 100755 --- a/vlc/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish +++ b/vlc/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when service fails diff --git a/vlc/rootfs/etc/s6-overlay/s6-rc.d/nginx/run b/vlc/rootfs/etc/s6-overlay/s6-rc.d/nginx/run index f4fad4cbe88..28b0ae417aa 100755 --- a/vlc/rootfs/etc/s6-overlay/s6-rc.d/nginx/run +++ b/vlc/rootfs/etc/s6-overlay/s6-rc.d/nginx/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start NGINX service diff --git a/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/finish b/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/finish index 68ccc43357e..277f3b37937 100755 --- a/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/finish +++ b/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/finish @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when service fails diff --git a/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run b/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run index 27617f08381..913716ffba8 100755 --- a/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run +++ b/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run @@ -1,8 +1,10 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start VLC service # ============================================================================== +# shellcheck disable=SC2155 readonly PASSWORD="$(cat /data/secret)" # Send out discovery information to Home Assistant diff --git a/vlc/rootfs/etc/s6-overlay/scripts/vlc-discovery b/vlc/rootfs/etc/s6-overlay/scripts/vlc-discovery index f140d8b075c..70910304477 100755 --- a/vlc/rootfs/etc/s6-overlay/scripts/vlc-discovery +++ b/vlc/rootfs/etc/s6-overlay/scripts/vlc-discovery @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Send vlc_telnet discovery information to Home Assistant # ============================================================================== diff --git a/whisper/rootfs/etc/s6-overlay/s6-rc.d/discovery/run b/whisper/rootfs/etc/s6-overlay/s6-rc.d/discovery/run index db71276aee7..979e7a58ab0 100755 --- a/whisper/rootfs/etc/s6-overlay/s6-rc.d/discovery/run +++ b/whisper/rootfs/etc/s6-overlay/s6-rc.d/discovery/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Sends discovery information to Home Assistant. diff --git a/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/finish b/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/finish index 8ffaa24099d..0bc8d2e7ab5 100755 --- a/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/finish +++ b/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/finish @@ -1,9 +1,11 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay # ============================================================================== +# shellcheck disable=SC2155 readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt elif [[ "${exit_code_service}" -ne 0 ]]; then diff --git a/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run b/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run index efe2ca2e1c1..c9584fbaa01 100755 --- a/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run +++ b/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# vim: ft=bash # shellcheck shell=bash # ============================================================================== # Start Whisper service @@ -21,6 +22,7 @@ if bashio::config.true 'debug_logging'; then flags+=('--debug') fi +# shellcheck disable=SC2068 exec python3 -m wyoming_faster_whisper \ --uri 'tcp://0.0.0.0:10300' \ --model "${model}" \ diff --git a/zwave_js/rootfs/etc/cont-init.d/config.sh b/zwave_js/rootfs/etc/cont-init.d/config.sh index bcb554be780..6ac16a22d4b 100755 --- a/zwave_js/rootfs/etc/cont-init.d/config.sh +++ b/zwave_js/rootfs/etc/cont-init.d/config.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Generate Z-Wave JS config file # ============================================================================== diff --git a/zwave_js/rootfs/etc/cont-init.d/structure.sh b/zwave_js/rootfs/etc/cont-init.d/structure.sh index 0e10818768e..2e698f35a5a 100755 --- a/zwave_js/rootfs/etc/cont-init.d/structure.sh +++ b/zwave_js/rootfs/etc/cont-init.d/structure.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Setup folder structure # ============================================================================== diff --git a/zwave_js/rootfs/etc/services.d/zwave_js/discovery b/zwave_js/rootfs/etc/services.d/zwave_js/discovery index a9acd83418f..3303c089dbb 100755 --- a/zwave_js/rootfs/etc/services.d/zwave_js/discovery +++ b/zwave_js/rootfs/etc/services.d/zwave_js/discovery @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Send zwave_js discovery information to Home Assistant # ============================================================================== diff --git a/zwave_js/rootfs/etc/services.d/zwave_js/finish b/zwave_js/rootfs/etc/services.d/zwave_js/finish index 5a23d05348c..f4c53b282d0 100755 --- a/zwave_js/rootfs/etc/services.d/zwave_js/finish +++ b/zwave_js/rootfs/etc/services.d/zwave_js/finish @@ -1,4 +1,5 @@ #!/usr/bin/env bashio +# vim: ft=bash # ============================================================================== # Take down the S6 supervision tree when service fails # s6-overlay docs: https://github.com/just-containers/s6-overlay diff --git a/zwave_js/rootfs/etc/services.d/zwave_js/run b/zwave_js/rootfs/etc/services.d/zwave_js/run index 02a52b5ec41..9d5d150bd22 100755 --- a/zwave_js/rootfs/etc/services.d/zwave_js/run +++ b/zwave_js/rootfs/etc/services.d/zwave_js/run @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash # ============================================================================== # Start Z-Wave JS service for Z-Wave radio # ============================================================================== @@ -16,4 +18,5 @@ fi export ZWAVEJS_EXTERNAL_CONFIG=/data/db # Run daemon, passing external config directory in as environment variable +# shellcheck disable=SC2086 exec zwave-server ${SERIAL_DEVICE} --config /etc/zwave_config.json --disable-dns-sd From f0cbc238b7c7a23a28be99730b83d9aa02a7af4f Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 12 Dec 2024 20:41:49 +0100 Subject: [PATCH 132/346] ssh: Update ttyd to 1.7.7 (#3863) --- ssh/CHANGELOG.md | 4 ++++ ssh/build.yaml | 2 +- ssh/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index 8d6615eea7c..772d834e478 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 9.16.0 + +- Upgrade ttyd to 1.7.7 (fixes copy to clipboard using shift and drag) + ## 9.15.0 - Upgrade Home Assistant CLI to 4.36.0 diff --git a/ssh/build.yaml b/ssh/build.yaml index e0062d60ec1..abdfd2f6900 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -11,4 +11,4 @@ codenotary: args: CLI_VERSION: 4.36.0 LIBWEBSOCKETS_VERSION: 4.3.3 - TTYD_VERSION: 1.7.4 + TTYD_VERSION: 1.7.7 diff --git a/ssh/config.yaml b/ssh/config.yaml index fa01e59cb1b..60379a6f49d 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.15.0 +version: 9.16.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH From ff01adb95075a4c8e972ad10f8b7aa0e4d9b0e27 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 18 Dec 2024 08:35:55 +0100 Subject: [PATCH 133/346] openthread_border_router: Update documentation (#3867) Update documentation to add some more specific reasons why networked Thread radio is not a good idea. For the connectivity issue, technically OTBR could teardown the routes gracefully, but that is not implemented today. A issue in the upstream project can be found here: https://github.com/openthread/openthread/issues/11063 --- openthread_border_router/DOCS.md | 21 ++++++++++++++++--- openthread_border_router/translations/en.yaml | 4 ++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/openthread_border_router/DOCS.md b/openthread_border_router/DOCS.md index d1496f43fcc..7ec95d6ae70 100644 --- a/openthread_border_router/DOCS.md +++ b/openthread_border_router/DOCS.md @@ -65,9 +65,24 @@ Add-on configuration: | otbr_log_level | Set the log level of the OpenThread BorderRouter Agent | | firewall | Enable OpenThread Border Router firewall to block unnecessary traffic | | nat64 | Enable NAT64 to allow Thread devices accessing IPv4 addresses | -| network_device | IP address and port to connect to a network-based RCP (1) | - -(1) Note you still need to set a dummy device, e.g., `/dev/ttyS3`. Also, note that the RCP protocol is not designed to be transferred over an IP network: It is a timing-sensitive protocol. You might experience Thread issues if your network link has excessive latencies. As Thread is networking capable, running a Thread border router on the system the RCP radio is plugged in is recommended. +| network_device | IP address and port to connect to a network-based RCP (see below) | + +> [!WARNING] +> The OTBR expects the RCP connected radio to be on a reliable link such as +> UART or SPI. Using TCP/IP to reach a remote RCP radio breaks this assumption. +> If the TCP/IP connection fails, the OTBR will not shutdown cleanly and leave +> stale routes in your network. This will lead to Thread devices to be +> potentially unreachable for up to 30 minutes (route lifetime) even when other +> routers are available. +> +> The RCP protocol is not designed to be transferred over an IP network: It is +> a timing-sensitive protocol. You might experience Thread issues if your +> network link has excessive latencies. As Thread is networking capable, +> running a Thread border router on the system the RCP radio is plugged in is +> recommended. + +> [!NOTE] +> When using a network device, you still need to set a dummy serial port device, e.g. `/dev/ttyS3`. ## Support diff --git a/openthread_border_router/translations/en.yaml b/openthread_border_router/translations/en.yaml index 46ecb6930d5..8f55f9b9951 100644 --- a/openthread_border_router/translations/en.yaml +++ b/openthread_border_router/translations/en.yaml @@ -14,8 +14,8 @@ configuration: name: Network Device description: >- when connecting to a device via sockets (takes precedence - over above configuration). Not suitable for WiFi or other high latency - connections. + over above configuration). Not recommended! See documentation for more + information. autoflash_firmware: name: Automatically flash firmware description: >- From 4782fcfdb5651d88d9e407396c031c6c81a7c4c4 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 19 Dec 2024 18:24:16 +0100 Subject: [PATCH 134/346] tellstick: Add deprecation notice to README.md (#3869) * tellstick: Add deprecation notice to README.md * Update tellstick/README.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- tellstick/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tellstick/README.md b/tellstick/README.md index 24b498b2bf3..ca8be041709 100644 --- a/tellstick/README.md +++ b/tellstick/README.md @@ -1,5 +1,11 @@ # Home Assistant Add-on: TellStick +> [!CAUTION] +> **Deprecation notice** +> The library this add-on depends on is abandoned. Its last activity was 5 +> years ago and it cannot be built on Alpine versions above 3.15. Users can continue +> using the add-on, but no issues or pull requests will be accepted. + TellStick and TellStick Duo service. ![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield] @@ -21,4 +27,4 @@ For more details, please check the TellStick [protocol list][protocol-list]. [amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg [armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg [armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg \ No newline at end of file +[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg From 91160e1b5d00e13091b0537d85a3b3112e4a3f60 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 23 Dec 2024 00:08:56 +0100 Subject: [PATCH 135/346] google_assistant: Deprecate Google Assistant add-on (#3870) --- google_assistant/README.md | 8 ++++++++ google_assistant/config.yaml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/google_assistant/README.md b/google_assistant/README.md index 3ced66bc896..a4e051c5265 100644 --- a/google_assistant/README.md +++ b/google_assistant/README.md @@ -1,5 +1,12 @@ # Home Assistant Add-on: Google Assistant SDK +> [!CAUTION] +> **Deprecation notice** +> The [Google Assistant SDK for device][google-assistant-sdk] Python library +> this add-on depends on is no longer developed and has been archived. The +> OAuth out-of-band (OOB) flow used by the add-on has been deprecated as well. +> Hence a new setup is currently no longer possible. + A virtual personal assistant developed by Google. ![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield] @@ -21,5 +28,6 @@ If you want to use Google Assistant (for example, from your phone or Google Home [google-actions]: https://actions.google.com/ [google-assistant-integration]: https://www.home-assistant.io/integrations/google_assistant/ [google-assistant]: https://assistant.google.com/ +[google-assistant-sdk]: https://github.com/googlesamples/assistant-sdk-python [i386-shield]: https://img.shields.io/badge/i386-no-red.svg [aarch64-shield]: https://img.shields.io/badge/aarch64-no-red.svg diff --git a/google_assistant/config.yaml b/google_assistant/config.yaml index 5af495a1d4d..37fb29ab41a 100644 --- a/google_assistant/config.yaml +++ b/google_assistant/config.yaml @@ -31,5 +31,5 @@ schema: feedback: enable: bool volume: int(0,100) -stage: experimental +stage: deprecated webui: http://[HOST]:[PORT:9324] From 6828d1e7e95b0a6afa8875e88cb15c23b419e4ab Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 31 Dec 2024 14:28:29 +0100 Subject: [PATCH 136/346] matter_server: Bump Python Matter server to 7.0.1 (#3878) Update to the latest Python Matter server. This release comes with Matter 1.4 support. Furthermore also update s6-overlay, bashio and tempio which other add-ons typically inherit from the Home Assistant specific base containers. --- matter_server/CHANGELOG.md | 10 ++++++++++ matter_server/build.yaml | 10 +++++----- matter_server/config.yaml | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 10ee9b3e727..773e702617f 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 7.0.0 + +- Bump Python Matter Server to [7.0.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/7.0.1) + - This updates Matter to 1.4 +- Update base image components to what is being used in Home Assistant Debian + base images: + - Update tempio to 2024.11.2 + - Update s6-overlay to 3.1.6.2 + - Update bashio to 0.16.2 + ## 6.6.1 - Bump Python Matter Server to [6.6.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/6.6.1) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index f217a1403e9..862f4f603f3 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,8 +1,8 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:6.6.1 - amd64: ghcr.io/home-assistant-libs/python-matter-server:6.6.1 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:7.0.1 + amd64: ghcr.io/home-assistant-libs/python-matter-server:7.0.1 args: - BASHIO_VERSION: 0.14.3 - TEMPIO_VERSION: 2021.09.0 - S6_OVERLAY_VERSION: 3.1.5.0 + BASHIO_VERSION: 0.16.2 + TEMPIO_VERSION: 2024.11.2 + S6_OVERLAY_VERSION: 3.1.6.2 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index adf69e7a2c5..c2cf22096af 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.6.1 +version: 7.0.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From faad3af1e6a48fce739e6e7d72d752671968d024 Mon Sep 17 00:00:00 2001 From: danielszilagyi <76160997+danielszilagyi@users.noreply.github.com> Date: Thu, 9 Jan 2025 18:00:33 +0100 Subject: [PATCH 137/346] Add support for mariadb server config parameter (#3763) * Add support for mariadb server config parameters * debug * fix url, bump version * Mention changes * Fix startup, add another example option * Fix doc * fixes * Doc adjustment * Fix changelog * Empty commit for coderabbit * Use parameters as in matter server addon * Fix startup message * Fix startup logic --- mariadb/CHANGELOG.md | 4 ++++ mariadb/DOCS.md | 8 ++++++++ mariadb/config.yaml | 4 +++- .../etc/s6-overlay/s6-rc.d/mariadb-core/run | 15 +++++++++++++-- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/mariadb/CHANGELOG.md b/mariadb/CHANGELOG.md index 8ab5abb00dc..803fa242323 100644 --- a/mariadb/CHANGELOG.md +++ b/mariadb/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.7.2 + +- Add option to configure MariaDB server parameters (see also [home-assistant/addons#3754](https://github.com/home-assistant/addons/issues/3754)) + ## 2.7.1 **Note:** Restart the add-on before upgrade if the current version is lower diff --git a/mariadb/DOCS.md b/mariadb/DOCS.md index 39c9912700a..f2b49c7176c 100644 --- a/mariadb/DOCS.md +++ b/mariadb/DOCS.md @@ -74,6 +74,13 @@ If omitted, grants `ALL PRIVILEGES` to the user. Restricting privileges of the u that Home Assistant uses is not recommended but if you want to allow other applications to view recorder data should create a user limited to read-only access on the database. +### Option: `mariadb_server_args` (optional) + +Some users have experienced [errors][migration-issues] during Home Assistant schema updates on large databases. +Defining the recommended parameters can help if there is RAM available. + +Example: `--innodb_buffer_pool_size=512M` + ## Home Assistant Configuration MariaDB will be used by the `recorder` and `history` components within Home Assistant. For more information about setting this up, see the [recorder integration][mariadb-ha-recorder] documentation for Home Assistant. @@ -101,6 +108,7 @@ In case you've found a bug, please [open an issue on our GitHub][issue]. [username]: https://mariadb.com/kb/en/create-user/#user-name-component [hostname]: https://mariadb.com/kb/en/create-user/#host-name-component [grant]: https://mariadb.com/kb/en/grant/ +[migration-issues]: https://github.com/home-assistant/core/issues/125339 [mariadb-ha-recorder]: https://www.home-assistant.io/integrations/recorder/ [discord]: https://discord.gg/c5DvZ4e [forum]: https://community.home-assistant.io diff --git a/mariadb/config.yaml b/mariadb/config.yaml index 14688a86655..828018ecd71 100644 --- a/mariadb/config.yaml +++ b/mariadb/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.7.1 +version: 2.7.2 slug: mariadb name: MariaDB description: A SQL database server @@ -38,6 +38,8 @@ schema: CREATE VIEW|DELETE|DELETE HISTORY|DROP|EVENT|GRANT OPTION|INDEX|\ INSERT|LOCK TABLES|SELECT|SHOW VIEW|TRIGGER|UPDATE)?" username: str + mariadb_server_args: + - str? services: - mysql:provide startup: system diff --git a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/run b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/run index b2c6c5ec149..be4a0d6c2ee 100755 --- a/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/run +++ b/mariadb/rootfs/etc/s6-overlay/s6-rc.d/mariadb-core/run @@ -5,7 +5,18 @@ # Start MariaDB service # ============================================================================== +if bashio::config.has_value "mariadb_server_args"; then + readarray -t extra_args <<< "$(bashio::config 'mariadb_server_args')" + bashio::log.info "Starting MariaDB with command line parameters: ${extra_args[*]}" +else + bashio::log.info "Starting MariaDB" +fi + # Start mariadb -bashio::log.info "Starting MariaDB" mkdir -p /run/mysqld -exec mysqld --datadir="${MARIADB_DATA}" --user=root < /dev/null + +if [ -z "${extra_args+x}" ] || [ ${#extra_args[@]} -eq 0 ]; then + exec mysqld --datadir="${MARIADB_DATA}" --user=root < /dev/null +else + exec mysqld --datadir="${MARIADB_DATA}" --user=root "${extra_args[@]}" < /dev/null +fi From df9bfbe2d4f5ee5597a0471e6c872da82ab3996d Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 9 Jan 2025 18:08:00 +0100 Subject: [PATCH 138/346] openthread_border_router: Recover from RCP communication issue (#3887) * openthread_border_router: add project specific OpenThread config Add a project specific OpenThread compile time configuration header file for the OTBR add-on. This allows to configure OpenThread compile time configs which are not exposed through the CMake build system. This allows to drop the default route metric patch file and use the config header file instead. * openthread_border_router: Increase number of frag entries Increase the number of mesh header fragmentation tag entries to potentially lower the amount of "Failed to get forwarded frame priority" notice messages in logs. * openthread_border_router: Try restore the RCP communication on error Try to restore the communication with the RCP in case it stalls out. Some users see "radio tx timeout" errors. It is not quite clear what causes those, it could be firmware crashes or failures in the underlying communication layer. With this option set, the OTBR will automatically restore the communication, and if the fimrware supports it, also request a crash dump (requires debug logging). * openthread_border_router: Bump version and update changelog * Update openthread_border_router/CHANGELOG.md * Update openthread_border_router/CHANGELOG.md --- .../0002-set-netif-route-metric-lower.patch | 27 ---------- openthread_border_router/CHANGELOG.md | 9 ++++ openthread_border_router/Dockerfile | 6 ++- openthread_border_router/config.yaml | 2 +- .../openthread-core-ha-config-posix.h | 52 +++++++++++++++++++ 5 files changed, 66 insertions(+), 30 deletions(-) delete mode 100644 openthread_border_router/0002-set-netif-route-metric-lower.patch create mode 100644 openthread_border_router/openthread-core-ha-config-posix.h diff --git a/openthread_border_router/0002-set-netif-route-metric-lower.patch b/openthread_border_router/0002-set-netif-route-metric-lower.patch deleted file mode 100644 index 9643ab75d58..00000000000 --- a/openthread_border_router/0002-set-netif-route-metric-lower.patch +++ /dev/null @@ -1,27 +0,0 @@ -From afb29a91024247f46e9e75954b930f4518444360 Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Sat, 20 Jan 2024 16:31:28 +0100 -Subject: [PATCH] set netif route metric lower - -It seems that routes learned through IPv6 Neighbor Discovery Protocol -get a metric of 128 when NetworkManager is used. Make sure the -OpenThread network interface's own route is lower than that. ---- - third_party/openthread/CMakeLists.txt | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/third_party/openthread/CMakeLists.txt b/third_party/openthread/CMakeLists.txt -index eab6e7c6007..9e01d66aefd 100644 ---- a/third_party/openthread/CMakeLists.txt -+++ b/third_party/openthread/CMakeLists.txt -@@ -106,6 +106,7 @@ target_compile_definitions(ot-config INTERFACE - "-DOPENTHREAD_CONFIG_LOG_CLI=1" - "-DOPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS=3" - "-DOPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE=1" -+ "-DOPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC=64" - "-DOPENTHREAD_POSIX_CONFIG_FILE=\"${PROJECT_BINARY_DIR}/src/agent/openthread-otbr-posix-config.h\"" - ) - --- -2.46.1 - diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 91c94c694be..97b4c78b143 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 2.12.3 + +- Enable recovery mechanism from "radio tx timeout" errors +- Increase the number of mesh header fragmentation tag entries to address + "Failed to get forwarded frame priority" notice messages in logs. Note that + these types of messages are non-critical (default priority will be applied in + that case). +- Make some compile time configurations via project header file + ## 2.12.2 - Update flasher script to work with Home Assistant Yellow with CM5 diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index 2cc834bfd6c..0f53a6e63bb 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -18,8 +18,8 @@ ENV DHCPV6_PD_REF 0 ENV DOCKER 1 COPY 0001-support-deleting-the-dataset.patch /usr/src -COPY 0002-set-netif-route-metric-lower.patch /usr/src COPY 0001-channel-monitor-disable-by-default.patch /usr/src +COPY openthread-core-ha-config-posix.h /usr/src # Required and installed (script/bootstrap) can be removed after build ENV OTBR_BUILD_DEPS build-essential ninja-build cmake wget ca-certificates \ libreadline-dev libncurses-dev libcpputest-dev libdbus-1-dev libavahi-common-dev \ @@ -55,10 +55,10 @@ RUN \ && git submodule update --init \ && ./script/bootstrap \ && patch -p1 < /usr/src/0001-support-deleting-the-dataset.patch \ - && patch -p1 < /usr/src/0002-set-netif-route-metric-lower.patch \ && ( \ cd third_party/openthread/repo \ && patch -p1 < /usr/src/0001-channel-monitor-disable-by-default.patch \ + && cp /usr/src/openthread-core-ha-config-posix.h . \ ) \ # Mimic rt_tables_install \ && echo "88 openthread" >> /etc/iproute2/rt_tables \ @@ -90,6 +90,8 @@ RUN \ -DOT_COAPS=OFF \ -DOT_DNS_CLIENT_OVER_TCP=OFF \ -DOT_THREAD_VERSION=1.3 \ + -DOT_PROJECT_CONFIG="../openthread-core-ha-config-posix.h" \ + -DOT_RCP_RESTORATION_MAX_COUNT=2 \ && cd build/otbr/ \ && ninja \ && ninja install) \ diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 51f8cde3eb5..915c53f3508 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.12.2 +version: 2.12.3 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/openthread-core-ha-config-posix.h b/openthread_border_router/openthread-core-ha-config-posix.h new file mode 100644 index 00000000000..70431aa0e82 --- /dev/null +++ b/openthread_border_router/openthread-core-ha-config-posix.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2024, The OpenThread Authors. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef OPENTHREAD_CORE_HA_CONFIG_POSIX_H_ +#define OPENTHREAD_CORE_HA_CONFIG_POSIX_H_ + +/** + * This header file defines the OpenThread core configuration options for + * Home Assistant with POSIX platform. + */ + +/** + * It seems that routes learned through IPv6 Neighbor Discovery Protocol + * get a metric of 128 when NetworkManager is used. Make sure the + * OpenThread network interface's own route is lower than that, to ensure + * that the local radio is preferred over learned routes. + */ +#define OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC 64 + +/** + * Increase delay aware queue management entry list size from its default of + * 16 to 64. This is to avoid/decrease the number of "Failed to get forwarded + * frame priority" notice messages. + */ +#define OPENTHREAD_CONFIG_DELAY_AWARE_QUEUE_MANAGEMENT_FRAG_TAG_ENTRY_LIST_SIZE 64 + +#endif /* OPENTHREAD_CORE_HA_CONFIG_POSIX_H_ */ From 8f4acc519e0a49ff20ca656a5535e6b89540f19a Mon Sep 17 00:00:00 2001 From: David Dreschner <34408442+DerDreschner@users.noreply.github.com> Date: Mon, 13 Jan 2025 21:37:32 +0100 Subject: [PATCH 139/346] Update mosquitto image to latest versions (#3850) * Mosquitto: Use Debian Bookworm instead of Bullseye as base images * Mosquitto: Update libwebsocket, mosquitto and mosquitto-go-auth to latest versions * Mosquitto: Add workaround for libwebsockets build error * Mosquitto: Normalize version arguments in build.yaml * Mosquitto: Set version to 6.5.0 and add changelog --- mosquitto/CHANGELOG.md | 7 +++++++ mosquitto/Dockerfile | 9 ++++++--- mosquitto/build.yaml | 16 ++++++++-------- mosquitto/config.yaml | 2 +- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/mosquitto/CHANGELOG.md b/mosquitto/CHANGELOG.md index 3a9e59b9f72..c4c2ddf0a61 100644 --- a/mosquitto/CHANGELOG.md +++ b/mosquitto/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 6.5.0 + +- Update base image to Debian 12 (bookworm) +- Update mosquitto to version 2.0.20 +- Update mosquitto-go-auth to version 2.1.0 +- Update libwebsockets to version 4.3.3 + ## 6.4.1 - Increase default max_queued_messages to 8192 to fix dropped messages during Home Assistant startup diff --git a/mosquitto/Dockerfile b/mosquitto/Dockerfile index d49c0e02782..5de4082485a 100644 --- a/mosquitto/Dockerfile +++ b/mosquitto/Dockerfile @@ -24,18 +24,21 @@ RUN apt-get update \ golang-go \ \ # Compile and install libwebsocket - && git clone --depth 1 -b "${LIBWEBSOCKET_VERSION}" \ + # + # DLWS_WITHOUT_TESTAPPS is just a workaround, see + # https://github.com/warmcat/libwebsockets/issues/2790 for more + && git clone --depth 1 -b "v${LIBWEBSOCKET_VERSION}" \ https://libwebsockets.org/repo/libwebsockets \ \ && cd libwebsockets \ && mkdir build \ && cd build \ - && cmake -DLWS_WITH_EXTERNAL_POLL=ON .. \ + && cmake -DLWS_WITH_EXTERNAL_POLL=ON -DLWS_WITHOUT_TESTAPPS=ON .. \ && make install \ && ldconfig \ && cd ../.. \ # Compile and install mosquitto - && git clone --depth 1 -b "${MOSQUITTO_VERSION}" \ + && git clone --depth 1 -b "v${MOSQUITTO_VERSION}" \ https://github.com/eclipse/mosquitto \ \ && cd mosquitto \ diff --git a/mosquitto/build.yaml b/mosquitto/build.yaml index 8f068d11c38..963c7f2a98f 100644 --- a/mosquitto/build.yaml +++ b/mosquitto/build.yaml @@ -1,14 +1,14 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base-debian:bullseye - amd64: ghcr.io/home-assistant/amd64-base-debian:bullseye - armhf: ghcr.io/home-assistant/armhf-base-debian:bullseye - armv7: ghcr.io/home-assistant/armv7-base-debian:bullseye - i386: ghcr.io/home-assistant/i386-base-debian:bullseye + aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm + amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm + armhf: ghcr.io/home-assistant/armhf-base-debian:bookworm + armv7: ghcr.io/home-assistant/armv7-base-debian:bookworm + i386: ghcr.io/home-assistant/i386-base-debian:bookworm codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - LIBWEBSOCKET_VERSION: v4.3.2 - MOSQUITTO_VERSION: v2.0.18 - MOSQUITTO_AUTH_VERSION: 1.8.2 + LIBWEBSOCKET_VERSION: 4.3.3 + MOSQUITTO_VERSION: 2.0.20 + MOSQUITTO_AUTH_VERSION: 2.1.0 diff --git a/mosquitto/config.yaml b/mosquitto/config.yaml index e096ac0c9b7..2135f6724cb 100644 --- a/mosquitto/config.yaml +++ b/mosquitto/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.4.1 +version: 6.5.0 slug: mosquitto name: Mosquitto broker description: An Open Source MQTT broker From 3c663b7a20e9e454bc5388ad6ee6b717c8f7ffc4 Mon Sep 17 00:00:00 2001 From: nodamnway Date: Mon, 13 Jan 2025 22:12:26 +0100 Subject: [PATCH 140/346] Fix OTBR addon does not start after updating containerd.io to 1.7.24-1 (#3864) Co-authored-by: nodamnway --- openthread_border_router/CHANGELOG.md | 4 ++++ openthread_border_router/config.yaml | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 97b4c78b143..0af51f637fc 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.12.4 + +- Fix OTBR addon does not start after updating containerd.io to 1.7.24-1 + ## 2.12.3 - Enable recovery mechanism from "radio tx timeout" errors diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 915c53f3508..aab7601b8c2 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.12.3 +version: 2.12.4 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on @@ -20,6 +20,8 @@ host_uts: true privileged: - IPC_LOCK - NET_ADMIN +devices: + - /dev/net/tun image: homeassistant/{arch}-addon-otbr init: false options: From 804288d3b45e31b68fbf6bc6009f0387379be101 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Tue, 14 Jan 2025 16:02:28 -0500 Subject: [PATCH 141/346] openthread_border_router: Bump OTBR and and flasher versions (#3890) * Update DELETE patch * Update OTBR commit * Bump universal-silabs-flasher to 0.0.28 * Bump version to 2.13.0 * Drop the dataset deletion patch * Update changelog to mention dropping the patch --- .../0001-support-deleting-the-dataset.patch | 123 ------------------ openthread_border_router/CHANGELOG.md | 5 + openthread_border_router/Dockerfile | 2 - openthread_border_router/build.yaml | 4 +- openthread_border_router/config.yaml | 4 +- 5 files changed, 9 insertions(+), 129 deletions(-) delete mode 100644 openthread_border_router/0001-support-deleting-the-dataset.patch diff --git a/openthread_border_router/0001-support-deleting-the-dataset.patch b/openthread_border_router/0001-support-deleting-the-dataset.patch deleted file mode 100644 index 3804f5c76b8..00000000000 --- a/openthread_border_router/0001-support-deleting-the-dataset.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 2efa60f83b71402ce0c1ef176be8f88a9bfdefac Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Mon, 5 Jun 2023 23:41:50 +0200 -Subject: [PATCH] support deleting the dataset - -Add REST API to support deleting the active or pending operational -dataset. Deleting the active operational dataset requires the Thread -network to be disabled (just like modifying the active operational -dataset). Subsequent use of the PUT method allows to build entirly -new datasets with values generated by the stack (through -otDatasetCreateNewNetwork). ---- - src/rest/openapi.yaml | 21 +++++++++++++++++++++ - src/rest/resource.cpp | 35 +++++++++++++++++++++++++++++++++++ - src/rest/resource.hpp | 1 + - 3 files changed, 57 insertions(+) - -diff --git a/src/rest/openapi.yaml b/src/rest/openapi.yaml -index 2ba2a4dd56f..2edc4af29ad 100644 ---- a/src/rest/openapi.yaml -+++ b/src/rest/openapi.yaml -@@ -248,6 +248,18 @@ paths: - description: Invalid request body. - "409": - description: Writing active operational dataset rejected because Thread network is active. -+ delete: -+ tags: -+ - node -+ summary: Deletes the active operational dataset -+ description: |- -+ Deletes the the active operational dataset on the current node. Only allowed if the Thread node -+ is inactive. -+ responses: -+ "200": -+ description: Successfully deleted the active operational dataset. -+ "409": -+ description: Deleting active operational dataset rejected because Thread network is active. - /node/dataset/pending: - get: - tags: -@@ -291,6 +303,15 @@ paths: - description: Successfully created the pending operational dataset. - "400": - description: Invalid request body. -+ delete: -+ tags: -+ - node -+ summary: Deletes the pending operational dataset -+ description: |- -+ Deletes the the pending operational dataset on the current node. -+ responses: -+ "200": -+ description: Successfully deleted the active operational dataset. - components: - schemas: - LeaderData: -diff --git a/src/rest/resource.cpp b/src/rest/resource.cpp -index ce154c2e5b3..1708faf6abc 100644 ---- a/src/rest/resource.cpp -+++ b/src/rest/resource.cpp -@@ -767,12 +767,47 @@ exit: - } - } - -+void Resource::DeleteDataset(DatasetType aDatasetType, Response &aResponse) const -+{ -+ otbrError error = OTBR_ERROR_NONE; -+ std::string errorCode = GetHttpStatus(HttpStatusCode::kStatusOk); -+ otOperationalDatasetTlvs datasetTlvs = {}; -+ -+ if (aDatasetType == DatasetType::kActive) -+ { -+ VerifyOrExit(otThreadGetDeviceRole(mInstance) == OT_DEVICE_ROLE_DISABLED, error = OTBR_ERROR_INVALID_STATE); -+ } -+ -+ if (aDatasetType == DatasetType::kActive) -+ { -+ VerifyOrExit(otDatasetSetActiveTlvs(mInstance, &datasetTlvs) == OT_ERROR_NONE, error = OTBR_ERROR_REST); -+ } -+ else if (aDatasetType == DatasetType::kPending) -+ { -+ VerifyOrExit(otDatasetSetPendingTlvs(mInstance, &datasetTlvs) == OT_ERROR_NONE, error = OTBR_ERROR_REST); -+ } -+ aResponse.SetResponsCode(errorCode); -+ -+exit: -+ if (error == OTBR_ERROR_INVALID_STATE) -+ { -+ ErrorHandler(aResponse, HttpStatusCode::kStatusConflict); -+ } -+ else if (error != OTBR_ERROR_NONE) -+ { -+ ErrorHandler(aResponse, HttpStatusCode::kStatusInternalServerError); -+ } -+} -+ - void Resource::Dataset(DatasetType aDatasetType, const Request &aRequest, Response &aResponse) const - { - std::string errorCode; - - switch (aRequest.GetMethod()) - { -+ case HttpMethod::kDelete: -+ DeleteDataset(aDatasetType, aResponse); -+ break; - case HttpMethod::kGet: - GetDataset(aDatasetType, aRequest, aResponse); - break; -diff --git a/src/rest/resource.hpp b/src/rest/resource.hpp -index 0929dbcc50c..cbe1702f2fb 100644 ---- a/src/rest/resource.hpp -+++ b/src/rest/resource.hpp -@@ -150,6 +150,7 @@ private: - void GetDataRloc(Response &aResponse) const; - void GetDataset(DatasetType aDatasetType, const Request &aRequest, Response &aResponse) const; - void SetDataset(DatasetType aDatasetType, const Request &aRequest, Response &aResponse) const; -+ void DeleteDataset(DatasetType aDatasetType, Response &aResponse) const; - - void DeleteOutDatedDiagnostic(void); - void UpdateDiag(std::string aKey, std::vector &aDiag); --- -2.46.1 - diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 0af51f637fc..0573b2df9ed 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 2.13.0 +- Bump to OTBR POSIX version b067e5ac (2025-01-13 22:32:22 -0500) +- Bump universal-silabs-flasher to 0.0.28 +- Remove dataset deletion REST API backwards compatibility patch. The minimum Core version for this add-on is now 2023.9.0 + ## 2.12.4 - Fix OTBR addon does not start after updating containerd.io to 1.7.24-1 diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index 0f53a6e63bb..a758d34377b 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -17,7 +17,6 @@ ENV REST_API 1 ENV DHCPV6_PD_REF 0 ENV DOCKER 1 -COPY 0001-support-deleting-the-dataset.patch /usr/src COPY 0001-channel-monitor-disable-by-default.patch /usr/src COPY openthread-core-ha-config-posix.h /usr/src # Required and installed (script/bootstrap) can be removed after build @@ -54,7 +53,6 @@ RUN \ && git checkout ${OTBR_VERSION} \ && git submodule update --init \ && ./script/bootstrap \ - && patch -p1 < /usr/src/0001-support-deleting-the-dataset.patch \ && ( \ cd third_party/openthread/repo \ && patch -p1 < /usr/src/0001-channel-monitor-disable-by-default.patch \ diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index 34d922dccea..8bf57d2054f 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -3,5 +3,5 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm args: - OTBR_VERSION: b041fa52daaa4dfbf6aa4665d8925c1be0350ca5 - UNIVERSAL_SILABS_FLASHER: 0.0.25 + OTBR_VERSION: b067e5ac5f8b3e92750df24922017eee2bc0fa04 + UNIVERSAL_SILABS_FLASHER: 0.0.28 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index aab7601b8c2..3e982a32837 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.12.4 +version: 2.13.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on @@ -8,7 +8,7 @@ url: >- arch: - aarch64 - amd64 -homeassistant: 2023.6.0.dev20230531 +homeassistant: 2023.9.0 gpio: true hassio_api: true discovery: From be105fa07eedf5b29fc9ce9d0702914f5a8d6b03 Mon Sep 17 00:00:00 2001 From: Liam Bresnahan <41922249+liambresnahan@users.noreply.github.com> Date: Wed, 15 Jan 2025 09:16:47 +0000 Subject: [PATCH 142/346] samba: Update smb.gtpl to enable files app on iOS / iPads 18+ (#3877) * Update smb.gtpl to enables files.app on iOS / iPads s 18+ * Update samba/rootfs/usr/share/tempio/smb.gtpl included `catia` and `fruit` per documentation on Samba and recommendation for further OSX interoperability Co-authored-by: Stefan Agner * Update CHANGELOG.md to include Apple Config * Update config.yaml to 12.3.3 * Update CHANGELOG.md with descriptice changes to enable appl Co-authored-by: Stefan Agner --------- Co-authored-by: Stefan Agner --- samba/CHANGELOG.md | 4 ++++ samba/config.yaml | 2 +- samba/rootfs/usr/share/tempio/smb.gtpl | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/samba/CHANGELOG.md b/samba/CHANGELOG.md index 98e0b52f45e..04880d188a3 100644 --- a/samba/CHANGELOG.md +++ b/samba/CHANGELOG.md @@ -1,4 +1,8 @@ # Changelog +## 12.3.3 + +- Enable Samba configurations to improve interoperability with Apple devices + ## 12.3.2 - Suppress benign idmap logged error diff --git a/samba/config.yaml b/samba/config.yaml index 65e1b47b1a5..81a20f167da 100644 --- a/samba/config.yaml +++ b/samba/config.yaml @@ -1,5 +1,5 @@ --- -version: 12.3.2 +version: 12.3.3 slug: samba name: Samba share description: Expose Home Assistant folders with SMB/CIFS diff --git a/samba/rootfs/usr/share/tempio/smb.gtpl b/samba/rootfs/usr/share/tempio/smb.gtpl index a63bab2fdb6..6a673c85947 100644 --- a/samba/rootfs/usr/share/tempio/smb.gtpl +++ b/samba/rootfs/usr/share/tempio/smb.gtpl @@ -26,6 +26,8 @@ dos charset = CP850 unix charset = UTF-8 + vfs objects = catia fruit streams_xattr + [config] browseable = yes writeable = yes From fabb9a87eefb1b09121f649901b1f51bbd4757bb Mon Sep 17 00:00:00 2001 From: as-kholin Date: Thu, 16 Jan 2025 05:25:40 -0600 Subject: [PATCH 143/346] Samba: Update Samba add-on to allow selectively enabling folders (#3701) Co-authored-by: nana-ska <56788012+nana-ska@users.noreply.github.com> Co-authored-by: Stefan Agner --- samba/CHANGELOG.md | 4 ++++ samba/DOCS.md | 16 +++++++++++++--- samba/config.yaml | 12 +++++++++++- .../rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run | 5 ++++- samba/rootfs/usr/share/tempio/smb.gtpl | 14 ++++++++++++++ samba/translations/en.yaml | 9 +++++++++ 6 files changed, 55 insertions(+), 5 deletions(-) diff --git a/samba/CHANGELOG.md b/samba/CHANGELOG.md index 04880d188a3..4526ed32b16 100644 --- a/samba/CHANGELOG.md +++ b/samba/CHANGELOG.md @@ -1,4 +1,8 @@ # Changelog +## 12.4.0 + +- Add the ability to enable and disable specific shares, improving user control over folder access + ## 12.3.3 - Enable Samba configurations to improve interoperability with Apple devices diff --git a/samba/DOCS.md b/samba/DOCS.md index 2e6408198e1..49729074c8b 100644 --- a/samba/DOCS.md +++ b/samba/DOCS.md @@ -12,9 +12,7 @@ Follow these steps to get the add-on installed on your system: 1. In the configuration section, set a username and password. You can specify any username and password; these are not related in any way to the login credentials you use to log in to Home Assistant or to log in to the computer with which you will use Samba share. -2. Save the configuration. -3. Start the add-on. -4. Check the add-on log output to see the result. +2. Review the enabled shares. Disable any you do not plan to use. Shares can be re-enabled later if needed. ## Connection @@ -40,6 +38,14 @@ Add-on configuration: workgroup: WORKGROUP username: homeassistant password: YOUR_PASSWORD +enabled_shares: + - addons + - addon_configs + - backup + - config + - media + - share + - ssl allow_hosts: - 10.0.0.0/8 - 172.16.0.0/12 @@ -66,6 +72,10 @@ The username you would like to use to authenticate with the Samba server. The password that goes with the username configured for authentication. +### Option: `enabled_shares` (required) + +List of Samba shares that will be accessible. Any shares removed or commented out of the list will not be accessible. + ### Option: `allow_hosts` (required) List of hosts/networks allowed to access the shared folders. diff --git a/samba/config.yaml b/samba/config.yaml index 81a20f167da..99a27a02526 100644 --- a/samba/config.yaml +++ b/samba/config.yaml @@ -1,5 +1,5 @@ --- -version: 12.3.3 +version: 12.4.0 slug: samba name: Samba share description: Expose Home Assistant folders with SMB/CIFS @@ -27,6 +27,14 @@ options: username: homeassistant password: null workgroup: WORKGROUP + enabled_shares: + - addons + - addon_configs + - backup + - config + - media + - share + - ssl compatibility_mode: false veto_files: - ._* @@ -45,6 +53,8 @@ schema: username: str password: password workgroup: str + enabled_shares: + - "match(^(?i:(addons|addon_configs|backup|config|media|share|ssl))$)" compatibility_mode: bool veto_files: - str diff --git a/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run b/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run index c6df56ac0f7..422b1b6439d 100755 --- a/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run +++ b/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run @@ -14,6 +14,8 @@ if ! bashio::config.has_value 'username' || ! bashio::config.has_value 'password bashio::exit.nok "Setting a username and password is required!" fi +bashio::config.require "enabled_shares" "Samba is a tool for sharing folders. Starting it without sharing any folders defeats the purpose." + # Read hostname from API or setting default "hassio" HOSTNAME=$(bashio::info.hostname) if bashio::var.is_empty "${HOSTNAME}"; then @@ -32,7 +34,8 @@ fi bashio::log.info "Interfaces: $(printf '%s ' "${interfaces[@]}")" # Generate Samba configuration. -jq ".interfaces = $(jq -c -n '$ARGS.positional' --args -- "${interfaces[@]}")" /data/options.json \ +jq ".interfaces = $(jq -c -n '$ARGS.positional' --args -- "${interfaces[@]}") | + .enabled_shares.[] |= ascii_downcase" /data/options.json \ | tempio \ -template /usr/share/tempio/smb.gtpl \ -out /etc/samba/smb.conf diff --git a/samba/rootfs/usr/share/tempio/smb.gtpl b/samba/rootfs/usr/share/tempio/smb.gtpl index 6a673c85947..ad35a3e6fdf 100644 --- a/samba/rootfs/usr/share/tempio/smb.gtpl +++ b/samba/rootfs/usr/share/tempio/smb.gtpl @@ -28,6 +28,7 @@ vfs objects = catia fruit streams_xattr +{{ if (has "config" .enabled_shares) }} [config] browseable = yes writeable = yes @@ -38,7 +39,9 @@ force group = root veto files = /{{ .veto_files | join "/" }}/ delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }} +{{ end }} +{{ if (has "addons" .enabled_shares) }} [addons] browseable = yes writeable = yes @@ -49,7 +52,9 @@ force group = root veto files = /{{ .veto_files | join "/" }}/ delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }} +{{ end }} +{{ if (has "addon_configs" .enabled_shares) }} [addon_configs] browseable = yes writeable = yes @@ -60,7 +65,9 @@ force group = root veto files = /{{ .veto_files | join "/" }}/ delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }} +{{ end }} +{{ if (has "ssl" .enabled_shares) }} [ssl] browseable = yes writeable = yes @@ -71,7 +78,9 @@ force group = root veto files = /{{ .veto_files | join "/" }}/ delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }} +{{ end }} +{{ if (has "share" .enabled_shares) }} [share] browseable = yes writeable = yes @@ -82,7 +91,9 @@ force group = root veto files = /{{ .veto_files | join "/" }}/ delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }} +{{ end }} +{{ if (has "backup" .enabled_shares) }} [backup] browseable = yes writeable = yes @@ -93,7 +104,9 @@ force group = root veto files = /{{ .veto_files | join "/" }}/ delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }} +{{ end }} +{{ if (has "media" .enabled_shares) }} [media] browseable = yes writeable = yes @@ -104,3 +117,4 @@ force group = root veto files = /{{ .veto_files | join "/" }}/ delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }} +{{ end }} diff --git a/samba/translations/en.yaml b/samba/translations/en.yaml index d819acc9fb6..4b4e855af16 100644 --- a/samba/translations/en.yaml +++ b/samba/translations/en.yaml @@ -11,6 +11,15 @@ configuration: workgroup: name: Workgroup description: Change WORKGROUP to reflect your network needs. + enabled_shares: + name: >- + Enabled Shares - allowed values are: + addons, addon_configs, backup, config, media, share, or ssl. + description: >- + List of file shares to make available. + Adding a share requires typing its name to add it. + The listed values are the only allowed values. + The configuration cannot be saved if any non-allowed value is in the list. compatibility_mode: name: Enable Compatibility Mode description: >- From 09b61a1423e46d5be75804f8c26a7fb1d67601a8 Mon Sep 17 00:00:00 2001 From: mr-ransel Date: Fri, 17 Jan 2025 05:03:31 -0800 Subject: [PATCH 144/346] Add support for timers in Assist Microphone (#3892) * Bump Wyoming Satellite version to 1.3.0 Bump to add support for timers via new wyoming cli arguments * Add timer_wav to the config.yaml * Add --timer-finished-wav-repeat flag * Add timer repeat and delay config fields * Adjust timer_finished.wav filename * Config parameter adjustment * Add timer_finished.wav * adjust timer_finished_wav parameter usage * fixing schema parameter * Bump addon version to 1.3.0 * Update Assist Microphone Documentation Add docs for new timer configuration options * Update CHANGELOG.md * Add field description translations for new arguments --- assist_microphone/CHANGELOG.md | 5 +++++ assist_microphone/DOCS.md | 12 ++++++++++++ assist_microphone/build.yaml | 2 +- assist_microphone/config.yaml | 8 +++++++- .../s6-overlay/s6-rc.d/assist_microphone/run | 2 ++ assist_microphone/sounds/timer_finished.wav | Bin 0 -> 35874 bytes assist_microphone/translations/en.yaml | 13 +++++++++++++ 7 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 assist_microphone/sounds/timer_finished.wav diff --git a/assist_microphone/CHANGELOG.md b/assist_microphone/CHANGELOG.md index 1f52c81f7ad..927a0a5867c 100644 --- a/assist_microphone/CHANGELOG.md +++ b/assist_microphone/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.3.0 + +- Update to wyoming-satellite 1.3.0 to get support for timers +- Added configuration options for setting timer sound, repetitions and delay + ## 1.2.0 - Update to wyoming-satellite 1.2.0 diff --git a/assist_microphone/DOCS.md b/assist_microphone/DOCS.md index 8dac481d27e..a1fe3bc61e4 100644 --- a/assist_microphone/DOCS.md +++ b/assist_microphone/DOCS.md @@ -24,6 +24,18 @@ Path to WAV file to play when wake word is detected (empty to disable, default i Path to WAV file to play when voice command is finished (empty to disable, default is `/usr/src/sounds/done.wav`). +### Option: `timer_finished_wav` + +Path to WAV file to play when timer is finished (empty to disable, default is `/usr/src/sounds/timer_finished.wav`). + +### Option: `timer_repeat_count` + +Number of times to repeat `timer_finished_wav` (default is 3). + +### Option: `timer_repeat_delay` + +Delay before repeating `timer_finished_wav`, in seconds (default is 0.75). + ### Option: `noise_suppression` Noise suppression level (0 is disabled, 4 is max). Disabled by default. diff --git a/assist_microphone/build.yaml b/assist_microphone/build.yaml index 92eecb36faf..0457e61b23d 100644 --- a/assist_microphone/build.yaml +++ b/assist_microphone/build.yaml @@ -6,4 +6,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - WYOMING_SATELLITE_VERSION: 1.2.0 + WYOMING_SATELLITE_VERSION: 1.3.0 diff --git a/assist_microphone/config.yaml b/assist_microphone/config.yaml index 4c703aaae8f..62dabbbd770 100644 --- a/assist_microphone/config.yaml +++ b/assist_microphone/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.2.0 +version: 1.3.0 slug: assist_microphone name: Assist Microphone description: Use Assist with local microphone @@ -16,6 +16,9 @@ map: options: awake_wav: "/usr/src/sounds/awake.wav" done_wav: "/usr/src/sounds/done.wav" + timer_finished_wav: "/usr/src/sounds/timer_finished.wav" + timer_repeat_count: 3 + timer_repeat_delay: 0.75 sound_enabled: true noise_suppression: 0 auto_gain: 0 @@ -25,6 +28,9 @@ options: schema: awake_wav: str done_wav: str + timer_finished_wav: str + timer_repeat_count: int + timer_repeat_delay: float sound_enabled: bool noise_suppression: int auto_gain: int diff --git a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run index 6bcb82b49c7..01aaedb7b5b 100755 --- a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run +++ b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run @@ -20,6 +20,8 @@ exec python3 -m wyoming_satellite \ --snd-command-rate 16000 \ --awake-wav "$(bashio::config 'awake_wav')" \ --done-wav "$(bashio::config 'done_wav')" \ + --timer-finished-wav "$(bashio::config 'timer_finished_wav')" \ + --timer-finished-wav-repeat "$(bashio::config 'timer_repeat_count')" "$(bashio::config 'timer_repeat_delay')" \ --mic-volume-multiplier "$(bashio::config 'mic_volume_multiplier')" \ --snd-volume-multiplier "$(bashio::config 'sound_volume_multiplier')" \ --mic-auto-gain "$(bashio::config 'auto_gain')" \ diff --git a/assist_microphone/sounds/timer_finished.wav b/assist_microphone/sounds/timer_finished.wav new file mode 100644 index 0000000000000000000000000000000000000000..40a97bca6c5eafa4e113ebc076d48ded0d9c95a0 GIT binary patch literal 35874 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 literal 0 HcmV?d00001 diff --git a/assist_microphone/translations/en.yaml b/assist_microphone/translations/en.yaml index 41930951039..411674d7861 100644 --- a/assist_microphone/translations/en.yaml +++ b/assist_microphone/translations/en.yaml @@ -9,6 +9,19 @@ configuration: description: >- Path to WAV file to play when voice command is finished (empty to disable). + timer_finished_wav: + name: Timer Finished WAV + description: >- + Path to WAV file to play when timer is finished (empty to disable, + default is /usr/src/sounds/timer_finished.wav). + timer_repeat_count: + name: Timer Finished WAV Repetition Count + description: >- + Number of times to repeat timer_finished_wav (default is 3). + timer_repeat_delay: + name: Timer Repetition Delay + description: >- + Delay before repeating timer_finished_wav, in seconds (default is 0.75). noise_suppression: name: Noise suppression description: >- From 0cb0d9b3b2a65159b4d7f70832c72270908f3836 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2025 11:44:04 +0100 Subject: [PATCH 145/346] build(deps): bump actions/stale from 9.0.0 to 9.1.0 (#3904) --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 067ad2e94d8..fa517401513 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: 30 days stale issues - uses: actions/stale@v9.0.0 + uses: actions/stale@v9.1.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-issue-stale: 30 From d94fb9433f2885b09a523ed2737492a386383b5b Mon Sep 17 00:00:00 2001 From: kyledepasquale <79337790+kyledepasquale@users.noreply.github.com> Date: Thu, 6 Feb 2025 02:42:12 -0800 Subject: [PATCH 146/346] letsencrypt: Use maintained Hurricane Electric certbot plugin (#3856) * Update to use new hurricane electric plugin The old plugin hasn't been updated since 2019. A newer plugin has been much more recently maintained and should be used instead, as this fixes several bugs. * commit additional changes * update to use dns-hurricane_electric Uses new provider name, cleans up whitespace * Bump to 5.2.11 * Update letsencrypt/CHANGELOG.md Co-authored-by: Stefan Agner * Update letsencrypt/config.yaml Co-authored-by: Stefan Agner * Update letsencrypt/rootfs/etc/services.d/lets-encrypt/run Co-authored-by: Stefan Agner * Update run --------- Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/Dockerfile | 4 ++-- letsencrypt/build.yaml | 2 +- letsencrypt/config.yaml | 2 +- letsencrypt/rootfs/etc/cont-init.d/file-structure.sh | 4 ++-- letsencrypt/rootfs/etc/services.d/lets-encrypt/run | 8 ++++---- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 2bbc04ef5bd..6e8b58dd419 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.11 + +- Use a newer, maintained Hurricane Electric plugin. + ## 5.2.10 - Add transip global_key parameter to config.yaml diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index ef4b69a752a..489454318ce 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -15,7 +15,7 @@ ARG \ CERTBOT_DNS_DUCKDNS_VERSION \ CERTBOT_DNS_DYNU_VERSION \ CERTBOT_DNS_EASYDNS_VERSION \ - CERTBOT_DNS_HE_VERSION \ + CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION \ CERTBOT_DNS_HETZNER_VERSION \ CERTBOT_DNS_INFOMANIAK_VERSION \ CERTBOT_DNS_INWX_VERSION \ @@ -90,7 +90,7 @@ RUN \ certbot-dns-transip==${CERTBOT_DNS_TRANSIP_VERSION} \ certbot-dns-inwx==${CERTBOT_DNS_INWX_VERSION} \ certbot-dns-dreamhost==${CERTBOT_DNS_DREAMHOST_VERSION} \ - certbot-dns-he==${CERTBOT_DNS_HE_VERSION} \ + certbot-dns-hurricane-electric==${CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION} \ certbot-dns-easydns==${CERTBOT_DNS_EASYDNS_VERSION} \ certbot-dns-domainoffensive==${CERTBOT_DNS_DOMAINOFFENSIVE_VERSION} \ certbot-dns-websupport==${CERTBOT_DNS_WEBSUPPORT_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index fae77fc118f..e6229a80a0d 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -19,7 +19,7 @@ args: CERTBOT_DNS_DUCKDNS_VERSION: 1.3 CERTBOT_DNS_DYNU_VERSION: 0.0.5 CERTBOT_DNS_EASYDNS_VERSION: 0.1.4 - CERTBOT_DNS_HE_VERSION: 1.0.0 + CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION: 0.1.0 CERTBOT_DNS_HETZNER_VERSION: 2.0.1 CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.3 CERTBOT_DNS_INWX_VERSION: 2.2.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 30248cc5fea..8eb312ea575 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.10 +version: 5.2.11 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 9cbdd7734f1..f6122d89efa 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -74,8 +74,8 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_cloudns_auth_password = $(bashio::config 'dns.cloudns_auth_password')\n" \ "dns_dreamhost_baseurl = $(bashio::config 'dns.dreamhost_baseurl')\n" \ "dns_dreamhost_api_key = $(bashio::config 'dns.dreamhost_api_key')\n" \ - "dns_he_user = $(bashio::config 'dns.he_user')\n" \ - "dns_he_pass = $(bashio::config 'dns.he_pass')\n" \ + "dns_hurricane_electric_user = $(bashio::config 'dns.he_user')\n" \ + "dns_hurricane_electric_pass = $(bashio::config 'dns.he_pass')\n" \ "dns_easydns_endpoint = $(bashio::config 'dns.easydns_endpoint')\n" \ "dns_easydns_usertoken = $(bashio::config 'dns.easydns_token')\n" \ "dns_easydns_userkey = $(bashio::config 'dns.easydns_key')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 2be4e0bac7b..30ee3996f1a 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -63,12 +63,12 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-namecheap" ]; th bashio::config.require 'dns.namecheap_username' bashio::config.require 'dns.namecheap_api_key' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - + #mijn.host elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-mijn-host" ]; then bashio::config.require 'dns.mijn_host_api_key' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - + #Netcup elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-netcup" ]; then bashio::config.require 'dns.netcup_customer_id' @@ -248,7 +248,7 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-dreamhost" ]; th elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-he" ]; then bashio::config.require 'dns.he_user' bashio::config.require 'dns.he_pass' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + PROVIDER_ARGUMENTS+=("--authenticator" "dns-hurricane_electric" "--dns-hurricane_electric-credentials" "/data/dnsapikey" "--dns-hurricane_electric-propagation-seconds" "${PROPAGATION_SECONDS}") # easyDNS elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-easydns" ]; then @@ -310,7 +310,7 @@ if bashio::config.exists 'key_type'; then fi else bashio::log.info "Detecting existing certificate type for ${DOMAIN_ARR[1]}" - readarray -t CBCERTS < <(certbot certificates --non-interactive --cert-name "${DOMAIN_ARR[1]}" --config-dir "$CERT_DIR" --work-dir "$WORK_DIR") + readarray -t CBCERTS < <(certbot certificates --non-interactive --cert-name "${DOMAIN_ARR[1]}" --config-dir "$CERT_DIR" --work-dir "$WORK_DIR") for output in "${CBCERTS[@]}"; do # shellcheck disable=SC2076 if [[ $output =~ "No certificates found." ]]; then From 689e540d5af02341d855fca5304a812fb9cc4fef Mon Sep 17 00:00:00 2001 From: raypappa <181794460+raypappa@users.noreply.github.com> Date: Thu, 6 Feb 2025 03:37:53 -0800 Subject: [PATCH 147/346] Refactor git-pull (#3875) * Fix/Refactor git-pull addon There is a bug present causing git-pull to no longer be able to restart or validate the configuration after updating the git repo. I suspect part of this is related bashio, possibly related to not using with-contenv. In this commit/pr I'm making use of the addon support present in bashio to avoid direct use of jq, and api calls. #3714 * remove ha cli from dockerfile, replace echo's with bashio logging, fix a failure when dealing with checking if files matched * removed unneded logging I added during debug/development. Implemented change suggested by the coderabbit to fetch the specific branch from git * Fix a extra bracket from the refactor. Originally used brackets to echo and exit, this is now being handled entirely in the exit.nok function * Enable proper support of shellcheck in git_pull/data/run.sh * Bump git_pull to v8.0.0 --- git_pull/CHANGELOG.md | 6 ++ git_pull/Dockerfile | 7 -- git_pull/build.yaml | 12 +-- git_pull/config.yaml | 2 +- git_pull/data/run.sh | 242 ++++++++++++++++++++++-------------------- 5 files changed, 136 insertions(+), 133 deletions(-) diff --git a/git_pull/CHANGELOG.md b/git_pull/CHANGELOG.md index e74e323735a..b3d7d84d4c8 100644 --- a/git_pull/CHANGELOG.md +++ b/git_pull/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 8.0.0 +- Refactor git_pull to use HA Api with bashio +- Update base image to Alpine 3.21 +- Remove ha cli dependency + + ## 7.14.1 - Fix error where $HOME is not defined diff --git a/git_pull/Dockerfile b/git_pull/Dockerfile index 732139a5d11..f4d9a5c70b3 100644 --- a/git_pull/Dockerfile +++ b/git_pull/Dockerfile @@ -4,13 +4,6 @@ FROM $BUILD_FROM # Setup base RUN apk add --no-cache jq curl git openssh-client -# Home Assistant CLI -ARG BUILD_ARCH -ARG CLI_VERSION -RUN curl -Lso /usr/bin/ha \ - "https://github.com/home-assistant/cli/releases/download/${CLI_VERSION}/ha_${BUILD_ARCH}" \ - && chmod a+x /usr/bin/ha - # Copy data COPY data/run.sh / diff --git a/git_pull/build.yaml b/git_pull/build.yaml index 6aaa1c32cc5..1e6de937829 100644 --- a/git_pull/build.yaml +++ b/git_pull/build.yaml @@ -1,12 +1,10 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.19 - amd64: ghcr.io/home-assistant/amd64-base:3.19 - armhf: ghcr.io/home-assistant/armhf-base:3.19 - armv7: ghcr.io/home-assistant/armv7-base:3.19 - i386: ghcr.io/home-assistant/i386-base:3.19 + aarch64: ghcr.io/home-assistant/aarch64-base:3.21 + amd64: ghcr.io/home-assistant/amd64-base:3.21 + armhf: ghcr.io/home-assistant/armhf-base:3.21 + armv7: ghcr.io/home-assistant/armv7-base:3.21 + i386: ghcr.io/home-assistant/i386-base:3.21 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io -args: - CLI_VERSION: 4.31.0 diff --git a/git_pull/config.yaml b/git_pull/config.yaml index f614fdd07b4..d3c753a9cb2 100644 --- a/git_pull/config.yaml +++ b/git_pull/config.yaml @@ -1,5 +1,5 @@ --- -version: 7.14.1 +version: 8.0.0 slug: git_pull name: Git pull description: Simple git pull to update the local configuration diff --git a/git_pull/data/run.sh b/git_pull/data/run.sh index 637f5264013..21eeb6ff8a6 100755 --- a/git_pull/data/run.sh +++ b/git_pull/data/run.sh @@ -1,28 +1,29 @@ -#!/bin/bash - -#### config #### +#!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash +# shellcheck disable=SC2034 CONFIG_PATH=/data/options.json HOME=~ -DEPLOYMENT_KEY=$(jq --raw-output ".deployment_key[]" $CONFIG_PATH) -DEPLOYMENT_KEY_PROTOCOL=$(jq --raw-output ".deployment_key_protocol" $CONFIG_PATH) -DEPLOYMENT_USER=$(jq --raw-output ".deployment_user" $CONFIG_PATH) -DEPLOYMENT_PASSWORD=$(jq --raw-output ".deployment_password" $CONFIG_PATH) -GIT_BRANCH=$(jq --raw-output '.git_branch' $CONFIG_PATH) -GIT_COMMAND=$(jq --raw-output '.git_command' $CONFIG_PATH) -GIT_REMOTE=$(jq --raw-output '.git_remote' $CONFIG_PATH) -GIT_PRUNE=$(jq --raw-output '.git_prune' $CONFIG_PATH) -REPOSITORY=$(jq --raw-output '.repository' $CONFIG_PATH) -AUTO_RESTART=$(jq --raw-output '.auto_restart' $CONFIG_PATH) -RESTART_IGNORED_FILES=$(jq --raw-output '.restart_ignore | join(" ")' $CONFIG_PATH) -REPEAT_ACTIVE=$(jq --raw-output '.repeat.active' $CONFIG_PATH) -REPEAT_INTERVAL=$(jq --raw-output '.repeat.interval' $CONFIG_PATH) +DEPLOYMENT_KEY=$(bashio::config 'deployment_key') +DEPLOYMENT_KEY_PROTOCOL=$(bashio::config 'deployment_key_protocol') +DEPLOYMENT_USER=$(bashio::config 'deployment_user') +DEPLOYMENT_PASSWORD=$(bashio::config 'deployment_password') +GIT_BRANCH=$(bashio::config 'git_branch') +GIT_COMMAND=$(bashio::config 'git_command') +GIT_REMOTE=$(bashio::config 'git_remote') +GIT_PRUNE=$(bashio::config 'git_prune') +REPOSITORY=$(bashio::config 'repository') +AUTO_RESTART=$(bashio::config 'auto_restart') +RESTART_IGNORED_FILES=$(bashio::config 'restart_ignore | join(" ")') +REPEAT_ACTIVE=$(bashio::config 'repeat.active') +REPEAT_INTERVAL=$(bashio::config 'repeat.interval') ################ #### functions #### function add-ssh-key { - echo "[Info] Start adding SSH key" + bashio::log.info "[Info] Start adding SSH key" mkdir -p ~/.ssh ( @@ -30,7 +31,7 @@ function add-ssh-key { echo " StrictHostKeyChecking no" ) > ~/.ssh/config - echo "[Info] Setup deployment_key on id_${DEPLOYMENT_KEY_PROTOCOL}" + bashio::log.info "[Info] Setup deployment_key on id_${DEPLOYMENT_KEY_PROTOCOL}" rm -f "${HOME}/.ssh/id_${DEPLOYMENT_KEY_PROTOCOL}" while read -r line; do echo "$line" >> "${HOME}/.ssh/id_${DEPLOYMENT_KEY_PROTOCOL}" @@ -43,17 +44,17 @@ function add-ssh-key { function git-clone { # create backup BACKUP_LOCATION="/tmp/config-$(date +%Y-%m-%d_%H-%M-%S)" - echo "[Info] Backup configuration to $BACKUP_LOCATION" + bashio::log.info "[Info] Backup configuration to $BACKUP_LOCATION" - mkdir "${BACKUP_LOCATION}" || { echo "[Error] Creation of backup directory failed"; exit 1; } - cp -rf /config/* "${BACKUP_LOCATION}" || { echo "[Error] Copy files to backup directory failed"; exit 1; } + mkdir "${BACKUP_LOCATION}" || bashio::exit.nok "[Error] Creation of backup directory failed" + cp -rf /config/* "${BACKUP_LOCATION}" || bashio::exit.nok "[Error] Copy files to backup directory failed" # remove config folder content - rm -rf /config/{,.[!.],..?}* || { echo "[Error] Clearing /config failed"; exit 1; } + rm -rf /config/{,.[!.],..?}* || bashio::exit.nok "[Error] Clearing /config failed" # git clone - echo "[Info] Start git clone" - git clone "$REPOSITORY" /config || { echo "[Error] Git clone failed"; exit 1; } + bashio::log.info "[Info] Start git clone" + git clone "$REPOSITORY" /config || bashio::exit.nok "[Error] Git clone failed" # try to copy non yml files back cp "${BACKUP_LOCATION}" "!(*.yaml)" /config 2>/dev/null @@ -64,14 +65,14 @@ function git-clone { function check-ssh-key { if [ -n "$DEPLOYMENT_KEY" ]; then - echo "Check SSH connection" + bashio::log.info "Check SSH connection" IFS=':' read -ra GIT_URL_PARTS <<< "$REPOSITORY" # shellcheck disable=SC2029 DOMAIN="${GIT_URL_PARTS[0]}" if OUTPUT_CHECK=$(ssh -T -o "StrictHostKeyChecking=no" -o "BatchMode=yes" "$DOMAIN" 2>&1) || { [[ $DOMAIN = *"@github.com"* ]] && [[ $OUTPUT_CHECK = *"You've successfully authenticated"* ]]; }; then - echo "[Info] Valid SSH connection for $DOMAIN" + bashio::log.info "[Info] Valid SSH connection for $DOMAIN" else - echo "[Warn] No valid SSH connection for $DOMAIN" + bashio::log.warn "[Warn] No valid SSH connection for $DOMAIN" add-ssh-key fi fi @@ -80,7 +81,7 @@ fi function setup-user-password { if [ -n "$DEPLOYMENT_USER" ]; then cd /config || return - echo "[Info] setting up credential.helper for user: ${DEPLOYMENT_USER}" + bashio::log.info "[Info] setting up credential.helper for user: ${DEPLOYMENT_USER}" git config --system credential.helper 'store --file=/tmp/git-credentials' # Extract the hostname from repository @@ -108,7 +109,7 @@ password=${DEPLOYMENT_PASSWORD} " # Use git commands to write the credentials to ~/.git-credentials - echo "[Info] Saving git credentials to /tmp/git-credentials" + bashio::log.info "[Info] Saving git credentials to /tmp/git-credentials" # shellcheck disable=SC2259 git credential fill | git credential approve <<< "$cred_data" fi @@ -116,116 +117,121 @@ fi function git-synchronize { # is /config a local git repo? - if git rev-parse --is-inside-work-tree &>/dev/null - then - echo "[Info] Local git repository exists" - - # Is the local repo set to the correct origin? - CURRENTGITREMOTEURL=$(git remote get-url --all "$GIT_REMOTE" | head -n 1) - if [ "$CURRENTGITREMOTEURL" = "$REPOSITORY" ] - then - echo "[Info] Git origin is correctly set to $REPOSITORY" - OLD_COMMIT=$(git rev-parse HEAD) - - # Always do a fetch to update repos - echo "[Info] Start git fetch..." - git fetch "$GIT_REMOTE" || { echo "[Error] Git fetch failed"; return 1; } - - # Prune if configured - if [ "$GIT_PRUNE" == "true" ] - then - echo "[Info] Start git prune..." - git prune || { echo "[Error] Git prune failed"; return 1; } - fi + if ! git rev-parse --is-inside-work-tree &>/dev/null; then + bashio::log.warn "[Warn] Git repository doesn't exist" + git-clone + return + fi - # Do we switch branches? - GIT_CURRENT_BRANCH=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD) - if [ -z "$GIT_BRANCH" ] || [ "$GIT_BRANCH" == "$GIT_CURRENT_BRANCH" ]; then - echo "[Info] Staying on currently checked out branch: $GIT_CURRENT_BRANCH..." - else - echo "[Info] Switching branches - start git checkout of branch $GIT_BRANCH..." - git checkout "$GIT_BRANCH" || { echo "[Error] Git checkout failed"; exit 1; } - GIT_CURRENT_BRANCH=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD) - fi + bashio::log.info "[Info] Local git repository exists" + # Is the local repo set to the correct origin? + CURRENTGITREMOTEURL=$(git remote get-url --all "$GIT_REMOTE" | head -n 1) + if [ "$CURRENTGITREMOTEURL" != "$REPOSITORY" ]; then + bashio::exit.nok "[Error] git origin does not match $REPOSITORY!"; + return + fi + + bashio::log.info "[Info] Git origin is correctly set to $REPOSITORY" + OLD_COMMIT=$(git rev-parse HEAD) - # Pull or reset depending on user preference - case "$GIT_COMMAND" in - pull) - echo "[Info] Start git pull..." - git pull || { echo "[Error] Git pull failed"; return 1; } - ;; - reset) - echo "[Info] Start git reset..." - git reset --hard "$GIT_REMOTE"/"$GIT_CURRENT_BRANCH" || { echo "[Error] Git reset failed"; return 1; } - ;; - *) - echo "[Error] Git command is not set correctly. Should be either 'reset' or 'pull'" - exit 1 - ;; - esac - else - echo "[Error] git origin does not match $REPOSITORY!"; exit 1; - fi + # Always do a fetch to update repos + bashio::log.info "[Info] Start git fetch..." + git fetch "$GIT_REMOTE" "$GIT_BRANCH" || bashio::exit.nok "[Error] Git fetch failed"; + + # Prune if configured + if [ "$GIT_PRUNE" == "true" ] + then + bashio::log.info "[Info] Start git prune..." + git prune || bashio::exit.nok "[Error] Git prune failed"; + fi + # Do we switch branches? + GIT_CURRENT_BRANCH=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD) + if [ -z "$GIT_BRANCH" ] || [ "$GIT_BRANCH" == "$GIT_CURRENT_BRANCH" ]; then + bashio::log.info "[Info] Staying on currently checked out branch: $GIT_CURRENT_BRANCH..." else - echo "[Warn] Git repository doesn't exist" - git-clone + bashio::log.info "[Info] Switching branches - start git checkout of branch $GIT_BRANCH..." + git checkout "$GIT_BRANCH" || bashio::exit.nok "[Error] Git checkout failed" + GIT_CURRENT_BRANCH=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD) fi + + # Pull or reset depending on user preference + case "$GIT_COMMAND" in + pull) + bashio::log.info "[Info] Start git pull..." + git pull || bashio::exit.nok "[Error] Git pull failed"; + ;; + reset) + bashio::log.info "[Info] Start git reset..." + git reset --hard "$GIT_REMOTE"/"$GIT_CURRENT_BRANCH" || bashio::exit.nok "[Error] Git reset failed"; + ;; + *) + bashio::exit.nok "[Error] Git command is not set correctly. Should be either 'reset' or 'pull'" + ;; + esac } function validate-config { - echo "[Info] Checking if something has changed..." + bashio::log.info "[Info] Checking if something has changed..." # Compare commit ids & check config NEW_COMMIT=$(git rev-parse HEAD) - if [ "$NEW_COMMIT" != "$OLD_COMMIT" ]; then - echo "[Info] Something has changed, checking Home-Assistant config..." - if ha --no-progress core check; then - if [ "$AUTO_RESTART" == "true" ]; then - DO_RESTART="false" - CHANGED_FILES=$(git diff "$OLD_COMMIT" "$NEW_COMMIT" --name-only) - echo "Changed Files: $CHANGED_FILES" - if [ -n "$RESTART_IGNORED_FILES" ]; then - for changed_file in $CHANGED_FILES; do - restart_required_file="" - for restart_ignored_file in $RESTART_IGNORED_FILES; do - if [ -d "$restart_ignored_file" ]; then - # file to be ignored is a whole dir - restart_required_file=$(echo "${changed_file}" | grep "^${restart_ignored_file}") - else - restart_required_file=$(echo "${changed_file}" | grep "^${restart_ignored_file}$") - fi - # break on first match - if [ -n "$restart_required_file" ]; then break; fi - done - if [ -z "$restart_required_file" ]; then - DO_RESTART="true" - echo "[Info] Detected restart-required file: $changed_file" - fi - done - else - DO_RESTART="true" - fi - if [ "$DO_RESTART" == "true" ]; then - echo "[Info] Restart Home-Assistant" - ha --no-progress core restart 2&> /dev/null + if [ "$NEW_COMMIT" == "$OLD_COMMIT" ]; then + bashio::log.info "[Info] Nothing has changed." + return + fi + bashio::log.info "[Info] Something has changed, checking Home-Assistant config..." + if ! bashio::core.check; then + bashio::log.error "[Error] Configuration updated but it does not pass the config check. Do not restart until this is fixed!" + return + fi + if [ "$AUTO_RESTART" != "true" ]; then + bashio::log.info "[Info] Local configuration has changed. Restart required." + return + fi + DO_RESTART="false" + CHANGED_FILES=$(git diff "$OLD_COMMIT" "$NEW_COMMIT" --name-only) + bashio::log.info "Changed Files: $CHANGED_FILES" + if [ -n "$RESTART_IGNORED_FILES" ]; then + for changed_file in $CHANGED_FILES; do + restart_required_file="" + for restart_ignored_file in $RESTART_IGNORED_FILES; do + bashio::log.info "[Info] Checking: $changed_file for $restart_ignored_file" + if [ -d "$restart_ignored_file" ]; then + # file to be ignored is a whole dir + set +e + restart_required_file=$(echo "${changed_file}" | grep "^${restart_ignored_file}") + set -e else - echo "[Info] No Restart Required, only ignored changes detected" + set +e + restart_required_file=$(echo "${changed_file}" | grep "^${restart_ignored_file}$") + set -e fi + # break on first match + if [ -n "$restart_required_file" ]; then break; fi + done + if [ -z "$restart_required_file" ]; then + DO_RESTART="true" + bashio::log.info "[Info] Detected restart-required file: $changed_file" else - echo "[Info] Local configuration has changed. Restart required." + bashio::log.info "[Info] Detected ignored file: $changed_file" fi - else - echo "[Error] Configuration updated but it does not pass the config check. Do not restart until this is fixed!" - fi + done + else + DO_RESTART="true" + fi + + if [ "$DO_RESTART" == "true" ]; then + bashio::log.info "[Info] Restart Home-Assistant" + bashio::core.restart else - echo "[Info] Nothing has changed." + bashio::log.info "[Info] No Restart Required, only ignored changes detected" fi } ################### #### Main program #### -cd /config || { echo "[Error] Failed to cd into /config"; exit 1; } +cd /config || bashio::exit.nok "[Error] Failed to cd into /config"; while true; do check-ssh-key From 1d46593880f548990c8b5221808bff34e902e6bc Mon Sep 17 00:00:00 2001 From: Fabian Jonassen Date: Thu, 6 Feb 2025 18:30:42 +0100 Subject: [PATCH 148/346] Fix using wrong log level from bashio. Fixes #3917 (#3918) * Fix using wrong log level from bashio. Fixes #3917 * Add changelog and bump version --- git_pull/CHANGELOG.md | 3 +++ git_pull/config.yaml | 2 +- git_pull/data/run.sh | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git_pull/CHANGELOG.md b/git_pull/CHANGELOG.md index b3d7d84d4c8..7a6034c8734 100644 --- a/git_pull/CHANGELOG.md +++ b/git_pull/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 8.0.1 +- Fix bashio warn(ing) logger usage breaking deployment keys + ## 8.0.0 - Refactor git_pull to use HA Api with bashio - Update base image to Alpine 3.21 diff --git a/git_pull/config.yaml b/git_pull/config.yaml index d3c753a9cb2..1fd689f2161 100644 --- a/git_pull/config.yaml +++ b/git_pull/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.0.0 +version: 8.0.1 slug: git_pull name: Git pull description: Simple git pull to update the local configuration diff --git a/git_pull/data/run.sh b/git_pull/data/run.sh index 21eeb6ff8a6..0f5cae42abb 100755 --- a/git_pull/data/run.sh +++ b/git_pull/data/run.sh @@ -72,7 +72,7 @@ if [ -n "$DEPLOYMENT_KEY" ]; then if OUTPUT_CHECK=$(ssh -T -o "StrictHostKeyChecking=no" -o "BatchMode=yes" "$DOMAIN" 2>&1) || { [[ $DOMAIN = *"@github.com"* ]] && [[ $OUTPUT_CHECK = *"You've successfully authenticated"* ]]; }; then bashio::log.info "[Info] Valid SSH connection for $DOMAIN" else - bashio::log.warn "[Warn] No valid SSH connection for $DOMAIN" + bashio::log.warning "[Warn] No valid SSH connection for $DOMAIN" add-ssh-key fi fi @@ -118,7 +118,7 @@ fi function git-synchronize { # is /config a local git repo? if ! git rev-parse --is-inside-work-tree &>/dev/null; then - bashio::log.warn "[Warn] Git repository doesn't exist" + bashio::log.warning "[Warn] Git repository doesn't exist" git-clone return fi From 1f5acfeaaad92e730267593dde47588f5d5f647f Mon Sep 17 00:00:00 2001 From: nordeep Date: Thu, 6 Feb 2025 22:26:00 +0300 Subject: [PATCH 149/346] letsencrypt: Added rfc2136_sign_query to dns-rfc2136 provider (#3866) * Update config.yaml Add rfc2136_sign_query * Update file-structure.sh Add parsing of rfc2136_sign_query * Update config.yaml Bump version * Update CHANGELOG.md Add rfc2136_sign_query * Update DOCS.md Add rfc2136_sign_query * Update DOCS.md Add documentation to rfc2136_sign_query field. * Update letsencrypt/config.yaml Set rfc2136_sign_query as optional Co-authored-by: Stefan Agner * Bump version in config.yaml * Update letsencrypt/DOCS.md --------- Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 3 +++ letsencrypt/config.yaml | 3 ++- letsencrypt/rootfs/etc/cont-init.d/file-structure.sh | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 6e8b58dd419..6141a7343b8 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.2.12 + +- Add rfc2136_sign_query parameter to config.yaml + ## 5.2.11 - Use a newer, maintained Hurricane Electric plugin. diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 6bfec051489..9c9793c3169 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -137,6 +137,7 @@ rfc2136_port: '' rfc2136_name: '' rfc2136_secret: '' rfc2136_algorithm: '' +rfc2136_sign_query: false aws_access_key_id: '' aws_secret_access_key: '' sakuracloud_api_token: '' @@ -782,6 +783,8 @@ An example configuration: rfc2136_name: letsencrypt rfc2136_secret: "secret-key" rfc2136_algorithm: HMAC-SHA512 + # Optional: Enable TSIG key signing for DNS queries (useful for BIND multiple views) + rfc2136_sign_query: true ``` diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 8eb312ea575..c3f1446e84d 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.2.11 +version: 5.2.12 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -116,6 +116,7 @@ schema: rfc2136_port: str? rfc2136_secret: str? rfc2136_server: str? + rfc2136_sign_query: bool? sakuracloud_api_secret: str? sakuracloud_api_token: str? transip_api_key: str? diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index f6122d89efa..202c158833b 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -60,6 +60,7 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_rfc2136_name = $(bashio::config 'dns.rfc2136_name')\n" \ "dns_rfc2136_secret = $(bashio::config 'dns.rfc2136_secret')\n" \ "dns_rfc2136_algorithm = $(bashio::config 'dns.rfc2136_algorithm')\n" \ + "dns_rfc2136_sign_query = $(bashio::config 'dns.rfc2136_sign_query')\n" \ "aws_access_key_id = $(bashio::config 'dns.aws_access_key_id')\n" \ "aws_secret_access_key = $(bashio::config 'dns.aws_secret_access_key')\n" \ "dns_sakuracloud_api_token = $(bashio::config 'dns.sakuracloud_api_token')\n" \ From d8b7bbaf00ebc2c23bcf3d221a4e369b5b92b3e4 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Tue, 11 Feb 2025 12:14:07 -0600 Subject: [PATCH 150/346] Add speech-to-phrase (#3922) * Add speech-to-phrase * Fix shellcheck error * More warning fixes * Yet another warning * Add logo/icon * Add wheel dep * Bugfix for English sentences * Use official logos * Add custom sentences * Remove wheel dep --- speech_to_phrase/CHANGELOG.md | 9 +++ speech_to_phrase/DOCS.md | 52 ++++++++++++++++++ speech_to_phrase/Dockerfile | 46 ++++++++++++++++ speech_to_phrase/README.md | 18 ++++++ speech_to_phrase/build.yaml | 9 +++ speech_to_phrase/config.yaml | 25 +++++++++ speech_to_phrase/icon.png | Bin 0 -> 4980 bytes speech_to_phrase/logo.png | Bin 0 -> 30984 bytes .../discovery/dependencies.d/speech-to-phrase | 0 .../etc/s6-overlay/s6-rc.d/discovery/run | 24 ++++++++ .../etc/s6-overlay/s6-rc.d/discovery/type | 1 + .../etc/s6-overlay/s6-rc.d/discovery/up | 1 + .../speech-to-phrase/dependencies.d/base | 0 .../s6-rc.d/speech-to-phrase/finish | 26 +++++++++ .../s6-overlay/s6-rc.d/speech-to-phrase/run | 40 ++++++++++++++ .../s6-overlay/s6-rc.d/speech-to-phrase/type | 1 + .../s6-rc.d/user/contents.d/discovery | 0 .../s6-rc.d/user/contents.d/speech-to-phrase | 0 speech_to_phrase/translations/en.yaml | 8 +++ 19 files changed, 260 insertions(+) create mode 100644 speech_to_phrase/CHANGELOG.md create mode 100644 speech_to_phrase/DOCS.md create mode 100644 speech_to_phrase/Dockerfile create mode 100644 speech_to_phrase/README.md create mode 100644 speech_to_phrase/build.yaml create mode 100644 speech_to_phrase/config.yaml create mode 100644 speech_to_phrase/icon.png create mode 100644 speech_to_phrase/logo.png create mode 100644 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/dependencies.d/speech-to-phrase create mode 100755 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/run create mode 100644 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/type create mode 100755 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/up create mode 100644 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/dependencies.d/base create mode 100755 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/finish create mode 100755 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/run create mode 100644 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/type create mode 100644 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/discovery create mode 100644 speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/speech-to-phrase create mode 100644 speech_to_phrase/translations/en.yaml diff --git a/speech_to_phrase/CHANGELOG.md b/speech_to_phrase/CHANGELOG.md new file mode 100644 index 00000000000..dbf32d5eab5 --- /dev/null +++ b/speech_to_phrase/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +## 1.1.0 + +- Add custom sentences + +## 1.0.0 + +- Initial release diff --git a/speech_to_phrase/DOCS.md b/speech_to_phrase/DOCS.md new file mode 100644 index 00000000000..b498b5d94a5 --- /dev/null +++ b/speech_to_phrase/DOCS.md @@ -0,0 +1,52 @@ +# Home Assistant Add-on: Speech to phrase + +## Installation + +Follow these steps to get the add-on installed on your system: + +1. Navigate in your Home Assistant frontend to **Settings** -> **Add-ons** -> **Add-on store**. +2. Find the "Speech to phrase" add-on and click it. +3. Click on the "INSTALL" button. + +## How to use + +After this add-on is installed and running, it should automatically train itself based on your [exposed][] entities, areas, floors, and [sentence triggers][sentence trigger]. +The add-on will automatically re-train if necessary. + +The add-on will be automatically discovered by the Wyoming integration in Home Assistant. To finish the setup, click the following my button: + +[![Open your Home Assistant instance and start setting up a new integration.](https://my.home-assistant.io/badges/config_flow_start.svg)](https://my.home-assistant.io/redirect/config_flow_start/?domain=wyoming) + +Alternatively, you can install the Wyoming integration manually, see the +[Wyoming integration documentation](https://www.home-assistant.io/integrations/wyoming/) +for more information. + +### Voice commands + +- [English](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/english.md) +- [Français (French)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/french.md) +- [Deutsch (German)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/german.md) +- [Nederlands (Dutch)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/dutch.md) +- [Spanish (Español)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/spanish.md) +- [Italian (Italiano)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/italian.md) + +## Support + +Got questions? + +You have several options to get them answered: + +- The [Home Assistant Discord Chat Server][discord]. +- The Home Assistant [Community Forum][forum]. +- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] + +In case you've found an bug, please [open an issue on our GitHub][issue]. + +[discord]: https://discord.gg/c5DvZ4e +[forum]: https://community.home-assistant.io +[issue]: https://github.com/home-assistant/addons/issues +[reddit]: https://reddit.com/r/homeassistant +[repository]: https://github.com/hassio-addons/repository + +[sentence trigger]: https://www.home-assistant.io/docs/automation/trigger/#sentence-trigger +[exposed]: https://www.home-assistant.io/voice_control/voice_remote_expose_devices/ diff --git a/speech_to_phrase/Dockerfile b/speech_to_phrase/Dockerfile new file mode 100644 index 00000000000..7e7d7db3433 --- /dev/null +++ b/speech_to_phrase/Dockerfile @@ -0,0 +1,46 @@ +ARG BUILD_FROM +FROM ${BUILD_FROM} +ARG BUILD_ARCH + +# Set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Install speech-to-phrase +ARG SPEECH_TO_PHRASE_VERSION +WORKDIR /usr/src + +RUN mkdir -p ./tools + +RUN \ + apt-get update \ + && apt-get install -y --no-install-recommends \ + netcat-traditional \ + python3 \ + python3-pip \ + python3-dev \ + python3-venv \ + build-essential \ + curl \ + libopenblas0 \ + libencode-perl \ + && ARCH="${BUILD_ARCH}" \ + && if [[ "${BUILD_ARCH}" = "aarch64" ]]; then ARCH="arm64"; fi \ + && curl --location --output - \ + "https://huggingface.co/datasets/rhasspy/rhasspy-speech/resolve/main/tools/rhasspy-speech_${ARCH}.tar.gz?download=true" | \ + tar -C ./tools -xzf - \ + && python3 -m venv .venv \ + && .venv/bin/pip3 install --no-cache-dir \ + "speech-to-phrase @ https://github.com/OHF-Voice/speech-to-phrase/archive/refs/tags/v${SPEECH_TO_PHRASE_VERSION}.tar.gz" \ + && apt-get remove --yes build-essential \ + && apt-get autoclean \ + && apt-get purge \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR / +COPY rootfs / + +HEALTHCHECK --start-period=10m \ + CMD echo '{ "type": "describe" }' \ + | nc -w 1 localhost 10300 \ + | grep -iq "speech-to-phrase" \ + || exit 1 diff --git a/speech_to_phrase/README.md b/speech_to_phrase/README.md new file mode 100644 index 00000000000..131f17934f7 --- /dev/null +++ b/speech_to_phrase/README.md @@ -0,0 +1,18 @@ +# Home Assistant Add-on: Speech to phrase + +![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] + +A fast and local speech-to-text system that is personalized with the names of things in your home. +[Speech-to-phrase](https://github.com/OHF-voice/speech-to-phrase) is targeted at lower-end hardware, such as the Raspberry Pi 4 and Home Assistant Green. + +See the [documentation](http://github.com/OHF-voice/speech-to-phrase) for available voice commands. + +Built on top of the [Year of Voice](https://www.home-assistant.io/blog/2022/12/20/year-of-voice/). + +Requires Home Assistant 2023.11 or later. + +[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg +[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg +[armv7-shield]: https://img.shields.io/badge/armv7-no-red.svg +[armhf-shield]: https://img.shields.io/badge/armhf-no-red.svg +[i386-shield]: https://img.shields.io/badge/i386-no-red.svg diff --git a/speech_to_phrase/build.yaml b/speech_to_phrase/build.yaml new file mode 100644 index 00000000000..52e5234cc0a --- /dev/null +++ b/speech_to_phrase/build.yaml @@ -0,0 +1,9 @@ +--- +build_from: + amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm + aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm +codenotary: + signer: notary@home-assistant.io + base_image: notary@home-assistant.io +args: + SPEECH_TO_PHRASE_VERSION: 1.1.0 diff --git a/speech_to_phrase/config.yaml b/speech_to_phrase/config.yaml new file mode 100644 index 00000000000..3a5563b1e80 --- /dev/null +++ b/speech_to_phrase/config.yaml @@ -0,0 +1,25 @@ +--- +version: 1.1.0 +slug: speech-to-phrase +name: speech-to-phrase +description: Fast and personalized local speech-to-text +url: http://github.com/OHF-voice/speech-to-phrase +arch: + - amd64 + - aarch64 +init: false +discovery: + - wyoming +map: + - share:rw +backup_exclude: + - "*/models/*" +homeassistant_api: true +options: + debug_logging: false +schema: + debug_logging: bool +ports: + "10300/tcp": null +homeassistant: 2023.11.0 +image: homeassistant/{arch}-addon-speech-to-phrase diff --git a/speech_to_phrase/icon.png b/speech_to_phrase/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b4c4cb716770f5b51c030c9537fea8b8b8a850b2 GIT binary patch literal 4980 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 Ved;rwiYD%nSM`i_OSK&%{|kAwAwd8D literal 0 HcmV?d00001 diff --git a/speech_to_phrase/logo.png b/speech_to_phrase/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ef906dc0f1469e5be300d46eec5295418657e658 GIT binary patch literal 30984 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

L@oe>SnbhcLTO=2fr<2Q9Egk306T+2YI> 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 /dev/tcp/localhost/10300; do sleep 0.5; + done" > /dev/null 2>&1 || true; + +config=$(\ + bashio::var.json \ + uri "tcp://$(hostname):10300" \ +) + +if bashio::discovery "wyoming" "${config}" > /dev/null; then + bashio::log.info "Successfully sent discovery information to Home Assistant." +else + bashio::log.error "Discovery message to Home Assistant failed!" +fi diff --git a/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/type b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/type new file mode 100644 index 00000000000..3d92b15f2d5 --- /dev/null +++ b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/up b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/up new file mode 100755 index 00000000000..31b0a0205b5 --- /dev/null +++ b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/discovery/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/discovery/run \ No newline at end of file diff --git a/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/dependencies.d/base b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/dependencies.d/base new file mode 100644 index 00000000000..e69de29bb2d diff --git a/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/finish b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/finish new file mode 100755 index 00000000000..1c046b21855 --- /dev/null +++ b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/finish @@ -0,0 +1,26 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Take down the S6 supervision tree when service fails +# s6-overlay docs: https://github.com/just-containers/s6-overlay +# ============================================================================== +# shellcheck disable=SC2155 +readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + fi + [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt +elif [[ "${exit_code_service}" -ne 0 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode + fi + exec /run/s6/basedir/bin/halt +fi diff --git a/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/run b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/run new file mode 100755 index 00000000000..c161807ef21 --- /dev/null +++ b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/run @@ -0,0 +1,40 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Start speech-to-phrase service +# ============================================================================== +cd /usr/src || exit 1 + +flags=() + +if bashio::config.has_value 'hass_websocket_uri'; then + hass_websocket_uri="$(bashio::config 'hass_websocket_uri')" +else + hass_websocket_uri='ws://supervisor/core/websocket' +fi + +if bashio::config.has_value 'hass_token'; then + hass_token="$(bashio::config 'hass_token')" +else + hass_token="${SUPERVISOR_TOKEN}" +fi + +if bashio::config.true 'debug_logging'; then + flags+=('--debug') +fi + +models_dir='/data/models' +mkdir -p "${models_dir}" + +# shellcheck disable=SC2068 +exec .venv/bin/python3 -m speech_to_phrase \ + --uri 'tcp://0.0.0.0:10300' \ + --tools-dir /usr/src/tools \ + --train-dir /share/speech-to-phrase/train \ + --models-dir "${models_dir}" \ + --retrain-on-start \ + --retrain-on-connect \ + --retrain-seconds 300 \ + --custom-sentences-dir /share/speech-to-phrase/custom_sentences \ + --hass-token "${hass_token}" \ + --hass-websocket-uri "${hass_websocket_uri}" ${flags[@]} diff --git a/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/type b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/type new file mode 100644 index 00000000000..1780f9f44ef --- /dev/null +++ b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/speech-to-phrase/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/discovery b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/discovery new file mode 100644 index 00000000000..e69de29bb2d diff --git a/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/speech-to-phrase b/speech_to_phrase/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/speech-to-phrase new file mode 100644 index 00000000000..e69de29bb2d diff --git a/speech_to_phrase/translations/en.yaml b/speech_to_phrase/translations/en.yaml new file mode 100644 index 00000000000..31c8cf2c313 --- /dev/null +++ b/speech_to_phrase/translations/en.yaml @@ -0,0 +1,8 @@ +--- +configuration: + debug_logging: + name: Debug logging + description: >- + Enable debug logging. +network: + 10300/tcp: speech-to-phrase Wyoming Protocol From 8838da530eb308ad8316ddbceb8b30d561bf14a1 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Tue, 11 Feb 2025 13:53:18 -0600 Subject: [PATCH 151/346] Update logo (#3925) --- speech_to_phrase/DOCS.md | 12 ++++++++++++ speech_to_phrase/config.yaml | 2 +- speech_to_phrase/logo.png | Bin 30984 -> 68107 bytes 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/speech_to_phrase/DOCS.md b/speech_to_phrase/DOCS.md index b498b5d94a5..252af1dabf9 100644 --- a/speech_to_phrase/DOCS.md +++ b/speech_to_phrase/DOCS.md @@ -30,6 +30,17 @@ for more information. - [Spanish (Español)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/spanish.md) - [Italian (Italiano)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/italian.md) +### Custom sentences + +You can add [custom sentences][] to `/share/speech-to-phrase/custom_sentences//sentences.yaml` where `` is: + +* `en` - English +* `fr` - French +* `de` - German +* `nl` - Dutch +* `es` - Spanish +* `it` - Italian + ## Support Got questions? @@ -50,3 +61,4 @@ In case you've found an bug, please [open an issue on our GitHub][issue]. [sentence trigger]: https://www.home-assistant.io/docs/automation/trigger/#sentence-trigger [exposed]: https://www.home-assistant.io/voice_control/voice_remote_expose_devices/ +[custom sentences]: https://github.com/OHF-voice/speech-to-phrase?tab=readme-ov-file#custom-sentences diff --git a/speech_to_phrase/config.yaml b/speech_to_phrase/config.yaml index 3a5563b1e80..e9d2ce22f46 100644 --- a/speech_to_phrase/config.yaml +++ b/speech_to_phrase/config.yaml @@ -1,7 +1,7 @@ --- version: 1.1.0 slug: speech-to-phrase -name: speech-to-phrase +name: Speech-to-Phrase description: Fast and personalized local speech-to-text url: http://github.com/OHF-voice/speech-to-phrase arch: diff --git a/speech_to_phrase/logo.png b/speech_to_phrase/logo.png index ef906dc0f1469e5be300d46eec5295418657e658..e7365175548b82b907fa752acc534483879826a6 100644 GIT binary patch literal 68107 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

L@oe>SnbhcLTO=2fr<2Q9Egk306T+2YI> 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 Date: Tue, 11 Feb 2025 20:59:07 +0100 Subject: [PATCH 152/346] [ImgBot] Optimize images (#3926) *Total -- 191.67kb -> 126.28kb (34.11%) /piper/logo.png -- 8.37kb -> 3.42kb (59.19%) /speech_to_phrase/logo.png -- 66.51kb -> 31.69kb (52.35%) /speech_to_phrase/icon.png -- 4.86kb -> 2.55kb (47.57%) /whisper/logo.png -- 28.88kb -> 16.64kb (42.4%) /whisper/icon.png -- 12.82kb -> 8.20kb (36.01%) /piper/icon.png -- 2.24kb -> 1.72kb (23.11%) /openthread_border_router/logo.png -- 67.98kb -> 62.07kb (8.71%) Signed-off-by: ImgBotApp Co-authored-by: ImgBotApp --- openthread_border_router/logo.png | Bin 69616 -> 63555 bytes piper/icon.png | Bin 2293 -> 1763 bytes piper/logo.png | Bin 8573 -> 3499 bytes speech_to_phrase/icon.png | Bin 4980 -> 2611 bytes speech_to_phrase/logo.png | Bin 68107 -> 32452 bytes whisper/icon.png | Bin 13123 -> 8397 bytes whisper/logo.png | Bin 29578 -> 17036 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/openthread_border_router/logo.png b/openthread_border_router/logo.png index 63b2611bc9f748510ae852beec2bec0cc35fd3f6..c80bce24065d6301345c5392a89f56830ef03a5f 100644 GIT binary patch literal 63555 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 z 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 A3IG5A literal 69616 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 z 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�--johB>7Jy7$`=(ca z_>%AjL%+p<)LoCJqQ$)lEncVjUDXi>P0>^^quI1xqGLSFWDZ#p7cJOn+Ru6UZeXc4J<%G zmR#-(JA1M2xM{7>c}!qlbc9#j-$&;Spf`nSuk z-&#>KY*uPlv+_`WNN-k9(eNuS-$)L@yF8$Kt~V_%2MbImQ&5e&=4&Bxe{JXZZh!-b zfiI)sf$-{Iu4br4;#tsiIW&pRZIVPk2OFp>=IF?e34*~>6;eq8P>?K}`Qs!UfbZ@W zhWD_;L`3ZAD{5%9Epk;pn5%fpl*ND?Z>!Ze*z%uop33#{`7b55h0b!jyEQe8HaOg} znwlw!e{$MN{Zxo?;!pr`2SF$A_#*A)BWKhSf;m2Wei^k}iguBJEYRvfT$}ddSTn;M z1w6t{X9^MTI;|uwZ{(qW5muWVjSw0VR{M&vU|w@9Mte=`^`zT3Ixe`Z4+dEu+f3oc2W)!QvMB{{3tcRl>UXs62HQVv{$*H+pxw1wwN)ltTDdSxKg;7z3T}u58v>Up* zVV1oxoM z5pG}}?W!CbRb-a(C@jc}9h9t`IFEXh)*}v#ZcopDu+lU_<2EinX5)AsuQctC&G8~Ws(gXb@om}i%D4xk-`j7hD9z-?2DVs` zzMh~=0Dadk5OaFanLaSbQL&)M_E|BgXxK+vXk1gSC`uNQuV_kfi#HX%*(=dZ4K_9V zMK}*xsc35a(>Fp^WjXymXr&rAnkKNAHUQcE`NPjV&pEW&q5BCm$sX4X+0di*VHk_F z@Y3Crf9Sc~0(ns+1<@f=0+r5ye~PZX)FbMbT8T}Fw~AjoP~)0-_@I^h&wHF#4>_59 z7GzcCMdZ!YgLLpU-_4!B!N~b`0tiwx^lo`6B)=$aZkAXeMIzCC82vTw-VRryu%KNS zzQ0p8uu9+EdcQ60OWQHLze;=LvwY+bS=Hl|={loa?9_DOTJ5yZI3mlxYo9}eUuw__bOSsUXUsa%%RH|2im=sR< z)$9ka*l|*gSEiC{Oqr?HNTw}W`!fsck$F!2_WH>j?VsoxeKxsth{L?TXUs=Dl_&hC!q17k$i=dOvMzz4AMpVXWJ@E`)k!Hho1t_Cg)M07|?(XZN zvPN~$dStGA#{#>}p%KXZPw!_W{#!qY4*}YBbTQItF3IW5xoKx!usPSMxdttQqdTbwEqQ|13(joD1ixj#e4qvMIaA z>iFN(`up4?9xNe3jVVLvq_Pdzx0uXgi-hD=D!CW1DVy*02p%Ob*B!>^6%-b#1I)=p zl3$a@Zgn$afD^tdZ#l3(WtT9r<`1&8r4{QG-zR33gE}@_rbp{pS;RBSh0ah=hMRQw z3CiYOUGaNDk~T|?moMeB1DjUnukbqCJ43?$W(GMZYn%G1_O#ijfTVZBM;d4l?&&!* zPQ}_?MkMW#E_kcmf9#>*ER+BQUNY)R$)K15Z&3VdT)ovNoJwtBg2;{=s{ra7g#N_` zR80zv55wZR+h0q7T`mGpsltQbw&T|=#OGzHIKuJ-4ziHObrX%eN`-u-_+Iv{#;9NW z)zS|ai03mp_o9^DtIVk(1_o!FHp|`F8cfEU#Wdma^0KQgS}8OmWAp@4*);u+1mDl_ zNlwqqNT8j9Rs@LFxJQ5#$Y(+X*Pq_q=UvEMNT*Dfa&^MTI{7YS}SKbo$Q>nabEz{ z?P0-4p9d1Pf!7j&T;-M`BlQ_y%ljoIqlfS9BMXI+X_XIdtOld$2^VpBgQyOU8;q6524OS3w1 z+Mv6WT{!?{EFo90B~K2{!)$<*DQUHA!TVOYK3#rc%^rDadAjpK>G|`Ip=iukPl7i< zn`Cr@8X=U+c9t$ry3DO>v*780IHmcNnerq!pKa%CT^6C7X$nlAf%=MMhEw%0{E8f%j zrPAZL%N5Rt+evmOoL6)eHOn7_PpjcNDY5$PT>@95Lvs%ynnSL-HI~op0D}1>IDZM6 z#Yo+;ElRLXSNqyca&`JTWN`bN7ZB+FVu|v2n{nI}IT;%EHAIGxhI~CCeRN-QJg7q= zZSAc2_Z$*JpGPOAm7tv#KWpyO8k_LRM7*BAgr;pYVR)U`QN{DE`SmxNrbUC0f__H} zZJgcn{mTvmRZ6$RL&qV!-corcP)Y9ccn8`8a5z|ZR}TpeG4WhHyGbpH*h!&@>!KIF zRNm;8utn6$W2;7$BacYrzBx-LO&61`%J8(7wJX$9de9&pR(V>MnMfFk6O9BZEoA-6=~w_ReGKliXC)sd7}e<~ZFpq;QBjrB$UPEa8}j1?S|_P4 zH?qa1EG1AMk_YiDE*?b*vv$uu9C(020Un?l%Y!4zsTM-) zBa*g-%KMoMCmDCHfBNt_BkOFa(Bn;(xq!L<@@7)w8fbMC$yjXHb-9ooK{ z`q6f@tI^(Roz^Uxc`Q%h&$cx3<*7FOSLe&$k%42@zeBR_kE^|NatJVbxdi6~)pA~d z1f&Jk;(FDA7ibt$JED1LB!K$a@JkgTVAE%0ELx)73EUp*?~rg=SLvR1TU=b^KTiwU zn?*s)7FLW^#v2S-den6jwX&G*ITRRX&+5LtHPk$H4NY9c=Tk-yKF#v<@kBxi=XE=^ zpAiBbUT~R8OI?lh4TCmgr!z5uv7y?76?|>E*laTnW*fe^Ety7nS^VaNx4c7-?ydY)up`Kq1MZL)RMW z>UpJZ69aR{2Dc7u43Ehf85v)*(Ki}>G*oH|+}-s65*`R3C0xJz`euVVA}VEHTQ^&~ zo5{opzGOqsivpi~{6cYsP(sBBL~QtCUK3Illiq*waN9sUtp+C!V3>s0TH3184vIFQ zWOtI!W$iU!B_Kg3Cu<1UJfxY`;RJF|w&k(s)6;o3vL7jL7dr|Z4nFT}7LScvChuqW z?py5SR8&@u4^7v$g9rI01^xb%o3B9EDlgSHhW6Rwv^3bkRin#0@#?b#JH**{*;}I@ z?Yij1cQMbsODFS@iDY-4qpb>t>!tN2MiOR_KKZYs7Ujt?eQ2+K{&0BsyGyaUDA(LQ zm$>(MF)@chfq}F^=k92P+}wnjawc?7V`8Q_IbvvDpyC{|@wwnfoZ0RY5e2E)tx!uv9nAg#I`4s;%JOSm`p7Ur-v4M)3iqvUXhk9C<4*fHA zgR#37lLbv!cVA1fXt{KSD<^xf9Do}vcfL3u(7!RWApf6B-22iZh%?J=Pw6&;)P3h5 z+^dfNesWS;#CKurG2b75g@F+yHTdS=Ur!VU-G#uh_*x`lQyb`{`udK`tsLy_-=qC? z{_e9B(7Bxs;rjMDYE)4X1HoP71HRv4NCv%=K>c+L`m`<;508u-bVchS-@y#`ni2Od zJO9d2`s)kEJ`evo{nvl~{s-;JUyY*vapnd2Um08fIHMw#a_4mZx+Lk29oXXM$iu{X0#FZoKfL+uVPGJlTBb7lEeh!z`X6(TCnZ5cgXkLRn~#gD z3znU&;}dq=$FnCj8hXURm;wEbM>lkIv{6F2U&JY}b-X?~mleO_XXM`LDA}2ilX>yt z`Oj35B`ER#orhJ339$8X%Z#3 zgz>;6O89+9YmTf#IP(b4{qgkbz#t&1=<09P%kaDp3#4pcv*nb`{Y25p&5K-<@j%}0 z=&7XHPU!t-UQr->M#;dykci7|{WxSou8;&TpxxMbQ0$AY?$+YsX6~nVk*1dnGIn-$ z4*UHH`6vZi|GfETNV{Q~Dq0jRq^GBcOQZ19ES!QzSv%Q|b?a~`-4}CT!0dNx+ic6Q z`Cji%uq_8sKoqy#IIS>A$jM%Ga%WNiKjc_z);BLn^UANmOD|uFvMK#N4-(R8>tQUbdfX^_Wy+26Yzf(nEwoGZI%Vwt zEYj)&clR4guA1uLNbyXk`VM9meMLp(A*+or0bgHK=`X`E8`d1O4o~cJgXtx673Rxs za)Zu0NFI3lB}-A(9r3NgH(Q@5@7=!Sa$nt?w85FLbh5@Lj~vc$i5Oq`{KiD-W~OJ_ zaPk|4q%Q{1^NY^;IcR;H$Bi0W;XV5gR7sMVOi{Hk%V}u0L1`39$$va*sz`}=^8S8W z2S4sOji0^x{l*l|V$`wPwN*7#nL@7>-#(|k-2B0pt?1_@@+agpA&5nP}_JEs_?mw(%3KlBn z6Abm*WjN`h2NADIs<)Dowcmsd3QFOEB+`oZ{yDPije__I1!YBX8-qoi|JW)7NSQ5{ zS54%N`YuZ{Geur0m35YL*)zCdiuz{e<)y1Nc-=~6->Z5X`74=vY<>gvQNVt3p@Jh{ zdIJ5(+~{Q2HXgz0ckjr^2`9io)Mw+r-z>8fpPX>IK`NGuYOP!$)C`=p{R;L%jrSSVv|siQMGJgiIkG=_tVi~9;R zbbLe@ALG1Z&0)?pQeSp7`0|gX<$gMt5pV8Z|I7coK<`1?s{JBJ6FH6MI||7w92^`} zU0q%C6&iO&C-76 zrb!&oXJ3S?G~FB?#o=@Y?>8%c`|qC;*sXqoV>FQ1^m%wTpV4JLY7p@Bvb>Jxi=B7_ ziC4mJ^YNTEG#n}_AvLM1zA9**V^=yEFv~a9yR|yOiv2?dxtwvo^QqrpX_14+#xkYEELj|jJ1Fw^!fyl~1 zljQ=w({UGRh*a{$^kUAYQKlSqd=&6n&b7V%?@rhZ(bqNYP(PgXPv#^Fj#cQXzpQO+ zG}80sOEc6p>~@C-hAuK~#5W)jilbv-{`Kks|CxEm zi*E>u|Cl+mRGxx2LMII1!*nUJ$eYrnV8_s<(lkwnJ`Qeb{f%2qB@ZuuvrJ^i($c5;BqcKT+; z65QGNaS%MM*PodE_K~;H?{g9)B&6D(muH=rq|+g|NY(7cDF5rNH6sOEnde*S>FvA& z6Md4Kiy-p(3%~CeEpfx)%g0$AA61<~L?gb+4A3X-CnX^zBxrnlltr1ulav}8SrL?4 z+^D4{FHfgmQU3e|?sI)*Wkt%3`92wHYWhOgr_()yT|ZWqm)8$=x0wdp$LIu-%@z#} z4K3fiXIxTJ`WZk-NVp?DhblJ5j~k`(E>et@ z;-);8m1ItBr9|6|M@>all~97bzjSyw92wJBUO`JKN?t=HMrfHawoUJ%;ca|_S9)SH zwE2rD)yDk{jrpvsb;E*^QF2^%Mb=R?<}yotEh*VLkKne?#H~7$Sf89)Rg|#H3Rej* zP7hC?j7)5}PESt9hO4ZHdgLUvS!sD_S=!1tj!(r;O_{9Lrmj%dySqQo(3sQfzR5Us zz@EroUtjN;nVOjnj}&TO-JF-S5~3a*(QwiD=ElZu{RvAq z@;=6jH_|g>|CHRzn&Ni&izLIGMaNWEx5d`RPQC#u&?Ycurdv{-R{RRlcTomkNDkqL zD2&LpoduNT<)P)yJV1O+QC-Kyy`Pb2|1(3zzEg)H7w@JjH;aN{k+n18yuUanrF+S0vP zrB?gkT@1XL>hcWo6GO*wc;In)b$%au0mFur5k_5g?d9bq$_LK6YRrCtfoU?mX*!yBiD5!1fzoq0Z6nS_C_D(&3+Dg5DK) zUu41BHohd0EnL?pB*jJ{G~E4UqZQ@$qCTg1@$?JMA-C?O^VeFMwWbx38|JL6|U2a>?ex5Ww(uXcqCV$C@x7uL&$7r$B-#xk(@7K9`FGpGJ`(0ffKfv6H~** zMbx1|ytg4s5^_~qpI`p%(O^Fee>mB$o42dMA-PyT1NQu^9k$W<_#ffY*DLeB@8Who zn1m%-w6{(qLH+B4$oZqD<8e!pbrc^L2lojfXkaqk{4)mDU?EeiLgaTm_Bl?t z8taY<<<2LW$_n4;Gka2P#1><#52C_pVql^ulRW#_yVAklwvv$9WBEvD>6s*kGmm^6 zkFi@$fjWu?64F`dEs~PYF_yaR#c+EN=-uj(ol~5m+@1fLQP?+_gxRvdD}6*oQ&W?7 zdi;2H55{0-p%+J_KQ|o=e816IuzSCIMP7~|I&{@D{CN4B4CM?O7w3Lbk2~G1Ypu}t zMh?aaW^}3sy|S!e#At!|Cx1#mX({O~{sQU#zIx5sS)Uac5)QS|h-#7=W~P10}r z2bHbVM7Ml)!`=>Q@z*53U^5flTG{EL4co+YU7td*GPsIhG+UfDgP0 zA#lS+XNt{-ohcGwW-lZ3I=T(JOCz--Dw70@JOgLt4+mz1COXF1Ob^Rne*VnZsnIXvt+N|Gr zJ|92k^E+ObCLE*i%A_2jV>r0qTvIVqu*@JMCvZ6GA0dV}Qd3jIf`J`KE(_SXho{W0 zJ&ea0#@7|-V0PkVi0x&tW?(QSBJ!vk?5u@R^DASroBj+LO~+JgXk=?gCUnUrJH5KY z>QT>MtQsjRDpH0WW`-V)&F7VdHO{ob_`eu`vF>_oo9zAPq60G{`B`~~e1rx)%>b-d zvcJ35hGk1)c_?ms+ozEP%RV$XvB9g%D?L5Bxoy;YwDTK}^jUanqO=XbWRz4@yD{YO z3h2!||KVXYLntG~^oenDp2rttl&NOY6}*%R4#qT_>Y?Jp$7bH85VvF26ACkp$52<7 zmyZDJ8-3&oS+w(mbTa3LotF= zGJmah+1w`j(2!myLmY>}_7w;hwPwZL7*oXu)(sgO@MrHoLsGs#L6)AaGuyDU5yjlw z+b=P0u^FFzMEdaIBZkkFnC_eTkm>M=pF*#dc`e(KXS!hg);>^y#d6R)!g8_%GSgeZ zIw$K>UO6H(EOS6WNXRYT<&a@B**2);KVxulCV(n0U*;j7)qhRz{$+KU-{b0JDx)_V z+tqeXs1^Bpe*!Z?(ha5acln$fPRP&1M96LgjEDQUFL&kOVCv!uDw5_y0t+YQ_E_#S zDO-2XOi$Mnp2@wb*peU`VjCM9v5T*=hSMuMox!Sr#MnJu>_hKSb00nZySJYxa>RGN zd1_qyt$eGmrfJj=D8SptGz#YI}(slBo|-6M+&|CGYQARrYp!t zu_vM(A_%lEa#+zJ6Yalpm>CaoQx|o@lEniC)KBW>QG?Mtns=x&9mH1!>>D<=wx^7& z%tuB99D+E$z%RlAF2~PX26s&4M`uS^0r(sX6AWKUy)!eluM~wwHIbrBPa?AXzg=HP z;0+|td7K=sc>#NSSf|n$>gkn^dwz)`_4M&WKH!#{XB~PkXeDOmW`GLX``1(F+5^b} z{6d$RQFWi$4r_LpTz9KGy{^0mm~kH`m`r@&r}_Cy(PG+B(>N7WbgOhc6@KIUfuGN1 zIxrrdE#u*4jcBy`fPvAUp#}DRDOcsRb!IM#BHcQ2e!$> z=6cefiVZ#3UzOT)Q!PmWxJ!}IZbwp}RDwb0#O7fk@W4;nK#y(y=-#!9Fr`6QNj!g#Or}#;Ox>nJRB*&}UMzTcHh_e7Ur@d>5sUXO( zUZ=DQhui$O1F?ESRyP0gmm#yy(mU$6_LpA5+o?$D$l)p@K;7eJ&|Uh10n3l%l21C} z%rJ|C*!dNw?@FSdW%xx|9C#jOktCqn;u*w>UIU$pu8L>UaLWAxW@zyn( zKlgKuvg#VO8f-hQIUgbPZn@NYl$%`z6BriVc|YdYF*imNedcJC(&5!L z(>Y;wIJ#AId5+Te+JSAbT%s$HF;`D|+6GsX?kmyC;S$o-0>8~}m!$>fEGqgo9*^Pm zcZbINo+A!mM|L$I^GDO%L=n5#<*kR{x?Wu}5HY&;O|6JxH94)1`XNc2%v9JT%7S4N ziEL&AWnsc;TFbT=w40Du`>RKp7Ee)YpmUwFNryJTcVuR>Ja?rJF*3&Iduy9eTg|=- zSHZ&>fZ8xDdtxHT@VV^=c-;3yb8xT^RHWGr^^j)`mF5lh^z<|`p1db37u{)RwSHZ3 z7P6pS7Zo?0M@P(YUiSRoAy0}`M6Usc9Ui?F;R|Ma11At{@*l5e&_MI9NS%?$FFKQI6GOWBy0r3v2Jxk!VbH#JfUMhH*vwa|mCMmfv zSo~*l{%89S82jTr{x6Ip&G)7;Gv+a%KF$NpVeX5f=i5{b=nL`(6 z*P6!a{Sz{>kL`t2&-4U)#}jY;FfG%NHuCceP8Vk<)LDGM-$_%W&QfJ{7N|fSKx0VGED@=y-?DM} zlTG#Sc_Xku5h>CB3@lv?u$!Z%p%lTn686cX*6Pj^k0M5Os*UL_3ZAM6I0aG}X1 z_Zq;Ree7XcV_uRT`x3f8J!1Ekx4CrJO-fg%*Qpz z$W=QA%_}9x$0w>%;jdFNA(NM2bHlg15%j#kzhNepY*Gffom)h{n%st@{$>|O0VLlpeH)vn+ zGvN(dm2ywYI4;S1Cu}5%iJHi~H@ipt;R^?H9bAsP=c=n(7hgLfDvchD==q#tsY~u3 zbebGyGni?<7B)Jbw3#_~*K@MKvNdiTQ${C)v?DuAlxEdR{B&m2VQv_gGESp2Jpa>a z5_tSvx>;RC&6Q~l)nu5RZ10j(#QTv*LqSei!t%9yu4E2^7*S`y#{eaI-WKJ za@8i9NXZ7?!! znFihnycglJQeFfV5R(lN@o;J`V`y|Ap8svbu_x-vTax@PzePo!}NvwGRzx&GjAihC*vAZvi#n- z2HqiSfcR@`xxO~fRhaJ6Epr|ipr>bZbkt#EbM%zR6k3t1WJz6G*=hQ+y2%J7<@*C0 zsGHJaZ2j04-bol|=rU57Ce9&;_u3@6EqroCIO>+~sxUP&f zQ%lPz|M)mllcSgT1gOqDB+&y}8Gil)GgPN5Z2?bgrc~KW#~M02#>Z_t5^DInGvs)s zEi$r2r$v=tgiIB{oxL#WU&D^q|-wH)2;MtnFmdX?1R{G9C#z8f zMDt>3v+5D9`EGvF-hs%p;jiDw1>zcNRMSdQWpB3}D9&QHyo#mRbMdwe(I3WzHy#V_ z6cQKd)#KN>~w~ZOfhl1Go<6JEU7(Bo9OQE zCmSE>?POpkqid);NjC_2$>uIXMPvImgox*lrd3h&v*aR4l2a*0S-qUb%BYU&$_HM& z99)J8B_++@PZ^zPKH58+Oo~V2$VP_6|J>p=Twm|Vn`o@=oN9OYSy_pBq0Ij_ER=7) z*#boj1!dyK?;szQD;$f>J~my1Tf*&x6_=dHM`XLDSKTunu5O>OV*m!#y)jM%SPQE~k+6SMCdS*4nz z<2QFMt;5+2`vK`;3xvIh{fQ=sJ98jmm;u^k$k=pnb^ z`1p91DmxQarR?$G!=ZZb0KSp2u?n5biyqe1DZk;}*$jHcC zzhB>=$R=??08F*=O1fJm?ma%c&2XJEHp5;~{#&bh!aaQh3kx2|>8uqC1-D5<+j7<+ zGnK4+q&2;Vn}?QGW3B3v<0+<6dS|dY39tP*w5!Bf>WQi=31++nhsFACl@&k?wqu;l zp8Ne8Dbk+V$HOoGIZ&u{_J}X>QBiu{OgMz>NT6pdgZILvMp+^tKvLf}RzX%-7B=wv z_iq61-9>U4!2Qv;#ds8VdX_1EeCM;_LN7<@Z9OVR;#yl!WY&)^9ODePMk;^h=U01B zFI{J4^!lOX0kYkAQdLDI&du2cCE`#D9etlYk`fxL>sN`ToZJi5@5n#nS4Z5^$|0hl zopG3E1K&hQ@!>(5G041w&g3N>wXqQpmi?|Jm^cp!6?`(El4OdU1SQ-Eg>=&xmR-4T8D!tlP_FVrk9*$IkW&E7oh{Un2%Alex)LY311RksTh8oKAI~a ztZ8zeo#p+=92qvB=l$q{iivp`$89FKql1zqx*uQt*Zofv?cQqFL^`qwJSW^nc*;gx zPd6-6X@t5mN;`WbBr9{=G{5Mk)w%8kG;siKYTLZXk}W>n)Q&*CJaH4!VyPJ^EOV(Z zjYMqRL~o)L*OyfFg~6|LD3@B9!6EY+EF~VfM$HWOFipB-OuFQ6TAjFx$>Tz|MP-LW zu;;^_YW!fiKo;C@yZ;0p7h;^hN`6$Cr^H`XN2C6BmSj*Er6SZ(9%DV#YgeqMyyAs7 z8?8#|FvG_ z92KtomlW==?LdHZ2p*slR}9dy7Cli+NGt$fL_v*(C^7Qzp$ve%Oo}NhPrQBqmV=go zoxR}Z;Dq!kU(d{h71s#f*m19;x6tP@y{k&ayHI=Zn8MA@u54MirG^=RPU!J~2Fe4) zE8V5vgcZjcPQ}H=xqJkaOBHk>negBvVGs$oN2H&hACa=^!C z+E)#wFLSIX;)t#?+`zJhh+wb1NbSNIE%VQIAQ~AKiXCoI;{a|K0Z)`Fkog_ z0sc}NLd;j)+26X-?-!BXI9ddqj0neEOJ$xo5#x!Bj@G21r{$53ASFh5`rTXf!}sq# zygkoDs-l)HpY2`Q!QzmvZfEmNDk)4taIr(4kdugpIlCvdt#Gg2xNa|pRhET?g%Kxu z-|kcv?2HjxwX9O-<>%+Oa?hZCrL-4QSBh|h2LQgNX?Aw83by)=FcB129u#KIFD?RJoNw{oSOspWz zs1&5PK#-c~wmi0szeh?oewfd2(@YeT_?+$4TjwVMIsv+_=1pIlFOUETwkR277?6-9>urc9yUV}Lw|WgBTu_kJ+vsb5X=n1ZU=NTtQeXElwnMa@d*9I*>m>IVYGmkXs zWYfjSFD^QztymuKlu^kh-lnV2D%CB$z0u`%-Tb3SwGw4PtAr z{%ocqxqyG{f=oyPeYvE5SW-{KL^t1Wc!}DKb@!u}J zX?1>~1$hnL>M)N{44Pmz_s!0VkMvCd404oi!AgY;o7Gt3h>e{pdvOQG@3K9#MnjXP z>(d~lZ2uIt1L6X77+mw?kXwe#kPke<Q(5f1sF6D^-V0nrt;J5XkxbIL1=tuD&M#2NgWf znhR#NMIYXT9Ro8M;fIGKBNKDo#dCPBBq}=bVQw4C0^$wA@YP$S7E!I*(5DkiB-I)! zq0rgiLnc3K+sK2=8cUklbU&>I0#(55?AT=t!2AIqM*rm(N&~|?8X6{gDy`X~Ov+IM zhenC=$_cC{DoNtdtA4S$BcwOTA|jZ6uHqx5d-ejTHD@B(!JQEI-9NucB>)^f)8s)% z5qrDg#AThXEwD8_mtoRW2 z6^j5P4BAb8(uvVU4g#>Ly+oeqYp3rp8bkfpCZT@|7D*nUV3B-yaPwLyVzGjC%p|!03Uyai zH4$<0V1Hk&UF@4Z@jfeqIMJcru9G3JE`rDE05%7`Hg8^0?F=SHl+@bg7=E0YdUQtm zlmr5BAe?FQXaF^nGU7fqAEV&g#QP(pb5j9|;_}T$d=PX|HJQUBg>vk*I}{}|v#=a~ zu0rSLr8ikHImHYv`uQ9$H!)F3LFLo!mhS-_0SFM5RPFHG9eG*TMtzDJHC{(L7D=sY z_=9Crb=ZH#_jv6n=qi^6OS-4p%~d2WCeC(eXM3N+Q!baqkc%(TAU@9a8}{V1CGSHlKBF52=*) z$j-7jM;hCXF97eSRb$J^C^JNVUo5(V4|3Qx5fDvJ*v?WGZ5jRa1+%%xY*?#$TztEx z1OXO4hw+;l?SvTYl4I9oE}JbB0EkqM^G8?lu`KbYkSaQrb8c}v81=jd}m!?Wl=hNVT((kL8_V{g;t=F^JpLeluK??ULk4ezBNGo%o&gbK8 zXirS}-Ow>GFvPUsC0TUH3TN&j?U{7^?p1GhJ{o?cT9XewBqm=Aa5GhR;rstt%~322CfDq$RW&;2AP?xD7W)xl+vGa3X~<$5`)ZeiLkkZMr;%$KaukM z=@mV=VRzqI59+Or=dl8&TMX*}v9Tx9v!ZWmxSzl8fa#lFLMIj<>y*u7&v{rt*rfeu zKfcJ@Efh9*1dtgz*^-9e4)5w*ToYguGyfhRw+zkl zs4c9dTqz5g580!2nb%4e%b2Y+7*W4M+y)F}8M>1;RO)p|J4^efGW-DT8Y+RXgH#@U z@K8}viQEI;eaVW}$XXbP3EUk{Q**dPp+- zW7(X(iI z{Btdfaj6LDJ3=Rl+OyDK)M(;0PtwvJZDnGjS6NVjMNSs)viMB5)AjX84^XI(FqF_m zN~l#Lj#pOXa?1m${buoo%pzhPZ$g0Oy0Wthwga(q$#**={>+;=|Gs>D* zWRs^;O#a*tI{N*2h^AI9>TC1j7eJ_W&=DBFl#htm>~ksDgUn7&zA}H#`j`{lEoJ1k z4G5s%_d#=3Wr2|l>kq4oow0mShkt9V9=-L;O|B>GYTyjO+1S3v0;1SdR6T~cM|#m3?TY>hWKkqNg68@ z6j2n5ilF#9(Hy{gPctlUHGfUm&DUG4-<=;1P!Nv;ILLe6EUsVQqYErz8XG;T8lBje zk4`k_W*gohW00`9?w;3>>2=amg%}hdG?|zj`#4DX5gu%nj)r>?7D74@JFv%N%fCr@ zW1*Y7e^EahPZfjh#L_LW{RLp_)79-E1-t8? zqaS&)G^G8>;F_@KAwV~13Ha!J3mA|Vdq-RnGEq1hKiCDNVIcrk@LXpwMIK$e0Q3%I zMjX2aW-M(lak@8ml$F(xQMcU;GDhA2c@s0ntCX9_fIRiU+VeW={oNvIY3UbIO_C8o zx1NF_p|`(t%WTp8g0&To`pm3!V`zE0dJgZ513jNNW3Au|E1L~8`d8O2vv zkCR8>;{4cePcbo(VlT3P-7_>#gjMf+K8J^-` zVk4}s&JDY+pB1tw4~q8{g-VOFSdlKgv}&kI8bCj=c=OBq=UjpbZi;D$qCB(mVR3%` z+llJ7#-N}A6Ki8*^QOUKztsh#phpjkGwH^2o_oTC#6wb&K8~A`K8kLxs*vx_X#8{JqDEO7(`Hu-eRr4xqC^)~{ zQ``Q%OUO?De09TMd~6I=-Srs_c>YPi^^MA<%aqFU)6&pz-vmr-HBCj;iKYKn)?0@~)wTcPkIAEmC>;VSB`w_`Asx~& zlz{Yrbc2e3NDSRD(hVY=qtYEi5254?F?7eAh>%l z=3=;bB<^rx=&m_;Qn>%Z*!~~rqu+Uq5O3JKUOz8^`cpXlt*Udj8>HUB2)Ak)uPLjdFJD9PqI^Deur{uSq)xeYQ;#LWRLZ7UCt*WiTxA;uwvfWDv z>Xnpyixa%t-UOc?eR~YFXkuEtyy}Ll<(o@t=ePEbU;TRb>3!RxI$SIt)AF}e^}v}Y zMJ2^ec=v^R;KKO8fIO0CWSQR|=5ua5W8ic_p0eiVqD> zd>X17?`$Bs%P7pW&mazdz#nvlBbHKxRfWL;aD}E*o*Mva;K1ur|34H1iFlGp~(t z*L~e-CEryr^>lG|b`t06n;4uA#az18J}(NK9@s1mpZUCyCTx(BkU*M3Mwa+~&%`n7 zZQY2y2R*>3T0sV~jVu5Q7`%l6YQ)(~q_NGEt`CqAF{(KuJI^ke(LIxL4XrbC?hR z$~!;4Jhb&UE}Nldf9kTs2Rhz-01#CUGQ;T3R~@UZfyBtX{kuYE{qnAtpUVQl)8lDJ zj#)eoc|w}uURo@ho;Wf3H>Shfa3oiQffb5N&k64{%WrAIc+gF1#^E?wIE%;SrilhS zaRLk?tE4_Q?*6G^VMVZn$THUe>;S5&N4%vO&u->iY|CfeQ9~w3pL(S!Ho4w^_*Y?p zzTIuN5gvWR>6@u35d9c0g!sQd0Qd1g3ofg7L&#gq(ZVTi{@@rC02j_b7Uj2nu4f!n zzBlssw{Q=7WaHnxW<44iQ5_#uapxve*&(D zYlGWL=-$5d(1nJHF7Rz%|F2c{n(xUITSv~4;?m}6q{U8Tq^NOceN}FqfB}%l+m=At z**RzusAB8*esd%(Tqf8;ted|9rBA7&W&XnM+3-Vp`N3p<&l?S7nS7O#30#*bnv6W{ zV%@uDHH?A|TbnsHb3Q(E9@vu=d_wh#7;v&#@FxUMglAT5HG^I0{r2YKuT?B}qC1oOD?cu?JgX035U+WF6X~zM%vYzs?GTY&a z2C%DrE3IB`tf^6jtA9bBm(>@div?f?$#8hF^FI;q->hxe{|G2SRXmr`zB0rMRXsf;~YU3qQ{jk>bnV+iLRB^^@i2z zJrR}T7l`5Eq5}2yEi4=Nmy&`m7vTMQ^I3-y;{e1W%|}Bq*!d(371BOBHNCXv2uc$j z3!K%Ivy~BL{(O2h*OlzAX8`9NFfP*N`)1xx?NLxh8lLiumNNq(%PRg&CNN>)W8!;9 z`Nd!8<%z@>f;@{GY01exh4zv@lCiB#0+(ksUeI_BX0{FX1{f9QOA#5gRIcs&kCBli z?$&N`y=b^+mOs(LNYAtcIQ~kdWU|R1hK9kz=c(mP!v@*#TEaQ%44Es4hKa|n(qdj2 zP#0oZI9OP=HA|O<)c^4ovcs5?{X!bRK5Icx?|iwR)2PE{OC&W zDSW^xO-Q(@v(ekDGb-abX6|5P(t}R89=Bh;F00?QS7oF4?{hG!{*5^6$$N1~eBO+2YVOui+>tjK`@ zjf+~3^XgmSR6kC&fGS=57lfQ^Nd)5cfL)YLSzI;X7B z9z~_a0cd*63@e>&RpPhNST}q7G_!mLNm!Sw!+BkB9wU74#41%)-CV{{TiZ(pvO*k2 zmHLu^ASFNFs(gJW`u?*oL0&Tf0%Xa_`?s#+y9c$S7j83fI%@0aYTM>Gfb<O(VJM?Zo5JETPLt&p}&~2OHlqRo)K) zWJ14b^|E!C?9VMF%@0ga8>07v=}0I4VcDLtn{1GhTj1W8<8}~Es!d+MXXV9YWNwM; z)lr-B%NX|(3G$CnR^lja<#BCrn6XOx!QSB!oCl#>u^%hygu;L3c2YHlTR>G5em$IEXnnrscAe*(Z-Xo;`cQmLZLCGCK7j}L>}fJ z18t|p^fa)IAs}0dy-Y(Y>bSI`%`)B{)zB!4hU$v;cL4u2)Am#itd)v;9-QYA}r2^(Q4I zCGbLDkBI!+w~Pza-2)o_&MQr(I8uB2n)^lC*|{ZiHWnNA1_Fnk6QXn26zl67BfT(^ zPLI6(#@DOBEl7&7x0R~XAJ$eMcW@Q=Pt3}CSdt}`?0qpcA}Ha5%ZMhtI-mFes7#nU zz))WQZ$s|?rp@48R);PV_5~>rpeGC;c)f6#Ng3T zVj#87tjdUUjYV{tKAmaACc7CN0a8qH34lhyM-gGcYCDtjYpntG4~^=*k=!quMHz1} zKpwL~-FmjzQIf>99S$5OlAMm%N`{H4gIVZ#l_zPWx=32mMdRz`=w!XEO`4~5j%TkO zO|S!dp^UWKtD~KSvhrhH-Ik+?;dj;$ncTkE$E%DP5I0Z`u`4U8`Q&d=5~b-%+*3wq z0Z*Fy>ey-7xQ@=DXVt}>wM9?aj(h&^JEALcR;VA5?)UG~hYIRy$Lq~+A4PqNNblf# z@af1D$RY--5%Na-1j-x5~|M25Gk4L$-dr&-a|4pBH$`CavZOx&!ZthA~Gfw(u6H zVQEN31z@wxc1a!iH`Fd}1g#nxKoAB78d<4Zk0?pS)4G;YxS>TadKo2rSI6?3=JJ;V z)Hyg=BdV%ADRLbD`KM(eA|k@Uic9}sbrMWR8M}P+{WtbEX7e{jToE~s1n~xR>%&Jt za8UesrEugb?We zs7CO-w0=-qT|KrnyW6*C5lV9I=uD<^M@Om5d5ItZpX5NdHqWRjDT|2KzfDlCrxFPcm~;1y z_OhDK|9rU}c)qe$GBaLas3i>A8iG9+r%YDX?xCixq{zXLH!3s8Mk@T9gER9t<~k<^ zbs&>F<#X1#t>FEFLM@h(-RbFdAYC=Jl{JiA{F+I8_H#joy4u=>+$J9n-Bkg}oR%FL zbyA`4XDyvxTlV7d*9ZU+9$_;O{?=w@Uw9vjnX_nRN8Pt+2;gux)wPlvoO9HpWcg#2 zko0lrAht**LRJ%E=mdW4qO;nLGbFq(b}s9$4h&WNEZ5mUL+R)4Pqo!oTv9yx&B@Zl z5$6Y0b$8`BrNfgi5H(NlB*8Errl+T806WvS8Xa9xUpzh4u(9k9A5io!sHk85%$L&; zZ>T5}y;8I9$9L!^Ff`CGDUSRGB+Hfk{rz*v*y9NfG1i%ctXB7b!YUhmHBC(yr0n4a zAt8?dA>Y(AM;>#gbHsOBhb``_L1}OAX8=;DIW@RFdF^DYxNCgcbj$azkOHw~Kw06Z znAp!*PYweBVo|DuoWobqS>swpWald`+9JJ^%V%j-;b}=lDF**&JuQGX%mTthbY=Jo z;pzS+@W5lT%3&>P3%;^8CpI7F-`50y#^$Th;EyLXlDO)tmO7KPgTalB3&h1i&JTcV z*VUHhE#O#QuXQU`5Vb5 z^scV>T=>dtuFwqF$7iACn!_0zfs)&T)_RixGh+F1Rj$#E=XG1OF-nXHi=CZn1<_mJxxs_%>>4CX}Z}SoJns*n2U}mmhWhv%%FlIQW)4|6E`0 zMLMPH>ZO7s{p7jx7O->EJsb`E?vj5^%57L`G@*TqfZ(SnRf18Qk*acHQ+)%$n69v@ z>cEMW)vA=rC1*>1E{7{B!12LEADEAEH~C0~xw7YIZ+B$I`V%1CI53iaV~Ogd+nNU6 z1_l8rEihyIC+HTRy8GrMPinr^9#z&<)s4wbvvZU^QW@yqJ~PXlNlk6WHp3?}x|T-l zH3G%?y{S+8AMH*Anou@7ZDS)n*}T>MYtN1@DJ@i(jK7y%aqDnH@a$R{iXTX;G%L7| zbBus4ru7ftp;CeTs5KiSQ^9P~{I-#~tKbfuFP{8@Z;DsmokJjPUh}-X+9<&JTNrPW z!%GPfF)>#q*I)(QwFhC{g@wYpO%Wa@YsoCo?6 zgfr!Bw_(?*sp-%V!ialxM7$0r%Hd}WPgK8>FRx{&E2@1)=xwpaDH;TB%^%)vD4;y< z%-?-&W@dJLkXqvl_GG&ng9zJ95vWlmw>r< z3sX^jyah&$*44#-De;R>Ol06DAmZg&OuH5OQPw`k0SL@BZX1=4%+U%-V=Fd{h4EU* z0mWqi(8TIE=dOve!0n9aA&E1y-G&oh=5|$8Pk%T3zx~yO!e_zmz)N^Xi|8Hao6V&S zNno7sRH0rY{#T_woYwfLx+N%RWv(2eYqjd#U^JhdWm2WkQq5yArT=)?6j+Vd#G0Fp zMSUwWf`Y`g{@`@$>tF*9ShqE}0P9|%MY=l1E3YRddid*eQQuHb=2f%{a#BkxR`T@M z+-WG`#r|ErHWjzjkD#M#$XM>_Yf8~FHT8^Rd5CJXJ|qz&RQH7%3DUy448D3{kWp%b z8MIv6s{{L~R(+%PRAjW=rjT7xm;PkNT$%&gj{zS|T)}qt#1S}bXM|{lqvAj<>Xo0@ zXKO@8wrsj-C%ujS9kjrjpwvk%Jv!U(W7*kXA=c7dz|FBxUQjU9==S6{b&;%#x*#>e z5A$>754zEbd`=Nu8+Q#xeg>ZRd5fPP4KOQrdmDA1UU5JFCH(x5zq%g?0R+f^iKft3 z{Jb+#OJy>8q6dHqW(v4#Eo#@1Lv>kg@};ky-|POe3;eP^Mfr`zt!>ub&Y&CZyc3ob zllA(>2VaQ9Xh^OfJ$#sCyCXQ*8aRoLe7{ujAV(LIC7Ns(sDPz8IA5ZK4ZThHiK70% z-VAvYzU-94=_ngAj# z#y%=L{Kk0b1EF3^r)Bg&I5LU%t1ue=>o)JGHvL-D2C|R7vAMKgH4p)$U>!JpEqj8v4Xw zM3C*&!byKbQmp?_zXYU$)vBb5vMy32#v)}PRTL+4zu>qk15m;UkJ3d{+#Jn}C+U?3GjB$}09Z6%kc!EbYFO)J(9T<7lp4wR5Q= zOvOLpK=Hcj4ONBocK1Usw-@pO0h~*k=(;0mK}v-|+cIqWLF(lA_;QA@xB2#^4ayjS zJF^0~DUp_>Y7Ns!n{HVE*7D>__Yco1F)5%f?e@MOw|~mb=x>`A)}gu*O1O!O#t4C} zMh_g$6nY+yFK?vHCT(xHHnj8_gai{t93AXs_VNjRm_KIGtH5GTE&#WA(%IQ*4wgrI z9zChT&`};2H+#SOH5`xF8KX9$PGarHU;%IDg@~|+7k5`bqKV391xS`=z zoxDHImD~Rq@4ZekL|uJK^7E1~^R-}w>P7;msGZXwFW_YugL1Mb$0x>yDLrYcRtFbO zf3o3D+qx!)_8rGS;6U#m_jE9e?Sx?kvtmpBaj}U-Cx_;ENo@#IWN8R2!hd@O*X(Wk zb6K8jH!^bjq`XCu!Te$r&a^G$aKEmg>h?L|r%wkv2dOhi%TN%Ou(sHhh&bvDlvGIN zww_nRlV7VOkj_$jix?(d7V&mJ_TrNYpy$0T&A&$FrgQy$4~~#kh%Ru|IxklETs^M0 zHQ)-r^H1KL;3TxYa0&yoFJ6e&)+iIf&_62qqjhR095Kc0km=kx8(VLQ>$fTodnGKA zVQ=vbn?MSPz4A5W93@K+hDjXJ2q*Tm%-BPy(e8Kd(Cj>GptCyO3rHR2;)`%rho-XU zmRMQ7u}a?>bXKR6yh_Lqi0Wk3@o@ zGublr-5o}9`X*8ipG$RrWODhlnh!8*nUYe2OKtID1zsT`r9d*|(^_BnH5MaIKp@>S z&K4%gTc+u3PuAEMeJebvbp$CfGTJ-ihyD3-AR<~eJz5eLpFPJtZjFyO0FGR2Vz;Ka_wEeymic;|LdG<32jGCT z1eqTSwHEN7*sMT1V|7YRRfG^3ESC%QF2|r=4h11oqF9Oau32 zffwu(miETqu4&x09=(coKrb-crOr*w&h}@54W||?Y?bvMVVlu6tFzu|?dFy1)~Tg- z4i1*yUfx6c=X;I#u4L>!6YXPTvM6^^cQHp%VQX=%y}TL|$rvA1Y|ri=n;Vb){0G!w z_MPAP`Esf4dnsU@sN=jh5Cym8J0iHBKd+yw555)boqEJuTT`{~;_U9Z;b@?uq7wN> zSdwAHxqWneUhYU+&eeQ2Gq`5rx3WI`J7->ihi4CfDn&?m0!O`cv)@Xi{4_&mz(1t zKczWZ2O(|0)>kEtO!`m81j1z9C83nutR8;q0q_eGk}YtMQ1H$zo0uCbHXr!EeA)0- zw5!z*vls)qq%kZO8DI~&<=h6ynY#JO01*sss)_I`Q^h6WFU5bK+R_@bOMz0Hq~SJ$S$>0N()Q<@3q z`T)CNPIP_o1p>b2O&9Y~aP4By%lo8dt@#d1=zZDd-nISlv)CRtQeI4GvokSM*{S6? zxmyA3)^*;hbERBldqdza^ax$W*;BiTS?|}&yzGZijB1@DA|<_gV|lmR6qS*aGX%|p zl@04Ki%bM{MnP)4dZ+`pZHQW|xkNWsoGQegk)$3^^5czM#mB#O&(YV`$lG$)427?_ zc(;@f<)d&gO2I2%pU4dxqjPVc!@%0baenM z(l0!Odm!Y~UtbRLB90t?j`tzZJ^^o)TT~$HhcD$fYJRQg)yBaE9U)w)Z*2-Ito02H zV1`#my$a0MdR-Hfy-MLud;lo1QSKhzr=X_Zzqo$G6s;g``^{qoj}E&v(q?65ovEYz z`RBprHosoZNb;zx3+m$?)zul4=*?0;T-%M7&CPpi?Gfx5t>geHb zN?rslhVJdqz|$hZih?;M<;w)7IkznTnT~Pjx;)&EYCL9+baQjdx6BVmcWyLy);#Yc zBj<_a$vklrYdIOs79{YOmFeqU4PIW0ih!ZgZQJB?yFsj!d4EWbN6mo%qki>1r|W7TsWW29ejDRMay=u^&ffkm zFxs5NmAl4x3?Uxjtlx@GJ|Ju9jA=moHq9TAg~U6ZZ8q%Vu3&^it_{tttO?jtji)iW zaBxJ2gAWN~CJuAk2O4|jHylxYoI5RqI8qsNp805Q4DZ|FFEB}ne`>qqURywfY>RfW znD5!LUZd_MQleum?Z{vki>GnJ50C2N!kcbE$^>_Ef+Us*x{Z+1J4f#3Je{P{lyv-# z{=y}3wHc27O@Ap*;Sv-%vOZq2n@0bC$&2sApRRrgGBA96LKgloqHFg1519+_q*O){ zKiQlv1v)z%Gz_0#rjIVh_6J;^pZ`(gV+^4a-!zj}X1e@0qhGgK0pr{K@Hg68%w=)U zllz&-SO~?1n3y_2WKMZbXG9ueC!qs^PAnlHX!MlGzf*S6jH*NcXsAK6=%gzhm2wE`x4cbldUYX#w8$OCFG5ZZJ7EZOhkHoFGPh$%<9`Wf``~Ly#zlKH;LFkr9C)O87(SMmFLZ2RP7HdEs&M}E1!5*u z1M%zHkFAv;i;0+%538jmntOQ(U|2H^p3w-L&s z9*$$X;pf*9F(r36+Sq6ptT{a_q7Ja(G;e|(N|25ALEWl9mDu6uQUfc&)Ge6>vE^TA zzE2U`1~cU>9Ftf}mn{iDr)F2=?fX=V*0#2oat;ZG-0F(yr~^WMo7c8IWkuzK1&1R% zh_B*jN7Q0Yzq7#?W>!g=S*@~6e$$a?>5OjZh^Zdf01U15UHmNgoxhdZ2JkCBs;yMGpocC&W^5g-ecu9<|oED0`^`tdosMQjwF zwK4qs=G4>Rd=hmPVluiVT+zzFYphW`QfS}ixou=(%H{u9c@DtDcE_9Z4a<>r^AgCZ zsqTpcS*M~T!lKDDfkQioq9l%@B;q3SiWVOYKB>oKVdc0=X20<{Me;LuU8~NA%+^UG zGqIx8>~5q7;rQe`#Pu#|KhiB6_`4W^45g#D>`pJKQwL^T0nqkl3Ur7`yOnQ^N zZUpYn%@+d2&%6hjfy9hWQ8um#(C3$@;BWvAX1{%1!}Xrc(g=n<%{yg0p>57@kI{lZ zk$v``Q-){rV%ilI9~UTEw_`b083-1*HSgS;7vzn0 z@UbD#iG`WojJSJdZL8?433fS-JtE^Cm7qnl?O($c)?7{RjW{RMJ8MN9QRS|gkGB?= z7e!7JB(QNklSDlConp@lqLXZ&&KNy@P%k1Rd~RrH=u_>ORYBM?oegBf2VoZSb)L0G zxlY>5CQXeN+QZ3#l;3*cQNMw~4}DM_|FMgu^`UQ@V9co|kL%!mmV<@G`_?p-XEjP4 z(J?^>(AwbO1a%m#fCN~&X?2;yqh9w2GJ?9#G45YlJZxV&krkJcFqh)4(kKDh`i7=R z-56SCE!nxCH^VXw!DQ#eC{QU`z>#yC{@R(K-f@>rio{$IBNm}hU72mJ~}x%Zfn z#gz7xHiMcp*RM9$Z%|BPA-!LH%S5vK#LVbZm^QnWo9bb<52GJ}01 z39@>9mMT0479#F zBEjQA&Sf<6s5kWQ1RgC0$!(A6a%ffsyZ^=(aiqxAzY9uby4;oo1A*TKDr>R7U$(9s zPELZ7Wq91!?ImV@$22LoAaC9$+P#Uyle=?d`ZUKDX?^vD3o}i6m~B}5zU&M-c@)gg zKYr}@>(tfyIN~nVIm_uISK~YWqqkM)7T$0B5bk&@vlHdT4CO1nKC{aD-rxW78OhN^ z;^r5~!6>dsv_8QX9JL=nh(_Sf&x@p5#XL=M?ndGpnz!NaG;;i}2X$W5Y*MMZKGiqP zPR+hk7jXdj-J=*rUelr$C*9=vk;894!*i%gpIytJ4ZdwBXff)TxeUq7z`)#IuK&LA zaGQad$q0Eo-*!%4TiqPr=VZnv@AKb&hM;1MjTIJBF<(T^Ks7F+y zrNq)}iNN|Q8{tR=gne3f9-DrGr%4^dA>q?QLc21_E#_)$$n1%fUU%%Vt^=ykn+(-n_qt8MwspK$5{PoNV%l`-Cb;J5 zIHONjH7v>fg7W1w>o_tqY26X6|>Jb`=ehrS~DhOtZRyjjCK zHjdac+>%k-bB6oX&4T63xQDgE%Q7;3@~aGpw9-W&sXSJa3j$3~I+Xd?7*E(R@>kk)v?Vi^> zn|=X>2yz%5O^9}(SEM0r1frPeWZ7AckU;7JgWR7F#)0+M< zn!CH!dZ=ePSvu+;&LmVClPKDw+A}GvJe!S!BW$3zTWDZn|DLn4+N1DUwcba?+urSE zHqt?f@0ohHCD6w+sMWO2!mL&aPwT0PV-lZQ_JXj@HoT`-ooi_V%<*(?fe~UZ=&GQH z=hCQ(rq7kGs0qP#bB*kB>%&?Oa@C�==okHUoI4sR8Pc>4=CaKJIvfXpmm`>C&sh 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 delta 2292 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 O0000U0mG& diff --git a/piper/logo.png b/piper/logo.png index 2b276be25ab30c51bb156a4a365e1a79a35937f7..f75f435c99fdec95bbd65a9c2f4b4e52f33a32eb 100644 GIT binary patch literal 3499 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 Rv;;Q@AQMdqwfgok{{nCqT|@u? literal 8573 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 U4JRTx=TQT2vU9VoIt*X_4@ptOT>t<8 literal 4980 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 Ved;rwiYD%nSM`i_OSK&%{|kAwAwd8D diff --git a/speech_to_phrase/logo.png b/speech_to_phrase/logo.png index e7365175548b82b907fa752acc534483879826a6..5e965abbe3a0760f5db9036fc0fd303f63583ff1 100644 GIT binary patch literal 32452 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 U(6*|>m)-tH3MDU|CaRDAKW#+0CIA2c literal 68107 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

Ixi=nGm(k_xI} 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 literal 13123 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 z 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 literal 29578 zcmd43bwE_z(>T5?E8X2JB@NOIO9_e+igb5(cY`7!-Jv2V-5n~ul!SD5$I`Xm^@-2> zd3~Pu_xEqPckj9PoS8E-ch1b5b7pz1s;q#GL4g4P0I;7Z%Dn&pknaEhBmf!;;>mIe zNi5=maFk zAhG<_28d|G13-KOh!Lknq%{EaS9?Fi_18xcaUwANc~!OcGPkogc5`$AtGYOX`M7ww z_z-oVc+ej>h!EwfJf#2WKM(jfKIFSRE_A z9b6gyMDjNtIdfN27i%XsYext0FTBPkj_z&}^z^?v`p@T2I^C=-{--Ag*T2|8Fv$I@ zhMR}$5%<4=nR{9PA7H;~{!cK3jQ+#c|LV-k*y&H8KZNlojpDy35Y>KR?&@gg{)-n$ zA>K!b4>!-RZ}C3}{9o1o!``2uTL0gm|6Tn%=>I^zaIOkYs*>Nn>)Dv;*VEAP@MZ;YyK5d>wh459`PbN{2$Q&s`@Wb zg!o0DBb3q1*v(kZ*v(w>*9hQz#KXxep#EzF2#fLvay~+g1B7({(e^hyvM%Nb4F87Z z*EsrbEdSN=-*7m(s5?5^N&efw{*#J7;Qwm%7XoqaUuykdYX0XK`r|2L5J_SnApaha zk{Du2<{kh51n@*oTHOn2Kl{NH)x=r%J3MfM*i{G!n}h>T?+tMzeK1HzhedU6KKf-I zBp6trI>*XI*U!!K7+11>F zIYaRwkRJU1_oIOEku$4p!P5zXG*U_*nR&6U&2cwXA*(M#@Ruuam65pYYYeyoBv+ai zA}c091~&|C$bANqgZ%FU`~tXhsxb2i$9gcRs#pdp(<%lZ4uQAXV^Ou?NZ?8UC9qnN z`hJJ{1Bp2PQU|u!MWk$;%-&mgR-&ZLoKik#o;5ffEh^|A2LuHeoj<^empZ>W(dS6w zNp#YLzXIqWivK4~2<&<2NCu(psHa%tCEuxMZ4JSTeEH%32V&x2k>j-LYli$O(NpUa z^61;ch@U}b|MCJyeu7Bk_PHYhf=1oSqALzpi^fp?wfmVj9dC>FwebQ8%F(F3QmIhi z$3kU!@$ry;KUf5U`&66#^M>hCW8Ltf_mu8A*a@%yh52o?k|2s!6ynP72ke#$M~*^K zQnD6ALV4io2w}o_3L{v#(!-`uoW{f>+jM21Mnd5vr*5tx)K7? zf8evS1qMR)6{KTCTW9XsGow4K-qcCHQ1||w4@AFsOD+K(W)q)PhL%K*b_~);G~WMH zg!WI2l*g~F6{+t}u_S@@>oX@sY6bGYs}uv$Jd*@N16CJ_T)J;wES9+}@fAv}0;I+E z9#@sr%EIc4^7Gel9%_a~hTQ$UOuB#S3j`C$-Inr5I}EKX?Vps>t3Ee!7hlfa;!Hht zeS9mpHH@c8b}5L1!hyYyjU84J=-|X*a)9w~nhq8MveWaXj_A5wPUCN^Bf<}Buu>-a zR}{#FEQz~0*3XLz)fcN@NN_aV!o8+}+{S4Xqc)_F_}}y(DKSV?e0ippR8I;th{x5* zozwn(F%Yr|kqw+qILr;l%c(xP%O7#K>YrskEO#OwNBx%pmK4?Tvq&jQ zdDHc%8S+}VlC1^z>%1zOLFJ_%{@D#RKl;CnA(ltM2fcUfy`GVDV$lx&V|&5 zWByH}gVFY4_53}Qz4b32Kll=uqFyMSpO~i>ui_zpz3dWd+ut-%VopUzI|JM)t<)egtnKoxa!JymKJTB3mydi-4F$n zp&cpjl|v*&^ICi*0%uC?1ew^}h)y}zLSIh%i=!!5%luP2gR{{0A}-rR^HJCJQt_7S zgU2q!c~81TJ){mp(o=3Ch3VH{{%;=z0TB=^4Ngji__=}Mm{Ki``r2J0ef%vy+^-SeQ7zr2U`yxQ`*U zvWBuPb4DC;t4wGwW%*=FzMH9Hb!Xv*-&4r)_Dlax$V@n(e4Q59I3yDn9M{Ga^pn_q zX&wD`9ZB<{WIwJf%_O9SX8~mds5%-ej>^6fq!E4((g#RjR+jp$rF8WiM{)ixLnQo1 z^c4atX4@?jDIz^Ai}A*S;jXmE;99#;@y(LE=OaU^s6^jBg^yw9x62;NSf9Wu53QqE z{{;G|UTfhv0!VQC}#<`!TOMxT) z>H9nQkUaeSZ=WqT<-joZ4}{Q;D3U&z?$|D>MfqazOQ?e~K~K&j7ef7biq7~b+Pp($ z{^>n}6o6TMrTakz{zErNL|s1gKW6i5+)r!a*irKzSSoBz)`kHz=yzyWD{A|jl$ZMt z{>AE3p}8qc2jB%Z?ZfkSVl`8GT4w$Cx|vQ}-qNW@))LpJ;`t6v(J>7;vhMX<*L-nJ znOqE7{7kr!KmVH^B5ol;N|%!%LqSuY`$x%b)i>NPS8Eq5DN;Yd@vlKP>XGrY3g82W zk&mkBCG2c4&8T+arOZWQb6`Q!?{O4_1<3xDCy;>CEYfpPwa@pcnZi#T_v#?&;c<`c zI2>gVkUZ_>-K(ie@X-4FN6cNn-*}P3ZD#z1-m`xMgTq_nkY zy5vPGWhH6wOc#lQe58ydc>ro4W*sJE;vd6N2S1HcEbGCsg_We3;h^9A4>s1-$wHZy z)%?SJ3-3suea_B1&hc15Otw3+wZwhoeY6+uB)k7JPb5{C}ABJWezx4PVkN zK9(nitmBfy>(6|ZJKL#NmSl@W1z|U6E9Vhrgam0cnK|JZ$4amnbHa!blHa2!7TREg zqJ+cUPh)OvUoIs0m|I?g4~*m2TQR@v-qDyiX1<({CQ2!$jgXz#tCHO47eflS0&bj$Oz6j6K{90UalXR6CD5b}tjZ3OgNLz8A>Gv_* zMc+Yr=FHl7sN7uKjwAavYn>XcaU-ktb|PxfBffySg71ylx`D34{^{~7ncwZ(3R4Bm zi`AF`8!;(wDL976@d7YEM#!ldZv`86Qp9(tTYA zm1mCE?&L`jlZ}}jwbPz5jkBfVl?T3U2n_Pl4j;(w;CK4!OLu8ioIF4F4)u2wy>T6D zX#Nk@K7z51=k`uc^an@h|wJq{NtEN=C>HFlX_F6(LUVe^@~=;27OFxL0A5 z(ar`3g0Lb>c)bueTf+ousu{rgFTBNX(7{tO| zK_~OQ`;=bBv|DA5#jKizfWF_y9^;|bS5a^`P7#YT79%Iao*LPB=>jrPGpb)!uSm^$ z`9u|4G|9A>MP?AK1g&kc`N#Ayh@Fw&yDr7~(E3oWtPB2chseT@LNm{IO)cD`bg$>%|uL2-}GIZxb90X`_c`R~TzB#>Vt=x~Q`> z(-wQRh59>GoXqw8T>&oKc0k6o=L7K@U4na>u#Ab!3$QTZ%3B+?w?b!>NCL&036qyl zk}4|vb|?Lc2sYLaVe0Q*1tkI??KMnZuol;#`GG8nDf;g)O16j zUO+pY8|x|lc$EL!*+yVQu5)0Ra6H>z3J_dHn1)Y$OR~ZkAKvgSE_Fdo?{0GFCv|eY z(Sid{Ea$3p*LvTDOukB<l~sioAKaG`POfh7fHL zr)l_(>R$JBfI&}oZ4O7z$!!5zvr@(TTyYj44G6ISRefG4CqwCO+L4GTlCgzD#( zHeVH1h7lt7o!)o;2KEm47nel#s%iS%Sbi1aXmIiLa!VeM>p;l+Hr!8+OE4#^H$Hgu zGu;I{<RTEU*E6SP9aOd)(i`3$PW{5b+#pnp!+?2O8w>Np(>VEcIQHNKmJF!;Ob(}B zmTsYC@%y2(YKf5eYSp7jpImI(DmPHW=^aZ{YFNVw_Y3c#dl+9n>EF?4@O#3oSd1e- zq2a?7foPl`bnw`$>CNc_I@8oIW9_^+1UW$w01tuNA&lB8GO@cBi!Ri}!ll9=7?B!! zB?h@T!OD?-6OH8c%Td)5M5|UMyJ%-d<4P%SJI1GC4sWI$dMEd$u#YKJ;>$uv!v3DL ztEvObHcuqmOu1Rv#BsenJ0fu-PIx4HM%}J0zao88PCG=|cwTZX`(*Gel)h8ot_*tP z?TXJERq3j0o%-Zx=>jj%W$1!uq<_&gs*#E)aX;EjXMKL>OvL1iYFOh@+U$cB-U|(m z*=={6mKk!eqqY47>P}8_X1{=iW`;7n6bT3K9<-RC zO2PiJFp!8XfS@ydAT6ey^PVbclhU7K#SmiXyp<^+&9nb&9A}BH##%B z%Y3$lr5xG!cO77j-H6WEaIfv~I3Z~?T1STZ=lSCMav;yol&Aq_t7sf=Be`X`p3T;B zq_Un^-v9mH@YsUxxPOs~o|)*JacG1!d^sE??XD3e&@o@EELv6@s?$M@FIBsP+@ zdAalp>1e-2wbQoKRbP9)g=WSgwudPMyxh97NNeA&mVxrItDQL*Yj>toi_J z>nY2*uP#yWS?;?vh*cduV=>jA3mr3W0D(S(K<)AbFq4d&!e)1fM$_~ zB&0|SWO1Q9E!H}@4KI|k20u=@dPYfw)}xL;sHzyoTjT73z{FCxU7S5myd~x(<; z8q1@ya>7n@kO=7r3K;+JO!0h3Wi<1`n^ZgDn~jbNt)w;2K^(vOf+Mpv1r_#70;Tju z%gF;&AQBDB1WU+t9y+KHLRopCp;K7lfH17RPR*PQ+O^@zs<%|t5)qqfVW++%+L`6! z$$0TdeLT1&ZJJH!56>HX3KCR!XFW=aX%Mp6p0SS`tBpi~-`hMk{6pAaZ2x=2cl5=r z4}QXlxZEJY@KnwG#Qb>L4%4MTJTv=fx~0~ULDjAF(|T(5$z`p!s4h$SQRIB$H)(#s zE;%%fC;k-{!7dtK{tQ9a8Sz|uGA@V{UPHJ*CkLm8uXS!3eso)1E@Qz98&%aubbxvX z(CJqT0B$$SORmnX2c;-y;W^}z%+8>jEJV~Y-x2Cf1qankb@xOiB0Y@H3* zI$hutnZIIXhy;+&bXDifAj)i(zBlxu4q-Ayg2fT0sc}j=$7W!CwM9g4n)AHim@glR z4Z0v3xYhPrORuU`@)SkRmq>@^8u=98%vvA+ZI5dalx)Gd1gjlwwoCZPg}L)9IGq~l z9<;fy>ew9r=Fc|;2ErLS(%lx=IV_^RnPdj$k}?^7btlH)In>=qVF?>@aeoniBBhXF zNxD|ctls!_{v#5M3VrcLdT->eUOB6B>RhFW*$v~A!OXgvK`V-qBw$bLwa4};Y^oV$ zWhrhTr=td~?}DlPEcNddC8l6{x1xHK`1sAflosM*2%(wXyXKLl~RE= zE8HGcj4*j^C+Umpe0GrK&_zSxcdpu3Oza!?3kPbhzsw{bM4_Qlzx4i-_8yE01 zx>JN8?kqt1YQwGe!%~O)bhRzczD@v=`mI~zDR^#>y=kKWt%_o^PV=)`Mp64UnC87~++m0morBfefCjhxYh%;C~1N$ZijaPSkFnP-_x z;anqkUhAP22u!BmkJu;INw!^V8VxP_i=8dSvA;M7J_w-+HVA33VS4S%M0keYi4+p7 zT3b1`NUDRp(vh&v6XV1gBeIX}T=D$xy#zXRJHpXM%f-xZw8PkqRpkTcoNS)oUU|Zjhrm=K5b+o)|HMz{ni5jW!j!BNdbN!^!78wr?}DNq}6WrI+?%S)~s@X0cG7%M*9 z8IYPPpoim}*Wu}3b-gMf;PanFZ8Ui!dEudJiDXTYGEj0j-6O&|otoXR#-rSEnm`x( zC}|Yo@oidEZ*y_KpR&!hHl9O4Rb#x&X2zHdz51%fEix@bwsml%K_C;42aW!T7tfRU zkOS8y21?Sh3G?YsdR^~4nLP#9oaj%P)Uyo@;u_hCskykN1^!w&6u}cF<$+ztLMbj{ zsf25l6y2{GthYDCTX?)-4I`hF;c|q7$i493s(`!#)(g-|30{*LnlWtLbZY=F04%#lqXsLbS;kRlTphyIxF%O82+BTFL|* zhQaaIc5nLohppDK+*W#os;h2Z7D|PX7yv{X+R}4)z9@)!UV9@~egGTTuFV*f_P588 zi9x&<%Y(8H{PSBZ6c!LIV6p4gq=WSB zHU{VnuqOIY!Qz56D*45qGfWng;Np0TqQe{Gqrtvz)q7|Y24Sy@fcv#;7u?oqa{ANo zQiRZcRRto7(@xnwNX64|+`D*0v=dr7bEp|r?e?wZWF|&v#ux9)(CiM+Z2IJ9O-~k7 z;f-&*^ZjPGkYU?bD5zmLp(h5}2?Y|9a``IYV$(*!p$+W>4f4O{ctx^7gbFQJuKS)b z<(rn@gxU}NuZlM#i}TC_(2K?lBR3h{>%wO`nO4gt?Of|z)QdovOR2OZZT5n~Eo3WJ z41xF1Z=a;&ee>qQP}4`x=M6fBY$1A05?EC={RJqY_->?8Z+(OxcKo6U^#kujD7}XJ zD(@L5UD*rt;{YsuT!W2DDt>;qJe2#m9uI@S|E!{E0(Cp2dx<{?eS<$Qds4^JZW=v# zR)t0s3$RSviE%2Ju1hd3g-VVs5_2@pd47!acrq4Id(#$mxu@4-r>F12Lgd2Vn4)y% ziUScxdF7~d<0Y2F9Xotg}!}PWy)Tv#Rv#WUm zCi}3oJpRTo+D|kuEhc*qnqR4^NJ8gVPR2Kt)R_GaInV&J-ML@fbkW~|Q5XxuxkUhW zMPj0%{P9TjZyo%MKJbP>&wq07rh8prVezvG^Kx)>xrX_TI&iz46tOWl`PIsMrS@s| zrM2LEME2DuYfD$^Q!Sz+VKyIjqFDhsy~l9T&h_?}vOF`Wif^D5Q^5iB-Jr}h{*QgO z@;=rmj8G+-l6^eT+RdkDf>g=VSS!y3IPIlDv*WyZCVzUfq}Y!0BDK_@+Ajt_4ex~I zdIRXP`U}z4l-o6*?b}OqT3Z0}UKJ-JBY&W~hTwCPF`3@(i^jLgC=04bi2QQ4cP2k<0@hSkFi# zwjeA{xEMngQhzL17Gw@-D$wIR4MX5?tF1R(AJu;q)AK&voN7}!U0v0dh#d%t*?eeUG+fi0mU$v|#R%4-N7P-8NVV=3(}I(Gfl95>Sa_+-Ec zXSTy|4}1)~@RmF2Id%^-Wbcy4V+&t1tk*15)kfROGV1E&pvrrO3>3&e3=;3kAqfyX zU1NWp=~zJ+SM5=?tEP?PQev-eoikVQoLo~Qx8roGg>jrP12=;*gFFL21Gpkkm?+ai zgV=~*I2AZ0=Lh=WQlPX>T#>=eXwaWMFvRq*F}U4)!*4Lu>ye4GvYRL^K53$0!p~3G zX_^~1Z9(O%5?w_2IHYi8_?WF*s@Mt^0Hb z@JDq{COgCDuX$-VmYN@*$mC>bvl~4#NLvxHcQmQHEQB)a80mpUl-cuxWW+r97Fvpy zhSz|icG;EuDl^?oBp{xF`ovs9hEy=Q3f}AgpsPS0oXAe)-cuyaz3;S3ZJEf~eWZ>-wOF?mJfIf<|lfd?IhMANH z2dcDQb}jx#awdqP@!m)&fEsYjY!L}D&1c-JK7fhbE}~Oom*P5urAcx+7||-}JC!ba zbNAzGv3HYKm*!rMXyXk#HcMBnfrfg@&Kj;~>SPnu1+l4a+8$P(y>J0i>7BWY^TS-7 zPLfU*6O{@%_oPAE^K^J(o>b(uH4ONBWRXF)Mh#v0ey#8K#9jEOXS_NLaVozr?lc(& zXuAmBds&gNe7pl~l1ks2Y?Nq})PV`akXK&U)l$a>gLN%Th3rBH4>dHC^oYVDbU#_GUb-G~RCShB_6Qr1y9gvz;mE;fPNgY;A-B#Op z7R8*Rz4D3mJ1%0YL{Emix-@#tAbfOu(0$R|1SR27J!=K6%8H&gBj@mRs)wM*Wn$Gy zrD5;atnb)6RZqJ^3xxXhk+l6D*V!=VY*kfP(wGTs1*xi0aHmdTtneD(JgqfJo!s4{ zavF&UmES`n{>mktkncU1OaN*(^a$4*e(679E9^2&n?aKBT+ztX?xd?JC)f8OmdMu> zO5kS2A_%{hjuYvea<{hp&^|n4TLqJ6_dZvo!%{&AH@b4n(c9%xGVc)3m;>O#qSd3> zyou2mUfhlPp7=8@2AR-TCRg@sXUUaPg{I%g?q#l?&ee*0=DwZZFmAAp^U2w@H`>V_s&U;Wp!X#dc;>%$HMz?So`Y-@Q`Y^9gq8UBbzhn7Cf(I zw%p+MUGJ_cOWZ^@8fB@ofSiOuTb(nYDEaI=PTR@^4CYr1I`vUPc(8goB8SMs<)($; zY%^U0B^=YeQ{916SBq6SE1Tg+WJ}mWSVB$Xu4Fx(@)lEAnU`0HHy1yOOR3|B6LEuU z8N`ITMd-_i!+jM}>XgD;@4mN=buqWCtE`(o4kkON!y%yQZE{Qj6a2Ar%Xnr@=H&TH z?SbL6!@RUh%f9eUo!k3Z_ms4rz!aYX)D| zyex5zo{`+pq3t;u*K!YHrNTg4#`UU|!A+i=pOe|W5>FJqWccFKz;3J@drc-@>1>qU zz+3}`qS&D(RV`w7daYHsW<0?wGZD4x+;R&qJIB*R)~X0ie!3iA-M%AoZxVCjVlL>F zZ&p@BI5+h4H2dW(?Vmy$x)$28v@G4qfkoV3Qq|lIdThVu-*gWMu}Ycdsx>f zf@0^urSn;C`D`z8NUy0i*)42NH6ay{gFSEs2 zjiwGO#Ko*uupDn#M7PC;CixkDVs$oRJ#{CL@|NTnGYm>0dsMWU$lP1y42tdg?vo{B zw_3nO$1$u7rz*lr?TuVYP95G=qs8eYo)B(^YxdfJdCEP$#6p?ifx#x1x5LF_Qp7t_ zcwaVNjQ5B;>XO(9tr{tBUD#(J5eKxzh0D+=6xZr9_?DE5-nknozp%_ad|qbAukX*S zZWMUybZmUPwD#mYWMq*}a`^ic{voD4DmHFb$LJ9p&kcKA!l|U>pwEcG%FybW1~Yd5 zt6M=Yk(og%vZ^ZIQXnzokVJ&{x!_xKd>bT?HxZj|YaJw8SXB&HoqzRW-gHDdzN=A% z!>?gx%@L1#ER8PZBNl84OA2)iIvSjT@7_qOgKopTYEuz^I7_+&&nALMb+)N|oRWf; znd|5$7u>VGR0SF`IC^MRTgfTAOY)kwC5t)`fDdV@TumJIraEip%0oU=(oi9Xw>(iQ zuqO+xB;(W2MSks%@yg}=IJajwp;Dtk+F;VhV&v`W47Q8a;j?ebZ8%x>NT zrxy_Y2uf#L5AjI9egE+|&c+7mL`>0 zdu!^9?34I?C%Fg=YCPe>;blX@TyhE&c?*m=!DLf4scFqZf4u+#bN<`sdOem~&k+H* ze#%8Vwozt8#KzY^&&!IPt>cC@wot7Yj)t|CljW6FIQvmgdhYuvUBz*QR^2PIXyKQn z58fE(WU1M74NdN1q86pP7v_3y1@^?JbDwM9R*Y5J1PQ|SPduHrOgqFeKafG4B1T;v zymI$72w~1oA9zLV#2xCDzdJSnS14K(e|5&WE32$7u)4Hb+r`(R+W{^gjxY;wUgD-#K3$jV-Y%`A^mBsbE*Zlt+#chX2Jd22mb#8}QT$2XkJ0ik zQ*4SGI0gxiE#h=bSIy?7S>8@>H)D+2k%QeR0u%P=iuS5I<*&<%Yo5=*tMdWFyCw#; zX?4nH=ZBh(AA0OVm!k>kt?kh;%ve(&DsMFv_Q~InWI^yn@8t9(Ty&k*l($u~@=q&S z5If;~)bdr*iXPY>!n{vljBcz+YeG6Pqt{FWnwK|}TljI(7eVCDK#PEj!*O4#ycw*%bD$SG4;Y7agGXm+2JoXRdBD(3TFlQdAa^3xa zUFxUhQfcS7c&icl{mx&EGpb$t-KNCIGyL^tR+nYVtP-AJ@}trDk(L-w);;!FdYA`A z(CmXV{pyO+3Gw4s$1Vym{VYTG?bGI@=Ly2Y^7T)vKAhtRYk*2b@AQDHCYX&xTx!}- zWvAB_1z-C4r!v_Y48pxu$fEtD3zI?ycrMeetHElc9#5j9!qDWQ}CVr2soxKQFH;yT0nLgee2-JR?{gDv*BAw{0 z0qrKmIX!S|eg80Yc8pbc^57aMh*dnlb>(e^k~5avtc9-S&wAoRPO95qP|^Pek^c$% zfR$=LkII>o?-xbC*ug4xU&e09*68eH+SH$j1|POgBW%AkCnQ+n*7p-x-T>=z%+6Xq zhz;QjFsNyECbwBArrvlSbp~d_qIv__w<|?2j!{0)+2)G0j9<0 zKt^b+!A#aUW_)Babenfvh%=Y}24?1<64lP~uKt*!jlWT7<^uC_8Qtow2Xlf=QvKon z%T6?KLe>F~U1Xp5cj@qNM>$}tk!la9prw|^l!xGh0=O` z$qEu}kLO0%HMsgdJ9r-rux}h2>5()e5u^7xgKlpwOICdES34Tpu;7R}f$$U3lc~>_ zlEU6kuMX4Cpse;AetdpOb*h8+E$NZZKqrhH_@~u$IpbxCmh@4B)A?|pUSprjD0hpn zM(rt0G~RxCRcX^B*ld5v%-k1AE@v;9Ya%yNH)1#HPNXzTFwV~|8zpe%d`#kQxEC{d zkC`w|CmeeP>ppfQbVQ3Kx-~?mMf|;34R_~Id%^PJSdg6$dT(=CsMotT?r)_X1Az1ArRY0SSI{_?tel>!s1IBC#b|AQJgnuM>aFq)l!m zr@Gu?T)i0PG@cyBBc;V}Ce7VH-w#=vXq{Br!1&MVXD*mPqQuwOofFR05Iweb$r|b! zfzHX4P>Zn3>zNVfkq@drhaSH1sW)AI=U!1&jc?^rY?SRx^BvBV-%6K@Y`XY;F&(eG zwjET(Ph(4opqk?l^eMQJ9B0yzvt5QeE`*fl=IptD_{=@zc{3SFGa}l`| z`0a~Ys*l2>Jd3z$0f4n?7~C`>>s&VdJ%t!RJC=B;rQ)t_P)qXpv!T;0;B(A%<968* z{wu+m)N16)=^Mo&wKmE6c0%1Q2596Vb8buK)y{t7K_&Mg9C#*ytTQ0nx)~9N45k?# zB-3s62#yqGa;|j7Ig=pgDIHR%lPht=+Py?Ed5#iZp|mu;YK0 zTIpNySphot;UNY=!Y{J~G>Tl}7z*Fdh896sBu{Sy)?8JC+uAU)U{06y*K^WEGPBQm zCD)E$9{W4xvp#qhV2+Djq0@0|qffg`XGlY&BFjD@I((@&dCKfd2(L}#RtYH&V{;se zhkIZ352@17_FniDtwN9RGyNmNWa_lLE^I4biC6hu27IZ&xXWE6l#F5C%y%7H$z_i0 zfly7I+UqaH3z_>;_9tYP^M1e!RA%{DS+@7_y1y|QkvmkY)Qcf-)XG>F2(0ZNp4|22 z@BQu$D~NDc{2sC>Kq|90Sa87CrcXktV)wZiY)n=IQ9 zp@^dbwSGHhf>8#6ST?}?YT;;NsF3-|xN+{h>QBwGC%1bC@x``344fW)D{7O)w|p@f zwwn}Z{|TXf%`)OrXU5gv(TAltG|1~j4RB#<`B{EcVGX4_o7bY6Pp$I_pL?~<0$d?aE^ z>n1#|wW$p(cmUUUHm??Xc2ntN*WFK2eTzs{dQEsIrN4dL?=8rx>IQL$4ejzPGmNpP zG}enQG`!eVNw-F8T(9lb zIz|_a4Ih$tylG?<3v-WrISHGeIaj>7UB)BkJGmlQ`B>_hao0%CAZHjNDO-MSB*kJ& z3zVPj{>9H{PiY+Mg|xGC?ApB&65K$|3s>B$pT*ysk21}Z)Uxl*dQ@7K0}K4G^8E;i zu0zxJ@3Dwhq8~UgS9n);)hbgZRrPy@V2n>2xw{lA2U1_Y%KXKPX4l#A2=9eY?pd;Z z?t5PLnpOdt(m~PyMq^5ET#Oey!NQ5}rk?#r)HrQG!G=!ouPqC<(yRlc^-sU&Cw2M&Stum%x1B)mCz z^u*u| zOaty-kMd4BFX2_)$9mt7#d1R#>0%CZb&*l>9J|r1_mBsPc!T^>6N3;DJ5l*@(1{hU zWJ1Fwl9)YOI2Ex4mshx1G$A_;le)cEWqt@gm?t46*(AGH*vapr>p|dn{DO3I7 z?^}iG&m&0dt?NP!2!nk~##q;Z-dstM;B z>jLnoI*r+|bndo#0!O6n9?hiP8ZQttl#EVR4`cHp94mfANHbLGTI-pM?i0XAag%RvaU5 zLe*QxZy5SIlbq>Jaz)&Zh}||V(2_Il{oD@gd5ry}n&MVeRKf~maK8J>O(-^1fNHq@ z6I4goxUsNu@hI%3Y44m1LuzvcY^*(a&I~G;4`7PdEQHgAS)$HN#72gSKW_5kq_({C z9$gbH#vsKm#Wa{EqyRbxnVKkCC=SFojscNTS=BsyZ zDOv8Xs%d`_IN6u_Cf5SanI;fjK8f)dT&^s|lf4!^p?>5{o}?hrpuUS`B^_nRL8pRa z5e9dqbMFLvothddlqHdRw^nR(@%0^)V>OATJ*nJmO#w9X7V?ZQx^x8AhOANdJ`(b> zqX&cLmeKjxC?VTrA+nwA=*bdQ!&Ce84j!4tc5sp@YJ1kHPfxzz%zOE*Q&$0Y%^wkU zl(MKrCyqb14_|vhHM_=T@vWYM!+fUuSiq|mPIU2D9bJyy(+8elD(vI+l5koagJv!P102Z`i)_@oA{8ud z7=?K>(sr^*kzGGkPWSy!p&_LN`q{lNjAA}BmRu?UGELJILm~}CqXxmSuXM=cmm8Iq z_~nMr^(2UcBS0s6r|_^6WxF)(Cent1-0TDK7>0vl+1n!@M4lfc2ZSPmvT2TuNEi)v z0}ZLv`yTjKBfB&jlPHOGn-ng7la#~5*&_YQfs%eA+1@{jQ*X{{rrv$hbZ;HAvqoUy zoB9nMsx#0s`N;%7(LeTyE%I(7+BieJWnu2s(L?_4mmNPE)(%OcJf95DmdOG!Wff!= zH?rTZ)N>+DrUw|*(Iavz6_tZh#~T(@7`*udeRVuy^-^Cq<4`abbZdWoKb48{`XuX< zmBnkMlh7LFCToA~Y{%r$Wy-4;)$^41qY)tOrz3X3nAE;rC?2d@{4+ zXpj82z%+NR1t`qPCUvQA6Qb{Y{d|#eya!IIb+V4CweD)sSDtkR@#0%O2B!=i=O`vH z05~HUn<=V>~mekUgOCK6GL!e@{Q+01_^Ksb1Z{m1U~0{xZ6YFQk{UX4R0+8CcWOe+W4)Si-5UNts& ze*o3!gV;bOh;$;Z)J=_qlcU_~T}=p&`>n`|r%0!{3$ski{n)q5e9=bvJOIx%=xAD* zD^gU$<6+MU!pQE+1VLZJv?O<;%O_rJiNrhoJTy;53a!a%Q`80b+?AGL=L+zT>&m#R-&-vlhIwh^ii;%bL4Kx0&G#dG!*4oq|X1 z0{rO;xsrPR$jp(_(GU`)*vtHD(He4fqFu=Qmc0+XP;*nG{iZKw5oB!nRC0L$kZ^~E zKs+Tdau;Acn$={~Q)n30?Ort2AX9zVE3+dF|wV zrxhw3BjZF2+mA6gZSd#3%ozM2)yPH{oF;m=hgBWAW1B9OX{)q_#L_JURH>>9`WYl+ zI6HyNBi!L6RU=GP?EHGv84s1!D?MT$rlZH93)3CD(DckvGfhaU*#SLf-6gHH;1xkM670C~~l=4UL>^4Cyz)>yrKA z@{aTu8D<@}^l=whAGmKNFgXvW%eg&~m!qUiYbg1F7}mDmL{jr|FbBzaRZ$ja^9M3V zmPd%l`-^+SKzik81ELH<#t&!cf$I;C489ik;6!y1sGDT)GO$C_Epiia$%`rVE7Quc z%fnxV;kY;Ba-0?0*8qmw!-j*AZa=wu3t?zcC6YWF`>B7UAP25fmikdKc6f80*|_A2 zcZ$mL_y+xnK7bP~`$0^E47mcbXJiD#7owjhZm$grBx)is5$n6fzx?^*)z3uNo(hD{ zARPCrW!{`e#>LY=O8D;NGpuvs9ggceJwBW9y>IDxym#)phmJB3M<|wwdTQwGPe~Id zo?F&weFhiX>xd1s+KmBVhU3t~yO`oVBg<(-Jc8;Yaw06s>t(y`6F`d_`hG-1DC6%{%Vk82kX8P$Cnp8N<&H zQ!gELya|rrI7j|o5V(uJ5fCx?dhIIQDbxe$y?Ej1@$t$Q2~~DenkTldEx6@pq+rlc zkWB0xCkp&RMo9KX)=`!&MhSEg5*zdhom{ak8}%h3_mQtnnSXW{GIWy$ed??JGXy`m z`ityOX#>P7^LY9zLCF|Ri$k_PLto|Tmf)T+3da25icx{+-4oq{!SiTm@4y1|oX*f} zb`^1WF2%ilLS9aGKa1qc5?W52Vw7>4tTS!0J56 zSx*nfn5J|`8rHBUwbr-3b`<#Nlw_Rt#J#E=&F|RfVXPY$pwAAi0jH!!sW7*vwS)&r zNm73QROnNorXT*%ng1F)?G--43#lx5vV0@X&FB17aF^WV^13}-yCjWX;t&AfO8E7^ z06ta}MVfd$#Pco8ow)nznr%COEN8+TMLmy92PM=CQ?ko7Q85T?$KuDsuy*aZG9Muv z!BEx6qQO**xP3!KcNxzAz2Nd2H;(&9;VzrQR|*XEJ40<0(*YqkoNG{u+!ES;`b6a zRA%PH>0a1Pgx~TFqy^_jWyHveo8?sC85&)&Eckim1gqqao-;uThns$ulwEVY$JQGp z-3h~!jT0|||IA#GA=nCnNzx&^UANJ~Weo{33n*yw@H9yy1(h$4a*TNK$>Jb;+4nTP z9>>SLIB>IouqCTG|9JO3{@P|5F>c^-1oh%4)-)Hxval&6A3{-(O)UXp4gsTbL*nOS zgvND<$L7NhPIdjQbvjV1e29^G!3>ee50s@##eR+rXO=0K&6KYF8H_zCjVq%B z`ISV`;8cmoZB@ZkBw?oKvVUhey^S4OJm!d|oBu0&vm?I41EtbykzIMN%SI#neh~;5 zwl||ck^)wGUTfYMe!3E0;ys(E<9fMB_{Ke5G!<(f&3Sq}QB`quCz_IuD|h8-l*0(Z zRwLJinK|Pvfd}VsJ|AT?;Nz_O6V<+1B<>qpVOUPMPJ#rH=Z zxNht$R#A;AD1D>&S_1P2gnM`W zAl*G7EFmoNn9H6I`ovMG%z)ACU!B?k~E zKY3%^`DhI8asB_AJMUdOZ1xPqW2QL2SIevNf3nSy?261 zbfN^Kx6zp~^Gxo2zTf-Y`#it@e`{H@ti@TM^Vxf!&;HCl@AKLfcKo$|+bIx!`%(6x z^p_A9vsukQXWIJ6cd6wfSw&cSG`pVzfz1`>%5qbeJ zaMz^zpSC>2d;TstXDLQ+KojHHdWg>5%Qp=@0L$ZxDdv{ru9bS_dt5I{ktElheE9pQ z0s_!vaRJ`@Xv=TD$p8WQb+T_X8R^441ME2F!5fw*MUPy;Sz9v^H_+-W`BoK zRGh0MjiuxWd0Zwu?jK-@ga6iY9Y>W7N+*ynKtMF9<$JgW$QTQIjQK4JwUIPGhg}h zy2ce|D1BdzDr2p^Wx{fols++^f*h79%PVCJiPL4mw%9b)j*WYQM}Z$o=@F@sw=e|ge#ApOgo`uJM%YI-fP;}bP50uG-uzW~&FAaH7 z`3fu6N)q?%F}k0~GxrKx0je$0%JCmV)?2Uri9Z%3KR8bt61#0Xm_7AU4$#K z%xQ)g3|~2jPFoxW1M&~C`7mV-@56s=dXwy^>^j*Gp$Xc>Og$?sE0jZr8??g-wGf1S zM3CM(sZ5`M@0;5s#FU669A=Q|FVa2-%!27xux%o9$IJ-^nWd3$bs0zW6~?Ax#@0Dg zk8TBohBmI_)7>EvC^;r-#Xxkb?3#)nQYNFp^i6Os1m-`Gqr&7w>Ojr``&gie(5|dG zGFmZX$S6t{wCWiu++=j7S_@5ZJ;p3*F3c-TmLDE4YO4oTf0SVMaF%aL{>;)7MrEFK zY`Io)`k5bykpX#+(oXJn&t0xI(k~rK%13YrSDiCP*D6JAz>+GPJu@3p zII-i+{G6o^vo0zXVm;*v3&tSjLvPe*&>)wqMXh3^n%hbe&sNY6BDXqRFNw4*p)mF5 z%t%SAxBM3v4H*&r?{%*9cCBNDGePe&IeGD*0cTah5}lApCz5^Fb?NTuFOB%ojaTuFQ8mf!KN?t2OJjk8ZYg$1BzCJepD z5ia4|TBLqDhvS+zeA>H4WuVwvybJnWQMC+W^wp$3o8-!rOUZPc4~Xt1iJAxRHwVcQ zc@k|OJ>RD5H!M3<&&meN*( z;ZI7|chGn_jwqb1q@c;S%)7Q4956EV@Ygh~^3BWod5+8z39nZjZAU{baYcDj7N#Uf z4|;QxXJLG~!*_X0RjcD0DwU}hz8~3tZis4PpT1xwIB+3-Ecm!E5^$IPP1B|_Me5$h z@kiw4yGwx0<32e3k(faVwUA2)21Gv+TY(w%0Jac%#R=m>?fvPr#c9OhbmYH%G(g+N zug$gjCgvHaI#>ehjx+_L`bsfUZtCUDrtB@=(RLje{SDmn5;L>CIX>@Qoblutv69T> zYQ~_1y``wtaVjkiPt|wt^~8vEs-{mWB!eVjDWvNUO{&q-2Q@-7A6+L(tJqM7qfW`+ z%VP9cmR(zrNO$J?`*s4*`Clv^F6897R7%&OqU0ptUgzogtK#z86EE5qG|pK=xv}0UuRCOvp+b2_3FIwciF}n7d1C;SCSnKe zUiQurvfrpL-Qah>NL2$1@TZd4KOWD9$13EIED&CLb#^pqXhX~=jy$In@Us3aKO~-7 zf_q`FW3J=@SzlM!ON7i)F<1kH(QrEYIV(x&TDjBs@Zj#uO=2CVe+(>KJ*m4&A9ntG zRCO6iC@+%{ZwWX3)=|XVdWc`EY-*cBo8CUs5?%mWy&Mwc>vN7`De8Kwv^8b5e0JwO zuL+w5v51_usz)3x@nW!Q7lcZsT(%Chc$=^d&i2)bv66U5wh%l)Y%RY92Ld&>RgHYe zlxS--wnV!fl|mw@V#ZKQofRbm_;G4x^iVG)fFUa2aQ6%Up;v2ur}3B|eZ8)-)G1C zWV;U31%ZA^Q8!(L&h(%j%AyFs+0?j~g!`E{3(|uJqY+@+AKmCEjvavDh8t_40V>7- zE(U`cQ5*~VA(#flHCQW~YmG8-3IQ0`#kh8?^>30cK*E{jrY7=zptY*Y3$sMVP=Ddn zQ;XAK!sn8Pzn8K5iUQ5Abf*sQ`-&Pb(9l zvX;gZ(aibE_fJ5jmn`^7rA^-2#cgIv@?ApS(U$~ng+gA{7f5yym3xZf)iD_27kUux z5diAX>w`yDYcD+>_Pff-A4yC=aC0h)=)931+66xKiwc>t!y2y5{r4^~0@MNm4=~KN0lG`fPS< z;vhNcN~$K>@U*?$q3~==016|)+M4jQgPf~|&4qeU(^P0PrCZM^KQPt13RB_ZUV(kF zd|{A8^43Aty3lfQ2w493gDPD$CTTOFFhX@};6!>LkG!s~pOi}jcK6Fyx>DUX*3%1U zx;>d}*U1VGzFgFt2$a+&sgN0a&6+{R-3q(cUUl#4tSm}JjFkU8O5i?U+Eb{q%{{M78b4BP4Z*& z#|Y$kY$Z8=g zVL9Lr;54GEAGV|;N`)2~O0?r{pNaoW)#XuDuFW#7{a^se! zE+_HNjO9-rG(p%O%Pl4N?sW^O+IHOjB$RuY(l`8DaxQat#w6K0FX#7OPkb)-v$q}X z$5Xw}3VaB2Tes61;PJ5#Pw*^fOk9n_X(&1S(}RIo^X^ItF?dZj!u=a;a>+@Wh}EL84V*%v@=fiaodl30LCs{HUi`UAtV zC8<(>1h(a{oMZ1K)SbljD!tTY7Dm-MJw=p#guV2C}GcIC&B)fy{Hs#@*X=6@VhP0JaqeN5nfC83`~^A1%_z-}}$ zOX<+x(nLy?hs0(}bW!U^j@g=)=5J-;wi4T67{pN=9*!KylRgT-kUW)jaTfHt^FNd& zo^UX`t?-kD`f*X51%XGdW%c}T0u5V#>y@;~HJ_h*N*0X1JsYI_U?dHvlw*)-#r-(@ zQgh;0`LukZriDyZgW?DhHT@229&5yGR}D=}%|#M#cY8iBNW=S%V4?f~w6iZBm@(X) z)Udh?szIJ>ciTR{u?YrIz{2{TA6w)=ZIM}iJ zfGIuSSxA#$;isz1a9VGxL+?uAVF(!O=he!6b6^I8E29~5iFEBM zHD5-NFT1WPc#m#mRBm7^rNd2;=QNAV8+LEFQ1}A|qsmQj>#}ZwivIB?)1=N%5OL-| zlfKEzPK!^vr{bm6`7`mtmn=K348(A|2i3mfTSJcI-JVreo#Jri(^d+KdUsk_H^?Vz ze-?DmRE!e%Q+(h|GdftV_@#GhW^00-PEXXh@#^yKXvBtyD=GWvmNZj**X#b*#c15M z$mlpqfuG8qG@Z&4+#J=EO}hSK#LlGj@{(*LCXiX?wQ2V}sjCZ@s}-=riOu;f+ai+h zW`#=|YZi5owTUn}p`;m1`QJvfZJJj84w5MX)qD)azox0vVdRNY# zJcex%wEkR33uq}E9LtCWjX$NZcO04ZTRBDtH&!QNWbELb1cO1^w802oo{CxR)5ly} zhs;T^ygClUWRH%kBiz`$FEmcdY>GrNH*y_x6}g3*MZPHVo}^m?QA4ipi3^Zf0XqH5 zG_69U+mkqY!5n_L6Uu-i8?+?i)CFl8V3#Y$xHHzxb=pG`iNX3h zExACWz!N`k!joI9;&P1xHjZ9?)K0LORsabC2R2DG=mbBd1F(Nh9S;t{N81n_{=IM9@V|6jZx!P=e?Sp%J z*^gXHA59wZ*5h)OX25Hi8!UzskECLTF;Ey&ZLDhwZ(a`sg6F{g;GATYe3Zt}yCb0Z zSZ4L-*0!TX)1sxenw7~38c|FjWMzz4-tJDJOCt~A{uuSRuJk#D-kEJG1q98kafJx2 z!`=qeEK(0=LnJ3!(Z6~1lqGE%$_?!pE@{dqDdtnOi%CcisR#jma;^@AHhQE;{-u>?Pw)gv`QnMz{ zD1AcxG|iAB_g>9;X>dRID+x}pOLWV|uBbhQt_er!jxUS+Gij{evkD~5fGv#oq_yv5 z53|9=x6ZEzK8ZVRy1%|mTYvGku zdm7|t^cNi$<=p}>wKmh`Z|`CTH{93z7fB_?s1(3Zj*Zh^l{h7z*gxl!q%X4d{c39` zN$Vg~xN`GT-iG!51&rwj)W1*{b|;YEfiq#!DG1qoSBv}rrs5ulbV{qPPM+wlwz9oP znjHFJHz@o>vAi~I7~cAy=^YFWi#9jP1d&i!z=&wa(EI_m^n`bPKyhR3b^P|jTR->Yo*A#wDrn`0^C%wQj zU^w`Nwt&45m%t`|iZcs>__YjiDrG@WQ+fETFAwLT3%6X|cTqnw_O+Ppu|tqqZ}381 z5PvrAmiju$<7>gV&9@Xh23#MoEC_E6`EM)am?ZW)f>@YL8+!!u_x);RgE4O>sLK&5 z-t7;_nmel4nymVy3dVb+n^N!kKctGr_$2y@`)Of7Y@{E!NuT?Eg#p9pkI71|79YCF z2DY3y4s7rjNw>)Ij~0sdl_N8>b(phLBFn;;4vFC#6<`p43exuj zPvI{O+|&H09f5;mE)Dn;?z!}Yo}2ieCWtn<(?DUY-gl~@1SrM2m^j1fxW=|-A%W>3 zI?*wFYA54LHk^@w4`YS;ky}z|mzfz76F3(&vsbQlM(4Cjc-Mp&U)m4rd3Or6D>svd zKORxk3I;Y+x=TuEQOL)m^;C~2GDdk3xy$j_zDC4mci}(Hnt$j~y0(O>NheA$W8E5}|Kvpu z=5%IFJ64@1l4!Y!rml35`UNdLB&mr{y?xNL>0-D0D1@Kj;N6L8-H2y~w1A%#iQn7Z z)(*1rcjM0jS~gg=6x=jMl;k_f7whkrpbLCn{g7lC1DP|!+B!SZSf1FWm7DA#3)k8@ zQBr$g<*PU=)k6Ec;QR)QEp%e}mKKVRG8~JeZA*0BEOEWxjj;G_ZU213I?QY7UD=YG zXEcLP>7p}rc!?djZC_ZDYg`0!)(@vp|H#+C4UC+hi{^K((`xU$z^$>vmP)QcY^Qf(46S7SmLz zp-5NwA$7kM$a|5Fvp(I6qdMso6e5&0Z7FU}1%24yUdL*FeMhtE6P6L-=i%(YV~FiY z7SFk0sy+dfUslXW?7>+G65YM<8f@?-3d1=KpnK#OKsduM{5_ZUm>5d-k><#R zt&x8KJ$Nw^u;4__sH>b+@tun#}^+4sf@j=m;VPuaSPgJq#_E=`9A!wXzTWb^d5v4&N`eYkq6T zHa)D=GH(uI(fu?v-v55-hGpOj4NjUx^jHAHH**W+93_?7k`MOT%MYAaCee~)R);fb z8vFHQ$=feg!X1|R#t~h|tMasG5LxNEt>n)M9AX?Y;R51YQ)1_}ADjCnc6f)4Nyiz8 ztH1Ci5#P@|o#S@nXd?PjFFRhUp}ku`k_jIl;{1l6FNbMHI3b02#xdohk~YZVBNAA3 zJd$!j$Cb8I3&q+v0lGJ$FDq@wplL<=)kKfOTX;G%Id%GNSb#n5B+uuvdek}^s4k2* z&G7HX9$9yj4WOSFFZ@vRq95@n<$WTy2I5{ld1aw?vPomYwVErY@J5)fw9E*B_j>Ko z@6tk(JFH9ooozte(%w$Ov+Wlyo6o;Xf`6fOggu{dFICl^AwpzV{TV#K4%p=*J`yR{&@LxPNq~QdXbt!2mc=RzD8w*Z&f*+CYQp!7D!Qj^D`ubSBUS#*I|TaY%-iJ(86j!d?rm$ zck&TV{)jt;cnxsMe!y0B-eZrZud!jaHfAEn$E^r)BKunQYJh>_hP^!Fy$gZJQ$SsrqUvnv?S}XV8se}QlC|RdwqY- zTw9SsLMGkkuc}Tk&qfggNMoaO)Y3VD;D8z-@f~@g1M0;#MeRnB3y{es=Wp5S6;?=e z+7rk5qwWgSlUj@b%cFLRPKwx0h}K|kwA=JxJ@BfwtNn{|v-f$yYY7Lp(j(-reD1Ep zT*Bm{_6Nt>-q+7fDeWjTyoxQtj2FSTVjwifU&7je<>nnR7gZg7X!xZX>n=W^$PSb{ zjkNe11cRIAP}=> zRyNNvPb;3dzLqbFm(C-D?n5F`GPr5qt2yx=X-cXv0kFA;Lm;foUi(4t5c-Ys6IAT5 zttr)6;C-8BhCL6dZ`$vP?_{aA-rV#r%my*ZzeMpz7-oLIy7tYpge67Z+)7uylo4y$ zh>e&R3IU81U)eL%k>Fu*E%^}eZAP0xresNMy1^u?wi3qvMdmjhJ@)^GCZW1cl#{F{ENEzZ+wpE$ z`7|&`Uxi7r5aiG(>W6AZwR{)1zBj%NCW9J8#yN$ko_*b4-1i0s^1iUf9Ww){KSmwI zClf8LVEq^I_7d0a-Q}!yWukHHe1Y;Wa?oU#C-!1YZR(Uwm$V`>TrON`D}QJQXXLeN zY%ArWU%xOj51R|W5CFoD!Tz97Gh~!bcNV3~`e#23HLcLR4WVTkU6;49;^T|GEyd3s zFnO!l{qj9UvfDoz7(V3nl2Y z!pn&;t}R1d6R?yNYJ0a_GofeomkGnfIKj-9J6cpZ zFg<+C4+}VbK>Z)L$hw}cAnkL9=O)oW~zCgjz%e@4cCXYQA-_knk>%L)W=olV5 z!m;R3jr@xP^iO@ypHCJK49^GMl^~1y9+gvJ>`PhZjg)Jl<-qb^uSV>0PRVdlxORmO zfXFnn>oS+{-9w5+;GT7eL(_VZ#gOlVWpvMHO+xokF=-0AW`<6=U)lb(k0kwPbQc z8Y;N|70O+B&k18p??S`|5~SG!*yd??67A6^IdcV>$->JwY1*Mj^?f@9MT*)# zWr7Y3whM#_!OuOoF?2}5&qH)4imd|HRe^|>DnJB{#I!oK||K+>&ccB^AZ!u`Ya!Nj6x{CSMx$~bt zSY^tyv^S6INk=TeDvt@_rj3m&dvd!oSD-$XjOGN*J<|YYD@JiRL=t%dYol2mUwb^k3uh z0e%sZMyU^jKM!hq>=xQKSyN{E=tsZXS2CPJf3*w zMr3p|Zb?@GVT|zeB6D!Wk)HRg{=YNo3-eIHye9WmmO{^r@$SKe{~fYO5gPI#bz zG!5mlf3uH*!ymBVQt4L{!AUm@03V_IRS544|IoqZbre;EmoLJ{!TUe@8!Y82WQx^< zwCf{Z>gLYh7GUKOLOBs*Z%T9o`5`+KcT4_J%0|lumt Date: Tue, 11 Feb 2025 17:19:07 -0600 Subject: [PATCH 153/346] Bump speech-to-phrase to 1.2.0 (#3928) * Bump speech-to-phrase to 1.2.0 * Update changelog --- speech_to_phrase/CHANGELOG.md | 5 +++++ speech_to_phrase/build.yaml | 2 +- speech_to_phrase/config.yaml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/speech_to_phrase/CHANGELOG.md b/speech_to_phrase/CHANGELOG.md index dbf32d5eab5..733a1deef8f 100644 --- a/speech_to_phrase/CHANGELOG.md +++ b/speech_to_phrase/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.2.0 + +- Split words on dashes `-` and underscores `_` +- Remove template syntax from names (`[]<>{}()`) + ## 1.1.0 - Add custom sentences diff --git a/speech_to_phrase/build.yaml b/speech_to_phrase/build.yaml index 52e5234cc0a..639615710f7 100644 --- a/speech_to_phrase/build.yaml +++ b/speech_to_phrase/build.yaml @@ -6,4 +6,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - SPEECH_TO_PHRASE_VERSION: 1.1.0 + SPEECH_TO_PHRASE_VERSION: 1.2.0 diff --git a/speech_to_phrase/config.yaml b/speech_to_phrase/config.yaml index e9d2ce22f46..031b3a6db13 100644 --- a/speech_to_phrase/config.yaml +++ b/speech_to_phrase/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.1.0 +version: 1.2.0 slug: speech-to-phrase name: Speech-to-Phrase description: Fast and personalized local speech-to-text From 8e158cdcc3edfdca30d6edab8d0703620ad9a552 Mon Sep 17 00:00:00 2001 From: Jon Lauridsen Date: Wed, 12 Feb 2025 10:57:31 +0100 Subject: [PATCH 154/346] Update DOCS.md with working keygen link (#3929) --- ssh/DOCS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ssh/DOCS.md b/ssh/DOCS.md index 75c959fe950..66f279ffc6c 100644 --- a/ssh/DOCS.md +++ b/ssh/DOCS.md @@ -116,5 +116,5 @@ In case you've found a bug, please [open an issue on our GitHub][issue]. [forum]: https://community.home-assistant.io [issue]: https://github.com/home-assistant/addons/issues [keygen-windows]: https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps -[keygen]: https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/ +[keygen]: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent [reddit]: https://reddit.com/r/homeassistant From e316767d6ec859c1a7c859a745f1aad499aa53ba Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Wed, 12 Feb 2025 20:09:52 +0100 Subject: [PATCH 155/346] Bump Z-Wave JS to 14.3.8 and Z-Wave JS Server to 1.40.3 (#3930) --- zwave_js/CHANGELOG.md | 62 +++++++++++++++++++++++++++++++++++++++++++ zwave_js/build.yaml | 4 +-- zwave_js/config.yaml | 2 +- 3 files changed, 65 insertions(+), 3 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 76e84e26616..c08c825e9ad 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,67 @@ # Changelog +## 0.10.0 + +### Features + +- Z-Wave JS Server: Forward driver ready event +- Z-Wave JS Server: Support controller.cancelSecureBootstrapS2 +- Z-Wave JS Server: Support zwave-js v14 +- Z-Wave JS: Allow specifying RF region for OTA firmware updates if the region is unknown or cannot be queried +- Z-Wave JS: Add tryUnzipFirmwareFile utility to support zipped OTA firmware files + +### Bug fixes + +- Z-Wave JS Server: Fix stringify Uint8Arrays like Buffers +- Z-Wave JS: Fixed firmware updates fail to start on some devices with error "invalid hardware version" +- Z-Wave JS: Fixed another issue where some CC API methods would incorrectly fail validation of their arguments, causing the node interview to fail +- Z-Wave JS: Fixed an issue that prevented the nvmedit CI utility from starting +- Z-Wave JS: Fixed an issue where some CC API methods would incorrectly fail validation of their arguments +- Z-Wave JS: Fixed an issue where CC classes would have a different name when zwave-js was loaded as CommonJS, changing how those CCs were handled +- Z-Wave JS: Fix parsing of some older 500 series NVM formats +- Z-Wave JS: Fixed an issue where mock-server would not start due to an incorrect module format +- Z-Wave JS: Fixed an issue where the auto-generated argument validation for CC API methods would not work correctly in some cases when zwave-js was bundled +- Z-Wave JS: Fixed an issue where encoding a buffer as an ASCII string would throw an error on Node.js builds without full ICU +- Z-Wave JS: Parse negative setback state consistently +- Z-Wave JS: Ignore LR nodes when computing neighbor discovery timeout +- Z-Wave JS: Automatically fall back to Europe when setting region to Default (EU) + +### Config file changes + +- Preserve all endpoints for Fibaro FGFS101, FW 26.26 +- Preserve all endpoints for Fibaro FGFS101, FW 25.25 +- Updates to AEON Labs Minimote +- Auto-assign Lifeline for Trane XL624 +- Disable Supervision for Everspring SP817 Motion Sensor +- Add wakeup instructions for ZSE43 +- Add wakeup instructions for ZSE42 +- Add wakeup instructions for ZSE41 +- Add Zooz ZSE70 800LR +- Add new device config for Philips DDL240X-15HZW lock +- Add Z-Wave.me Z-Station +- Add HomeSys HomeMech-2001/2 +- Ignore setpoint range for Ecolink TBZ500 +- Add Aeotec TriSensor 8 +- Disable Supervision for Everspring SE813 + +### Detailed changelogs + +- [Z-Wave JS Server 1.40.3](https://github.com/zwave-js/zwave-js-server/releases/tag/1.40.3) +- [Z-Wave JS Server 1.40.2](https://github.com/zwave-js/zwave-js-server/releases/tag/1.40.2) +- [Z-Wave JS Server 1.40.0](https://github.com/zwave-js/zwave-js-server/releases/tag/1.40.0) +- [Z-Wave JS 14.3.8](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.8) +- [Z-Wave JS 14.3.7](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.7) +- [Z-Wave JS 14.3.6](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.6) +- [Z-Wave JS 14.3.5](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.5) +- [Z-Wave JS 14.3.4](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.4) +- [Z-Wave JS 14.3.3](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.3) +- [Z-Wave JS 14.3.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.2) +- [Z-Wave JS 14.3.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.1) +- [Z-Wave JS 14.2.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.2.0) +- [Z-Wave JS 14.1.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.1.0) +- [Z-Wave JS 14.0.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.0.0) +- [Z-Wave JS 13.10.3](https://github.com/zwave-js/node-zwave-js/releases/tag/v13.10.3) + ## 0.9.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 6826529213e..5c71d782983 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 1.39.0 - ZWAVEJS_VERSION: 13.10.3 + ZWAVEJS_SERVER_VERSION: 1.40.3 + ZWAVEJS_VERSION: 14.3.8 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 0b5cd561134..cc3e27acede 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.9.0 +version: 0.10.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 72f0b7fc08b9fc731637780c4314c7557611193e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6tz=20G=C3=B6risch?= <47734341+GoetzGoerisch@users.noreply.github.com> Date: Fri, 14 Feb 2025 16:36:40 +0100 Subject: [PATCH 156/346] letsencrypt: Update certbot and dns plugins (#3902) * letsencrypt: update certbot and dns plugins * fixes CVE-2024-12797 * letsencrypt: Update remaining dns challenges with DNS_PROVIDER placeholder * letsencrypt: Remove verbose flag from INWX command line * letsencrypt: Update INWX API URL * letsencrypt: disabled dns-mijn-host and dns-websupport * plugins are currently outdated and/or unmaintained * add breaking_versions to config.yaml Co-authored-by: Stefan Agner Signed-off-by: Goetz Goerisch <47734341+GoetzGoerisch@users.noreply.github.com> * letsencrypt: update to Python 3.13 and Alpine 3.21 Signed-off-by: Goetz Goerisch <47734341+GoetzGoerisch@users.noreply.github.com> * letsencrypt: fix cmd inconsistency for dns-infomaniak --------- Signed-off-by: Goetz Goerisch <47734341+GoetzGoerisch@users.noreply.github.com> Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 23 ++++++++++++ letsencrypt/DOCS.md | 12 +++---- letsencrypt/Dockerfile | 6 ++-- letsencrypt/build.yaml | 36 +++++++++---------- letsencrypt/config.yaml | 3 +- .../rootfs/etc/cont-init.d/file-structure.sh | 2 +- .../rootfs/etc/services.d/lets-encrypt/run | 12 +++---- 7 files changed, 60 insertions(+), 34 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 6141a7343b8..0bca45c649b 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## 5.3.0 + +- Disabled certbot-dns-mijn-host (Breaking change) + - issue: [mijnhost/certbot-dns-mijn-host#8](https://github.com/mijnhost/certbot-dns-mijn-host/issues/8) +- Disabled certbot-dns-websupport (Breaking change) + - issue: [johnybx/certbot-dns-websupport#1](https://github.com/johnybx/certbot-dns-websupport/issues/1) +- Update to Python 3.13 +- Update to Alpine 3.21 +- Update certbot to 3.1.0 +- Update acme to 3.1.0 +- Update cryptography to 44.0.1 +- Update certbot-dns-azure to 2.6.1 +- Update certbot-dns-directadmin to 10.0.13 +- Update certbot-dns-duckdns to 1.5 +- Update certbot-dns-dynu to 0.0.6 +- Update certbot-dns-inwx to 3.0.1 +- Update certbot-dns-ionos to 2024.11.9 +- Update certbot-dns-norisnetwork to 0.3.0 +- Update certbot-dns-porkbun to 0.9.1 +- Update certbot-dns-netcup to 1.4.4 +- Update certbot-dns-njalla to 2.0.2 +- Update the remaining dns challenges with DNS_PROVIDER placeholder + ## 5.2.12 - Add rfc2136_sign_query parameter to config.yaml diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 9c9793c3169..b9d862a189e 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -61,7 +61,7 @@ dns-joker dns-linode dns-loopia dns-luadns -dns-mijn-host +dns-mijn-host (currently disable - see changelog) dns-njalla dns-noris dns-simply @@ -78,7 +78,7 @@ dns-inwx dns-porkbun dns-easydns dns-domainoffensive -dns-websupport +dns-websupport (currently disable - see changelog) ``` @@ -978,7 +978,7 @@ dns:

- WebSupport + WebSupport (currently disable - see changelog) An identifier and secret key have to be obtained to use this module (see https://admin.websupport.sk/sk/auth/apiKey). @@ -1088,7 +1088,7 @@ The API key assigned to your Simply.com account can be found in your Simply.com
- mijn.host DNS challenge + mijn.host DNS challenge (currently disable - see changelog) ```yaml email: your.email@example.com @@ -1138,7 +1138,7 @@ dns-ionos dns-linode dns-loopia dns-luadns -dns-mijn-host +dns-mijn-host (currently disable - see changelog) dns-njalla dns-noris dns-plesk @@ -1156,7 +1156,7 @@ dns-inwx dns-porkbun dns-easydns dns-domainoffensive -dns-websupport +dns-websupport (currently disable - see changelog) ``` ## Support diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 489454318ce..457d4e16709 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -74,7 +74,8 @@ RUN \ certbot-dns-linode==${CERTBOT_VERSION} \ certbot-dns-loopia==${CERTBOT_DNS_LOOPIA_VERSION} \ certbot-dns-luadns==${CERTBOT_VERSION} \ - certbot-dns-mijn-host==${CERTBOT_DNS_MIJN_HOST_VERSION} \ + # Disabled due to unresolved issues + # certbot-dns-mijn-host==${CERTBOT_DNS_MIJN_HOST_VERSION} \ certbot-dns-njalla==${CERTBOT_NJALLA_VERSION} \ certbot-dns-norisnetwork==${CERTBOT_DNS_NORISNETWORK_VERSION} \ certbot-dns-nsone==${CERTBOT_VERSION} \ @@ -93,7 +94,8 @@ RUN \ certbot-dns-hurricane-electric==${CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION} \ certbot-dns-easydns==${CERTBOT_DNS_EASYDNS_VERSION} \ certbot-dns-domainoffensive==${CERTBOT_DNS_DOMAINOFFENSIVE_VERSION} \ - certbot-dns-websupport==${CERTBOT_DNS_WEBSUPPORT_VERSION} \ + # Disabled due to unresolved issues + # certbot-dns-websupport==${CERTBOT_DNS_WEBSUPPORT_VERSION} \ certbot-dns-plesk==${CERTBOT_DNS_PLESK_VERSION} \ acme==${ACME_VERSION} \ && apk del .build-dependencies diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index e6229a80a0d..f1204aa1079 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -1,43 +1,43 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base-python:3.12-alpine3.20 - amd64: ghcr.io/home-assistant/amd64-base-python:3.12-alpine3.20 - armhf: ghcr.io/home-assistant/armhf-base-python:3.12-alpine3.20 - armv7: ghcr.io/home-assistant/armv7-base-python:3.12-alpine3.20 - i386: ghcr.io/home-assistant/i386-base-python:3.12-alpine3.20 + aarch64: ghcr.io/home-assistant/aarch64-base-python:3.13-alpine3.21 + amd64: ghcr.io/home-assistant/amd64-base-python:3.13-alpine3.21 + armhf: ghcr.io/home-assistant/armhf-base-python:3.13-alpine3.21 + armv7: ghcr.io/home-assistant/armv7-base-python:3.13-alpine3.21 + i386: ghcr.io/home-assistant/i386-base-python:3.13-alpine3.21 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: CLOUDFLARE_VERSION: 2.19.4 - CRYPTOGRAPHY_VERSION: 42.0.8 - CERTBOT_VERSION: 2.11.0 - CERTBOT_DNS_AZURE_VERSION: 2.5.0 + CRYPTOGRAPHY_VERSION: 44.0.1 + CERTBOT_VERSION: 3.1.0 + CERTBOT_DNS_AZURE_VERSION: 2.6.1 CERTBOT_DNS_CLOUDNS_VERSION: 0.7.0 CERTBOT_DNS_DESEC_VERSION: 1.2.1 - CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.12 - CERTBOT_DNS_DUCKDNS_VERSION: 1.3 - CERTBOT_DNS_DYNU_VERSION: 0.0.5 + CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.13 + CERTBOT_DNS_DUCKDNS_VERSION: 1.5 + CERTBOT_DNS_DYNU_VERSION: 0.0.6 CERTBOT_DNS_EASYDNS_VERSION: 0.1.4 CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION: 0.1.0 CERTBOT_DNS_HETZNER_VERSION: 2.0.1 CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.3 - CERTBOT_DNS_INWX_VERSION: 2.2.0 - CERTBOT_DNS_IONOS_VERSION: 2024.1.8 + CERTBOT_DNS_INWX_VERSION: 3.0.1 + CERTBOT_DNS_IONOS_VERSION: 2024.11.9 CERTBOT_DNS_JOKER_VERSION: 1.1.0 CERTBOT_DNS_LOOPIA_VERSION: 1.0.1 CERTBOT_DNS_MIJN_HOST_VERSION: 0.0.5 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 - CERTBOT_DNS_NORISNETWORK_VERSION: 0.2.1 + CERTBOT_DNS_NORISNETWORK_VERSION: 0.3.0 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 - CERTBOT_DNS_PORKBUN_VERSION: 0.8.0 + CERTBOT_DNS_PORKBUN_VERSION: 0.9.1 CERTBOT_DNS_WEBSUPPORT_VERSION: 2.0.1 CERTBOT_DNS_SIMPLY_VERSION: 0.1.2 CERTBOT_GANDI_VERSION: 1.5.0 - CERTBOT_NETCUP_VERSION: 1.4.3 - CERTBOT_NJALLA_VERSION: 1.0.0 + CERTBOT_NETCUP_VERSION: 1.4.4 + CERTBOT_NJALLA_VERSION: 2.0.2 CERTBOT_DNS_DREAMHOST_VERSION: 1.0 CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 CERTBOT_DNS_PLESK_VERSION: 0.3.0 CERTBOT_DNS_GODADDY_VERSION: 2.8.0 - ACME_VERSION: 2.11.0 + ACME_VERSION: 3.1.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index c3f1446e84d..fef2797a3e5 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,6 @@ --- -version: 5.2.12 +version: 5.3.0 +breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 202c158833b..d4149e06081 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -68,7 +68,7 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_transip_username = $(bashio::config 'dns.transip_username')\n" \ "dns_transip_global_key = $(bashio::config 'dns.transip_global_key')\n" \ "dns_transip_key_file = /data/transip-rsa.key\n" \ - "dns_inwx_url = https://api.domrobot.com/xmlrpc/\n" \ + "dns_inwx_url = https://api.domrobot.com\n" \ "dns_inwx_username = $(bashio::config 'dns.inwx_username')\n" \ "dns_inwx_password = $(bashio::config 'dns.inwx_password')\n" \ "dns_inwx_shared_secret = $(bashio::config 'dns.inwx_shared_secret')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 30ee3996f1a..8bb4ca4e944 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -103,7 +103,7 @@ elif [ "${DNS_PROVIDER}" == "dns-cloudflare" ]; then "dns_cloudflare_api_key = $(bashio::config 'dns.cloudflare_api_key')\n" >> "/data/dnsapikey" fi - PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--dns-cloudflare-propagation-seconds" "${PROPAGATION_SECONDS}") + PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") # DigitalOcean elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-digitalocean" ]; then @@ -152,12 +152,12 @@ elif [ "${DNS_PROVIDER}" == "dns-godaddy" ]; then # Hetzner elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-hetzner" ]; then bashio::config.require 'dns.hetzner_api_token' - PROVIDER_ARGUMENTS+=("--authenticator" "dns-hetzner" "--dns-hetzner-credentials" "/data/dnsapikey" "--dns-hetzner-propagation-seconds" "${PROPAGATION_SECONDS}") + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") # Infomaniak elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-infomaniak" ]; then bashio::config.require 'dns.infomaniak_api_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" /data/dnsapikey "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") # IONOS elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-ionos" ]; then @@ -200,7 +200,7 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-njalla" ]; then # rfc2136 elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-rfc2136" ]; then - PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--dns-rfc2136-propagation-seconds" "${PROPAGATION_SECONDS}") + PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") # Azure elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-azure" ]; then @@ -221,7 +221,7 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-inwx" ]; then bashio::config.require 'dns.inwx_username' bashio::config.require 'dns.inwx_password' bashio::config.require 'dns.inwx_shared_secret' - PROVIDER_ARGUMENTS+=("-v" "--authenticator" "${DNS_PROVIDER}" "--dns-inwx-credentials" "/data/dnsapikey" "--dns-inwx-propagation-seconds" "${PROPAGATION_SECONDS}") + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-desec" ]; then bashio::config.require 'dns.desec_token' @@ -242,7 +242,7 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-cloudns" ]; then elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-dreamhost" ]; then bashio::config.require 'dns.dreamhost_baseurl' bashio::config.require 'dns.dreamhost_api_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--dns-dreamhost-credentials" "/data/dnsapikey") + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") # Hurricane Electric elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-he" ]; then From 0ce853f8f7f0f24083362be61a2286194917a844 Mon Sep 17 00:00:00 2001 From: Christian Wendt Date: Tue, 18 Feb 2025 10:58:49 +0100 Subject: [PATCH 157/346] Add Eurodns DNS support (#3937) --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 24 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 6 +++-- .../rootfs/etc/cont-init.d/file-structure.sh | 2 ++ .../rootfs/etc/services.d/lets-encrypt/run | 6 +++++ 7 files changed, 43 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 0bca45c649b..174f5373f01 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.3.1 + +- Add Eurodns DNS support + ## 5.3.0 - Disabled certbot-dns-mijn-host (Breaking change) diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index b9d862a189e..ca8bd46b809 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -51,6 +51,7 @@ dns-dnsmadeeasy dns-duckdns dns-dreamhost dns-dynu +dns-eurodns dns-gehirn dns-godaddy dns-google @@ -105,6 +106,8 @@ dnsmadeeasy_api_key: '' dnsmadeeasy_secret_key: '' duckdns_token: '' dynu_auth_token: '' +eurodns_applicationId: '' +eurodns_apiKey: '' google_creds: '' hetzner_api_token: '' gehirn_api_token: '' @@ -976,6 +979,26 @@ dns:
+
+ Eurodns DNS challenge + + You can configure the APP id and the API key in the API Users area of the Eurodns control panel: https://my.eurodns.com/apiusers + +```yaml +domains: + - your.domain.tld +certfile: fullchain.pem +keyfile: privkey.pem +challenge: dns +dns: + provider: dns-eurodns + eurodns_applicationId: X-APP-ID + eurodns_apiKey: X-API-KEY + propagation_seconds: 60 +``` + +
+
WebSupport (currently disable - see changelog) @@ -1130,6 +1153,7 @@ dns-dnsmadeeasy dns-duckdns dns-dreamhost dns-dynu +dns-eurodns dns-gehirn dns-google dns-hetzner diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 457d4e16709..55d5a18324d 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -14,6 +14,7 @@ ARG \ CERTBOT_DNS_DREAMHOST_VERSION \ CERTBOT_DNS_DUCKDNS_VERSION \ CERTBOT_DNS_DYNU_VERSION \ + CERTBOT_DNS_EURODNS_VERSION \ CERTBOT_DNS_EASYDNS_VERSION \ CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION \ CERTBOT_DNS_HETZNER_VERSION \ @@ -64,6 +65,7 @@ RUN \ certbot-dns-dnsmadeeasy==${CERTBOT_VERSION} \ certbot-dns-duckdns==${CERTBOT_DNS_DUCKDNS_VERSION} \ certbot-dns-dynu-dev==${CERTBOT_DNS_DYNU_VERSION} \ + certbot-dns-eurodns==${CERTBOT_DNS_EURODNS_VERSION} \ certbot-dns-gehirn==${CERTBOT_VERSION} \ certbot-dns-godaddy==${CERTBOT_DNS_GODADDY_VERSION} \ certbot-dns-google==${CERTBOT_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index f1204aa1079..048a00a6ad4 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -18,6 +18,7 @@ args: CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.13 CERTBOT_DNS_DUCKDNS_VERSION: 1.5 CERTBOT_DNS_DYNU_VERSION: 0.0.6 + CERTBOT_DNS_EURODNS_VERSION: 1.8.1 CERTBOT_DNS_EASYDNS_VERSION: 0.1.4 CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION: 0.1.0 CERTBOT_DNS_HETZNER_VERSION: 2.0.1 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index fef2797a3e5..0729ef3f924 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.3.0 +version: 5.3.1 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt @@ -61,6 +61,8 @@ schema: dnsmadeeasy_secret_key: str? duckdns_token: str? dynu_auth_token: str? + eurodns_applicationId: str? + eurodns_apiKey: str? gandi_api_key: str? gandi_token: str? gandi_sharing_id: str? @@ -106,7 +108,7 @@ schema: propagation_seconds: int(60,3600)? provider: "list(dns-azure|dns-cloudflare|dns-cloudns|dns-desec|\ dns-digitalocean|dns-directadmin|dns-dnsimple|dns-dnsmadeeasy|\ - dns-duckdns|dns-dynu|dns-gehirn|dns-godaddy|dns-google|\ + dns-duckdns|dns-dynu|dns-eurodns|dns-gehirn|dns-godaddy|dns-google|\ dns-hetzner|dns-infomaniak|dns-ionos|dns-joker|dns-linode|dns-loopia|dns-luadns|\ dns-mijn-host|dns-njalla|dns-nsone|dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|\ dns-sakuracloud|dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|\ diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index d4149e06081..33b8a7e8954 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -17,6 +17,8 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_dnsmadeeasy_secret_key = $(bashio::config 'dns.dnsmadeeasy_secret_key')\n" \ "dns_duckdns_token = $(bashio::config 'dns.duckdns_token')\n" \ "dns_dynu_auth_token = $(bashio::config 'dns.dynu_auth_token')\n" \ + "dns_eurodns_applicationId = $(bashio::config 'dns.eurodns_applicationId')\n" \ + "dns_eurodns_apiKey = $(bashio::config 'dns.eurodns_apiKey')\n" \ "dns_gehirn_api_token = $(bashio::config 'dns.gehirn_api_token')\n" \ "dns_gehirn_api_secret = $(bashio::config 'dns.gehirn_api_secret')\n" \ "dns_godaddy_secret = $(bashio::config 'dns.godaddy_secret')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 8bb4ca4e944..2bc165d8287 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -127,6 +127,12 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-dynu" ]; then bashio::config.require 'dns.dynu_auth_token' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# Eurodns +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-eurodns" ]; then + bashio::config.require 'dns.eurodns_applicationId' + bashio::config.require 'dns.eurodns_apiKey' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # Gandi elif [ "${DNS_PROVIDER}" == "dns-gandi" ]; then if bashio::config.exists 'dns.gandi_sharing_id'; then From 06b4a21f3c098ae2e78c72efe2bc8dc939ee616b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6tz=20G=C3=B6risch?= <47734341+GoetzGoerisch@users.noreply.github.com> Date: Tue, 18 Feb 2025 11:06:04 +0100 Subject: [PATCH 158/346] letsencrypt: update certbot, acme and dns-inwx (#3936) * fixes https://github.com/home-assistant/addons/issues/3935 Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 6 ++++++ letsencrypt/build.yaml | 6 +++--- letsencrypt/config.yaml | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 174f5373f01..6e50406c06e 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 5.3.2 + +- Update certbot to 3.2.0 +- Update acme to 3.2.0 +- Update certbot-dns-inwx to 3.0.2 + ## 5.3.1 - Add Eurodns DNS support diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 048a00a6ad4..d3eb93cef47 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -11,7 +11,7 @@ codenotary: args: CLOUDFLARE_VERSION: 2.19.4 CRYPTOGRAPHY_VERSION: 44.0.1 - CERTBOT_VERSION: 3.1.0 + CERTBOT_VERSION: 3.2.0 CERTBOT_DNS_AZURE_VERSION: 2.6.1 CERTBOT_DNS_CLOUDNS_VERSION: 0.7.0 CERTBOT_DNS_DESEC_VERSION: 1.2.1 @@ -23,7 +23,7 @@ args: CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION: 0.1.0 CERTBOT_DNS_HETZNER_VERSION: 2.0.1 CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.3 - CERTBOT_DNS_INWX_VERSION: 3.0.1 + CERTBOT_DNS_INWX_VERSION: 3.0.2 CERTBOT_DNS_IONOS_VERSION: 2024.11.9 CERTBOT_DNS_JOKER_VERSION: 1.1.0 CERTBOT_DNS_LOOPIA_VERSION: 1.0.1 @@ -41,4 +41,4 @@ args: CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 CERTBOT_DNS_PLESK_VERSION: 0.3.0 CERTBOT_DNS_GODADDY_VERSION: 2.8.0 - ACME_VERSION: 3.1.0 + ACME_VERSION: 3.2.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 0729ef3f924..5e3a7f4a282 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.3.1 +version: 5.3.2 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt From 00c0be689468407578be8f8a358bef8f6f2bc9c7 Mon Sep 17 00:00:00 2001 From: "mijn.host" Date: Tue, 18 Feb 2025 19:01:06 +0100 Subject: [PATCH 159/346] Re-enable dns-mijn-host (#3938) * Re-enable dns-mijn-host * Update certbot-dns-mijn-host version to 0.0.6 * Create new version * Bump certbot-mijn-host version * Bump version to 0.0.8 --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 6 +++--- letsencrypt/Dockerfile | 3 +-- letsencrypt/build.yaml | 2 +- letsencrypt/config.yaml | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 6e50406c06e..955079ef218 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.3.3 + +- Re-enabled certbot-dns-mijn-host + ## 5.3.2 - Update certbot to 3.2.0 diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index ca8bd46b809..2e3832ca5f8 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -62,7 +62,7 @@ dns-joker dns-linode dns-loopia dns-luadns -dns-mijn-host (currently disable - see changelog) +dns-mijn-host dns-njalla dns-noris dns-simply @@ -1111,7 +1111,7 @@ The API key assigned to your Simply.com account can be found in your Simply.com
- mijn.host DNS challenge (currently disable - see changelog) + mijn.host DNS challenge ```yaml email: your.email@example.com @@ -1162,7 +1162,7 @@ dns-ionos dns-linode dns-loopia dns-luadns -dns-mijn-host (currently disable - see changelog) +dns-mijn-host dns-njalla dns-noris dns-plesk diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 55d5a18324d..20c82676c80 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -76,8 +76,7 @@ RUN \ certbot-dns-linode==${CERTBOT_VERSION} \ certbot-dns-loopia==${CERTBOT_DNS_LOOPIA_VERSION} \ certbot-dns-luadns==${CERTBOT_VERSION} \ - # Disabled due to unresolved issues - # certbot-dns-mijn-host==${CERTBOT_DNS_MIJN_HOST_VERSION} \ + certbot-dns-mijn-host==${CERTBOT_DNS_MIJN_HOST_VERSION} \ certbot-dns-njalla==${CERTBOT_NJALLA_VERSION} \ certbot-dns-norisnetwork==${CERTBOT_DNS_NORISNETWORK_VERSION} \ certbot-dns-nsone==${CERTBOT_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index d3eb93cef47..ed1bfcda3b6 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -27,7 +27,7 @@ args: CERTBOT_DNS_IONOS_VERSION: 2024.11.9 CERTBOT_DNS_JOKER_VERSION: 1.1.0 CERTBOT_DNS_LOOPIA_VERSION: 1.0.1 - CERTBOT_DNS_MIJN_HOST_VERSION: 0.0.5 + CERTBOT_DNS_MIJN_HOST_VERSION: 0.0.8 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 CERTBOT_DNS_NORISNETWORK_VERSION: 0.3.0 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 5e3a7f4a282..ecc74087b30 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.3.2 +version: 5.3.3 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt From eac4c45598de687f0cf7025e3dbb5297563f7b9a Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Tue, 18 Feb 2025 15:08:38 -0600 Subject: [PATCH 160/346] Bump speech-to-phrase to 1.3.0 (#3940) --- speech_to_phrase/CHANGELOG.md | 8 ++++++++ speech_to_phrase/build.yaml | 2 +- speech_to_phrase/config.yaml | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/speech_to_phrase/CHANGELOG.md b/speech_to_phrase/CHANGELOG.md index 733a1deef8f..315a67cbfce 100644 --- a/speech_to_phrase/CHANGELOG.md +++ b/speech_to_phrase/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 1.3.0 + +- Add Coqui STT +- Support range fractions in custom sentences (https://github.com/OHF-Voice/speech-to-phrase/issues/5) +- Do full re-train at startup (https://github.com/OHF-Voice/speech-to-phrase/issues/11) +- Remove websocket command message limit (https://github.com/OHF-Voice/speech-to-phrase/issues/6) +- Bump `unicode-rbnf` to 2.3.0 (https://github.com/OHF-Voice/speech-to-phrase/issues/15) + ## 1.2.0 - Split words on dashes `-` and underscores `_` diff --git a/speech_to_phrase/build.yaml b/speech_to_phrase/build.yaml index 639615710f7..736e1c3ba0b 100644 --- a/speech_to_phrase/build.yaml +++ b/speech_to_phrase/build.yaml @@ -6,4 +6,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - SPEECH_TO_PHRASE_VERSION: 1.2.0 + SPEECH_TO_PHRASE_VERSION: 1.3.0 diff --git a/speech_to_phrase/config.yaml b/speech_to_phrase/config.yaml index 031b3a6db13..cac2f2858fd 100644 --- a/speech_to_phrase/config.yaml +++ b/speech_to_phrase/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.2.0 +version: 1.3.0 slug: speech-to-phrase name: Speech-to-Phrase description: Fast and personalized local speech-to-text From 13c92fda8ef617b93bb89873ba2e32958c8a31c6 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 20 Feb 2025 13:05:21 -0500 Subject: [PATCH 161/346] Downgrade the builder runner from `ubuntu-latest` to `ubuntu-22.04` (#3945) --- .github/workflows/builder.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 0700f3e14df..8d4d1dfa436 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -14,7 +14,7 @@ on: jobs: init: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 name: Initialize builds outputs: changed_files: ${{ steps.changed_files.outputs.all }} @@ -64,7 +64,7 @@ jobs: build: needs: init - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: needs.init.outputs.changed == 'true' name: Build ${{ matrix.arch }} ${{ matrix.addon }} add-on strategy: From 976afaf0206afb40d456a007cdc90b72f0943f13 Mon Sep 17 00:00:00 2001 From: Laszlo Magyar Date: Mon, 24 Feb 2025 16:11:06 +0200 Subject: [PATCH 162/346] Samba: Add the ability to enable and disable trying to become a local master browser on a subnet (#3950) * add local_master option * update changelog * bump version --- samba/CHANGELOG.md | 5 +++++ samba/DOCS.md | 5 +++++ samba/config.yaml | 4 +++- samba/rootfs/usr/share/tempio/smb.gtpl | 1 + samba/translations/en.yaml | 3 +++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/samba/CHANGELOG.md b/samba/CHANGELOG.md index 4526ed32b16..ace5335f0f1 100644 --- a/samba/CHANGELOG.md +++ b/samba/CHANGELOG.md @@ -1,4 +1,9 @@ # Changelog + +## 12.5.0 + +- Add the ability to enable and disable trying to become a local master browser on a subnet + ## 12.4.0 - Add the ability to enable and disable specific shares, improving user control over folder access diff --git a/samba/DOCS.md b/samba/DOCS.md index 49729074c8b..99ec6e1423c 100644 --- a/samba/DOCS.md +++ b/samba/DOCS.md @@ -36,6 +36,7 @@ Add-on configuration: ```yaml workgroup: WORKGROUP +local_master: true username: homeassistant password: YOUR_PASSWORD enabled_shares: @@ -64,6 +65,10 @@ compatibility_mode: false Change WORKGROUP to reflect your network needs. +### Option: `local_master` (required) + +Enable to try and become a local master browser on a subnet. + ### Option: `username` (required) The username you would like to use to authenticate with the Samba server. diff --git a/samba/config.yaml b/samba/config.yaml index 99a27a02526..b682678cdbc 100644 --- a/samba/config.yaml +++ b/samba/config.yaml @@ -1,5 +1,5 @@ --- -version: 12.4.0 +version: 12.5.0 slug: samba name: Samba share description: Expose Home Assistant folders with SMB/CIFS @@ -27,6 +27,7 @@ options: username: homeassistant password: null workgroup: WORKGROUP + local_master: true enabled_shares: - addons - addon_configs @@ -53,6 +54,7 @@ schema: username: str password: password workgroup: str + local_master: bool enabled_shares: - "match(^(?i:(addons|addon_configs|backup|config|media|share|ssl))$)" compatibility_mode: bool diff --git a/samba/rootfs/usr/share/tempio/smb.gtpl b/samba/rootfs/usr/share/tempio/smb.gtpl index ad35a3e6fdf..d923890ccb3 100644 --- a/samba/rootfs/usr/share/tempio/smb.gtpl +++ b/samba/rootfs/usr/share/tempio/smb.gtpl @@ -2,6 +2,7 @@ netbios name = {{ env "HOSTNAME" }} workgroup = {{ .workgroup }} server string = Samba Home Assistant + local master = {{ .local_master | ternary "yes" "no" }} security = user ntlm auth = yes diff --git a/samba/translations/en.yaml b/samba/translations/en.yaml index 4b4e855af16..1013cf85f07 100644 --- a/samba/translations/en.yaml +++ b/samba/translations/en.yaml @@ -11,6 +11,9 @@ configuration: workgroup: name: Workgroup description: Change WORKGROUP to reflect your network needs. + local_master: + name: Local master + description: Enable to try and become a local master browser on a subnet. enabled_shares: name: >- Enabled Shares - allowed values are: From 1ca5f12138404bab068be196f19cea1f7cf4b10a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6tz=20G=C3=B6risch?= <47734341+GoetzGoerisch@users.noreply.github.com> Date: Mon, 24 Feb 2025 18:47:47 +0100 Subject: [PATCH 163/346] letsencrypt: refactor addon (#3943) * letsencrypt: improve documentation * letsencrypt: refactor configuration and align with documentation * letsencrypt: improve documentation * letsencrypt: refactor scripts * letsencrypt: switch dns-gandi to a maintained version * letsencrypt: add additional arguments to certbot * letsencrypt: fix review suggestions * letsencrypt: add check for TransIP global_key * as per comment https://github.com/home-assistant/addons/pull/3855#issuecomment-2539017086 * fixes https://github.com/home-assistant/addons/issues/3876 Co-authored-by: Goopher * letsencrypt: refactor with coderabbitai suggestions Signed-off-by: Goetz Goerisch <47734341+GoetzGoerisch@users.noreply.github.com> * letsencrypt: bump to 5.4.0 --------- Signed-off-by: Goetz Goerisch <47734341+GoetzGoerisch@users.noreply.github.com> Co-authored-by: Goopher --- letsencrypt/CHANGELOG.md | 8 + letsencrypt/DOCS.md | 1102 +++++++++++------ letsencrypt/Dockerfile | 57 +- letsencrypt/README.md | 6 - letsencrypt/build.yaml | 31 +- letsencrypt/config.yaml | 115 +- .../rootfs/etc/cont-init.d/file-structure.sh | 78 +- .../rootfs/etc/services.d/lets-encrypt/run | 257 ++-- letsencrypt/translations/en.yaml | 12 + 9 files changed, 1018 insertions(+), 648 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 955079ef218..5ac0837f994 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 5.4.0 + +- Add additional arguments to certbot (dry-run, test-cert, verbose) +- Switch gandi-dns to a maintained version (certbot-plugin-gandi-modern) +- Refactor scripts +- Improve documentation +- Refactor configuration and align with documentation + ## 5.3.3 - Re-enabled certbot-dns-mijn-host diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 2e3832ca5f8..430f427cba8 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -26,16 +26,18 @@ There are two options to obtain certificates. ### 1. HTTP challenge - Requires Port 80 to be available from the internet and your domain assigned to the externally assigned IP address -- Doesn’t allow wildcard certificates (*.yourdomain.com). +- Doesn’t allow wildcard certificates (*.domain.tld). ### 2. DNS challenge - Requires you to use one of the supported DNS providers (See "Supported DNS providers" below) -- Allows to request wildcard certificates (*.yourdomain.com) +- Allows to request wildcard certificates (*.domain.tld) - Doesn’t need you to open a port to your Home Assistant host on your router. ### DNS providers + +
Supported DNS providers @@ -48,39 +50,42 @@ dns-digitalocean dns-directadmin dns-dnsimple dns-dnsmadeeasy -dns-duckdns +dns-domainoffensive dns-dreamhost +dns-duckdns dns-dynu +dns-easydns dns-eurodns +dns-gandi dns-gehirn dns-godaddy dns-google +dns-he dns-hetzner dns-infomaniak +dns-inwx dns-ionos dns-joker dns-linode dns-loopia dns-luadns dns-mijn-host +dns-namecheap +dns-netcup dns-njalla dns-noris -dns-simply dns-nsone dns-ovh +dns-plesk +dns-porkbun dns-rfc2136 dns-route53 dns-sakuracloud -dns-namecheap -dns-netcup -dns-gandi +dns-simply dns-transip -dns-inwx -dns-porkbun -dns-easydns -dns-domainoffensive dns-websupport (currently disable - see changelog) ``` +
@@ -88,88 +93,96 @@ dns-websupport (currently disable - see changelog) ```yaml propagation_seconds: 60 +aws_access_key_id: '' +aws_secret_access_key: '' azure_config: '' -cloudflare_email: '' cloudflare_api_key: '' cloudflare_api_token: '' +cloudflare_email: '' cloudns_auth_id: '' +cloudns_auth_password: '' cloudns_sub_auth_id: '' cloudns_sub_auth_user: '' -cloudns_auth_password: '' desec_token: '' digitalocean_token: '' +directadmin_password: '' directadmin_url: '' directadmin_username: '' -directadmin_password: '' dnsimple_token: '' dnsmadeeasy_api_key: '' dnsmadeeasy_secret_key: '' +domainoffensive_token: '' +dreamhost_api_baseurl: '' +dreamhost_api_key: '' duckdns_token: '' dynu_auth_token: '' -eurodns_applicationId: '' +easydns_endpoint: '' +easydns_key: '' +easydns_token: '' eurodns_apiKey: '' -google_creds: '' -hetzner_api_token: '' -gehirn_api_token: '' +eurodns_applicationId: '' +gandi_api_key: '' +gandi_sharing_id: '' +gandi_token: '' gehirn_api_secret: '' -godaddy_secret: '' +gehirn_api_token: '' godaddy_key: '' +godaddy_secret: '' +google_creds: '' +he_pass: '' +he_user: '' +hetzner_api_token: '' infomaniak_api_token: '' +inwx_password: '' +inwx_shared_secret: '' +inwx_username: '' +ionos_endpoint: '' ionos_prefix: '' ionos_secret: '' -ionos_endpoint: '' -joker_username: '' -joker_password: '' joker_domain: '' +joker_password: '' +joker_username: '' linode_key: '' linode_version: '' -loopia_user: '' loopia_password: '' +loopia_user: '' luadns_email: '' luadns_token: '' mijn_host_api_key: '' +namecheap_api_key: '' +namecheap_username: '' +netcup_api_key: '' +netcup_api_password: '' +netcup_customer_id: '' njalla_token: '' noris_token: '' nsone_api_key: '' -ovh_endpoint: '' ovh_application_key: '' ovh_application_secret: '' ovh_consumer_key: '' -rfc2136_server: '' -rfc2136_port: '' +ovh_endpoint: '' +plesk_api_url: '' +plesk_password: '' +plesk_username: '' +porkbun_key: '' +porkbun_secret: '' +rfc2136_algorithm: '' rfc2136_name: '' +rfc2136_port: '' rfc2136_secret: '' -rfc2136_algorithm: '' +rfc2136_server: '' rfc2136_sign_query: false -aws_access_key_id: '' -aws_secret_access_key: '' -sakuracloud_api_token: '' sakuracloud_api_secret: '' -namecheap_username: '' -namecheap_api_key: '' -netcup_customer_id: '' -netcup_api_key: '' -netcup_api_password: '' -gandi_api_key: '' -gandi_token: '' -gandi_sharing_id: '' -transip_username: '' -transip_api_key: '' -transip_global_key: '' -inwx_username: '' -inwx_password: '' -inwx_shared_secret: '' -porkbun_key: '' -porkbun_secret: '' -dreamhost_api_baseurl: '' -dreamhost_api_key: '' -domainoffensive_token: '' -plesk_username: '' -plesk_password: '' -plesk_api_url: '' +sakuracloud_api_token: '' simply_account_name: '' simply_api_key: '' +transip_api_key: '' +transip_global_key: '' +transip_username: '' +websupport_identifier: '' +websupport_secret_key: '' ``` +
### Configure certificate files @@ -222,13 +235,14 @@ if a renewal is due, and will request it if needed.
Changing the ACME Server -By default, The addon uses Let’s Encrypt’s default server at https://acme-v02.api.letsencrypt.org/. You can instruct the addon to use a different ACME server by providing the field `acme_server` with the URL of the server’s ACME directory: +By default, The addon uses Let’s Encrypt’s default server at . You can instruct the addon to use a different ACME server by providing the field `acme_server` with the URL of the server’s ACME directory: ```yaml acme_server: 'https://my.custom-acme-server.com' ``` If your custom ACME server uses a certificate signed by an untrusted certificate authority (CA), you can add the root certificate to the trust store by setting its content as an option: + ```yaml acme_server: 'https://my.custom-acme-server.com' acme_root_ca_cert: | @@ -290,7 +304,7 @@ into the *DNS Provider configuration* field. ```yaml email: your.email@example.com domains: - - home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: http @@ -305,7 +319,7 @@ into the *DNS Provider configuration* field. ```yaml email: your.email@example.com domains: - - home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns @@ -323,7 +337,7 @@ into the *DNS Provider configuration* field. ```yaml email: your.email@example.com domains: - - home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem key_type: rsa @@ -337,12 +351,12 @@ into the *DNS Provider configuration* field.
- Azure DNS challenge + Azure ```yaml email: your.email@example.com domains: - - home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns @@ -368,326 +382,396 @@ on the DNS zone to be used for authentication.
- GoDaddy DNS challenge + Cloudflare + +To use this plugin a Cloudflare API Token, restricted to the specific domain and operations are the recommended authentication option. +The API Token used for Certbot requires only the `Zone:DNS:Edit` permission for the zone in which you want a certificate. + +Example credentials file using restricted API Token (recommended): + + ```yaml + dns: + provider: dns-cloudflare + cloudflare_api_token: 0123456789abcdef0123456789abcdef01234 + ``` + +Previously, Cloudflare’s “Global API Key” was used for authentication. However this key can access the entire Cloudflare API for all domains in your account, meaning it could cause a lot of damage if leaked. + +Example credentials file using Global API Key (NOT RECOMMENDED: + + ```yaml + dns: + provider: dns-cloudflare + cloudflare_email: cloudflare@example.com + cloudflare_api_key: 0123456789abcdef0123456789abcdef01234 + ``` + +
+ +
+ ClouDNS + +In order to use a domain with this challenge, you first need to log into your control panel and +create a new HTTP API user from the `API & Resellers` page on top of your control panel. ```yaml email: your.email@example.com domains: - - subdomain.home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-godaddy - godaddy_secret: YOUR_GODADDY_SECRET - godaddy_key: YOUR_GODADDY_KEY + provider: dns-cloudns + cloudns_auth_id: 12345 + cloudns_auth_password: ****** ``` -To obtain the ACME DNS API Key and Secret, follow the instructions here: - +API Users have full account access. It is recommended to create an API Sub-user, which can be limited in scope. You can use either the `sub-auth-id` or the `sub-auth-user` as follows: -**IMPORTANT**: GoDaddy limits DNS API access to customers with 10 or more domains and/or an active "Discount Domain Club – Premier Membership" plan; the API will respond with a HTTP401 otherwise. See the [Terms of Use](https://developer.godaddy.com/getstarted) for more information. + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-cloudns + cloudns_sub_auth_id: 12345 + cloudns_auth_password: ****** + ``` + + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-cloudns + cloudns_sub_auth_user: alice + cloudns_auth_password: ****** + ```
- Google Cloud DNS challenge + deSEC.io + You need a deSEC API token with sufficient permission for performing the required DNS changes on your domain. + If you don't have a token yet, an easy way to obtain one is by logging into your account at deSEC.io. + Navigate to "Token Management" and create a new one. + It's good practice to restrict the token permissions as much as possible, e.g. by setting the maximum unused period to four months. + This way, the token will expire if it is not continuously used to renew your certificate. + ```yaml email: your.email@example.com domains: - - home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-google - google_creds: google.json + provider: dns-desec + desec_token: your-desec-access-token ``` -Please copy your credentials file "google.json" into the "share" shared folder on the Home Assistant host before starting the service. +
-One way is to use the "Samba" add on to make the folder available via network or SSH Add-on. +
+ DigitalOcean -The credential file can be created and downloaded when creating the service user within the Google cloud. -You can find additional information regarding the required permissions in the "credentials" section here: +Use of this plugin requires a configuration file containing DigitalOcean API credentials, obtained from your DigitalOcean account’s [Applications & API Tokens page](https://cloud.digitalocean.com/settings/api/tokens). - +```yaml + email: mail@domain.tld + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-digitalocean + digitalocean_token: digitalocean-token +``` + +[Full Documentation](https://certbot-dns-digitalocean.readthedocs.io/en/stable/)
- Infomaniak DNS challenge + DirectAdmin + +It is recommended to create a login key in the DirectAdmin control panel to be used as value for directadmin_password. +Instructions on how to create such key can be found at . + +Make sure to grant the following permissions: + +- `CMD_API_LOGIN_TEST` +- `CMD_API_DNS_CONTROL` +- `CMD_API_SHOW_DOMAINS` +- `CMD_API_DOMAIN_POINTER` + +Username and password can also be used in case your DirectAdmin instance has no support for login keys. + +Example configuration: ```yaml - email: your.email@example.com + email: mail@domain.tld domains: - - subdomain.home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-infomaniak - infomaniak_api_token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + propagation_seconds: 60 + provider: dns-directadmin + directadmin_url: 'https://domain.tld:2222/' + directadmin_username: da_user + directadmin_password: da_password_or_key ``` -To obtain the DNS API token follow the instructions here: +
- +
+ dnsimple -Choose "Domain" as the scope. +Use of this plugin requires a configuration file containing DNSimple API credentials, obtained from your DNSimple [account page](https://dnsimple.com/user). + +```yaml + email: mail@domain.tld + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-simple + dnsimple_token: dnssimple-token +``` + +[Full Documentation](https://certbot-dns-dnsimple.readthedocs.io/en/stable/)
- IONOS DNS challenge + dnsmadeeasy - ```yaml +Use of this plugin requires a configuration file containing DNS Made Easy API credentials, obtained from your DNS Made Easy [account page](https://cp.dnsmadeeasy.com/account/info). + +```yaml email: your.email@example.com domains: - - subdomain.home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-ionos - ionos_prefix: YOUR_IONOS_API_KEY_PREFIX - ionos_secret: YOUR_IONOS_API_KEY_SECRET - ionos_endpoint: https://api.hosting.ionos.com - ``` + provider: dns-dnsmadeeasy + dnsmadeeasy_api_key: dnsmadeeasy-api-key + dnsmadeeasy_secret_key: dnsmadeeasy-secret-key +``` -To obtain the DNS API Key Information, follow the instructions here: - +[Full Documentation](https://certbot-dns-dnsmadeeasy.readthedocs.io/en/stable/)
-
- Joker DNS challenge + domainoffensive + +Use of this plugin requires an API token, obtained from domainoffensive account page in the menu under `Domains` -> `Settings` -> *Let's Encrypt API token`. ```yaml email: your.email@example.com domains: - - subdomain.example.com + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-joker - joker_username: username - joker_password: password - joker_domain: example.com + provider: dns-domainoffensive + domainoffensive_token: domainoffensive-token ``` -You can find further detailed information here: - - - +[Full Documentation DE](https://www.do.de/wiki/freie-ssl-tls-zertifikate-ueber-acme/)
- route53 DNS challenge + DreamHost + +Use of this plugin an API key from DreamHost with `dns-*` permissions. You can get it [here](https://panel.dreamhost.com/?tree=home.api) ```yaml email: your.email@example.com domains: - - home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-route53 - aws_access_key_id: 0123456789ABCDEF0123 - aws_secret_access_key: 0123456789abcdef0123456789/abcdef0123456 - ``` - -For security reasons, don't use your main account's credentials. Instead, add a new [AWS user](https://console.aws.amazon.com/iam/home?#/users) with _Access Type: Programmatic access_ and use that user's access key. Assign a minimum [policy](https://console.aws.amazon.com/iam/home?#/policies$new?step=edit) like the following example. Make sure to replace the Resource ARN in the first statement to your domain's hosted zone ARN or use _*_ for all. - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "ChangeSpecificDomainsRecordSet", - "Effect": "Allow", - "Action": "route53:ChangeResourceRecordSets", - "Resource": "arn:aws:route53:::hostedzone/01234567890ABC" - }, - { - "Sid": "ListAllHostedZones", - "Effect": "Allow", - "Action": "route53:ListHostedZones", - "Resource": "*" - }, - { - "Sid": "ReadChanges", - "Effect": "Allow", - "Action": "route53:GetChange", - "Resource": "arn:aws:route53:::change/*" - } - ] - } + provider: dns-dreamhost + dreamhost_baseurl: https://api.dreamhost.com/ + dreamhost_api_key: dreamhost-api-key ```
- CloudFlare - -Previously, Cloudflare’s “Global API Key” was used for authentication, however this key can access the entire Cloudflare API for all domains in your account, meaning it could cause a lot of damage if leaked. + DuckDNS -Cloudflare’s newer API Tokens can be restricted to specific domains and operations, and are therefore now the recommended authentication option. -The API Token used for Certbot requires only the `Zone:DNS:Edit` permission for the zone in which you want a certificate. +Use of this plugin requires an API token, obtained from the DuckDNS account page. -Example credentials file using restricted API Token (recommended): - ```yaml +```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns dns: - provider: dns-cloudflare - cloudflare_api_token: 0123456789abcdef0123456789abcdef01234 - ``` + provider: dns-duckdns + duckdns_token: duckdns-token -Example credentials file using Global API Key (not recommended): - ```yaml - dns: - provider: dns-cloudflare - cloudflare_email: cloudflare@example.com - cloudflare_api_key: 0123456789abcdef0123456789abcdef01234 - ``` +``` + +[Full documentation](https://github.com/infinityofspace/certbot_dns_duckdns?tab=readme-ov-file#usage)
- Linode + Dynu -To use this addon with Linode DNS, first [create a new API/access key](https://www.linode.com/docs/platform/api/getting-started-with-the-linode-api#get-an-access-token), with read/write permissions to DNS; no other permissions are needed. Newly keys will likely use API version '4.' **Important**: single quotes are required around the `linode_version` number; failure to do this will cause a type error (as the addon expects a string, not an integer). +You can get the API key in the API Credentials area of the Dynu control panel: + +```yaml +email: your.email@example.com +domains: + - your.domain.tld +certfile: fullchain.pem +keyfile: privkey.pem +challenge: dns +dns: + provider: dns-dynu + dynu_auth_token: 0123456789abcdef +``` + +
+ +
+ easyDNS + +easyDNS REST API access must be requested and granted in order to use this module: after logging into your account. ```yaml - email: you@mailprovider.com + email: your.email@example.com domains: - - ha.yourdomain.com + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-linode - linode_key: 865c9f462c7d54abc1ad2dbf79c938bc5c55575fdaa097ead2178ee68365ab3e - linode_version: '4' + provider: dns-easydns + easydns_token: 0123456789abcdef + easydns_key: **** + easydns_endpoint: https://rest.easydns.net ```
- Loopia + EuroDNS -To use this addon with Loopia DNS, first [create a new API user](https://customerzone.loopia.com/api/), with the following minimum required permissions: - -- `addZoneRecord` - Required to create DNS records -- `getZoneRecords` - Required to verify DNS records -- `removeZoneRecord` - Required to clean up DNS records -- `removeSubdomain` - Required for complete cleanup - -Example configuration in YAML edit mode: + You can configure the APP id and the API key in the API Users area of the Eurodns control panel: ```yaml -email: you@mailprovider.com domains: - - ha.yourdomain.com + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-loopia - loopia_user: example@loopiaapi - loopia_password: supersecretpasswordhere + provider: dns-eurodns + eurodns_applicationId: X-APP-ID + eurodns_apiKey: X-API-KEY + propagation_seconds: 60 ```
- DirectAdmin + Gandi -It is recommended to create a login key in the DirectAdmin control panel to be used as value for directadmin_password. -Instructions on how to create such key can be found at https://help.directadmin.com/item.php?id=523. +Use of this plugin requires an [PersonalAccessToken](https://helpdesk.gandi.net/hc/en-us/articles/14051397687324-Personal-Access-Tokens) for the [Gandi LiveDNS API](https://api.gandi.net/docs/livedns/) with `Domains` scope for the `domain.tld` you are going to request a certificate for. +If you only have an Gandi LiveDNS `API key`, please refer to the [FAQ](https://github.com/obynio/certbot-plugin-gandi?tab=readme-ov-file#faq) on how to use this. +Due to the wide scope of this `API key`, this is not the recommended setup. -Make sure to grant the following permissions: -- `CMD_API_LOGIN_TEST` -- `CMD_API_DNS_CONTROL` -- `CMD_API_SHOW_DOMAINS` - -Username and password can also be used in case your DirectAdmin instance has no support for login keys. - -Example configuration: - ```yaml - email: mail@domain.tld +```yaml + email: your.email@example.com domains: - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - propagation_seconds: 60 - provider: dns-directadmin - directadmin_url: 'https://domain.tld:2222/' - directadmin_username: da_user - directadmin_password: da_password_or_key - ``` + provider: dns-gandi + gandi_token: gandi-personalaccesstoken +``` + +[Full Documentation](https://github.com/obynio/certbot-plugin-gandi?tab=readme-ov-file)
- Namecheap + gehirn -To use this addon with Namecheap, you must first enable API access on your account. See "Enabling API Access" and "Whitelisting IP" [here](https://www.namecheap.com/support/api/intro/) for details and requirements. - -Example configuration: +Use of this plugin requires Gehirn Infrastructure Service DNS API credentials, obtained from your Gehirn Infrastructure Service [dashboard](https://gis.gehirn.jp/). - ```yaml +```yaml email: your.email@example.com domains: - - ha.yourdomain.com + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-namecheap - namecheap_username: your-namecheap-username - namecheap_api_key: 0123456789abcdef0123456789abcdef01234567 - ``` + provider: dns-gehirn + gehirn_api_secret: gehirn-api-secret + gehirn_api_token: gehirn-api-token +``` + +[Full Documentation](https://certbot-dns-gehirn.readthedocs.io/en/stable/)
- Njalla - -You need to generate an API token inside Settings > API Access or directly at https://njal.la/settings/api/. If you have a static IP-address restrict the access to your IP. I you are not sure, you probably don't have a static IP-address. - -Example configuration: + GoDaddy ```yaml email: your.email@example.com domains: - - home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-njalla - njalla_token: 0123456789abcdef0123456789abcdef01234567 + provider: dns-godaddy + godaddy_secret: YOUR_GODADDY_SECRET + godaddy_key: YOUR_GODADDY_KEY ``` -
- -
- TransIP +To obtain the ACME DNS API Key and Secret, follow the instructions here: + -You will need to generate an API key from the TransIP Control Panel at https://www.transip.nl/cp/account/api/. +**IMPORTANT**: GoDaddy limits DNS API access to customers with 10 or more domains and/or an active "Discount Domain Club – Premier Membership" plan; the API will respond with a HTTP401 otherwise. See the [Terms of Use](https://developer.godaddy.com/getstarted) for more information. -If you can't use IP whitelisting, set the `transip_global_key` parameter to `'yes'`. See [Certbot TransIP DNS plugin documentation](https://github.com/hsmade/certbot-dns-transip/blob/master/USAGE.rst#ip-whitelistsing) for more details. +
-The propagation limit will be automatically raised to 240 seconds. +
+ Google Cloud -Example configuration: ```yaml email: your.email@example.com domains: @@ -696,100 +780,87 @@ Example configuration: keyfile: privkey.pem challenge: dns dns: - provider: dns-transip - transip_username: transip-user - transip_global_key: 'no' - transip_api_key: | - -----BEGIN PRIVATE KEY----- - MII..ABCDEFGHIJKLMNOPQRSTUVWXYZ - AAAAAABCDEFGHIJKLMNOPQRSTUVWXYZ - -----END PRIVATE KEY----- + provider: dns-google + google_creds: google.json ``` +Please copy your credentials file "google.json" into the "share" shared folder on the Home Assistant host before starting the service. + +One way is to use the "Samba" add on to make the folder available via network or SSH Add-on. + +The credential file can be created and downloaded when creating the service user within the Google cloud. +You can find additional information regarding the required permissions in the "credentials" section here: + + +
- OVH - -You will need to generate an OVH API Key first at https://eu.api.ovh.com/createToken/ (for Europe) or https://ca.api.ovh.com/createToken/ (for north America). + Hurricane Electric (HE) -When creating the API Key, you must ensure that the following rights are granted: -* ``GET /domain/zone/*`` -* ``PUT /domain/zone/*`` -* ``POST /domain/zone/*`` -* ``DELETE /domain/zone/*`` +Use of this plugin requires your Hurricane Electric username and password. +You will need to create the dynamic TXT record from within the dns.he.net interface before you will be able to make updates. You will not be able to dynamically create and delete these TXT records as doing so would subsequently remove your ddns key associated with the record. -Example configuration ```yaml email: your.email@example.com domains: - - home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-ovh - ovh_endpoint: ovh-eu - ovh_application_key: 0123456789abcdef0123456789abcdef01234 - ovh_application_secret: 0123456789abcdef0123456789abcdef01234 - ovh_consumer_key: 0123456789abcdef0123456789abcdef01234 + propagation_seconds: 310 + provider: dns-he + he_user: me + he_pass: ****** ``` -Use `ovh_endpoint: ovh-ca` for north America region. + +[Full Documentation](https://dns.he.net/)
- RFC2136 + Hetzner -You will need to set up a server with RFC2136 (Dynamic Update) support with a TKEY (to authenticate the updates). How to do this will vary depending on the DNS server software in use. For Bind9, you first need to first generate an authentication key by running +Use of this plugin requires a Hetzner DNS API personal access token. You can create one on the Hetzner [DNS website](https://dns.hetzner.com/settings/api-token). - ``` - $ tsig-keygen -a hmac-sha512 letsencrypt - key "letsencrypt" { - algorithm hmac-sha512; - secret "G/adDW8hh7FDlZq5ZDW3JjpU/I7DzzU1PDvp26DvPQWMLg/LfM2apEOejbfdp5BXu78v/ruWbFvSK5dwYY7bIw=="; - }; + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-hetzner + hetzner_api_token: hetzner-personal-access-token ``` -You don't need to publish this; just copy the key data into your named.conf file: - ``` - - key "letsencrypt" { - algorithm hmac-sha512; - secret "G/adDW8hh7FDlZq5ZDW3JjpU/I7DzzU1PDvp26DvPQWMLg/LfM2apEOejbfdp5BXu78v/ruWbFvSK5dwYY7bIw=="; - }; - - ``` -And ensure you have an update policy in place in the zone that uses this key to enable update of the correct domain (which must match the domain in your yaml configuration): - ``` - - update-policy { - grant letsencrypt name _acme-challenge.home-assistant.io. txt; - }; - ``` +[Full Documentation](https://github.com/ctrlaltcoop/certbot-dns-hetzner) -For this provider, you will need to supply all the `rfc2136_*` options. Note that the `rfc2136_port` item is required (there is no default port in the add-on) and, most importantly, the port number must be quoted. Also, be sure to copy in the key so certbot can authenticate to the DNS server. Finally, the algorithm should be in all caps. +
-An example configuration: +
+ Infomaniak ```yaml email: your.email@example.com domains: - - home-assistant.io + - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-rfc2136 - rfc2136_server: dns-server.dom.ain - rfc2136_port: '53' - rfc2136_name: letsencrypt - rfc2136_secret: "secret-key" - rfc2136_algorithm: HMAC-SHA512 - # Optional: Enable TSIG key signing for DNS queries (useful for BIND multiple views) - rfc2136_sign_query: true + provider: dns-infomaniak + infomaniak_api_token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ``` +To obtain the DNS API token follow the instructions here: + + + +Choose "Domain" as the scope. +
@@ -801,6 +872,7 @@ To get this code, you must activate the 2FA or deactivate and reactivate 2FA. Without 2FA leave the example key. Example configuration: + ```yaml email: your.email@example.com domains: @@ -818,28 +890,29 @@ Example configuration:
- Porkbun + IONOS -In order to use a domain with this challenge, API access will need enabling on the domain. In order to -do this go to domain management -> select the domain -> details and click the API access toggle. -Then go to the menu in the top right select API access and then create a new api key. -The title does not matter and is not used by certbot, make note of the key and the secret as both are required. + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-ionos + ionos_prefix: YOUR_IONOS_API_KEY_PREFIX + ionos_secret: YOUR_IONOS_API_KEY_SECRET + ionos_endpoint: https://api.hosting.ionos.com + ``` + +To obtain the DNS API Key Information, follow the instructions here: + -```yaml -email: your.email@example.com -domains: - - your.domain.tld -certfile: fullchain.pem -keyfile: privkey.pem -challenge: dns -dns: - provider: dns-porkbun - porkbun_key: 0123456789abcdef0123456789abcdef01234 - porkbun_secret: 0123456789abcdef0123456789abcdef01234 -```
+
- Dreamhost + Joker ```yaml email: your.email@example.com @@ -849,29 +922,90 @@ dns: keyfile: privkey.pem challenge: dns dns: - provider: dns-dreamhost - dreamhost_baseurl: https://api.dreamhost.com/ - dreamhost_api_key: XXXXXX + provider: dns-joker + joker_username: username + joker_password: password + joker_domain: example.com ``` + +You can find further detailed information here: + + + +
+
- ClouDNS -In order to use a domain with this challenge, you first need to log into your control panel and create a -new HTTP API user from the "API & Resellers" page on top of your control panel. + Linode + +To use this addon with Linode DNS, first [create a new API/access key](https://www.linode.com/docs/platform/api/getting-started-with-the-linode-api#get-an-access-token), with read/write permissions to DNS; no other permissions are needed. Newly keys will likely use API version '4.' **Important**: single quotes are required around the `linode_version` number; failure to do this will cause a type error (as the addon expects a string, not an integer). ```yaml - email: your.email@example.com + email: you@mailprovider.com domains: - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-cloudns - cloudns_auth_id: 12345 - cloudns_auth_password: ****** + provider: dns-linode + linode_key: 865c9f462c7d54abc1ad2dbf79c938bc5c55575fdaa097ead2178ee68365ab3e + linode_version: '4' ``` -API Users have full account access. It is recommended to create an API Sub-user, which can be limited in scope. You can use either the `sub-auth-id` or the `sub-auth-user` as follows: + +
+ +
+ Loopia + +To use this addon with Loopia DNS, first [create a new API user](https://customerzone.loopia.com/api/), with the following minimum required permissions: + +- `addZoneRecord` - Required to create DNS records +- `getZoneRecords` - Required to verify DNS records +- `removeZoneRecord` - Required to clean up DNS records +- `removeSubdomain` - Required for complete cleanup + +Example configuration in YAML edit mode: + +```yaml +email: you@mailprovider.com +domains: + - your.domain.tld +certfile: fullchain.pem +keyfile: privkey.pem +challenge: dns +dns: + provider: dns-loopia + loopia_user: example@loopiaapi + loopia_password: supersecretpasswordhere +``` + +
+ +
+ LuaDNS + +Use of this plugin requires LuaDNS API credentials, obtained from your [account settings page](https://api.luadns.com/settings). + +```yaml +email: your.email@example.com +domains: + - your.domain.tld +certfile: fullchain.pem +keyfile: privkey.pem +challenge: dns +dns: + provider: dns-luadns + luadns_email: your.email@example.com + luadns_token: luadns-token +``` + +[Full Documentation](https://certbot-dns-luadns.readthedocs.io/en/stable/) + +
+ +
+ mijn.host ```yaml email: your.email@example.com @@ -881,10 +1015,23 @@ API Users have full account access. It is recommended to create an API Sub-user keyfile: privkey.pem challenge: dns dns: - provider: dns-cloudns - cloudns_sub_auth_id: 12345 - cloudns_auth_password: ****** + provider: dns-mijn-host + mijn_host_api_key: XXXXXX + propagation_seconds: 60 ``` + +The `mijn_host_api_key` is the account's API key. +The API key assigned to your mijn.host account can be found in your mijn.host Control panel. + +
+ +
+ Namecheap + +To use this addon with Namecheap, you must first enable API access on your account. See "Enabling API Access" and "Whitelisting IP" [here](https://www.namecheap.com/support/api/intro/) for details and requirements. + +Example configuration: + ```yaml email: your.email@example.com domains: @@ -893,13 +1040,18 @@ API Users have full account access. It is recommended to create an API Sub-user keyfile: privkey.pem challenge: dns dns: - provider: dns-cloudns - cloudns_sub_auth_user: alice - cloudns_auth_password: ****** + provider: dns-namecheap + namecheap_username: your-namecheap-username + namecheap_api_key: 0123456789abcdef0123456789abcdef01234567 ``` +
+
- Hurricane Electric (HE) + Netcup + +Both the API password and key can be obtained via the following page: +It is important to set the `propagation_seconds` to >= 630 seconds due to the slow DNS update of Netcup. ```yaml email: your.email@example.com @@ -909,17 +1061,26 @@ API Users have full account access. It is recommended to create an API Sub-user keyfile: privkey.pem challenge: dns dns: - provider: dns-he - he_user: me - he_pass: ****** + provider: dns-netcup + netcup_customer_id: "userid" + netcup_api_key: **** + netcup_api_password: **** + propagation_seconds: "900" ``` + +References: + +- +- +
- Netcup + Njalla + +You need to generate an API token inside Settings > API Access or directly at . If you have a static IP-address restrict the access to your IP. I you are not sure, you probably don't have a static IP-address. -Both the API password and key can be obtained via the following page: https://www.customercontrolpanel.de/daten_aendern.php?sprung=api -It is important to set the propagation_seconds to >= 630 seconds due to the slow DNS update of Netcup. +Example configuration: ```yaml email: your.email@example.com @@ -929,21 +1090,14 @@ It is important to set the propagation_seconds to >= 630 seconds due to the slow keyfile: privkey.pem challenge: dns dns: - provider: dns-netcup - netcup_customer_id: "userid" - netcup_api_key: **** - netcup_api_password: **** - propagation_seconds: "900" + provider: dns-njalla + njalla_token: 0123456789abcdef0123456789abcdef01234567 ``` -References: -* https://helpcenter.netcup.com/de/wiki/general/unsere-api#authentifizierung -* https://github.com/coldfix/certbot-dns-netcup/issues/28 +
- easyDNS - -easyDNS REST API access must be requested and granted in order to use this module: https://cp.easydns.com/manage/security/api/signup.php after logging into your account. + noris network ```yaml email: your.email@example.com @@ -953,57 +1107,54 @@ easyDNS REST API access must be requested and granted in order to use this modul keyfile: privkey.pem challenge: dns dns: - provider: dns-easydns - easydns_token: 0123456789abcdef - easydns_key: **** - easydns_endpoint: https://rest.easydns.net + provider: dns-noris + noris_token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + propagation_seconds: 240 ``` -
-
- Dynu +To obtain the `noris_token` follow the instructions as described in our [GitHub repository][GitHub repo]. -You can get the API key in the API Credentials area of the Dynu control panel: https://www.dynu.com/ControlPanel/APICredentials +You can define the `propagation_seconds` explicitly. Otherwise, it will use the default value (currently set to `60` seconds). -```yaml -email: your.email@example.com -domains: - - your.domain.tld -certfile: fullchain.pem -keyfile: privkey.pem -challenge: dns -dns: - provider: dns-dynu - dynu_auth_token: 0123456789abcdef -``` +[GitHub repo]:
- Eurodns DNS challenge + nsone - You can configure the APP id and the API key in the API Users area of the Eurodns control panel: https://my.eurodns.com/apiusers +Use of this plugin requires NS1 API credentials, obtained from your NS1 [account page](https://my.nsone.net/#/account/settings). ```yaml +email: your.email@example.com domains: - your.domain.tld certfile: fullchain.pem keyfile: privkey.pem challenge: dns dns: - provider: dns-eurodns - eurodns_applicationId: X-APP-ID - eurodns_apiKey: X-API-KEY - propagation_seconds: 60 + provider: dns-nsone + nsone_api_key: nsone-api-key ``` +[Full Documentation](https://certbot-dns-nsone.readthedocs.io/en/stable/) +
+ OVH - WebSupport (currently disable - see changelog) +You will need to generate an OVH API Key first at (for Europe) or (for North America). +Further documentation is [here](https://certbot-dns-ovh.readthedocs.io/en/stable/). + +When creating the API Key, you must ensure that the following rights are granted: + +- ``GET /domain/zone/*`` +- ``PUT /domain/zone/*`` +- ``POST /domain/zone/*`` +- ``DELETE /domain/zone/*`` -An identifier and secret key have to be obtained to use this module (see https://admin.websupport.sk/sk/auth/apiKey). +Example configuration ```yaml email: your.email@example.com @@ -1013,14 +1164,19 @@ An identifier and secret key have to be obtained to use this module (see https:/ keyfile: privkey.pem challenge: dns dns: - provider: dns-websupport - websupport_identifier: - websupport_secret_key: + provider: dns-ovh + ovh_endpoint: ovh-eu + ovh_application_key: 0123456789abcdef0123456789abcdef01234 + ovh_application_secret: 0123456789abcdef0123456789abcdef01234 + ovh_consumer_key: 0123456789abcdef0123456789abcdef01234 ``` + +Use `ovh_endpoint: ovh-ca` for North America region. +
- domainoffensive + Plesk Hosting ```yaml email: your.email@example.com @@ -1030,14 +1186,78 @@ An identifier and secret key have to be obtained to use this module (see https:/ keyfile: privkey.pem challenge: dns dns: - provider: dns-domainoffensive - domainoffensive_token: ***** + provider: dns-plesk + plesk_username: your-username + plesk_password: your-password + plesk_api_url: https://plesk.example.com + propagation_seconds: 120 ``` + +The `plesk_username` and `plesk_password` are the same as those you use on the login page of your admin panel. + +The `plesk_api_url` is the base URL of your Plesk admin panel. + +You can define the `propagation_seconds` explicitly. Otherwise, it will use a custom default value (currently set to `120` seconds). +If the provided value is less than `120`, then the value is forced to a minimum of `120` seconds. +
+
+ Porkbun + +In order to use a domain with this challenge, API access will need enabling on the domain. In order to +do this go to domain management -> select the domain -> details and click the API access toggle. +Then go to the menu in the top right select API access and then create a new api key. +The title does not matter and is not used by certbot, make note of the key and the secret as both are required. + +```yaml +email: your.email@example.com +domains: + - your.domain.tld +certfile: fullchain.pem +keyfile: privkey.pem +challenge: dns +dns: + provider: dns-porkbun + porkbun_key: 0123456789abcdef0123456789abcdef01234 + porkbun_secret: 0123456789abcdef0123456789abcdef01234 +``` + +
- noris network DNS challenge + RFC2136 + +You will need to set up a server with RFC2136 (Dynamic Update) support with a TKEY (to authenticate the updates). How to do this will vary depending on the DNS server software in use. For Bind9, you first need to first generate an authentication key by running + + ```shell + $ tsig-keygen -a hmac-sha512 letsencrypt + key "letsencrypt" { + algorithm hmac-sha512; + secret "xxxxxxxxxxxxxxxxxx=="; + }; + ``` + +You don't need to publish this; just copy the key data into your named.conf file: + + ```shell + key "letsencrypt" { + algorithm hmac-sha512; + secret "xxxxxxxxxxxxxxxxxx=="; + }; + ``` + +And ensure you have an update policy in place in the zone that uses this key to enable update of the correct domain (which must match the domain in your yaml configuration): + + ```shell + update-policy { + grant letsencrypt name _acme-challenge.your.domain.tld. txt; + }; + ``` + +For this provider, you will need to supply all the `rfc2136_*` options. Note that the `rfc2136_port` item is required (there is no default port in the add-on) and, most importantly, the port number must be quoted. Also, be sure to copy in the key so certbot can authenticate to the DNS server. Finally, the algorithm should be in all caps. + +An example configuration: ```yaml email: your.email@example.com @@ -1047,22 +1267,20 @@ An identifier and secret key have to be obtained to use this module (see https:/ keyfile: privkey.pem challenge: dns dns: - provider: dns-noris - noris_token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - propagation_seconds: 240 + provider: dns-rfc2136 + rfc2136_server: dns-server.dom.ain + rfc2136_port: '53' + rfc2136_name: letsencrypt + rfc2136_secret: "secret-key" + rfc2136_algorithm: HMAC-SHA512 + # Optional: Enable TSIG key signing for DNS queries (useful for BIND multiple views) + rfc2136_sign_query: true ``` -To obtain the `noris_token` follow the instructions as described in our [GitHub repository][GitHub repo]. - -You can define the `propagation_seconds` explicitly. Otherwise, it will use the default value (currently set to `60` seconds). - -[GitHub repo]: https://github.com/noris-network/certbot-dns-norisnetwork#get-your-api-token -
-
- Plesk Hosting DNS challenge + route53 ```yaml email: your.email@example.com @@ -1072,24 +1290,65 @@ You can define the `propagation_seconds` explicitly. Otherwise, it will use the keyfile: privkey.pem challenge: dns dns: - provider: dns-plesk - plesk_username: your-username - plesk_password: your-password - plesk_api_url: https://plesk.example.com - propagation_seconds: 120 + provider: dns-route53 + aws_access_key_id: 0123456789ABCDEF0123 + aws_secret_access_key: 0123456789abcdef0123456789/abcdef0123456 ``` -The `plesk_username` and `plesk_password` are the same as those you use on the login page of your admin panel. - -The `plesk_api_url` is the base URL of your Plesk admin panel. +For security reasons, don't use your main account's credentials. Instead, add a new [AWS user](https://console.aws.amazon.com/iam/home?#/users) with _Access Type: Programmatic access_ and use that user's access key. Assign a minimum [policy](https://console.aws.amazon.com/iam/home?#/policies$new?step=edit) like the following example. Make sure to replace the Resource ARN in the first statement to your domain's hosted zone ARN or use _*_ for all. -You can define the `propagation_seconds` explicitly. Otherwise, it will use a custom default value (currently set to `120` seconds). If the provided value is less than `120`, then the value is forced to a minimum of `120` seconds. + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "ChangeSpecificDomainsRecordSet", + "Effect": "Allow", + "Action": "route53:ChangeResourceRecordSets", + "Resource": "arn:aws:route53:::hostedzone/01234567890ABC" + }, + { + "Sid": "ListAllHostedZones", + "Effect": "Allow", + "Action": "route53:ListHostedZones", + "Resource": "*" + }, + { + "Sid": "ReadChanges", + "Effect": "Allow", + "Action": "route53:GetChange", + "Resource": "arn:aws:route53:::change/*" + } + ] + } + ```
+
+ SakuraCloud + +Use of this plugin requires Sakura Cloud DNS API credentials, obtained from your Sakura Cloud DNS [apikey page](https://secure.sakura.ad.jp/cloud/#!/apikey/top/). + +```yaml +email: your.email@example.com +domains: + - your.domain.tld +certfile: fullchain.pem +keyfile: privkey.pem +challenge: dns +dns: + provider: dns-sakuracloud + sakuracloud_api_secret: '' + sakuracloud_api_token: '' +``` + +[Full Documentation](https://certbot-dns-sakuracloud.readthedocs.io/en/stable/) + +
- Simply.com DNS challenge + Simply.com ```yaml email: your.email@example.com @@ -1109,9 +1368,16 @@ The API key assigned to your Simply.com account can be found in your Simply.com
-
- mijn.host DNS challenge + TransIP + +You will need to generate an API key from the TransIP Control Panel at . + +If you can't use IP whitelisting, set the `transip_global_key` parameter to `'yes'`. See [Certbot TransIP DNS plugin documentation](https://github.com/hsmade/certbot-dns-transip/blob/master/USAGE.rst#ip-whitelistsing) for more details. + +The propagation limit will be automatically raised to 240 seconds. + +Example configuration: ```yaml email: your.email@example.com @@ -1121,16 +1387,37 @@ The API key assigned to your Simply.com account can be found in your Simply.com keyfile: privkey.pem challenge: dns dns: - provider: dns-mijn-host - mijn_host_api_key: XXXXXX - propagation_seconds: 60 + provider: dns-transip + transip_username: transip-user + transip_global_key: 'no' + transip_api_key: | + -----BEGIN PRIVATE KEY----- + MII..ABCDEFGHIJKLMNOPQRSTUVWXYZ + AAAAAABCDEFGHIJKLMNOPQRSTUVWXYZ + -----END PRIVATE KEY----- ``` -The `mijn_host_api_key` is the account's API key. -The API key assigned to your mijn.host account can be found in your mijn.host Control panel. -
+
+ WebSupport (currently disable - see changelog) + +An identifier and secret key have to be obtained to use this module (see ). + + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-websupport + websupport_identifier: + websupport_secret_key: + ``` + +
## Certificate files @@ -1143,43 +1430,46 @@ You can in addition find the files via the "samba" addon within the "ssl" share. ```txt dns-azure -dns-cloudns dns-cloudflare +dns-cloudns dns-desec dns-digitalocean dns-directadmin dns-dnsimple dns-dnsmadeeasy -dns-duckdns +dns-domainoffensive dns-dreamhost +dns-duckdns dns-dynu +dns-easydns dns-eurodns +dns-gandi dns-gehirn +dns-godaddy dns-google +dns-he dns-hetzner dns-infomaniak +dns-inwx dns-ionos +dns-joker dns-linode dns-loopia dns-luadns dns-mijn-host +dns-namecheap +dns-netcup dns-njalla dns-noris -dns-plesk -dns-simply dns-nsone dns-ovh +dns-plesk +dns-porkbun dns-rfc2136 dns-route53 dns-sakuracloud -dns-namecheap -dns-netcup -dns-gandi +dns-simply dns-transip -dns-inwx -dns-porkbun -dns-easydns -dns-domainoffensive dns-websupport (currently disable - see changelog) ``` diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 20c82676c80..53676449398 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -2,22 +2,24 @@ ARG BUILD_FROM FROM $BUILD_FROM # setup base +# Developer note: please add a new plugin alphabetically into all lists ARG \ BUILD_ARCH \ - CLOUDFLARE_VERSION \ - CRYPTOGRAPHY_VERSION \ - CERTBOT_VERSION \ + ACME_VERSION \ CERTBOT_DNS_AZURE_VERSION \ CERTBOT_DNS_CLOUDNS_VERSION \ CERTBOT_DNS_DESEC_VERSION \ CERTBOT_DNS_DIRECTADMIN_VERSION \ + CERTBOT_DNS_DOMAINOFFENSIVE_VERSION \ CERTBOT_DNS_DREAMHOST_VERSION \ CERTBOT_DNS_DUCKDNS_VERSION \ CERTBOT_DNS_DYNU_VERSION \ - CERTBOT_DNS_EURODNS_VERSION \ CERTBOT_DNS_EASYDNS_VERSION \ - CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION \ + CERTBOT_DNS_EURODNS_VERSION \ + CERTBOT_DNS_GANDI_VERSION \ + CERTBOT_DNS_GODADDY_VERSION \ CERTBOT_DNS_HETZNER_VERSION \ + CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION \ CERTBOT_DNS_INFOMANIAK_VERSION \ CERTBOT_DNS_INWX_VERSION \ CERTBOT_DNS_IONOS_VERSION \ @@ -25,18 +27,17 @@ ARG \ CERTBOT_DNS_LOOPIA_VERSION \ CERTBOT_DNS_MIJN_HOST_VERSION \ CERTBOT_DNS_NAMECHEAP_VERSION \ + CERTBOT_DNS_NETCUP_VERSION \ + CERTBOT_DNS_NJALLA_VERSION \ CERTBOT_DNS_NORISNETWORK_VERSION \ + CERTBOT_DNS_PLESK_VERSION \ + CERTBOT_DNS_PORKBUN_VERSION \ CERTBOT_DNS_SIMPLY_VERSION \ CERTBOT_DNS_TRANSIP_VERSION \ - CERTBOT_DNS_PORKBUN_VERSION \ CERTBOT_DNS_WEBSUPPORT_VERSION \ - CERTBOT_NETCUP_VERSION \ - CERTBOT_NJALLA_VERSION \ - CERTBOT_GANDI_VERSION \ - CERTBOT_DNS_DOMAINOFFENSIVE_VERSION \ - CERTBOT_DNS_PLESK_VERSION \ - CERTBOT_DNS_GODADDY_VERSION \ - ACME_VERSION + CERTBOT_VERSION \ + CLOUDFLARE_VERSION \ + CRYPTOGRAPHY_VERSION RUN \ set -x \ @@ -52,9 +53,7 @@ RUN \ cargo \ && pip3 install --no-cache-dir --find-links \ "https://wheels.home-assistant.io/alpine-$(cut -d '.' -f 1-2 < /etc/alpine-release)/${BUILD_ARCH}/" \ - cloudflare==${CLOUDFLARE_VERSION} \ - cryptography==${CRYPTOGRAPHY_VERSION} \ - certbot==${CERTBOT_VERSION} \ + acme==${ACME_VERSION} \ certbot-dns-azure==${CERTBOT_DNS_AZURE_VERSION} \ certbot-dns-cloudflare==${CERTBOT_VERSION} \ certbot-dns-cloudns==${CERTBOT_DNS_CLOUDNS_VERSION} \ @@ -63,42 +62,44 @@ RUN \ certbot-dns-directadmin==${CERTBOT_DNS_DIRECTADMIN_VERSION} \ certbot-dns-dnsimple==${CERTBOT_VERSION} \ certbot-dns-dnsmadeeasy==${CERTBOT_VERSION} \ + certbot-dns-domainoffensive==${CERTBOT_DNS_DOMAINOFFENSIVE_VERSION} \ + certbot-dns-dreamhost==${CERTBOT_DNS_DREAMHOST_VERSION} \ certbot-dns-duckdns==${CERTBOT_DNS_DUCKDNS_VERSION} \ certbot-dns-dynu-dev==${CERTBOT_DNS_DYNU_VERSION} \ + certbot-dns-easydns==${CERTBOT_DNS_EASYDNS_VERSION} \ certbot-dns-eurodns==${CERTBOT_DNS_EURODNS_VERSION} \ + certbot-plugin-gandi-modern==${CERTBOT_DNS_GANDI_VERSION} \ certbot-dns-gehirn==${CERTBOT_VERSION} \ certbot-dns-godaddy==${CERTBOT_DNS_GODADDY_VERSION} \ certbot-dns-google==${CERTBOT_VERSION} \ certbot-dns-hetzner==${CERTBOT_DNS_HETZNER_VERSION} \ + certbot-dns-hurricane-electric==${CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION} \ certbot-dns-infomaniak==${CERTBOT_DNS_INFOMANIAK_VERSION} \ + certbot-dns-inwx==${CERTBOT_DNS_INWX_VERSION} \ certbot-dns-ionos==${CERTBOT_DNS_IONOS_VERSION} \ certbot-dns-joker==${CERTBOT_DNS_JOKER_VERSION} \ certbot-dns-linode==${CERTBOT_VERSION} \ certbot-dns-loopia==${CERTBOT_DNS_LOOPIA_VERSION} \ certbot-dns-luadns==${CERTBOT_VERSION} \ certbot-dns-mijn-host==${CERTBOT_DNS_MIJN_HOST_VERSION} \ - certbot-dns-njalla==${CERTBOT_NJALLA_VERSION} \ + certbot-dns-namecheap==${CERTBOT_DNS_NAMECHEAP_VERSION} \ + certbot-dns-netcup==${CERTBOT_DNS_NETCUP_VERSION} \ + certbot-dns-njalla==${CERTBOT_DNS_NJALLA_VERSION} \ certbot-dns-norisnetwork==${CERTBOT_DNS_NORISNETWORK_VERSION} \ certbot-dns-nsone==${CERTBOT_VERSION} \ - certbot-dns-porkbun==${CERTBOT_DNS_PORKBUN_VERSION} \ certbot-dns-ovh==${CERTBOT_VERSION} \ + certbot-dns-plesk==${CERTBOT_DNS_PLESK_VERSION} \ + certbot-dns-porkbun==${CERTBOT_DNS_PORKBUN_VERSION} \ certbot-dns-rfc2136==${CERTBOT_VERSION} \ certbot-dns-route53==${CERTBOT_VERSION} \ certbot-dns-sakuracloud==${CERTBOT_VERSION} \ - certbot-dns-namecheap==${CERTBOT_DNS_NAMECHEAP_VERSION} \ certbot-dns-simply==${CERTBOT_DNS_SIMPLY_VERSION} \ - certbot-dns-netcup==${CERTBOT_NETCUP_VERSION} \ - certbot-plugin-gandi==${CERTBOT_GANDI_VERSION} \ certbot-dns-transip==${CERTBOT_DNS_TRANSIP_VERSION} \ - certbot-dns-inwx==${CERTBOT_DNS_INWX_VERSION} \ - certbot-dns-dreamhost==${CERTBOT_DNS_DREAMHOST_VERSION} \ - certbot-dns-hurricane-electric==${CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION} \ - certbot-dns-easydns==${CERTBOT_DNS_EASYDNS_VERSION} \ - certbot-dns-domainoffensive==${CERTBOT_DNS_DOMAINOFFENSIVE_VERSION} \ # Disabled due to unresolved issues # certbot-dns-websupport==${CERTBOT_DNS_WEBSUPPORT_VERSION} \ - certbot-dns-plesk==${CERTBOT_DNS_PLESK_VERSION} \ - acme==${ACME_VERSION} \ + certbot==${CERTBOT_VERSION} \ + cloudflare==${CLOUDFLARE_VERSION} \ + cryptography==${CRYPTOGRAPHY_VERSION} \ && apk del .build-dependencies # Copy data diff --git a/letsencrypt/README.md b/letsencrypt/README.md index 66dfc36fcfe..0b7addf3755 100644 --- a/letsencrypt/README.md +++ b/letsencrypt/README.md @@ -9,12 +9,6 @@ It requires you to own the domain you are requesting the certificate for. The generated certificate can be used within others addons. By default the path and file for the certificates within other addons will refer to the files generated within this addon. -[discord]: https://discord.gg/c5DvZ4e -[forum]: https://community.home-assistant.io -[issue]: https://github.com/home-assistant/hassio-addons/issues -[certbot]: https://certbot.eff.org -[reddit]: https://reddit.com/r/homeassistant - [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg [amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg [armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index ed1bfcda3b6..6cef870ca5f 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -9,19 +9,22 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - CLOUDFLARE_VERSION: 2.19.4 - CRYPTOGRAPHY_VERSION: 44.0.1 - CERTBOT_VERSION: 3.2.0 + # Developer note: please add a new plugin alphabetically into all lists + ACME_VERSION: 3.2.0 CERTBOT_DNS_AZURE_VERSION: 2.6.1 CERTBOT_DNS_CLOUDNS_VERSION: 0.7.0 CERTBOT_DNS_DESEC_VERSION: 1.2.1 CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.13 + CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 + CERTBOT_DNS_DREAMHOST_VERSION: 1.0 CERTBOT_DNS_DUCKDNS_VERSION: 1.5 CERTBOT_DNS_DYNU_VERSION: 0.0.6 - CERTBOT_DNS_EURODNS_VERSION: 1.8.1 CERTBOT_DNS_EASYDNS_VERSION: 0.1.4 - CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION: 0.1.0 + CERTBOT_DNS_EURODNS_VERSION: 1.8.1 + CERTBOT_DNS_GANDI_VERSION: 1.6.0 + CERTBOT_DNS_GODADDY_VERSION: 2.8.0 CERTBOT_DNS_HETZNER_VERSION: 2.0.1 + CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION: 0.1.0 CERTBOT_DNS_INFOMANIAK_VERSION: 0.2.3 CERTBOT_DNS_INWX_VERSION: 3.0.2 CERTBOT_DNS_IONOS_VERSION: 2024.11.9 @@ -29,16 +32,14 @@ args: CERTBOT_DNS_LOOPIA_VERSION: 1.0.1 CERTBOT_DNS_MIJN_HOST_VERSION: 0.0.8 CERTBOT_DNS_NAMECHEAP_VERSION: 1.0.0 + CERTBOT_DNS_NETCUP_VERSION: 1.4.4 + CERTBOT_DNS_NJALLA_VERSION: 2.0.2 CERTBOT_DNS_NORISNETWORK_VERSION: 0.3.0 - CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 + CERTBOT_DNS_PLESK_VERSION: 0.3.0 CERTBOT_DNS_PORKBUN_VERSION: 0.9.1 - CERTBOT_DNS_WEBSUPPORT_VERSION: 2.0.1 CERTBOT_DNS_SIMPLY_VERSION: 0.1.2 - CERTBOT_GANDI_VERSION: 1.5.0 - CERTBOT_NETCUP_VERSION: 1.4.4 - CERTBOT_NJALLA_VERSION: 2.0.2 - CERTBOT_DNS_DREAMHOST_VERSION: 1.0 - CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 - CERTBOT_DNS_PLESK_VERSION: 0.3.0 - CERTBOT_DNS_GODADDY_VERSION: 2.8.0 - ACME_VERSION: 3.2.0 + CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 + CERTBOT_DNS_WEBSUPPORT_VERSION: 2.0.1 + CERTBOT_VERSION: 3.2.0 + CLOUDFLARE_VERSION: 2.19.4 + CRYPTOGRAPHY_VERSION: 44.0.1 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index ecc74087b30..4f3b5323e1d 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.3.3 +version: 5.4.0 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt @@ -40,7 +40,11 @@ schema: eab_hmac_key: str? key_type: list(ecdsa|rsa)? elliptic_curve: list(secp256r1|secp384r1)? + dry_run: bool? + test_cert: bool? + verbose: bool? dns: + # Developer note: please add a new plugin alphabetically into all lists aws_access_key_id: str? aws_secret_access_key: str? azure_config: str? @@ -48,9 +52,9 @@ schema: cloudflare_api_token: str? cloudflare_email: email? cloudns_auth_id: int? + cloudns_auth_password: str? cloudns_sub_auth_id: int? cloudns_sub_auth_user: str? - cloudns_auth_password: str? desec_token: str? digitalocean_token: str? directadmin_password: str? @@ -59,61 +63,105 @@ schema: dnsimple_token: str? dnsmadeeasy_api_key: str? dnsmadeeasy_secret_key: str? + domainoffensive_token: str? + dreamhost_api_key: str? + dreamhost_baseurl: str? duckdns_token: str? dynu_auth_token: str? - eurodns_applicationId: str? + easydns_endpoint: str? + easydns_key: str? + easydns_token: str? eurodns_apiKey: str? + eurodns_applicationId: str? gandi_api_key: str? - gandi_token: str? gandi_sharing_id: str? + gandi_token: str? gehirn_api_secret: str? gehirn_api_token: str? - godaddy_secret: str? godaddy_key: str? + godaddy_secret: str? google_creds: str? + he_pass: str? + he_user: str? hetzner_api_token: str? infomaniak_api_token: str? + inwx_password: str? + inwx_shared_secret: str? + inwx_username: str? + ionos_endpoint: str? ionos_prefix: str? ionos_secret: str? - ionos_endpoint: str? + joker_domain: str? + joker_password: str? + joker_username: str? linode_key: str? linode_version: str? - loopia_user: str? loopia_password: str? + loopia_user: str? luadns_email: email? luadns_token: str? mijn_host_api_key: str? - joker_username: str? - joker_password: str? - joker_domain: str? - plesk_username: str? - plesk_password: str? - plesk_api_url: str? - namecheap_username: str? namecheap_api_key: str? + namecheap_username: str? netcup_api_key: str? netcup_api_password: str? netcup_customer_id: str? - simply_api_key: str? - simply_account_name: str? njalla_token: str? noris_token: str? nsone_api_key: str? - porkbun_key: str? - porkbun_secret: str? ovh_application_key: str? ovh_application_secret: str? ovh_consumer_key: str? ovh_endpoint: str? + plesk_api_url: str? + plesk_password: str? + plesk_username: str? + porkbun_key: str? + porkbun_secret: str? propagation_seconds: int(60,3600)? - provider: "list(dns-azure|dns-cloudflare|dns-cloudns|dns-desec|\ - dns-digitalocean|dns-directadmin|dns-dnsimple|dns-dnsmadeeasy|\ - dns-duckdns|dns-dynu|dns-eurodns|dns-gehirn|dns-godaddy|dns-google|\ - dns-hetzner|dns-infomaniak|dns-ionos|dns-joker|dns-linode|dns-loopia|dns-luadns|\ - dns-mijn-host|dns-njalla|dns-nsone|dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|\ - dns-sakuracloud|dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|\ - dns-dreamhost|dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris|\ - dns-plesk)?" + provider: "list(\ + dns-azure|\ + dns-cloudflare|\ + dns-cloudns|\ + dns-desec|\ + dns-digitalocean|\ + dns-directadmin|\ + dns-dnsimple|\ + dns-dnsmadeeasy|\ + dns-domainoffensive|\ + dns-dreamhost|\ + dns-duckdns|\ + dns-dynu|\ + dns-easydns|\ + dns-eurodns|\ + dns-gandi|\ + dns-gehirn|\ + dns-godaddy|\ + dns-google|\ + dns-he|\ + dns-hetzner|\ + dns-infomaniak|\ + dns-inwx|\ + dns-ionos|\ + dns-joker|\ + dns-linode|\ + dns-loopia|\ + dns-luadns|\ + dns-mijn-host|\ + dns-namecheap|\ + dns-netcup|\ + dns-njalla|\ + dns-noris|\ + dns-nsone|\ + dns-ovh|\ + dns-plesk|\ + dns-porkbun|\ + dns-rfc2136|\ + dns-route53|\ + dns-sakuracloud|\ + dns-simply|\ + dns-transip|\ + dns-websupport)?" rfc2136_algorithm: str? rfc2136_name: str? rfc2136_port: str? @@ -122,20 +170,11 @@ schema: rfc2136_sign_query: bool? sakuracloud_api_secret: str? sakuracloud_api_token: str? + simply_account_name: str? + simply_api_key: str? transip_api_key: str? - transip_username: str? transip_global_key: list(yes|no)? - inwx_username: str? - inwx_password: str? - inwx_shared_secret: str? - dreamhost_api_key: str? - dreamhost_baseurl: str? - he_user: str? - he_pass: str? - easydns_endpoint: str? - easydns_key: str? - easydns_token: str? - domainoffensive_token: str? + transip_username: str? websupport_identifier: str? websupport_secret_key: str? startup: once diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 33b8a7e8954..76d8b28308c 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -7,82 +7,82 @@ mkdir -p /data/workdir mkdir -p /data/letsencrypt # Setup Let's encrypt config -echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ +echo -e "aws_access_key_id = $(bashio::config 'dns.aws_access_key_id')\n" \ + "aws_secret_access_key = $(bashio::config 'dns.aws_secret_access_key')\n" \ + "dns_cloudns_auth_password = $(bashio::config 'dns.cloudns_auth_password')\n" \ + "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_digitalocean_token = $(bashio::config 'dns.digitalocean_token')\n" \ + "dns_directadmin_password = $(bashio::config 'dns.directadmin_password')\n" \ "dns_directadmin_url = $(bashio::config 'dns.directadmin_url')\n" \ "dns_directadmin_username = $(bashio::config 'dns.directadmin_username')\n" \ - "dns_directadmin_password = $(bashio::config 'dns.directadmin_password')\n" \ "dns_dnsimple_token = $(bashio::config 'dns.dnsimple_token')\n" \ "dns_dnsmadeeasy_api_key = $(bashio::config 'dns.dnsmadeeasy_api_key')\n" \ "dns_dnsmadeeasy_secret_key = $(bashio::config 'dns.dnsmadeeasy_secret_key')\n" \ + "dns_domainoffensive_api_token = $(bashio::config 'dns.domainoffensive_token')\n" \ + "dns_dreamhost_api_key = $(bashio::config 'dns.dreamhost_api_key')\n" \ + "dns_dreamhost_baseurl = $(bashio::config 'dns.dreamhost_baseurl')\n" \ "dns_duckdns_token = $(bashio::config 'dns.duckdns_token')\n" \ "dns_dynu_auth_token = $(bashio::config 'dns.dynu_auth_token')\n" \ - "dns_eurodns_applicationId = $(bashio::config 'dns.eurodns_applicationId')\n" \ + "dns_easydns_endpoint = $(bashio::config 'dns.easydns_endpoint')\n" \ + "dns_easydns_userkey = $(bashio::config 'dns.easydns_key')\n" \ + "dns_easydns_usertoken = $(bashio::config 'dns.easydns_token')\n" \ "dns_eurodns_apiKey = $(bashio::config 'dns.eurodns_apiKey')\n" \ - "dns_gehirn_api_token = $(bashio::config 'dns.gehirn_api_token')\n" \ + "dns_eurodns_applicationId = $(bashio::config 'dns.eurodns_applicationId')\n" \ "dns_gehirn_api_secret = $(bashio::config 'dns.gehirn_api_secret')\n" \ - "dns_godaddy_secret = $(bashio::config 'dns.godaddy_secret')\n" \ + "dns_gehirn_api_token = $(bashio::config 'dns.gehirn_api_token')\n" \ "dns_godaddy_key = $(bashio::config 'dns.godaddy_key')\n" \ + "dns_godaddy_secret = $(bashio::config 'dns.godaddy_secret')\n" \ "dns_hetzner_api_token = $(bashio::config 'dns.hetzner_api_token')\n" \ + "dns_hurricane_electric_pass = $(bashio::config 'dns.he_pass')\n" \ + "dns_hurricane_electric_user = $(bashio::config 'dns.he_user')\n" \ "dns_infomaniak_token = $(bashio::config 'dns.infomaniak_api_token')\n" \ + "dns_inwx_password = $(bashio::config 'dns.inwx_password')\n" \ + "dns_inwx_shared_secret = $(bashio::config 'dns.inwx_shared_secret')\n" \ + "dns_inwx_url = https://api.domrobot.com\n" \ + "dns_inwx_username = $(bashio::config 'dns.inwx_username')\n" \ + "dns_ionos_endpoint = $(bashio::config 'dns.ionos_endpoint')\n" \ "dns_ionos_prefix = $(bashio::config 'dns.ionos_prefix')\n" \ "dns_ionos_secret = $(bashio::config 'dns.ionos_secret')\n" \ - "dns_ionos_endpoint = $(bashio::config 'dns.ionos_endpoint')\n" \ - "dns_joker_username = $(bashio::config 'dns.joker_username')\n" \ - "dns_joker_password = $(bashio::config 'dns.joker_password')\n" \ "dns_joker_domain = $(bashio::config 'dns.joker_domain')\n" \ - "dns_plesk_username = $(bashio::config 'dns.plesk_username')\n" \ - "dns_plesk_password = $(bashio::config 'dns.plesk_password')\n" \ - "dns_plesk_api_url = $(bashio::config 'dns.plesk_api_url')\n" \ + "dns_joker_password = $(bashio::config 'dns.joker_password')\n" \ + "dns_joker_username = $(bashio::config 'dns.joker_username')\n" \ "dns_linode_key = $(bashio::config 'dns.linode_key')\n" \ "dns_linode_version = $(bashio::config 'dns.linode_version')\n" \ - "dns_loopia_user = $(bashio::config 'dns.loopia_user')\n" \ "dns_loopia_password = $(bashio::config 'dns.loopia_password')\n" \ + "dns_loopia_user = $(bashio::config 'dns.loopia_user')\n" \ "dns_luadns_email = $(bashio::config 'dns.luadns_email')\n" \ "dns_luadns_token = $(bashio::config 'dns.luadns_token')\n" \ "dns_mijn_host_api_key = $(bashio::config 'dns.mijn_host_api_key')\n" \ - "dns_namecheap_username = $(bashio::config 'dns.namecheap_username')\n" \ "dns_namecheap_api_key = $(bashio::config 'dns.namecheap_api_key')\n" \ - "dns_netcup_customer_id = $(bashio::config 'dns.netcup_customer_id')\n" \ + "dns_namecheap_username = $(bashio::config 'dns.namecheap_username')\n" \ "dns_netcup_api_key = $(bashio::config 'dns.netcup_api_key')\n" \ "dns_netcup_api_password = $(bashio::config 'dns.netcup_api_password')\n" \ - "dns_simply_account_name = $(bashio::config 'dns.simply_account_name')\n" \ - "dns_simply_api_key = $(bashio::config 'dns.simply_api_key')\n" \ + "dns_netcup_customer_id = $(bashio::config 'dns.netcup_customer_id')\n" \ "dns_njalla_token = $(bashio::config 'dns.njalla_token')\n" \ "dns_noris_token = $(bashio::config 'dns.noris_token')\n" \ "dns_nsone_api_key = $(bashio::config 'dns.nsone_api_key')\n" \ - "dns_porkbun_key = $(bashio::config 'dns.porkbun_key')\n" \ - "dns_porkbun_secret = $(bashio::config 'dns.porkbun_secret')\n" \ - "dns_ovh_endpoint = $(bashio::config 'dns.ovh_endpoint')\n" \ "dns_ovh_application_key = $(bashio::config 'dns.ovh_application_key')\n" \ "dns_ovh_application_secret = $(bashio::config 'dns.ovh_application_secret')\n" \ "dns_ovh_consumer_key = $(bashio::config 'dns.ovh_consumer_key')\n" \ - "dns_rfc2136_server = $(bashio::config 'dns.rfc2136_server')\n" \ - "dns_rfc2136_port = $(bashio::config 'dns.rfc2136_port')\n" \ + "dns_ovh_endpoint = $(bashio::config 'dns.ovh_endpoint')\n" \ + "dns_plesk_api_url = $(bashio::config 'dns.plesk_api_url')\n" \ + "dns_plesk_password = $(bashio::config 'dns.plesk_password')\n" \ + "dns_plesk_username = $(bashio::config 'dns.plesk_username')\n" \ + "dns_porkbun_key = $(bashio::config 'dns.porkbun_key')\n" \ + "dns_porkbun_secret = $(bashio::config 'dns.porkbun_secret')\n" \ + "dns_rfc2136_algorithm = $(bashio::config 'dns.rfc2136_algorithm')\n" \ "dns_rfc2136_name = $(bashio::config 'dns.rfc2136_name')\n" \ + "dns_rfc2136_port = $(bashio::config 'dns.rfc2136_port')\n" \ "dns_rfc2136_secret = $(bashio::config 'dns.rfc2136_secret')\n" \ - "dns_rfc2136_algorithm = $(bashio::config 'dns.rfc2136_algorithm')\n" \ + "dns_rfc2136_server = $(bashio::config 'dns.rfc2136_server')\n" \ "dns_rfc2136_sign_query = $(bashio::config 'dns.rfc2136_sign_query')\n" \ - "aws_access_key_id = $(bashio::config 'dns.aws_access_key_id')\n" \ - "aws_secret_access_key = $(bashio::config 'dns.aws_secret_access_key')\n" \ - "dns_sakuracloud_api_token = $(bashio::config 'dns.sakuracloud_api_token')\n" \ "dns_sakuracloud_api_secret = $(bashio::config 'dns.sakuracloud_api_secret')\n" \ - "dns_transip_username = $(bashio::config 'dns.transip_username')\n" \ + "dns_sakuracloud_api_token = $(bashio::config 'dns.sakuracloud_api_token')\n" \ + "dns_simply_account_name = $(bashio::config 'dns.simply_account_name')\n" \ + "dns_simply_api_key = $(bashio::config 'dns.simply_api_key')\n" \ "dns_transip_global_key = $(bashio::config 'dns.transip_global_key')\n" \ "dns_transip_key_file = /data/transip-rsa.key\n" \ - "dns_inwx_url = https://api.domrobot.com\n" \ - "dns_inwx_username = $(bashio::config 'dns.inwx_username')\n" \ - "dns_inwx_password = $(bashio::config 'dns.inwx_password')\n" \ - "dns_inwx_shared_secret = $(bashio::config 'dns.inwx_shared_secret')\n" \ - "dns_cloudns_auth_password = $(bashio::config 'dns.cloudns_auth_password')\n" \ - "dns_dreamhost_baseurl = $(bashio::config 'dns.dreamhost_baseurl')\n" \ - "dns_dreamhost_api_key = $(bashio::config 'dns.dreamhost_api_key')\n" \ - "dns_hurricane_electric_user = $(bashio::config 'dns.he_user')\n" \ - "dns_hurricane_electric_pass = $(bashio::config 'dns.he_pass')\n" \ - "dns_easydns_endpoint = $(bashio::config 'dns.easydns_endpoint')\n" \ - "dns_easydns_usertoken = $(bashio::config 'dns.easydns_token')\n" \ - "dns_easydns_userkey = $(bashio::config 'dns.easydns_key')\n" \ - "dns_domainoffensive_api_token = $(bashio::config 'dns.domainoffensive_token')\n" \ + "dns_transip_username = $(bashio::config 'dns.transip_username')\n" \ "dns_websupport_identifier = $(bashio::config 'dns.websupport_identifier')\n" \ "dns_websupport_secret_key = $(bashio::config 'dns.websupport_secret_key')\n" > /data/dnsapikey diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 2bc165d8287..8302606a0c5 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -21,6 +21,9 @@ ACME_SERVER=$(bashio::config 'acme_server') ACME_ROOT_CA=$(bashio::config 'acme_root_ca_cert') EAB_KID=$(bashio::config 'eab_kid') EAB_HMAC_KEY=$(bashio::config 'eab_hmac_key') +DRY_RUN=$(bashio::config 'dry_run') +TEST_CERT=$(bashio::config 'test_cert') +VERBOSE=$(bashio::config 'verbose') if [ "${CHALLENGE}" == "dns" ]; then bashio::log.info "Selected DNS Provider: ${DNS_PROVIDER}" @@ -34,63 +37,20 @@ else bashio::log.info "Selected http verification" fi -# AWS -if [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-route53" ]; then - bashio::config.require 'dns.aws_access_key_id' - bashio::config.require 'dns.aws_secret_access_key' - - AWS_ACCESS_KEY_ID="$(bashio::config 'dns.aws_access_key_id')" - AWS_SECRET_ACCESS_KEY="$(bashio::config 'dns.aws_secret_access_key')" - - export AWS_ACCESS_KEY_ID - export AWS_SECRET_ACCESS_KEY - PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}") -#Google -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-google" ]; then - bashio::config.require 'dns.google_creds' - GOOGLE_CREDS="$(bashio::config 'dns.google_creds')" +# Azure +if [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-azure" ]; then + bashio::config.require 'dns.azure_config' + AZURE_CREDS="$(bashio::config 'dns.azure_config')" - export GOOGLE_CREDS - if [ -f "/share/${GOOGLE_CREDS}" ]; then - cp -f "/share/${GOOGLE_CREDS}" "/data/${GOOGLE_CREDS}" - chmod 600 "/data/${GOOGLE_CREDS}" + export AZURE_CREDS + if [ -f "/share/${AZURE_CREDS}" ]; then + cp -f "/share/${AZURE_CREDS}" "/data/azure_creds" + chmod 600 "/data/azure_creds" else - bashio::log.info "Google Credentials File doesnt exists in folder share." + bashio::log.error "Azure credentials file '${AZURE_CREDS}' not found in /share directory" + exit 1 fi - PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/${GOOGLE_CREDS}") -#Namecheap -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-namecheap" ]; then - bashio::config.require 'dns.namecheap_username' - bashio::config.require 'dns.namecheap_api_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -#mijn.host -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-mijn-host" ]; then - bashio::config.require 'dns.mijn_host_api_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -#Netcup -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-netcup" ]; then - bashio::config.require 'dns.netcup_customer_id' - bashio::config.require 'dns.netcup_api_key' - bashio::config.require 'dns.netcup_api_password' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -#Simply -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-simply" ]; then - bashio::config.require 'dns.simply_account_name' - bashio::config.require 'dns.simply_api_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -#TransIP -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-transip" ]; then - bashio::config.require.username 'dns.transip_username' - bashio::config.require 'dns.transip_api_key' - if (( PROPAGATION_SECONDS < 240 )); then - bashio::log.info "Increasing DNS propagation limit for TransIP to at least 240 seconds." - PROPAGATION_SECONDS=240 - fi - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-config" "/data/azure_creds") # CloudFlare elif [ "${DNS_PROVIDER}" == "dns-cloudflare" ]; then @@ -105,6 +65,16 @@ elif [ "${DNS_PROVIDER}" == "dns-cloudflare" ]; then PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# ClouDNS +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-cloudns" ]; then + bashio::config.require 'dns.cloudns_auth_password' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + +# desec +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-desec" ]; then + bashio::config.require 'dns.desec_token' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # DigitalOcean elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-digitalocean" ]; then bashio::config.require 'dns.digitalocean_token' @@ -117,7 +87,18 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-directadmin" ]; bashio::config.require 'dns.directadmin_password' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") -#DuckDNS +# domainoffensive +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-domainoffensive" ]; then + bashio::config.require 'dns.domainoffensive_token' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") + +# Dreamhost +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-dreamhost" ]; then + bashio::config.require 'dns.dreamhost_baseurl' + bashio::config.require 'dns.dreamhost_api_key' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") + +# DuckDNS elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-duckdns" ]; then bashio::config.require 'dns.duckdns_token' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") @@ -127,6 +108,13 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-dynu" ]; then bashio::config.require 'dns.dynu_auth_token' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# easyDNS +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-easydns" ]; then + bashio::config.require 'dns.easydns_key' + bashio::config.require 'dns.easydns_token' + bashio::config.require 'dns.easydns_endpoint' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # Eurodns elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-eurodns" ]; then bashio::config.require 'dns.eurodns_applicationId' @@ -155,6 +143,27 @@ elif [ "${DNS_PROVIDER}" == "dns-godaddy" ]; then bashio::config.require 'dns.godaddy_key' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# Google +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-google" ]; then + bashio::config.require 'dns.google_creds' + GOOGLE_CREDS="$(bashio::config 'dns.google_creds')" + + export GOOGLE_CREDS + if [ -f "/share/${GOOGLE_CREDS}" ]; then + cp -f "/share/${GOOGLE_CREDS}" "/data/${GOOGLE_CREDS}" + chmod 600 "/data/${GOOGLE_CREDS}" + else + bashio::log.error "Google credentials file '${GOOGLE_CREDS}' not found in /share directory" + exit 1 + fi + PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/${GOOGLE_CREDS}") + +# Hurricane Electric +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-he" ]; then + bashio::config.require 'dns.he_user' + bashio::config.require 'dns.he_pass' + PROVIDER_ARGUMENTS+=("--authenticator" "dns-hurricane_electric" "--dns-hurricane_electric-credentials" "/data/dnsapikey" "--dns-hurricane_electric-propagation-seconds" "${PROPAGATION_SECONDS}") + # Hetzner elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-hetzner" ]; then bashio::config.require 'dns.hetzner_api_token' @@ -165,6 +174,13 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-infomaniak" ]; t bashio::config.require 'dns.infomaniak_api_token' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# INWX +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-inwx" ]; then + bashio::config.require 'dns.inwx_username' + bashio::config.require 'dns.inwx_password' + bashio::config.require 'dns.inwx_shared_secret' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # IONOS elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-ionos" ]; then bashio::config.require 'dns.ionos_prefix' @@ -188,6 +204,34 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-loopia" ]; then fi PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# mijn.host +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-mijn-host" ]; then + bashio::config.require 'dns.mijn_host_api_key' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + +# Namecheap +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-namecheap" ]; then + bashio::config.require 'dns.namecheap_username' + bashio::config.require 'dns.namecheap_api_key' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + +# Netcup +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-netcup" ]; then + bashio::config.require 'dns.netcup_customer_id' + bashio::config.require 'dns.netcup_api_key' + bashio::config.require 'dns.netcup_api_password' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + +# Njalla +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-njalla" ]; then + bashio::config.require 'dns.njalla_token' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + +# noris network +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-noris" ]; then + bashio::config.require 'dns.noris_token' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + # Plesk elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-plesk" ]; then bashio::config.require 'dns.plesk_username' @@ -199,86 +243,53 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-plesk" ]; then fi PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") -# Njalla -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-njalla" ]; then - bashio::config.require 'dns.njalla_token' +#Porkbun +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-porkbun" ]; then + bashio::config.require 'dns.porkbun_key' + bashio::config.require 'dns.porkbun_secret' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") # rfc2136 elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-rfc2136" ]; then PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") -# Azure -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-azure" ]; then - bashio::config.require 'dns.azure_config' - AZURE_CREDS="$(bashio::config 'dns.azure_config')" - - export AZURE_CREDS - if [ -f "/share/${AZURE_CREDS}" ]; then - cp -f "/share/${AZURE_CREDS}" "/data/azure_creds" - chmod 600 "/data/azure_creds" - else - bashio::log.info "Azure credentials file doesn't exist in folder share." - fi - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-config" "/data/azure_creds") - -# INWX -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-inwx" ]; then - bashio::config.require 'dns.inwx_username' - bashio::config.require 'dns.inwx_password' - bashio::config.require 'dns.inwx_shared_secret' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +# route53 - AWS +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-route53" ]; then + bashio::config.require 'dns.aws_access_key_id' + bashio::config.require 'dns.aws_secret_access_key' -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-desec" ]; then - bashio::config.require 'dns.desec_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + AWS_ACCESS_KEY_ID="$(bashio::config 'dns.aws_access_key_id')" + AWS_SECRET_ACCESS_KEY="$(bashio::config 'dns.aws_secret_access_key')" -#Porkbun -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-porkbun" ]; then - bashio::config.require 'dns.porkbun_key' - bashio::config.require 'dns.porkbun_secret' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + export AWS_ACCESS_KEY_ID + export AWS_SECRET_ACCESS_KEY + PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}") -# ClouDNS -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-cloudns" ]; then - bashio::config.require 'dns.cloudns_auth_password' +# Simply +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-simply" ]; then + bashio::config.require 'dns.simply_account_name' + bashio::config.require 'dns.simply_api_key' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") -# Dreamhost -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-dreamhost" ]; then - bashio::config.require 'dns.dreamhost_baseurl' - bashio::config.require 'dns.dreamhost_api_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") - -# Hurricane Electric -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-he" ]; then - bashio::config.require 'dns.he_user' - bashio::config.require 'dns.he_pass' - PROVIDER_ARGUMENTS+=("--authenticator" "dns-hurricane_electric" "--dns-hurricane_electric-credentials" "/data/dnsapikey" "--dns-hurricane_electric-propagation-seconds" "${PROPAGATION_SECONDS}") - -# easyDNS -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-easydns" ]; then - bashio::config.require 'dns.easydns_key' - bashio::config.require 'dns.easydns_token' - bashio::config.require 'dns.easydns_endpoint' +# TransIP +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-transip" ]; then + bashio::config.require 'dns.transip_username' + bashio::config.require 'dns.transip_api_key' + if bashio::config.has_value 'dns.transip_global_key'; then + "dns_transip_global_key=$(bashio::config 'dns.transip_global_key')" + fi + if (( PROPAGATION_SECONDS < 240 )); then + bashio::log.info "Increasing DNS propagation limit for TransIP to at least 240 seconds." + PROPAGATION_SECONDS=240 + fi PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") -# domainoffensive -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-domainoffensive" ]; then - bashio::config.require 'dns.domainoffensive_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--agree-tos" "-m ${EMAIL}") - # WebSupport elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-websupport" ]; then bashio::config.require 'dns.websupport_identifier' bashio::config.require 'dns.websupport_secret_key' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") -# noris network -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-noris" ]; then - bashio::config.require 'dns.noris_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - #All others else PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") @@ -343,11 +354,24 @@ if bashio::config.has_value 'eab_kid' ; then EAB_ARGUMENTS+=("--eab-kid" "${EAB_KID}" "--eab-hmac-key" "${EAB_HMAC_KEY}") fi +# Define additional arguments based on configuration +ADDITIONAL_ARGS=() +if [ "${DRY_RUN}" = "true" ]; then + ADDITIONAL_ARGS+=("--dry-run") +fi +if [ "${TEST_CERT}" = "true" ]; then + ADDITIONAL_ARGS+=("--test-cert") +fi +if [ "${VERBOSE}" = "true" ]; then + ADDITIONAL_ARGS+=("-vvv") +fi + # Generate a new certificate if necessary or expand a previous certificate if domains has changed if [ "$CHALLENGE" == "dns" ]; then certbot certonly --non-interactive --keep-until-expiring --expand \ --email "$EMAIL" --agree-tos \ "${KEY_ARGUMENTS[@]}" \ + "${ADDITIONAL_ARGS[@]}" \ --cert-name "${DOMAIN_ARR[1]}" "${DOMAIN_ARR[@]}" \ --config-dir "$CERT_DIR" --work-dir "$WORK_DIR" \ --preferred-challenges "$CHALLENGE" "${PROVIDER_ARGUMENTS[@]}" \ @@ -357,6 +381,7 @@ else certbot certonly --non-interactive --keep-until-expiring --expand \ --email "$EMAIL" --agree-tos \ "${KEY_ARGUMENTS[@]}" \ + "${ADDITIONAL_ARGS[@]}" \ --cert-name "${DOMAIN_ARR[1]}" "${DOMAIN_ARR[@]}" \ --config-dir "$CERT_DIR" --work-dir "$WORK_DIR" \ --preferred-challenges "$CHALLENGE" "${ACME_CUSTOM_SERVER_ARGUMENTS[@]}" --standalone \ diff --git a/letsencrypt/translations/en.yaml b/letsencrypt/translations/en.yaml index 7696d0b5f06..c4b26813ea3 100644 --- a/letsencrypt/translations/en.yaml +++ b/letsencrypt/translations/en.yaml @@ -42,5 +42,17 @@ configuration: description: >- Elliptic curve for ECDSA keys. This option must be used with Key Type set to ECDSA. If unset the Certbot default will be used. + dry_run: + name: Dry Run + description: >- + Do a certbot dry-run for requesting the certificates. + test_cert: + name: Issue test certificates + description: >- + Obtain a test certificate from a staging server. + verbose: + name: Verbose Mode + description: >- + Run certbot in verbose mode. network: 80/tcp: Only needed for http challenge From 07c158cbf4b7c18beca16dc1a2c94556b66c5ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6tz=20G=C3=B6risch?= <47734341+GoetzGoerisch@users.noreply.github.com> Date: Fri, 28 Feb 2025 12:36:54 +0100 Subject: [PATCH 164/346] letsencrypt: fix TransIP global_key handling (#3958) * follow-up to https://github.com/home-assistant/addons/pull/3862 Co-authored-by: Goopher --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/config.yaml | 2 +- letsencrypt/rootfs/etc/cont-init.d/file-structure.sh | 6 +++++- letsencrypt/rootfs/etc/services.d/lets-encrypt/run | 5 +---- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 5ac0837f994..f896c82ab6d 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.4.1 + +- Fix TransIP global_key handling + ## 5.4.0 - Add additional arguments to certbot (dry-run, test-cert, verbose) diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 4f3b5323e1d..1b2779bd9ed 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.0 +version: 5.4.1 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index 76d8b28308c..6fd91aeef38 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -80,7 +80,6 @@ echo -e "aws_access_key_id = $(bashio::config 'dns.aws_access_key_id')\n" \ "dns_sakuracloud_api_token = $(bashio::config 'dns.sakuracloud_api_token')\n" \ "dns_simply_account_name = $(bashio::config 'dns.simply_account_name')\n" \ "dns_simply_api_key = $(bashio::config 'dns.simply_api_key')\n" \ - "dns_transip_global_key = $(bashio::config 'dns.transip_global_key')\n" \ "dns_transip_key_file = /data/transip-rsa.key\n" \ "dns_transip_username = $(bashio::config 'dns.transip_username')\n" \ "dns_websupport_identifier = $(bashio::config 'dns.websupport_identifier')\n" \ @@ -109,6 +108,11 @@ if bashio::config.exists 'dns.transip_api_key'; then chmod 600 /data/transip-rsa.key fi +# TransIP global_key conditional write out to config +if bashio::config.exists 'dns.transip_global_key'; then + echo -e "dns_transip_global_key = $(bashio::config 'dns.transip_global_key')\n" >> "/data/dnsapikey" +fi + # Cleanup removed add-on options if bashio::config.exists 'dns.cloudxns_api_key'; then bashio::addon.option 'dns.cloudxns_api_key' diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 8302606a0c5..7a318425b36 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -275,11 +275,8 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-simply" ]; then elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-transip" ]; then bashio::config.require 'dns.transip_username' bashio::config.require 'dns.transip_api_key' - if bashio::config.has_value 'dns.transip_global_key'; then - "dns_transip_global_key=$(bashio::config 'dns.transip_global_key')" - fi if (( PROPAGATION_SECONDS < 240 )); then - bashio::log.info "Increasing DNS propagation limit for TransIP to at least 240 seconds." + bashio::log.info "Increasing DNS propagation time for TransIP to at least 240 seconds." PROPAGATION_SECONDS=240 fi PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") From dea8df92cd172bfdcfd330e0fa77a9ff53aeec84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6tz=20G=C3=B6risch?= <47734341+GoetzGoerisch@users.noreply.github.com> Date: Sat, 1 Mar 2025 12:34:54 +0100 Subject: [PATCH 165/346] letsencrypt: update dns-gandi and dns-dynu (#3959) Signed-off-by: Goetz Goerisch <47734341+GoetzGoerisch@users.noreply.github.com> --- letsencrypt/CHANGELOG.md | 6 ++++++ letsencrypt/Dockerfile | 2 +- letsencrypt/build.yaml | 4 ++-- letsencrypt/config.yaml | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index f896c82ab6d..22266a0f861 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 5.4.2 + +- Update certbot-dns-dynu to 0.0.8 +- Update certbot-dns-gandi to 1.6.1 + (incl. switch back to a renamed updated original version) + ## 5.4.1 - Fix TransIP global_key handling diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 53676449398..089dc5a68d8 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -68,7 +68,7 @@ RUN \ certbot-dns-dynu-dev==${CERTBOT_DNS_DYNU_VERSION} \ certbot-dns-easydns==${CERTBOT_DNS_EASYDNS_VERSION} \ certbot-dns-eurodns==${CERTBOT_DNS_EURODNS_VERSION} \ - certbot-plugin-gandi-modern==${CERTBOT_DNS_GANDI_VERSION} \ + certbot-dns-gandi==${CERTBOT_DNS_GANDI_VERSION} \ certbot-dns-gehirn==${CERTBOT_VERSION} \ certbot-dns-godaddy==${CERTBOT_DNS_GODADDY_VERSION} \ certbot-dns-google==${CERTBOT_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 6cef870ca5f..9f05a51c302 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -18,10 +18,10 @@ args: CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 CERTBOT_DNS_DREAMHOST_VERSION: 1.0 CERTBOT_DNS_DUCKDNS_VERSION: 1.5 - CERTBOT_DNS_DYNU_VERSION: 0.0.6 + CERTBOT_DNS_DYNU_VERSION: 0.0.8 CERTBOT_DNS_EASYDNS_VERSION: 0.1.4 CERTBOT_DNS_EURODNS_VERSION: 1.8.1 - CERTBOT_DNS_GANDI_VERSION: 1.6.0 + CERTBOT_DNS_GANDI_VERSION: 1.6.1 CERTBOT_DNS_GODADDY_VERSION: 2.8.0 CERTBOT_DNS_HETZNER_VERSION: 2.0.1 CERTBOT_DNS_HURRICANE_ELECTRIC_VERSION: 0.1.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 1b2779bd9ed..c2e5be4660f 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.1 +version: 5.4.2 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt From 41db427a53a19d5e983fef4742d8947f82b55427 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 07:18:13 +0100 Subject: [PATCH 166/346] build(deps): bump home-assistant/builder from 2024.08.2 to 2025.02.0 (#3961) --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 8d4d1dfa436..d6d51de6efc 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -107,7 +107,7 @@ jobs: - name: Build ${{ matrix.addon }} add-on if: steps.check.outputs.build_arch == 'true' - uses: home-assistant/builder@2024.08.2 + uses: home-assistant/builder@2025.02.0 with: args: | ${{ env.BUILD_ARGS }} \ From 4fd432310fcb8d6d56dabbb9612237ba62d50184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6tz=20G=C3=B6risch?= <47734341+GoetzGoerisch@users.noreply.github.com> Date: Tue, 4 Mar 2025 19:25:00 +0100 Subject: [PATCH 167/346] letsencrypt: re-enable dns-websupport (#3963) --- letsencrypt/CHANGELOG.md | 5 +++++ letsencrypt/Dockerfile | 3 +-- letsencrypt/build.yaml | 2 +- letsencrypt/config.yaml | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 22266a0f861..b41d08d639d 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 5.4.3 + +- Update certbot-dns-websupport to 3.0.0 +- Re-enable certbot-dns-websupport + ## 5.4.2 - Update certbot-dns-dynu to 0.0.8 diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 089dc5a68d8..256848b52ce 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -95,8 +95,7 @@ RUN \ certbot-dns-sakuracloud==${CERTBOT_VERSION} \ certbot-dns-simply==${CERTBOT_DNS_SIMPLY_VERSION} \ certbot-dns-transip==${CERTBOT_DNS_TRANSIP_VERSION} \ - # Disabled due to unresolved issues - # certbot-dns-websupport==${CERTBOT_DNS_WEBSUPPORT_VERSION} \ + certbot-dns-websupport==${CERTBOT_DNS_WEBSUPPORT_VERSION} \ certbot==${CERTBOT_VERSION} \ cloudflare==${CLOUDFLARE_VERSION} \ cryptography==${CRYPTOGRAPHY_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 9f05a51c302..86798fc3fc8 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -39,7 +39,7 @@ args: CERTBOT_DNS_PORKBUN_VERSION: 0.9.1 CERTBOT_DNS_SIMPLY_VERSION: 0.1.2 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 - CERTBOT_DNS_WEBSUPPORT_VERSION: 2.0.1 + CERTBOT_DNS_WEBSUPPORT_VERSION: 3.0.0 CERTBOT_VERSION: 3.2.0 CLOUDFLARE_VERSION: 2.19.4 CRYPTOGRAPHY_VERSION: 44.0.1 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index c2e5be4660f..e94056a33c4 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.2 +version: 5.4.3 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt From d9c8d9e9b7e1c59d1f11b53e35aae1b2feaa1b0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6tz=20G=C3=B6risch?= <47734341+GoetzGoerisch@users.noreply.github.com> Date: Wed, 5 Mar 2025 18:05:45 +0000 Subject: [PATCH 168/346] letsencrypt: fix documentation for websupport (#3964) * follow-up to https://github.com/home-assistant/addons/pull/3963 --- letsencrypt/DOCS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 430f427cba8..56103d8025a 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -83,7 +83,7 @@ dns-route53 dns-sakuracloud dns-simply dns-transip -dns-websupport (currently disable - see changelog) +dns-websupport ```
@@ -1400,7 +1400,7 @@ Example configuration:
- WebSupport (currently disable - see changelog) + WebSupport An identifier and secret key have to be obtained to use this module (see ). @@ -1470,7 +1470,7 @@ dns-route53 dns-sakuracloud dns-simply dns-transip -dns-websupport (currently disable - see changelog) +dns-websupport ``` ## Support From 4b8111626023258c4bb6087d3361488a1a114a9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 07:49:29 +0100 Subject: [PATCH 169/346] build(deps): bump docker/login-action from 3.3.0 to 3.4.0 (#3971) --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index d6d51de6efc..952cdddb049 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -100,7 +100,7 @@ jobs: - name: Login to DockerHub if: env.BUILD_ARGS == '--docker-hub-check' - uses: docker/login-action@v3.3.0 + uses: docker/login-action@v3.4.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From 2e9a7c393ea5cc3bd04a4da5acc6fa542ab2197e Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 21 Mar 2025 21:33:44 +0100 Subject: [PATCH 170/346] Bump home-assistant/builder from 2025.02.0 to 2025.03.0 (#3974) --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 952cdddb049..12b31549fca 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -107,7 +107,7 @@ jobs: - name: Build ${{ matrix.addon }} add-on if: steps.check.outputs.build_arch == 'true' - uses: home-assistant/builder@2025.02.0 + uses: home-assistant/builder@2025.03.0 with: args: | ${{ env.BUILD_ARGS }} \ From 57a5b815b81617cb246678d1eaa17f6ac9e42189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6tz=20G=C3=B6risch?= <47734341+GoetzGoerisch@users.noreply.github.com> Date: Mon, 24 Mar 2025 11:49:20 +0000 Subject: [PATCH 171/346] letsencrypt: update certbot, acme and cryptography (#3973) Signed-off-by: Goetz Goerisch <47734341+GoetzGoerisch@users.noreply.github.com> --- letsencrypt/CHANGELOG.md | 6 ++++++ letsencrypt/build.yaml | 6 +++--- letsencrypt/config.yaml | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index b41d08d639d..d822c1e7255 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 5.4.4 + +- Update certbot to 3.3.0 +- Update acme to 3.3.0 +- Update cryptography to 44.0.2 + ## 5.4.3 - Update certbot-dns-websupport to 3.0.0 diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 86798fc3fc8..fcfa9748a58 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -10,7 +10,7 @@ codenotary: base_image: notary@home-assistant.io args: # Developer note: please add a new plugin alphabetically into all lists - ACME_VERSION: 3.2.0 + ACME_VERSION: 3.3.0 CERTBOT_DNS_AZURE_VERSION: 2.6.1 CERTBOT_DNS_CLOUDNS_VERSION: 0.7.0 CERTBOT_DNS_DESEC_VERSION: 1.2.1 @@ -40,6 +40,6 @@ args: CERTBOT_DNS_SIMPLY_VERSION: 0.1.2 CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 CERTBOT_DNS_WEBSUPPORT_VERSION: 3.0.0 - CERTBOT_VERSION: 3.2.0 + CERTBOT_VERSION: 3.3.0 CLOUDFLARE_VERSION: 2.19.4 - CRYPTOGRAPHY_VERSION: 44.0.1 + CRYPTOGRAPHY_VERSION: 44.0.2 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index e94056a33c4..369e7e25d37 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.3 +version: 5.4.4 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt From 4575e549cedfb7d34906234fd77769d14c8acc6a Mon Sep 17 00:00:00 2001 From: Manuel Pietschmann Date: Tue, 8 Apr 2025 14:02:36 +0200 Subject: [PATCH 172/346] Replace DWM with Openbox window manager for deCONZ addon (#3966) The DWM window manager is difficult to use without knowing keyboard commands to control it, e.g.: https://gist.github.com/erlendaakre/12eb90eef84a3ab81f7b531e516c9594 User feedback can be found in: - https://github.com/home-assistant/addons/pull/3708 - https://forum.phoscon.de/t/new-deconz-gui-windows-control-dwm-issues/5097/35 Openbox is a traditional "boring" window manager like Win95. Like DWM it is light weight and also used in the deCONZ community Docker container. This PR was tested in my local setup. --- deconz/CHANGELOG.md | 4 ++++ deconz/Dockerfile | 2 +- deconz/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index 41026268f66..5f638770b0d 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.0.0 + +- Use openbox instead of dwm as window manager + ## 7.0.0 - Bump deCONZ to 2.28.1 diff --git a/deconz/Dockerfile b/deconz/Dockerfile index 3734a30ed36..3d8401e9018 100644 --- a/deconz/Dockerfile +++ b/deconz/Dockerfile @@ -11,7 +11,7 @@ RUN \ && apt-get update \ && apt-get install -y --no-install-recommends \ curl \ - dwm \ + openbox \ iproute2 \ iputils-ping \ kmod \ diff --git a/deconz/config.yaml b/deconz/config.yaml index 5224c0ab4da..443da0cd532 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,5 +1,5 @@ --- -version: 7.0.0 +version: 8.0.0 slug: deconz name: deCONZ description: >- From 603db7536a3eddf90c3f3cbb94d6dbfd02b45bdf Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Fri, 11 Apr 2025 11:33:28 +0200 Subject: [PATCH 173/346] Bump Z-Wave JS to 15.0.5 and Z-Wave JS Server to 3.0.0 (#3969) * Bump Z-Wave JS to 15.0.1 and Z-Wave JS Server to 3.0.0 * fix: bump base images * add breaking changes * bump zwave-js version to 15.0.5 --- zwave_js/CHANGELOG.md | 63 +++++++++++++++++++++++++++++++++++++++++++ zwave_js/build.yaml | 14 +++++----- zwave_js/config.yaml | 4 +-- 3 files changed, 72 insertions(+), 9 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index c08c825e9ad..daa681c4bb3 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,68 @@ # Changelog +## 0.11.0 + +### Breaking changes + +- Version 0.11.0 of the add-on requires version 2021.3.0 or higher of Home Assistant Core. + +### Features + +- Z-Wave JS / Z-Wave JS Server: Add API to query supported notification events of a device +- Z-Wave JS Server: Support for zwave-js v15 + +### Bug fixes + +- Z-Wave JS: Improved spec compliance +- Z-Wave JS: Fixed an issue where multi-stage firmware updates would fail after the first stage +- Z-Wave JS: Fixes an issue where no firmware updates would show as available when the controller region is set to EU_LR + +### Config file changes + +- Add alarmType 132 mapping for Yale YRD4x0 locks +- Add fingerprint for ZVIDAR Z-TRV-V01 +- Add missing parameters to Qubino Smart Plug 16A +- Add missing parameters for the MCO MH-C221 shutter +- Correct Fibaro FGMS001 association groups +- Add multi-click detection parameter to Zooz ZEN51/52 +- Add Shelly Door/Window Sensor, Wave Plug S, Wave PRO Dimmer 1PM/2PM +- Add SmartWings WB04V +- Add new parameters for Zooz ZEN72 firmware 3.40 and 3.50 +- Add new Zooz ZEN32 parameter 27 +- Update New One N4002 to correct parameters and other information +- Update Zooz ZSE44 based on latest docs +- Add SmartWings WM25L Smart Motor +- Update Zooz ZEN04 to firmware 2.30 +- Update Zooz ZEN30 to Firmware v4.20 +- Update Zooz ZEN20 to firmware 4.20 +- Update Zooz ZEN17 800LR to firmware 2.0 +- Update to TKB Home TZ88 +- Add missing and new parameters for Zooz ZEN15 +- Add fingerprint to Yale YRL210 +- Add Springs Window Fashions CRBZ motorized blinds +- Add Jasco ZWN4015 In-Wall Smart Switch +- Add config parameters to Schlage PIR Motion Sensor +- Add Lockly Secure Plus +- Update Zooz ZEN74 to firmware 2.10 +- Preserve endpoints for Namron 16A thermostats +- Allow setting arbitrary Motion Sensitivity for ZSE70 +- Update config file for 500 series controllers + +### Detailed changelogs + +- [Z-Wave JS Server 3.0.0](https://github.com/zwave-js/zwave-js-server/releases/tag/3.0.0) +- [Z-Wave JS 15.0.5](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.0.5) +- [Z-Wave JS 15.0.4](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.0.4) +- [Z-Wave JS 15.0.3](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.0.3) +- [Z-Wave JS 15.0.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.0.2) +- [Z-Wave JS 15.0.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.0.1) +- [Z-Wave JS 15.0.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.0.0) +- [Z-Wave JS 14.3.13](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.13) +- [Z-Wave JS 14.3.12](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.12) +- [Z-Wave JS 14.3.11](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.11) +- [Z-Wave JS 14.3.10](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.10) +- [Z-Wave JS 14.3.9](https://github.com/zwave-js/node-zwave-js/releases/tag/v14.3.9) + ## 0.10.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 5c71d782983..6afe39bddb9 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -1,13 +1,13 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.18 - amd64: ghcr.io/home-assistant/amd64-base:3.18 - armhf: ghcr.io/home-assistant/armhf-base:3.18 - armv7: ghcr.io/home-assistant/armv7-base:3.18 - i386: ghcr.io/home-assistant/i386-base:3.18 + aarch64: ghcr.io/home-assistant/aarch64-base:3.21 + amd64: ghcr.io/home-assistant/amd64-base:3.21 + armhf: ghcr.io/home-assistant/armhf-base:3.21 + armv7: ghcr.io/home-assistant/armv7-base:3.21 + i386: ghcr.io/home-assistant/i386-base:3.21 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 1.40.3 - ZWAVEJS_VERSION: 14.3.8 + ZWAVEJS_SERVER_VERSION: 3.0.0 + ZWAVEJS_VERSION: 15.0.5 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index cc3e27acede..47094f36c9b 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.10.0 +version: 0.11.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS @@ -14,7 +14,7 @@ codenotary: notary@home-assistant.io discovery: - zwave_js hassio_api: true -homeassistant: 2021.2.0b0 +homeassistant: 2021.3.0 image: homeassistant/{arch}-addon-zwave_js init: false map: From abfb8fc9e93a7048a0ddfc914fd1c0e528232ccf Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 14 Apr 2025 15:21:37 +0200 Subject: [PATCH 174/346] Formally deprecate the DHCP Server add-on (#3980) --- dhcp_server/CHANGELOG.md | 8 ++++++++ dhcp_server/README.md | 6 ++++++ dhcp_server/config.yaml | 5 +++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/dhcp_server/CHANGELOG.md b/dhcp_server/CHANGELOG.md index 7f2b0aa3d7e..bbe3bc18cb3 100644 --- a/dhcp_server/CHANGELOG.md +++ b/dhcp_server/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 1.5.0 + +**Deprecation notice** +This will be the final update for this add-on. The maintenance of the ISC DHCP +Server ended in 2022 already. + +- Update base image to alpine 3.20 + ## 1.4.0 - Update base image to alpine 3.19 diff --git a/dhcp_server/README.md b/dhcp_server/README.md index 834278f0195..0630124a61a 100644 --- a/dhcp_server/README.md +++ b/dhcp_server/README.md @@ -1,5 +1,11 @@ # Home Assistant Add-on: DHCP server +> [!CAUTION] +> **Deprecation notice** +> The maintenance of the ISC DHCP Server ended in 2022 already. Alpine Linux +> dropped the package in Alpine 3.21. Hence, the add-on is deprecated as well. +> Consider using the DHCP functionality of your router instead. + A simple DHCP server. ![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield] diff --git a/dhcp_server/config.yaml b/dhcp_server/config.yaml index 62b0dadd56e..21f2a8aab63 100644 --- a/dhcp_server/config.yaml +++ b/dhcp_server/config.yaml @@ -1,7 +1,7 @@ --- -version: 1.4.0 +version: 1.5.0 slug: dhcp_server -name: DHCP server +name: "[Deprecated] DHCP server" description: A simple DHCP server url: https://home-assistant.io/addons/dhcp_server/ codenotary: notary@home-assistant.io @@ -53,3 +53,4 @@ schema: subnet: str startup: system init: false +stage: deprecated From a97ef71086a089693a6cb19ffba522b816b97ad7 Mon Sep 17 00:00:00 2001 From: Sergiy Belozorov Date: Thu, 17 Apr 2025 13:04:36 +0200 Subject: [PATCH 175/346] Wait for TXT record to propagate (#3979) * Wait for TXT record to propagate * Format while loop over multiple lines * Make command more robust to strange domain names and tokens * Bumping version * Update CHANGELOG.md --- duckdns/CHANGELOG.md | 4 ++++ duckdns/config.yaml | 2 +- duckdns/rootfs/root/hooks.sh | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index ba3b31c3e1e..57f6382ed9c 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.19.0 + +- Wait for up to 60 seconds for TXT record to propagate when deploying challenges + ## 1.18.0 - Update to use s6-overlay to manage service diff --git a/duckdns/config.yaml b/duckdns/config.yaml index cbd96df24bf..a09379ac336 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.18.0 +version: 1.19.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/rootfs/root/hooks.sh b/duckdns/rootfs/root/hooks.sh index b3f9bc90a24..d59024a2dfe 100755 --- a/duckdns/rootfs/root/hooks.sh +++ b/duckdns/rootfs/root/hooks.sh @@ -32,6 +32,11 @@ deploy_challenge() { # be found in the $TOKEN_FILENAME file. curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=$TOKEN_VALUE" + timeout 60s bash -c -- " + while ! dig -t txt \"_acme-challenge.$ALIAS\" | grep -F \"$TOKEN_VALUE\" > /dev/null; do + sleep 5; + done + " } clean_challenge() { From ad4621a051fc6405c45221fdb0dd7780b1a2ef62 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Sat, 19 Apr 2025 10:00:54 +0200 Subject: [PATCH 176/346] Avoid ordering deprecated add-ons first (#3985) --- dhcp_server/config.yaml | 2 +- google_assistant/config.yaml | 2 +- tellstick/config.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dhcp_server/config.yaml b/dhcp_server/config.yaml index 21f2a8aab63..9cc1aeb6b4c 100644 --- a/dhcp_server/config.yaml +++ b/dhcp_server/config.yaml @@ -1,7 +1,7 @@ --- version: 1.5.0 slug: dhcp_server -name: "[Deprecated] DHCP server" +name: "DHCP server [deprecated]" description: A simple DHCP server url: https://home-assistant.io/addons/dhcp_server/ codenotary: notary@home-assistant.io diff --git a/google_assistant/config.yaml b/google_assistant/config.yaml index 37fb29ab41a..b7c191c9225 100644 --- a/google_assistant/config.yaml +++ b/google_assistant/config.yaml @@ -1,7 +1,7 @@ --- version: 2.5.0 slug: google_assistant -name: Google Assistant SDK +name: Google Assistant SDK [deprecated] description: A virtual personal assistant developed by Google url: >- https://github.com/home-assistant/addons/tree/master/google_assistant diff --git a/tellstick/config.yaml b/tellstick/config.yaml index 053a820d696..aa37005d120 100644 --- a/tellstick/config.yaml +++ b/tellstick/config.yaml @@ -1,7 +1,7 @@ --- version: 2.2.0 slug: tellstick -name: TellStick +name: TellStick [deprecated] description: TellStick and TellStick Duo service url: https://github.com/home-assistant/addons/tree/master/tellstick arch: From 419ac3033697ca90631e63ca8b1ef527a2fd3b5a Mon Sep 17 00:00:00 2001 From: Ben Cos <52817096+BenCos17@users.noreply.github.com> Date: Sat, 19 Apr 2025 09:03:08 +0100 Subject: [PATCH 177/346] fix typo in readme.md for lets encrypt (#3990) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3329492739e..7e815a18755 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ systems that have installed Home Assistant. - **[Let's Encrypt](/letsencrypt/README.md)** - Manage an create certificates from Let's Encrypt. + Manage and create certificates from Let's Encrypt. - **[MariaDB](/mariadb/README.md)** From 54187d086b062a812ebe9509e28b8ff3e63587da Mon Sep 17 00:00:00 2001 From: mattreim <80219712+mattreim@users.noreply.github.com> Date: Tue, 22 Apr 2025 13:07:47 +0200 Subject: [PATCH 178/346] Bump deCONZ to v2.29.5 (#3992) --- deconz/CHANGELOG.md | 4 ++++ deconz/build.yaml | 2 +- deconz/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index 5f638770b0d..c4ec70e272a 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.1.0 + +- Bump deCONZ to 2.29.5 [[CHANGELOG](https://github.com/dresden-elektronik/deconz-rest-plugin/releases/tag/v2.29.5)] + ## 8.0.0 - Use openbox instead of dwm as window manager diff --git a/deconz/build.yaml b/deconz/build.yaml index 9fb3332a1cb..51262bfd980 100644 --- a/deconz/build.yaml +++ b/deconz/build.yaml @@ -7,4 +7,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - DECONZ_VERSION: 2.28.1 + DECONZ_VERSION: 2.29.5 diff --git a/deconz/config.yaml b/deconz/config.yaml index 443da0cd532..363d7890b8d 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.0.0 +version: 8.1.0 slug: deconz name: deCONZ description: >- From 3c83c8850756494712a85514cbd059a40f986e99 Mon Sep 17 00:00:00 2001 From: Felix Matouschek Date: Tue, 22 Apr 2025 14:53:22 +0200 Subject: [PATCH 179/346] letsencrypt: Bump certbot-dns-directadmin to 1.0.15 (#3987) Signed-off-by: Felix Matouschek --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/build.yaml | 2 +- letsencrypt/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index d822c1e7255..50f38d80c21 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.4.5 + +- Update certbot-dns-directadmin to 1.0.15 + ## 5.4.4 - Update certbot to 3.3.0 diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index fcfa9748a58..fe1550e5861 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -14,7 +14,7 @@ args: CERTBOT_DNS_AZURE_VERSION: 2.6.1 CERTBOT_DNS_CLOUDNS_VERSION: 0.7.0 CERTBOT_DNS_DESEC_VERSION: 1.2.1 - CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.13 + CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.15 CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 CERTBOT_DNS_DREAMHOST_VERSION: 1.0 CERTBOT_DNS_DUCKDNS_VERSION: 1.5 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 369e7e25d37..00d0c8142df 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.4 +version: 5.4.5 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt From 3054ab237c9ea306174cfc3173162712b4f0a957 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 22 Apr 2025 15:01:16 +0200 Subject: [PATCH 180/346] ssh: Bump CLI to 4.38.0 (#3995) While at it, also bump libwebsockets to 4.3.5. --- ssh/CHANGELOG.md | 5 +++++ ssh/build.yaml | 4 ++-- ssh/config.yaml | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index 772d834e478..8b1385bcce6 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 9.17.0 + +- Upgrade Home Assistant CLI to 4.38.0 +- Upgrade libwebsockets to 4.3.5 + ## 9.16.0 - Upgrade ttyd to 1.7.7 (fixes copy to clipboard using shift and drag) diff --git a/ssh/build.yaml b/ssh/build.yaml index abdfd2f6900..ea21a4a9c2e 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -9,6 +9,6 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - CLI_VERSION: 4.36.0 - LIBWEBSOCKETS_VERSION: 4.3.3 + CLI_VERSION: 4.38.0 + LIBWEBSOCKETS_VERSION: 4.3.5 TTYD_VERSION: 1.7.7 diff --git a/ssh/config.yaml b/ssh/config.yaml index 60379a6f49d..6e489e9c8e9 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.16.0 +version: 9.17.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH From f24893b34ae931c657b99800655acc40ff157d83 Mon Sep 17 00:00:00 2001 From: Benoit <32198131+83noit@users.noreply.github.com> Date: Tue, 22 Apr 2025 21:45:57 +0100 Subject: [PATCH 181/346] letsencrypt: Fix custom ACME server option with DNS challenge (#3994) * Refactor conditions in Let's Encrypt providers - Using a case statement instead of repeated or inconsistent conditions for readability and maintenance. - Trimmed a couple of end of line spaces. * Fix custom ACME server option with DNS challenge See issue #1769 and stale PR #2362. * Fix regression in --standalone parameter handling for HTTP challenge The previous commit introduced incorrect apostrophes around the --standalone parameter due to an overly unreadable expansion. To resolve this, the expansion has been replaced by merging PROVIDER_ARGUMENTS and ACME_ARGUMENTS, with the final assignment now occurring within the DNS/HTTP conditional block. * Update letsencrypt/rootfs/etc/services.d/lets-encrypt/run --------- Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 + letsencrypt/config.yaml | 2 +- .../rootfs/etc/services.d/lets-encrypt/finish | 2 +- .../rootfs/etc/services.d/lets-encrypt/run | 587 +++++++++--------- 4 files changed, 311 insertions(+), 284 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 50f38d80c21..f6c1e4a8ec8 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.4.6 + +- Fix custom ACME server for DNS challenge (fixes #1769) + ## 5.4.5 - Update certbot-dns-directadmin to 1.0.15 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 00d0c8142df..d4bae2b9e52 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.5 +version: 5.4.6 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/finish b/letsencrypt/rootfs/etc/services.d/lets-encrypt/finish index a5edea72dfa..21f86c75bc2 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/finish +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/finish @@ -1,7 +1,7 @@ #!/usr/bin/env bashio # vim: ft=bash # ============================================================================== -# Take down the S6 supervision tree when service is done +# Take down the S6 supervision tree when service is done # ============================================================================== /run/s6/basedir/bin/halt diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 7a318425b36..078f33ee6ed 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -6,8 +6,7 @@ # ============================================================================== CERT_DIR=/data/letsencrypt WORK_DIR=/data/workdir -PROVIDER_ARGUMENTS=() -ACME_CUSTOM_SERVER_ARGUMENTS=() +ACME_ARGUMENTS=() KEY_ARGUMENTS=() EAB_ARGUMENTS=() @@ -33,273 +32,309 @@ if [ "${CHALLENGE}" == "dns" ]; then PROPAGATION_SECONDS="$(bashio::config 'dns.propagation_seconds')" fi bashio::log.info "Use propagation seconds: ${PROPAGATION_SECONDS}" -else - bashio::log.info "Selected http verification" -fi - -# Azure -if [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-azure" ]; then - bashio::config.require 'dns.azure_config' - AZURE_CREDS="$(bashio::config 'dns.azure_config')" - - export AZURE_CREDS - if [ -f "/share/${AZURE_CREDS}" ]; then - cp -f "/share/${AZURE_CREDS}" "/data/azure_creds" - chmod 600 "/data/azure_creds" - else - bashio::log.error "Azure credentials file '${AZURE_CREDS}' not found in /share directory" - exit 1 - fi - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-config" "/data/azure_creds") - -# CloudFlare -elif [ "${DNS_PROVIDER}" == "dns-cloudflare" ]; then - if bashio::config.exists 'dns.cloudflare_api_token'; then - bashio::log.info "Use CloudFlare token" - echo "dns_cloudflare_api_token = $(bashio::config 'dns.cloudflare_api_token')" >> "/data/dnsapikey" - else - bashio::log.warning "Use CloudFlare global key (not recommended!)" - echo -e "dns_cloudflare_email = $(bashio::config 'dns.cloudflare_email')\n" \ - "dns_cloudflare_api_key = $(bashio::config 'dns.cloudflare_api_key')\n" >> "/data/dnsapikey" - fi - PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# ClouDNS -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-cloudns" ]; then - bashio::config.require 'dns.cloudns_auth_password' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# desec -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-desec" ]; then - bashio::config.require 'dns.desec_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# DigitalOcean -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-digitalocean" ]; then - bashio::config.require 'dns.digitalocean_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# DirectAdmin -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-directadmin" ]; then - bashio::config.require 'dns.directadmin_url' - bashio::config.require 'dns.directadmin_username' - bashio::config.require 'dns.directadmin_password' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# domainoffensive -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-domainoffensive" ]; then - bashio::config.require 'dns.domainoffensive_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") - -# Dreamhost -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-dreamhost" ]; then - bashio::config.require 'dns.dreamhost_baseurl' - bashio::config.require 'dns.dreamhost_api_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") - -# DuckDNS -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-duckdns" ]; then - bashio::config.require 'dns.duckdns_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Dynu -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-dynu" ]; then - bashio::config.require 'dns.dynu_auth_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# easyDNS -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-easydns" ]; then - bashio::config.require 'dns.easydns_key' - bashio::config.require 'dns.easydns_token' - bashio::config.require 'dns.easydns_endpoint' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Eurodns -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-eurodns" ]; then - bashio::config.require 'dns.eurodns_applicationId' - bashio::config.require 'dns.eurodns_apiKey' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Gandi -elif [ "${DNS_PROVIDER}" == "dns-gandi" ]; then - if bashio::config.exists 'dns.gandi_sharing_id'; then - bashio::log.info "Use Gandi sharing ID" - echo "dns_gandi_sharing_id = $(bashio::config 'dns.gandi_sharing_id')" >> "/data/dnsapikey" - fi - if bashio::config.exists 'dns.gandi_token'; then - bashio::log.info "Use Gandi gandi_token" - echo "dns_gandi_token = $(bashio::config 'dns.gandi_token')" >> "/data/dnsapikey" - fi - if bashio::config.exists 'dns.gandi_api_key'; then - bashio::log.info "Use Gandi gandi_api_key" - echo "dns_gandi_api_key = $(bashio::config 'dns.gandi_api_key')" >> "/data/dnsapikey" - fi - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}" ) - -# GoDaddy -elif [ "${DNS_PROVIDER}" == "dns-godaddy" ]; then - bashio::config.require 'dns.godaddy_secret' - bashio::config.require 'dns.godaddy_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Google -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-google" ]; then - bashio::config.require 'dns.google_creds' - GOOGLE_CREDS="$(bashio::config 'dns.google_creds')" - - export GOOGLE_CREDS - if [ -f "/share/${GOOGLE_CREDS}" ]; then - cp -f "/share/${GOOGLE_CREDS}" "/data/${GOOGLE_CREDS}" - chmod 600 "/data/${GOOGLE_CREDS}" - else - bashio::log.error "Google credentials file '${GOOGLE_CREDS}' not found in /share directory" - exit 1 - fi - PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/${GOOGLE_CREDS}") - -# Hurricane Electric -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-he" ]; then - bashio::config.require 'dns.he_user' - bashio::config.require 'dns.he_pass' - PROVIDER_ARGUMENTS+=("--authenticator" "dns-hurricane_electric" "--dns-hurricane_electric-credentials" "/data/dnsapikey" "--dns-hurricane_electric-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Hetzner -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-hetzner" ]; then - bashio::config.require 'dns.hetzner_api_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Infomaniak -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-infomaniak" ]; then - bashio::config.require 'dns.infomaniak_api_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# INWX -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-inwx" ]; then - bashio::config.require 'dns.inwx_username' - bashio::config.require 'dns.inwx_password' - bashio::config.require 'dns.inwx_shared_secret' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# IONOS -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-ionos" ]; then - bashio::config.require 'dns.ionos_prefix' - bashio::config.require 'dns.ionos_secret' - bashio::config.require 'dns.ionos_endpoint' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Joker -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-joker" ]; then - bashio::config.require 'dns.joker_username' - bashio::config.require 'dns.joker_password' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Loopia -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-loopia" ]; then - bashio::config.require 'dns.loopia_user' - bashio::config.require 'dns.loopia_password' - if (( PROPAGATION_SECONDS < 900 )); then - bashio::log.info "Increasing DNS propagation limit for Loopia to at least 900 seconds due to caching issues." - PROPAGATION_SECONDS=900 - fi - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# mijn.host -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-mijn-host" ]; then - bashio::config.require 'dns.mijn_host_api_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Namecheap -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-namecheap" ]; then - bashio::config.require 'dns.namecheap_username' - bashio::config.require 'dns.namecheap_api_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Netcup -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-netcup" ]; then - bashio::config.require 'dns.netcup_customer_id' - bashio::config.require 'dns.netcup_api_key' - bashio::config.require 'dns.netcup_api_password' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Njalla -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-njalla" ]; then - bashio::config.require 'dns.njalla_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# noris network -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-noris" ]; then - bashio::config.require 'dns.noris_token' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# Plesk -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-plesk" ]; then - bashio::config.require 'dns.plesk_username' - bashio::config.require 'dns.plesk_password' - bashio::config.require 'dns.plesk_api_url' - if (( PROPAGATION_SECONDS < 120 )); then - bashio::log.info "Increasing DNS propagation limit for Plesk to at least 120 seconds." - PROPAGATION_SECONDS=120 - fi - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -#Porkbun -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-porkbun" ]; then - bashio::config.require 'dns.porkbun_key' - bashio::config.require 'dns.porkbun_secret' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# rfc2136 -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-rfc2136" ]; then - PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# route53 - AWS -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-route53" ]; then - bashio::config.require 'dns.aws_access_key_id' - bashio::config.require 'dns.aws_secret_access_key' - - AWS_ACCESS_KEY_ID="$(bashio::config 'dns.aws_access_key_id')" - AWS_SECRET_ACCESS_KEY="$(bashio::config 'dns.aws_secret_access_key')" - - export AWS_ACCESS_KEY_ID - export AWS_SECRET_ACCESS_KEY - PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}") - -# Simply -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-simply" ]; then - bashio::config.require 'dns.simply_account_name' - bashio::config.require 'dns.simply_api_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# TransIP -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-transip" ]; then - bashio::config.require 'dns.transip_username' - bashio::config.require 'dns.transip_api_key' - if (( PROPAGATION_SECONDS < 240 )); then - bashio::log.info "Increasing DNS propagation time for TransIP to at least 240 seconds." - PROPAGATION_SECONDS=240 - fi - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -# WebSupport -elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-websupport" ]; then - bashio::config.require 'dns.websupport_identifier' - bashio::config.require 'dns.websupport_secret_key' - PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") - -#All others + case "${DNS_PROVIDER}" in + # Azure + 'dns-azure') + bashio::config.require 'dns.azure_config' + AZURE_CREDS="$(bashio::config 'dns.azure_config')" + + export AZURE_CREDS + if [ -f "/share/${AZURE_CREDS}" ]; then + cp -f "/share/${AZURE_CREDS}" "/data/azure_creds" + chmod 600 "/data/azure_creds" + else + bashio::log.error "Azure credentials file '${AZURE_CREDS}' not found in /share directory" + exit 1 + fi + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-config" "/data/azure_creds") + ;; + + # CloudFlare + 'dns-cloudflare') + if bashio::config.exists 'dns.cloudflare_api_token'; then + bashio::log.info "Use CloudFlare token" + echo "dns_cloudflare_api_token = $(bashio::config 'dns.cloudflare_api_token')" >> "/data/dnsapikey" + else + bashio::log.warning "Use CloudFlare global key (not recommended!)" + echo -e "dns_cloudflare_email = $(bashio::config 'dns.cloudflare_email')\n" \ + "dns_cloudflare_api_key = $(bashio::config 'dns.cloudflare_api_key')\n" >> "/data/dnsapikey" + fi + ACME_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # ClouDNS + 'dns-cloudns') + bashio::config.require 'dns.cloudns_auth_password' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # desec + 'dns-desec') + bashio::config.require 'dns.desec_token' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # DigitalOcean + 'dns-digitalocean') + bashio::config.require 'dns.digitalocean_token' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # DirectAdmin + 'dns-directadmin') + bashio::config.require 'dns.directadmin_url' + bashio::config.require 'dns.directadmin_username' + bashio::config.require 'dns.directadmin_password' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # domainoffensive + 'dns-domainoffensive') + bashio::config.require 'dns.domainoffensive_token' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") + ;; + + # Dreamhost + 'dns-dreamhost') + bashio::config.require 'dns.dreamhost_baseurl' + bashio::config.require 'dns.dreamhost_api_key' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") + ;; + + # DuckDNS + 'dns-duckdns') + bashio::config.require 'dns.duckdns_token' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Dynu + 'dns-dynu') + bashio::config.require 'dns.dynu_auth_token' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # easyDNS + 'dns-easydns') + bashio::config.require 'dns.easydns_key' + bashio::config.require 'dns.easydns_token' + bashio::config.require 'dns.easydns_endpoint' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Eurodns + 'dns-eurodns') + bashio::config.require 'dns.eurodns_applicationId' + bashio::config.require 'dns.eurodns_apiKey' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Gandi + 'dns-gandi') + if bashio::config.exists 'dns.gandi_sharing_id'; then + bashio::log.info "Use Gandi sharing ID" + echo "dns_gandi_sharing_id = $(bashio::config 'dns.gandi_sharing_id')" >> "/data/dnsapikey" + fi + if bashio::config.exists 'dns.gandi_token'; then + bashio::log.info "Use Gandi gandi_token" + echo "dns_gandi_token = $(bashio::config 'dns.gandi_token')" >> "/data/dnsapikey" + fi + if bashio::config.exists 'dns.gandi_api_key'; then + bashio::log.info "Use Gandi gandi_api_key" + echo "dns_gandi_api_key = $(bashio::config 'dns.gandi_api_key')" >> "/data/dnsapikey" + fi + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}" ) + ;; + + # GoDaddy + 'dns-godaddy') + bashio::config.require 'dns.godaddy_secret' + bashio::config.require 'dns.godaddy_key' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Google + 'dns-google') + bashio::config.require 'dns.google_creds' + GOOGLE_CREDS="$(bashio::config 'dns.google_creds')" + export GOOGLE_CREDS + if [ -f "/share/${GOOGLE_CREDS}" ]; then + cp -f "/share/${GOOGLE_CREDS}" "/data/${GOOGLE_CREDS}" + chmod 600 "/data/${GOOGLE_CREDS}" + else + bashio::log.error "Google credentials file '${GOOGLE_CREDS}' not found in /share directory" + exit 1 + fi + ACME_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/${GOOGLE_CREDS}") + ;; + + # Hurricane Electric + 'dns-he') + bashio::config.require 'dns.he_user' + bashio::config.require 'dns.he_pass' + ACME_ARGUMENTS+=("--authenticator" "dns-hurricane_electric" "--dns-hurricane_electric-credentials" "/data/dnsapikey" "--dns-hurricane_electric-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Hetzner + 'dns-hetzner') + bashio::config.require 'dns.hetzner_api_token' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Infomaniak + 'dns-infomaniak') + bashio::config.require 'dns.infomaniak_api_token' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # INWX + 'dns-inwx') + bashio::config.require 'dns.inwx_username' + bashio::config.require 'dns.inwx_password' + bashio::config.require 'dns.inwx_shared_secret' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # IONOS + 'dns-ionos') + bashio::config.require 'dns.ionos_prefix' + bashio::config.require 'dns.ionos_secret' + bashio::config.require 'dns.ionos_endpoint' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Joker + 'dns-joker') + bashio::config.require 'dns.joker_username' + bashio::config.require 'dns.joker_password' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Loopia + 'dns-loopia') + bashio::config.require 'dns.loopia_user' + bashio::config.require 'dns.loopia_password' + if (( PROPAGATION_SECONDS < 900 )); then + bashio::log.info "Increasing DNS propagation limit for Loopia to at least 900 seconds due to caching issues." + PROPAGATION_SECONDS=900 + fi + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # mijn.host + 'dns-mijn-host') + bashio::config.require 'dns.mijn_host_api_key' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Namecheap + 'dns-namecheap') + bashio::config.require 'dns.namecheap_username' + bashio::config.require 'dns.namecheap_api_key' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Netcup + 'dns-netcup') + bashio::config.require 'dns.netcup_customer_id' + bashio::config.require 'dns.netcup_api_key' + bashio::config.require 'dns.netcup_api_password' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Njalla + 'dns-njalla') + bashio::config.require 'dns.njalla_token' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # noris network + 'dns-noris') + bashio::config.require 'dns.noris_token' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # Plesk + 'dns-plesk') + bashio::config.require 'dns.plesk_username' + bashio::config.require 'dns.plesk_password' + bashio::config.require 'dns.plesk_api_url' + if (( PROPAGATION_SECONDS < 120 )); then + bashio::log.info "Increasing DNS propagation limit for Plesk to at least 120 seconds." + PROPAGATION_SECONDS=120 + fi + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + #Porkbun + 'dns-porkbun') + bashio::config.require 'dns.porkbun_key' + bashio::config.require 'dns.porkbun_secret' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # rfc2136 + 'dns-rfc2136') + ACME_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # route53 - AWS + 'dns-route53') + bashio::config.require 'dns.aws_access_key_id' + bashio::config.require 'dns.aws_secret_access_key' + AWS_ACCESS_KEY_ID="$(bashio::config 'dns.aws_access_key_id')" + AWS_SECRET_ACCESS_KEY="$(bashio::config 'dns.aws_secret_access_key')" + export AWS_ACCESS_KEY_ID + export AWS_SECRET_ACCESS_KEY + ACME_ARGUMENTS+=("--${DNS_PROVIDER}") + ;; + + # Simply + 'dns-simply') + bashio::config.require 'dns.simply_account_name' + bashio::config.require 'dns.simply_api_key' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # TransIP + 'dns-transip') + bashio::config.require 'dns.transip_username' + bashio::config.require 'dns.transip_api_key' + if (( PROPAGATION_SECONDS < 240 )); then + bashio::log.info "Increasing DNS propagation time for TransIP to at least 240 seconds." + PROPAGATION_SECONDS=240 + fi + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + # WebSupport + 'dns-websupport') + bashio::config.require 'dns.websupport_identifier' + bashio::config.require 'dns.websupport_secret_key' + ACME_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + ;; + + #All other DNS providers + *) + ACME_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") + ;; + esac else - PROVIDER_ARGUMENTS+=("--${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey") + bashio::log.info "Selected HTTP verification" + ACME_ARGUMENTS+=("--standalone") fi if bashio::config.has_value 'acme_server' ; then - ACME_CUSTOM_SERVER_ARGUMENTS+=("--server" "${ACME_SERVER}") + ACME_ARGUMENTS+=("--server" "${ACME_SERVER}") if bashio::config.has_value 'acme_root_ca_cert'; then - echo "${ACME_ROOT_CA}" > /tmp/root-ca-cert.crt - # Certbot will automatically open the filepath contained in REQUESTS_CA_BUNDLE for extra CA cert - export REQUESTS_CA_BUNDLE=/tmp/root-ca-cert.crt + echo "${ACME_ROOT_CA}" > /tmp/root-ca-cert.crt + # Certbot will automatically open the filepath contained in REQUESTS_CA_BUNDLE for extra CA cert + export REQUESTS_CA_BUNDLE=/tmp/root-ca-cert.crt fi +else + # Relevant only for default Let's Encrypt servers. + ACME_ARGUMENTS+=(--preferred-chain 'ISRG Root X1') fi # Gather all domains into a plaintext file @@ -364,27 +399,15 @@ if [ "${VERBOSE}" = "true" ]; then fi # Generate a new certificate if necessary or expand a previous certificate if domains has changed -if [ "$CHALLENGE" == "dns" ]; then - certbot certonly --non-interactive --keep-until-expiring --expand \ - --email "$EMAIL" --agree-tos \ - "${KEY_ARGUMENTS[@]}" \ - "${ADDITIONAL_ARGS[@]}" \ - --cert-name "${DOMAIN_ARR[1]}" "${DOMAIN_ARR[@]}" \ - --config-dir "$CERT_DIR" --work-dir "$WORK_DIR" \ - --preferred-challenges "$CHALLENGE" "${PROVIDER_ARGUMENTS[@]}" \ - --preferred-chain "ISRG Root X1" \ - "${EAB_ARGUMENTS[@]}" -else - certbot certonly --non-interactive --keep-until-expiring --expand \ - --email "$EMAIL" --agree-tos \ - "${KEY_ARGUMENTS[@]}" \ - "${ADDITIONAL_ARGS[@]}" \ - --cert-name "${DOMAIN_ARR[1]}" "${DOMAIN_ARR[@]}" \ - --config-dir "$CERT_DIR" --work-dir "$WORK_DIR" \ - --preferred-challenges "$CHALLENGE" "${ACME_CUSTOM_SERVER_ARGUMENTS[@]}" --standalone \ - --preferred-chain "ISRG Root X1" \ - "${EAB_ARGUMENTS[@]}" -fi +certbot certonly --non-interactive --keep-until-expiring --expand \ + --email "$EMAIL" --agree-tos \ + "${KEY_ARGUMENTS[@]}" \ + "${ADDITIONAL_ARGS[@]}" \ + --cert-name "${DOMAIN_ARR[1]}" "${DOMAIN_ARR[@]}" \ + --config-dir "$CERT_DIR" --work-dir "$WORK_DIR" \ + --preferred-challenges "$CHALLENGE" \ + "${ACME_ARGUMENTS[@]}" \ + "${EAB_ARGUMENTS[@]}" # Get the last modified cert directory and copy the cert and private key to store # shellcheck disable=SC2012 From 61dbc5dfd8be9b1bb629042f3df22af1be01dcaa Mon Sep 17 00:00:00 2001 From: Benoit <32198131+83noit@users.noreply.github.com> Date: Wed, 23 Apr 2025 21:29:36 +0100 Subject: [PATCH 182/346] letsencrypt: Correct Root CA handling for custom ACME servers (#3996) * Updated CHANGELOG and bumped version. * Ignore --dry-run and --test-cert when --server is defined * Fixed PEM format for Root CA certificate --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 4 ++- letsencrypt/config.yaml | 2 +- .../rootfs/etc/services.d/lets-encrypt/run | 27 ++++++++++--------- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index f6c1e4a8ec8..62ddc75ec64 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.4.7 + +- Fix root certificate format when using custom ACME server + ## 5.4.6 - Fix custom ACME server for DNS challenge (fixes #1769) diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 56103d8025a..90aa0e9ed76 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -235,7 +235,7 @@ if a renewal is due, and will request it if needed.
Changing the ACME Server -By default, The addon uses Let’s Encrypt’s default server at . You can instruct the addon to use a different ACME server by providing the field `acme_server` with the URL of the server’s ACME directory: +By default, the addon uses Let’s Encrypt’s default server at . You can instruct the addon to use a different ACME server by providing the field `acme_server` with the URL of the server’s ACME directory: ```yaml acme_server: 'https://my.custom-acme-server.com' @@ -251,6 +251,8 @@ If your custom ACME server uses a certificate signed by an untrusted certificate -----END CERTIFICATE----- ``` +When you specify a custom ACME server, the *Dry Run* and *Issue test certificates* options, which are intended [for use with the Let's Encrypt staging server](https://eff-certbot.readthedocs.io/en/stable/using.html#changing-the-acme-server), are automatically disregarded. +
diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index d4bae2b9e52..668d4d69ed9 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.6 +version: 5.4.7 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 078f33ee6ed..3f4aee94493 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -9,6 +9,7 @@ WORK_DIR=/data/workdir ACME_ARGUMENTS=() KEY_ARGUMENTS=() EAB_ARGUMENTS=() +ADDITIONAL_ARGS=() EMAIL=$(bashio::config 'email') DOMAINS=$(bashio::config 'domains') @@ -328,13 +329,25 @@ if bashio::config.has_value 'acme_server' ; then ACME_ARGUMENTS+=("--server" "${ACME_SERVER}") if bashio::config.has_value 'acme_root_ca_cert'; then - echo "${ACME_ROOT_CA}" > /tmp/root-ca-cert.crt + # The value comes as a continuous string, but lines breaks around PEM + # headers and footers are required for the certificates to be parsed. + echo "${ACME_ROOT_CA}" | sed 's/----- /-----\n/g' | sed 's/ -----/\n-----/g' > /tmp/root-ca-cert.crt # Certbot will automatically open the filepath contained in REQUESTS_CA_BUNDLE for extra CA cert export REQUESTS_CA_BUNDLE=/tmp/root-ca-cert.crt fi else # Relevant only for default Let's Encrypt servers. ACME_ARGUMENTS+=(--preferred-chain 'ISRG Root X1') + if [ "${DRY_RUN}" = "true" ]; then + ADDITIONAL_ARGS+=("--dry-run") + fi + if [ "${TEST_CERT}" = "true" ]; then + ADDITIONAL_ARGS+=("--test-cert") + fi +fi + +if [ "${VERBOSE}" = "true" ]; then + ADDITIONAL_ARGS+=("-vvv") fi # Gather all domains into a plaintext file @@ -386,18 +399,6 @@ if bashio::config.has_value 'eab_kid' ; then EAB_ARGUMENTS+=("--eab-kid" "${EAB_KID}" "--eab-hmac-key" "${EAB_HMAC_KEY}") fi -# Define additional arguments based on configuration -ADDITIONAL_ARGS=() -if [ "${DRY_RUN}" = "true" ]; then - ADDITIONAL_ARGS+=("--dry-run") -fi -if [ "${TEST_CERT}" = "true" ]; then - ADDITIONAL_ARGS+=("--test-cert") -fi -if [ "${VERBOSE}" = "true" ]; then - ADDITIONAL_ARGS+=("-vvv") -fi - # Generate a new certificate if necessary or expand a previous certificate if domains has changed certbot certonly --non-interactive --keep-until-expiring --expand \ --email "$EMAIL" --agree-tos \ From 522e832201ca23231fea61296a905b48046de521 Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Thu, 24 Apr 2025 15:21:00 +0200 Subject: [PATCH 183/346] Bump Z-Wave JS to 15.1.0 (#3997) --- zwave_js/CHANGELOG.md | 19 +++++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index daa681c4bb3..3f5553ab780 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## 0.12.0 + +### Features + +- Z-Wave JS: Add support for proprietary controller functionality + +### Bug fixes + +- Z-Wave JS: Fixed two issues that could cause commands to fail with "transmit queue full" errors + +### Config file changes + +- Add ZWA-2 + +### Detailed changelogs + +- [Z-Wave JS 15.1.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.1.0) +- [Z-Wave JS 15.0.6](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.0.6) + ## 0.11.0 ### Breaking changes diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 6afe39bddb9..a0431648cd6 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.0.0 - ZWAVEJS_VERSION: 15.0.5 + ZWAVEJS_VERSION: 15.1.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 47094f36c9b..1148699bfd0 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.11.0 +version: 0.12.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From a6559ba5cb16193f9f1b6d33981fd0e26285f2dd Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Sat, 26 Apr 2025 23:40:09 +0200 Subject: [PATCH 184/346] Bump Z-Wave JS to 15.1.3 (#4004) --- zwave_js/CHANGELOG.md | 17 +++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 3f5553ab780..86200f2d926 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## 0.12.1 + +### Bug fixes + +- Z-Wave JS: Fixed an issue where some controllers could lock up when retrying a command to an unresponsive node +- Z-Wave JS: Several fixes for legacy Multi Channel devices + +### Config file changes + +- Add fingerprint for FortrezZ LLC SSA1/SSA2 + +### Detailed changelogs + +- [Z-Wave JS 15.1.3](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.1.3) +- [Z-Wave JS 15.1.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.1.2) +- [Z-Wave JS 15.1.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.1.1) + ## 0.12.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index a0431648cd6..a78a7e33fdb 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.0.0 - ZWAVEJS_VERSION: 15.1.0 + ZWAVEJS_VERSION: 15.1.3 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 1148699bfd0..2098277507b 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.12.0 +version: 0.12.1 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 988575f87295c20e41c50b60f9d9821e0e3534aa Mon Sep 17 00:00:00 2001 From: Benoit <32198131+83noit@users.noreply.github.com> Date: Mon, 28 Apr 2025 16:25:27 +0100 Subject: [PATCH 185/346] Further improve Root CA handling for custom ACME servers (#3999) * Updated CHANGELOG and bumped version. * Tweaked wording, order and default values of addon options * Update the container's trust store rather than relying on REQUESTS_CA_BUNDLE Running Certbot's with REQUESTS_CA_BUNDLE overrides the default trusted CA list for the Requests Python library. While it enables trust for your custom ACME server by using only your specified root CA, it simultaneously discards all system-trusted certificates. Consequently, other SSL connections, such as those required for DNS challenges, will fail due to untrusted certificates. --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/DOCS.md | 8 +++---- letsencrypt/config.yaml | 23 ++++++++----------- .../rootfs/etc/services.d/lets-encrypt/run | 17 +++++++------- letsencrypt/translations/en.yaml | 23 ++++++++++--------- 5 files changed, 39 insertions(+), 36 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 62ddc75ec64..7b961ac49ea 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.4.8 + +- Further improve root certificate handling when using a custom ACME server + ## 5.4.7 - Fix root certificate format when using custom ACME server diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 90aa0e9ed76..0d83be1a977 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -235,7 +235,7 @@ if a renewal is due, and will request it if needed.
Changing the ACME Server -By default, the addon uses Let’s Encrypt’s default server at . You can instruct the addon to use a different ACME server by providing the field `acme_server` with the URL of the server’s ACME directory: +By default, the addon uses [Let’s Encrypt’s default servers](https://letsencrypt.org/getting-started/). You can instruct the addon to use a different ACME server by providing the field `acme_server` with the URL of the server’s ACME directory: ```yaml acme_server: 'https://my.custom-acme-server.com' @@ -251,7 +251,7 @@ If your custom ACME server uses a certificate signed by an untrusted certificate -----END CERTIFICATE----- ``` -When you specify a custom ACME server, the *Dry Run* and *Issue test certificates* options, which are intended [for use with the Let's Encrypt staging server](https://eff-certbot.readthedocs.io/en/stable/using.html#changing-the-acme-server), are automatically disregarded. +When you specify a custom ACME server, the *Dry Run* and *Issue test certificates* options, which are intended for use with the [Let's Encrypt staging server](https://letsencrypt.org/docs/staging-environment/), are automatically disregarded.
@@ -270,7 +270,7 @@ When you specify a custom ACME server, the *Dry Run* and *Issue test certificate
Selecting the ECDSA Elliptic Curve - + You can choose from the following ECDSA elliptic curves: `secp256r1`, `secp384r1` ```yaml @@ -467,7 +467,7 @@ API Users have full account access. It is recommended to create an API Sub-user Navigate to "Token Management" and create a new one. It's good practice to restrict the token permissions as much as possible, e.g. by setting the maximum unused period to four months. This way, the token will expire if it is not continuously used to renew your certificate. - + ```yaml email: your.email@example.com domains: diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 668d4d69ed9..d33090dbfc9 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.7 +version: 5.4.8 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt @@ -18,9 +18,6 @@ map: - ssl:rw - share options: - domains: - - null - email: null keyfile: privkey.pem certfile: fullchain.pem challenge: http @@ -34,15 +31,6 @@ schema: keyfile: str certfile: str challenge: list(dns|http) - acme_root_ca_cert: str? - acme_server: url? - eab_kid: str? - eab_hmac_key: str? - key_type: list(ecdsa|rsa)? - elliptic_curve: list(secp256r1|secp384r1)? - dry_run: bool? - test_cert: bool? - verbose: bool? dns: # Developer note: please add a new plugin alphabetically into all lists aws_access_key_id: str? @@ -177,4 +165,13 @@ schema: transip_username: str? websupport_identifier: str? websupport_secret_key: str? + key_type: list(ecdsa|rsa)? + elliptic_curve: list(secp256r1|secp384r1)? + acme_server: url? + acme_root_ca_cert: str? + verbose: bool? + dry_run: bool? + test_cert: bool? + eab_kid: str? + eab_hmac_key: str? startup: once diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 3f4aee94493..8aacaf073cf 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -18,7 +18,7 @@ CERTFILE=$(bashio::config 'certfile') CHALLENGE=$(bashio::config 'challenge') DNS_PROVIDER=$(bashio::config 'dns.provider') ACME_SERVER=$(bashio::config 'acme_server') -ACME_ROOT_CA=$(bashio::config 'acme_root_ca_cert') +ACME_ROOT_CA_CERT=$(bashio::config 'acme_root_ca_cert') EAB_KID=$(bashio::config 'eab_kid') EAB_HMAC_KEY=$(bashio::config 'eab_hmac_key') DRY_RUN=$(bashio::config 'dry_run') @@ -325,15 +325,16 @@ else ACME_ARGUMENTS+=("--standalone") fi -if bashio::config.has_value 'acme_server' ; then +if bashio::config.has_value 'acme_server'; then ACME_ARGUMENTS+=("--server" "${ACME_SERVER}") - if bashio::config.has_value 'acme_root_ca_cert'; then - # The value comes as a continuous string, but lines breaks around PEM - # headers and footers are required for the certificates to be parsed. - echo "${ACME_ROOT_CA}" | sed 's/----- /-----\n/g' | sed 's/ -----/\n-----/g' > /tmp/root-ca-cert.crt - # Certbot will automatically open the filepath contained in REQUESTS_CA_BUNDLE for extra CA cert - export REQUESTS_CA_BUNDLE=/tmp/root-ca-cert.crt + bashio::log.info "Updating the trust store by adding the provided custom root certificate" + # Address potential header and footer errors from YAML mutiline configuration. + # Check the certificate and import it in the local trust store. + echo "${ACME_ROOT_CA_CERT}" \ + | sed 's/----- /-----\n/g' | sed 's/ -----/\n-----/g' \ + | openssl x509 > /usr/local/share/ca-certificates/acme_root_ca.crt \ + && update-ca-certificates --fresh fi else # Relevant only for default Let's Encrypt servers. diff --git a/letsencrypt/translations/en.yaml b/letsencrypt/translations/en.yaml index c4b26813ea3..81812c43e83 100644 --- a/letsencrypt/translations/en.yaml +++ b/letsencrypt/translations/en.yaml @@ -17,18 +17,17 @@ configuration: challenge: name: Challenge description: The type of challenge used to validate the domain. + acme_server: + name: Custom ACME Server + description: >- + By default, this add-on uses Let's Encrypt's servers. However, you can + specify a different ACME server. acme_root_ca_cert: name: ACME Root CA Certificate description: >- - If your custom ACME server uses a certificate signed by an untrusted - certificate authority (CA), you can add the root certificate to the trust - store by setting its content. - acme_server: - name: ACME Server - description: >- - By default, The addon uses Let's Encrypt's default server at - https://acme-v02.api.letsencrypt.org/. You can instruct the addon to use a - different ACME server. + Only relevant with a custom ACME server using a certificate signed by an + untrusted certificate authority (CA) that requires addition to the trust + store. dns: name: DNS description: DNS Provider configuration @@ -45,11 +44,13 @@ configuration: dry_run: name: Dry Run description: >- - Do a certbot dry-run for requesting the certificates. + Do a certbot dry-run for requesting the certificates from Let's Encrypt. + This is ignored if a custom server is used. test_cert: name: Issue test certificates description: >- - Obtain a test certificate from a staging server. + Obtain a test certificate from Let's Encrypt staging server. + This is ignored if a custom server is used. verbose: name: Verbose Mode description: >- From 9a2a880b1826b1caabf69154e57f5e8f68b06ac4 Mon Sep 17 00:00:00 2001 From: Michael Paulus <50505558+m-paulus@users.noreply.github.com> Date: Tue, 29 Apr 2025 05:57:34 -0400 Subject: [PATCH 186/346] Samba: Make the vfs objects entry in smb.conf optional (#3970) * Make the vfs objects entry in smb.conf optional with a configuration option. This entry causes problems with file systems that do not support xattr such as exFAT * Samba: fix typos in apple compatibility configurations * Samba: Fixed typo that was missed in config schema * Apply suggestions from code review Co-authored-by: Stefan Agner * Update samba/translations/en.yaml * Update samba/CHANGELOG.md Co-authored-by: Stefan Agner --------- Co-authored-by: Stefan Agner --- samba/CHANGELOG.md | 4 ++++ samba/DOCS.md | 7 +++++++ samba/config.yaml | 4 +++- samba/rootfs/usr/share/tempio/smb.gtpl | 4 +++- samba/translations/en.yaml | 6 ++++++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/samba/CHANGELOG.md b/samba/CHANGELOG.md index ace5335f0f1..258aa014829 100644 --- a/samba/CHANGELOG.md +++ b/samba/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 12.5.1 + +- Add configurations option to disable Apple devices interoperability. Disabling this setting might be required for file systems that do not support extended attributes such as exFAT. + ## 12.5.0 - Add the ability to enable and disable trying to become a local master browser on a subnet diff --git a/samba/DOCS.md b/samba/DOCS.md index 99ec6e1423c..b8c7c2514e9 100644 --- a/samba/DOCS.md +++ b/samba/DOCS.md @@ -100,6 +100,13 @@ when you absolutely need it and understand the possible consequences. Defaults to `false`. +### Option: `apple_compatibility_mode` + +Enable Samba configurations to improve interoperability with Apple devices. +This can cause issues with file systems that do not support xattr such as exFAT. + +Defaults to `true`. + ## Support Got questions? diff --git a/samba/config.yaml b/samba/config.yaml index b682678cdbc..c4993389236 100644 --- a/samba/config.yaml +++ b/samba/config.yaml @@ -1,5 +1,5 @@ --- -version: 12.5.0 +version: 12.5.1 slug: samba name: Samba share description: Expose Home Assistant folders with SMB/CIFS @@ -37,6 +37,7 @@ options: - share - ssl compatibility_mode: false + apple_compatibility_mode: true veto_files: - ._* - .DS_Store @@ -58,6 +59,7 @@ schema: enabled_shares: - "match(^(?i:(addons|addon_configs|backup|config|media|share|ssl))$)" compatibility_mode: bool + apple_compatibility_mode: bool veto_files: - str allow_hosts: diff --git a/samba/rootfs/usr/share/tempio/smb.gtpl b/samba/rootfs/usr/share/tempio/smb.gtpl index d923890ccb3..82b67f493a8 100644 --- a/samba/rootfs/usr/share/tempio/smb.gtpl +++ b/samba/rootfs/usr/share/tempio/smb.gtpl @@ -26,8 +26,10 @@ mangled names = no dos charset = CP850 unix charset = UTF-8 - + + {{ if .apple_compatibility_mode }} vfs objects = catia fruit streams_xattr + {{ end }} {{ if (has "config" .enabled_shares) }} [config] diff --git a/samba/translations/en.yaml b/samba/translations/en.yaml index 1013cf85f07..8ccd46bab1e 100644 --- a/samba/translations/en.yaml +++ b/samba/translations/en.yaml @@ -27,6 +27,12 @@ configuration: name: Enable Compatibility Mode description: >- Enable this to use old legacy Samba protocols on the Samba add-on. + apple_compatibility_mode: + name: Enable Compatibility Settings for Apple Devices + description: >- + Enable Samba configurations to improve interoperability with Apple + devices. May cause issues with file systems that do not support xattr + such as exFAT. veto_files: name: Veto Files description: List of files that are neither visible nor accessible. From a657d9b1a04681b2bef177df159e1bfb1e86f3c9 Mon Sep 17 00:00:00 2001 From: Benoit <32198131+83noit@users.noreply.github.com> Date: Thu, 1 May 2025 18:44:34 +0100 Subject: [PATCH 187/346] Fix trust store when using a custom ACME server (#4006) Originally, the code replaced Requests' entire trust store with only the custom ACME server's root certificate. This broke Certbot's ability to establish trusted SSL connections with other servers, such as DNS providers for challenges. A prior attempt added the custom certificate to the local system trust store, but this isn't sufficient because Requests uses its own internal trust store. The final solution involves overriding Requests' trust store to use a combined store containing both the default trusted certificates and the custom ACME server's root certificate. --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/config.yaml | 2 +- letsencrypt/rootfs/etc/services.d/lets-encrypt/run | 5 ++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 7b961ac49ea..71ee9d68a19 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.4.9 + +- Fix pending issue in 5.4.8 with trust store when using a custom ACME server + ## 5.4.8 - Further improve root certificate handling when using a custom ACME server diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index d33090dbfc9..5414f546429 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.4.8 +version: 5.4.9 breaking_versions: [5.3.0] slug: letsencrypt name: Let's Encrypt diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 8aacaf073cf..b4ba9c3eac0 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -331,10 +331,13 @@ if bashio::config.has_value 'acme_server'; then bashio::log.info "Updating the trust store by adding the provided custom root certificate" # Address potential header and footer errors from YAML mutiline configuration. # Check the certificate and import it in the local trust store. + # Certbot relies on the Requests Python library, which uses a built-in + # trust store. This is replaced by the updated local trust store. echo "${ACME_ROOT_CA_CERT}" \ | sed 's/----- /-----\n/g' | sed 's/ -----/\n-----/g' \ | openssl x509 > /usr/local/share/ca-certificates/acme_root_ca.crt \ - && update-ca-certificates --fresh + && update-ca-certificates --fresh \ + && export REQUESTS_CA_BUNDLE=/etc/ssl/cert.pem fi else # Relevant only for default Let's Encrypt servers. From fb44a2ab02c4beba85b9db1715aab0ce6bf47744 Mon Sep 17 00:00:00 2001 From: DT-art1 <81360462+DT-art1@users.noreply.github.com> Date: Thu, 1 May 2025 23:21:41 +0200 Subject: [PATCH 188/346] whisper: Improve support for local custom Whisper models (#3988) * Added configuration mapping to access local models. - Updated documentation about `custom_model` usage. * Fixed Nitpick comments. * Bumped version to 2.5.0. * Exclude local models backup. * Fixed Nitpick comments. * Separate directory for local models. --- whisper/CHANGELOG.md | 5 +++++ whisper/DOCS.md | 7 ++++++- whisper/config.yaml | 4 +++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index 46636f52029..632ccc60b0c 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 2.5.0 + +- Added configuration mapping to access local models. +- Updated documentation about `custom_model` usage. + ## 2.4.0 - Add "auto" for model and beam size (0) to select values based on CPU diff --git a/whisper/DOCS.md b/whisper/DOCS.md index 6079448f363..24fa15911b6 100644 --- a/whisper/DOCS.md +++ b/whisper/DOCS.md @@ -67,6 +67,10 @@ Available models: ### Option: `custom_model` Path to a converted model directory, or a CTranslate2-converted Whisper model ID from the HuggingFace Hub like "Systran/faster-distil-whisper-small.en". +To use a local custom Whisper model, first create a `models` subdirectory in the add-on's configuration directory if it does not already exist. Then copy your model directory into: +`/addon_configs/core_whisper/models/`. +Then, set the `custom_model` path to: +`/config/models/`. For a local model, the path must start with `/config/models/`, as this is how the add-on accesses your Home Assistant configuration directory through the container's mounted volume. ### Option: `beam_size` @@ -82,7 +86,8 @@ See [this discussion](https://github.com/openai/whisper/discussions/963) for an ## Backups -Whisper model files can be quite large, so they are automatically excluded from backups. The models will be re-downloaded when the backup is restored. +Whisper model files can be large, so they are automatically excluded from backups and re-downloaded on restore for remote models. +After restoring a backup with a local custom Whisper model, manually copy your model directory again. ## Support diff --git a/whisper/config.yaml b/whisper/config.yaml index 788b0e03d45..790b37084ed 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.4.0 +version: 2.5.0 slug: whisper name: Whisper description: Speech-to-text with Whisper @@ -12,6 +12,8 @@ discovery: - wyoming backup_exclude: - "models*" +map: + - addon_config:rw options: model: auto language: en From 302a2bf0a0da370b98dde4a586e779defa6eb1f9 Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Mon, 5 May 2025 14:58:19 +0200 Subject: [PATCH 189/346] Bump Z-Wave JS to 15.3.0 and Z-Wave JS Server to 3.0.1 (#4008) --- zwave_js/CHANGELOG.md | 19 +++++++++++++++++++ zwave_js/build.yaml | 4 ++-- zwave_js/config.yaml | 2 +- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 86200f2d926..6864ca64777 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## 0.13.0 + +### Bug fixes + +- Z-Wave JS: Fixed an issue where incorrect device info for the controller was exposed until restarting after migration from different hardware +- Z-Wave JS Server: Support omitting optional data while restoring NVM backups + +### Config file changes + +- Add Ness Smart Plug ZA-216001 +- Add fingerprint for FortrezZ LLC SSA1/SSA2 + +### Detailed changelogs + +- [Z-Wave JS Server 3.0.1](https://github.com/zwave-js/zwave-js-server/releases/tag/3.0.1) +- [Z-Wave JS 15.3.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.3.0) +- [Z-Wave JS 15.2.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.2.1) +- [Z-Wave JS 15.2.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.2.0) + ## 0.12.1 ### Bug fixes diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index a78a7e33fdb..d11a0a1411c 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 3.0.0 - ZWAVEJS_VERSION: 15.1.3 + ZWAVEJS_SERVER_VERSION: 3.0.1 + ZWAVEJS_VERSION: 15.3.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 2098277507b..db545c0b8da 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.12.1 +version: 0.13.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 5a781e7a689a73bda6c8c1731ba546aa8f8f2c3b Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Thu, 8 May 2025 17:48:17 +0200 Subject: [PATCH 190/346] Bump Z-Wave JS to 15.3.2 and Z-Wave JS Server to 3.0.2 (#4012) --- zwave_js/CHANGELOG.md | 18 ++++++++++++++++++ zwave_js/build.yaml | 4 ++-- zwave_js/config.yaml | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 6864ca64777..df61f9a23cf 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## 0.13.1 + +### Bug fixes + +- Z-Wave JS Server: Fix to reuse the driver's ConfigManager instance instead of creating a new one +- Z-Wave JS: Fixed a regression from v15 where command delivery verification wouldn't work on S2-capable devices without Supervision +- Z-Wave JS: Fixed an issue where some CCs could be missing when Z-Wave JS was bundled + +### Config file changes + +- Disallow manual entry for param 3 on Zooz ZSE70 + +### Detailed changelogs + +- [Z-Wave JS Server 3.0.2](https://github.com/zwave-js/zwave-js-server/releases/tag/3.0.2) +- [Z-Wave JS 15.3.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.3.2) +- [Z-Wave JS 15.3.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.3.1) + ## 0.13.0 ### Bug fixes diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index d11a0a1411c..7c52597ebfa 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 3.0.1 - ZWAVEJS_VERSION: 15.3.0 + ZWAVEJS_SERVER_VERSION: 3.0.2 + ZWAVEJS_VERSION: 15.3.2 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index db545c0b8da..59a9252190e 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.13.0 +version: 0.13.1 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 32a4a2eb06cf05cecdcfa35fcc4a712589241f53 Mon Sep 17 00:00:00 2001 From: mattreim <80219712+mattreim@users.noreply.github.com> Date: Fri, 9 May 2025 11:13:57 +0200 Subject: [PATCH 191/346] Bump deCONZ to v2.30.2 (#4013) --- deconz/CHANGELOG.md | 4 ++++ deconz/build.yaml | 2 +- deconz/config.yaml | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index c4ec70e272a..8c3549c5ab0 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.2.0 + +- Bump deCONZ to 2.30.2 [[CHANGELOG](https://github.com/dresden-elektronik/deconz-rest-plugin/releases/tag/v2.30.2)] + ## 8.1.0 - Bump deCONZ to 2.29.5 [[CHANGELOG](https://github.com/dresden-elektronik/deconz-rest-plugin/releases/tag/v2.29.5)] diff --git a/deconz/build.yaml b/deconz/build.yaml index 51262bfd980..c9e53f138db 100644 --- a/deconz/build.yaml +++ b/deconz/build.yaml @@ -7,4 +7,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - DECONZ_VERSION: 2.29.5 + DECONZ_VERSION: 2.30.2 diff --git a/deconz/config.yaml b/deconz/config.yaml index 363d7890b8d..933cf386801 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,9 +1,9 @@ --- -version: 8.1.0 +version: 8.2.0 slug: deconz name: deCONZ description: >- - Control a Zigbee network with ConBee or RaspBee by Dresden Elektronik. + Control a Zigbee network with ConBee or RaspBee by Dresden Elektronik url: https://github.com/home-assistant/addons/tree/master/deconz apparmor: false arch: From bb4bae3925ef25e4239036ae673241f4fefb7277 Mon Sep 17 00:00:00 2001 From: Harper Andrews <10224994+ItsHarper@users.noreply.github.com> Date: Fri, 9 May 2025 04:37:35 -0500 Subject: [PATCH 192/346] Remove incorrect `--find-links` arguments that were being passed to pip (#4016) * Remove incorrect --find-links arguments to pip * Replace accidentally-deleted space Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- letsencrypt/Dockerfile | 3 +-- silabs_flasher/Dockerfile | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 256848b52ce..28d567727f6 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -51,8 +51,7 @@ RUN \ musl-dev \ openssl-dev \ cargo \ - && pip3 install --no-cache-dir --find-links \ - "https://wheels.home-assistant.io/alpine-$(cut -d '.' -f 1-2 < /etc/alpine-release)/${BUILD_ARCH}/" \ + && pip3 install --no-cache-dir \ acme==${ACME_VERSION} \ certbot-dns-azure==${CERTBOT_DNS_AZURE_VERSION} \ certbot-dns-cloudflare==${CERTBOT_VERSION} \ diff --git a/silabs_flasher/Dockerfile b/silabs_flasher/Dockerfile index e5c8a033563..ccfc3cd3714 100644 --- a/silabs_flasher/Dockerfile +++ b/silabs_flasher/Dockerfile @@ -13,7 +13,6 @@ RUN \ && pip3 install \ --no-cache-dir \ --prefer-binary \ - --find-links "https://wheels.home-assistant.io/musllinux/${BUILD_ARCH}/" \ universal-silabs-flasher=="${UNIVERSAL_SILABS_FLASHER}" COPY rootfs / From e2a8350ed33d022ace046966604f083e778f99e3 Mon Sep 17 00:00:00 2001 From: Riccardo Crippa Date: Sun, 11 May 2025 17:05:34 +0200 Subject: [PATCH 193/346] MOSQUITTO v2.0.21 (#4018) --- mosquitto/CHANGELOG.md | 8 ++++++-- mosquitto/build.yaml | 2 +- mosquitto/config.yaml | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/mosquitto/CHANGELOG.md b/mosquitto/CHANGELOG.md index c4c2ddf0a61..12917a1a776 100644 --- a/mosquitto/CHANGELOG.md +++ b/mosquitto/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.5.1 + +- Update mosquitto to version 2.0.21 + ## 6.5.0 - Update base image to Debian 12 (bookworm) @@ -25,7 +29,7 @@ ## 6.2.1 -- Add explicit dependencies for dynamic security plugin and asynchronous name resolver +- Add explicit dependencies for dynamic security plugin and asynchronous name resolver ## 6.2.0 @@ -52,7 +56,7 @@ Note: Mosquitto 2.0.0 did contain some breaking changes. We don't anticipate most users to be affected by them but if you have a heavily customized mosquitto -config we would advise reviewing [their changelog](https://mosquitto.org/ChangeLog.txt). +config we would advise reviewing [their changelog](https://mosquitto.org/ChangeLog.txt). ## 6.0.2 diff --git a/mosquitto/build.yaml b/mosquitto/build.yaml index 963c7f2a98f..9c0fe064148 100644 --- a/mosquitto/build.yaml +++ b/mosquitto/build.yaml @@ -10,5 +10,5 @@ codenotary: base_image: notary@home-assistant.io args: LIBWEBSOCKET_VERSION: 4.3.3 - MOSQUITTO_VERSION: 2.0.20 + MOSQUITTO_VERSION: 2.0.21 MOSQUITTO_AUTH_VERSION: 2.1.0 diff --git a/mosquitto/config.yaml b/mosquitto/config.yaml index 2135f6724cb..c7877086437 100644 --- a/mosquitto/config.yaml +++ b/mosquitto/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.5.0 +version: 6.5.1 slug: mosquitto name: Mosquitto broker description: An Open Source MQTT broker From 475f7d1f2f551341596ee6513c88808720b54732 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Wed, 14 May 2025 17:46:45 -0500 Subject: [PATCH 194/346] Update to wyoming-piper 1.5.4 (#4023) --- piper/CHANGELOG.md | 8 ++++++++ piper/build.yaml | 2 +- piper/config.yaml | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/piper/CHANGELOG.md b/piper/CHANGELOG.md index b949ca18b04..615cdc92385 100644 --- a/piper/CHANGELOG.md +++ b/piper/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 1.5.4 + +- Add voices for Dutch: ronnie, pim +- Add voice for English: sam +- Add voice for Persian/English: reza_ibrahim +- Add voice for Persian: ganji +- Add voices for Portuguese (Brazilian): cadu, jeff + ## 1.5.2 - Add missing voices supported by Piper (gwryw_gogleddol, bryce, john, norman and paola) diff --git a/piper/build.yaml b/piper/build.yaml index be1e3763e5d..b395a1c843c 100644 --- a/piper/build.yaml +++ b/piper/build.yaml @@ -6,5 +6,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - WYOMING_PIPER_VERSION: 1.5.0 + WYOMING_PIPER_VERSION: 1.5.4 BINARY_PIPER_VERSION: 1.2.0 diff --git a/piper/config.yaml b/piper/config.yaml index 52df1f2c12a..3af6af88ba1 100644 --- a/piper/config.yaml +++ b/piper/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.5.2 +version: 1.5.4 slug: piper name: Piper description: Text-to-speech with Piper @@ -25,7 +25,7 @@ options: update_voices: true schema: voice: | - list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|cs_CZ-jirka-low|cs_CZ-jirka-medium|cy_GB-gwryw_gogleddol-medium|da_DK-talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|el_GR-rapunzelina-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en_GB-southern_english_female-low|en_GB-vctk-medium|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-bryce-medium|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-john-medium|en_US-kathleen-low|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en_US-lessac-low|en_US-lessac-medium|en_US-libritts-high|en_US-libritts_r-medium|en_US-norman-medium|en_US-ryan-high|en_US-ryan-low|en_US-ryan-medium|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es_MX-ald-medium|fa_IR-amir-medium|fa_IR-gyro-medium|fi_FI-harri-low|fi_FI-harri-medium|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|it_IT-paola-medium|it_IT-riccardo-x_low|ka_GE-natia-medium|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|lb_LU-marylux-medium|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|no_NO-talesyntese-medium|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh_CN-huayan-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|da-nst_talesyntese-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|en-gb-alan-low|en-gb-southern_english_female-low|en-us-amy-low|en-us-danny-low|en-us-kathleen-low|en-us-lessac-low|en-us-lessac-medium|en-us-libritts-high|en-us-ryan-high|en-us-ryan-low|en-us-ryan-medium|es-carlfm-x-low|es-mls_10246-low|es-mls_9972-low|fi-harri-low|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|is-bui-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it-riccardo_fasol-x-low|kk-iseke-x-low|kk-issai-high|kk-raya-x-low|ne-google-medium|ne-google-x-low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl-rdh-medium|nl-rdh-x-low|no-talesyntese-medium|pl-mls_6892-low|pt-br-edresson-low|ru-irinia-medium|uk-lada-x-low|vi-25hours-single-low|vi-vivos-x-low|zh-cn-huayan-x-low) + list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|cs_CZ-jirka-low|cs_CZ-jirka-medium|cy_GB-bu_tts-medium|cy_GB-gwryw_gogleddol-medium|da_DK-talesyntese-medium|da-nst_talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|el_GR-rapunzelina-low|en-gb-alan-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en-gb-southern_english_female-low|en_GB-southern_english_female-low|en_GB-vctk-medium|en-us-amy-low|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-bryce-medium|en-us-danny-low|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-john-medium|en-us-kathleen-low|en_US-kathleen-low|en_US-kristin-medium|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en-us-lessac-low|en_US-lessac-low|en-us-lessac-medium|en_US-lessac-medium|en-us-libritts-high|en_US-libritts-high|en_US-libritts_r-medium|en_US-ljspeech-high|en_US-ljspeech-medium|en_US-norman-medium|en_US-reza_ibrahim-medium|en-us-ryan-high|en_US-ryan-high|en-us-ryan-low|en_US-ryan-low|en-us-ryan-medium|en_US-ryan-medium|en_US-sam-medium|es-carlfm-x-low|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es-mls_10246-low|es-mls_9972-low|es_MX-ald-medium|es_MX-claude-high|fa_IR-amir-medium|fa_IR-ganji_adabi-medium|fa_IR-ganji-medium|fa_IR-gyro-medium|fa_IR-reza_ibrahim-medium|fi_FI-harri-low|fi_FI-harri-medium|fi-harri-low|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is-bui-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it_IT-paola-medium|it_IT-riccardo-x_low|it-riccardo_fasol-x-low|ka_GE-natia-medium|kk-iseke-x-low|kk-issai-high|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|kk-raya-x-low|lb_LU-marylux-medium|lv_LV-aivars-medium|ne-google-medium|ne-google-x-low|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|nl_NL-pim-medium|nl_NL-ronnie-medium|nl-rdh-medium|nl-rdh-x-low|no_NO-talesyntese-medium|no-talesyntese-medium|pl-mls_6892-low|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-cadu-medium|pt-br-edresson-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_BR-jeff-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru-irinia-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-lisa-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk-lada-x-low|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi-25hours-single-low|vi-vivos-x-low|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh-cn-huayan-x-low|zh_CN-huayan-x_low) speaker: int length_scale: float noise_scale: float From 006e132b4b4efd5d1bc23d55cf9076e0ba27c320 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 16 May 2025 10:26:48 +0200 Subject: [PATCH 195/346] matter_server: Bump Python Matter server to 8.0.0 (#4025) --- matter_server/CHANGELOG.md | 4 ++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 773e702617f..6359775cf3f 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.0.0 + +- Bump Python Matter Server to [8.0.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/8.0.0) + ## 7.0.0 - Bump Python Matter Server to [7.0.1](https://github.com/home-assistant-libs/python-matter-server/releases/tag/7.0.1) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 862f4f603f3..06f8b64214b 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:7.0.1 - amd64: ghcr.io/home-assistant-libs/python-matter-server:7.0.1 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:8.0.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:8.0.0 args: BASHIO_VERSION: 0.16.2 TEMPIO_VERSION: 2024.11.2 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index c2cf22096af..b4267fda7a1 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 7.0.0 +version: 8.0.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From 23de508067512da4c15bcb32048e3a2e30dbbb14 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Tue, 10 Jun 2025 12:07:32 +0200 Subject: [PATCH 196/346] Add Z-Wave region option (#4009) * Add Z-Wave region option * Fix YAML lint * Use default settings if no specific rf region is available * Apply suggestions from code review Co-authored-by: AlCalzone * Bump minimum required Home Assistant version to 2025.5.0 * Add breaking change section Co-authored-by: AlCalzone * Add blank line * Handle missing country * Remove duplicate * Quote and improve log --------- Co-authored-by: AlCalzone --- zwave_js/CHANGELOG.md | 10 + zwave_js/DOCS.md | 21 ++ zwave_js/config.yaml | 19 +- zwave_js/rootfs/etc/cont-init.d/config.sh | 288 ++++++++++++++++++ .../rootfs/usr/share/tempio/zwave_config.conf | 1 + zwave_js/translations/en.yaml | 3 + 6 files changed, 340 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index df61f9a23cf..414a0239790 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 0.14.0 + +### Breaking changes + +- Version 0.14.0 of the add-on requires version 2025.5.0 or higher of Home Assistant Core. + +### Features + +- Add radio frequency region option to the add-on. + ## 0.13.1 ### Bug fixes diff --git a/zwave_js/DOCS.md b/zwave_js/DOCS.md index 6030c868b2c..af59a8d4934 100644 --- a/zwave_js/DOCS.md +++ b/zwave_js/DOCS.md @@ -163,6 +163,27 @@ When `log_to_file` is true, Z-Wave JS will create a log file for each day. This option allows you to control the maximum number of files that Z-Wave JS will keep. +### Option `rf_region` (optional) + +This setting tells the add-on what radio frequency region the controller should use. +Valid options are: + +- Automatic +- Australia/New Zealand +- China +- Europe +- Europe (Long Range) +- Hong Kong +- India +- Israel +- Japan +- Korea +- Russia +- USA +- USA (Long Range) + +The default is Automatic which will try to set the correct region based on the country set in Home Assistant. + ### Option `soft_reset` (optional) This setting tells the add-on how to handle soft-resets for 500 series controllers: diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 59a9252190e..7f9dae20a50 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.13.1 +version: 0.14.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS @@ -14,7 +14,7 @@ codenotary: notary@home-assistant.io discovery: - zwave_js hassio_api: true -homeassistant: 2021.3.0 +homeassistant: 2025.5.0 image: homeassistant/{arch}-addon-zwave_js init: false map: @@ -24,6 +24,7 @@ options: log_level: info log_to_file: false log_max_files: 7 + rf_region: Automatic soft_reset: Automatic s0_legacy_key: "" s2_access_control_key: "" @@ -38,6 +39,20 @@ schema: log_level: list(silly|debug|verbose|http|info|warn|error)? log_to_file: bool? log_max_files: int(1,)? + rf_region: "list(\ + Automatic|\ + Australia/New Zealand|\ + China|\ + Europe|\ + Europe (Long Range)|\ + Hong Kong|\ + India|\ + Israel|\ + Japan|\ + Korea|\ + Russia|\ + USA|\ + USA (Long Range))?" soft_reset: list(Automatic|Enabled|Disabled)? s0_legacy_key: match(|[0-9a-fA-F]{32,32})? s2_access_control_key: match(|[0-9a-fA-F]{32,32})? diff --git a/zwave_js/rootfs/etc/cont-init.d/config.sh b/zwave_js/rootfs/etc/cont-init.d/config.sh index 6ac16a22d4b..b1b10d5a2f1 100755 --- a/zwave_js/rootfs/etc/cont-init.d/config.sh +++ b/zwave_js/rootfs/etc/cont-init.d/config.sh @@ -13,6 +13,9 @@ declare s2_unauthenticated declare log_level declare flush_to_disk declare host_chassis +declare rf_region +declare rf_region_integer +declare rf_region_json declare soft_reset declare presets_array declare presets @@ -24,6 +27,273 @@ readonly DOCS_EXAMPLE_KEY_4="CF338FE0CB99549F7C0EA96308E5A403" readonly DOCS_EXAMPLE_KEY_5="E2CEA6B5986C818EEC0D0065D81E2BD5" readonly DOCS_EXAMPLE_KEY_6="863027C59CFC522A9A3C41976AE54254" +declare -A country_rf_region_map=( + ["AD"]="Europe" + ["AE"]="Europe" + ["AF"]="Default (EU)" + ["AG"]="Default (EU)" + ["AI"]="Europe" + ["AL"]="Europe" + ["AM"]="Europe" + ["AO"]="Default (EU)" + ["AQ"]="Default (EU)" + ["AR"]="USA" + ["AS"]="USA" + ["AT"]="Europe" + ["AU"]="Australia/New Zealand" + ["AW"]="Europe" + ["AX"]="Europe" + ["AZ"]="Europe" + ["BA"]="Europe" + ["BB"]="USA" + ["BD"]="Default (EU)" + ["BE"]="Europe" + ["BF"]="Default (EU)" + ["BG"]="Europe" + ["BH"]="Europe" + ["BI"]="Default (EU)" + ["BJ"]="Default (EU)" + ["BL"]="Default (EU)" + ["BM"]="USA" + ["BN"]="Default (EU)" + ["BO"]="USA" + ["BQ"]="Europe" + ["BR"]="Australia/New Zealand" + ["BS"]="USA" + ["BT"]="Default (EU)" + ["BV"]="Europe" + ["BW"]="Default (EU)" + ["BY"]="Europe" + ["BZ"]="Default (EU)" + ["CA"]="USA" + ["CC"]="Default (EU)" + ["CD"]="Default (EU)" + ["CF"]="Default (EU)" + ["CG"]="Default (EU)" + ["CH"]="Europe" + ["CI"]="Default (EU)" + ["CK"]="Australia/New Zealand" + ["CL"]="Australia/New Zealand" + ["CM"]="Default (EU)" + ["CN"]="China" + ["CO"]="USA" + ["CR"]="Japan" + ["CU"]="Default (EU)" + ["CV"]="Default (EU)" + ["CW"]="Europe" + ["CX"]="Australia/New Zealand" + ["CY"]="Europe" + ["CZ"]="Europe" + ["DE"]="Europe" + ["DJ"]="Default (EU)" + ["DK"]="Europe" + ["DM"]="Default (EU)" + ["DO"]="Australia/New Zealand" + ["DZ"]="Hong Kong" + ["EC"]="Australia/New Zealand" + ["EE"]="Europe" + ["EG"]="Europe" + ["EH"]="Default (EU)" + ["ER"]="Default (EU)" + ["ES"]="Europe" + ["ET"]="Default (EU)" + ["FI"]="Europe" + ["FJ"]="Australia/New Zealand" + ["FK"]="Europe" + ["FM"]="Australia/New Zealand" + ["FO"]="Europe" + ["FR"]="Europe" + ["GA"]="Default (EU)" + ["GB"]="Europe" + ["GD"]="Default (EU)" + ["GE"]="Europe" + ["GF"]="Europe" + ["GG"]="Europe" + ["GH"]="Default (EU)" + ["GI"]="Europe" + ["GL"]="Default (EU)" + ["GM"]="Default (EU)" + ["GN"]="Default (EU)" + ["GP"]="Default (EU)" + ["GQ"]="Default (EU)" + ["GR"]="Europe" + ["GS"]="Europe" + ["GT"]="USA" + ["GU"]="USA" + ["GW"]="Default (EU)" + ["GY"]="Default (EU)" + ["HK"]="Hong Kong" + ["HM"]="Default (EU)" + ["HN"]="USA" + ["HR"]="Europe" + ["HT"]="USA" + ["HU"]="Europe" + ["ID"]="Australia/New Zealand" + ["IE"]="Europe" + ["IL"]="Israel" + ["IM"]="Europe" + ["IN"]="India" + ["IO"]="Europe" + ["IQ"]="Europe" + ["IR"]="Default (EU)" + ["IS"]="Europe" + ["IT"]="Europe" + ["JE"]="Europe" + ["JM"]="USA" + ["JO"]="Europe" + ["JP"]="Japan" + ["KE"]="Default (EU)" + ["KG"]="Default (EU)" + ["KH"]="Default (EU)" + ["KI"]="Australia/New Zealand" + ["KM"]="Default (EU)" + ["KN"]="USA" + ["KP"]="Default (EU)" + ["KR"]="Korea" + ["KW"]="Europe" + ["KY"]="USA" + ["KZ"]="Europe" + ["LA"]="Default (EU)" + ["LB"]="Europe" + ["LC"]="Default (EU)" + ["LI"]="Europe" + ["LK"]="Default (EU)" + ["LR"]="Default (EU)" + ["LS"]="Default (EU)" + ["LT"]="Europe" + ["LU"]="Europe" + ["LV"]="Europe" + ["LY"]="Europe" + ["MA"]="China" + ["MC"]="Europe" + ["MD"]="Europe" + ["ME"]="Europe" + ["MF"]="Default (EU)" + ["MG"]="Default (EU)" + ["MH"]="Australia/New Zealand" + ["MK"]="Europe" + ["ML"]="Default (EU)" + ["MM"]="Default (EU)" + ["MN"]="Default (EU)" + ["MO"]="Korea" + ["MP"]="USA" + ["MQ"]="Default (EU)" + ["MR"]="Default (EU)" + ["MS"]="Europe" + ["MT"]="Europe" + ["MU"]="Europe" + ["MV"]="Europe" + ["MW"]="Default (EU)" + ["MX"]="Default (EU)" + ["MY"]="Australia/New Zealand" + ["MZ"]="Default (EU)" + ["NA"]="Default (EU)" + ["NC"]="Australia/New Zealand" + ["NE"]="Default (EU)" + ["NF"]="Australia/New Zealand" + ["NG"]="Europe" + ["NI"]="USA" + ["NL"]="Europe" + ["NO"]="Europe" + ["NP"]="Default (EU)" + ["NR"]="Australia/New Zealand" + ["NU"]="Australia/New Zealand" + ["NZ"]="Australia/New Zealand" + ["OM"]="Europe" + ["PA"]="USA" + ["PE"]="Australia/New Zealand" + ["PF"]="Australia/New Zealand" + ["PG"]="Australia/New Zealand" + ["PH"]="Europe" + ["PK"]="Default (EU)" + ["PL"]="Europe" + ["PM"]="Default (EU)" + ["PN"]="Europe" + ["PR"]="USA" + ["PT"]="Europe" + ["PW"]="Australia/New Zealand" + ["PY"]="Australia/New Zealand" + ["QA"]="Europe" + ["RE"]="Default (EU)" + ["RO"]="Europe" + ["RS"]="Europe" + ["RU"]="Russia" + ["RW"]="Default (EU)" + ["SA"]="Europe" + ["SB"]="Australia/New Zealand" + ["SC"]="Default (EU)" + ["SD"]="Default (EU)" + ["SE"]="Europe" + ["SG"]="Korea" + ["SH"]="Europe" + ["SI"]="Europe" + ["SJ"]="Europe" + ["SK"]="Europe" + ["SL"]="Default (EU)" + ["SM"]="Europe" + ["SN"]="Default (EU)" + ["SO"]="Default (EU)" + ["SR"]="USA" + ["SS"]="Default (EU)" + ["ST"]="Default (EU)" + ["SV"]="Australia/New Zealand" + ["SX"]="Europe" + ["SY"]="Default (EU)" + ["SZ"]="Default (EU)" + ["TC"]="USA" + ["TD"]="Default (EU)" + ["TF"]="Default (EU)" + ["TG"]="Default (EU)" + ["TH"]="Korea" + ["TJ"]="Default (EU)" + ["TK"]="Australia/New Zealand" + ["TL"]="Default (EU)" + ["TM"]="Europe" + ["TN"]="Default (EU)" + ["TO"]="Australia/New Zealand" + ["TR"]="Europe" + ["TT"]="USA" + ["TV"]="Australia/New Zealand" + ["TW"]="Korea" + ["TZ"]="Default (EU)" + ["UA"]="Europe" + ["UG"]="Default (EU)" + ["UM"]="USA" + ["US"]="USA" + ["UY"]="Australia/New Zealand" + ["UZ"]="Europe" + ["VA"]="Europe" + ["VC"]="Default (EU)" + ["VE"]="Australia/New Zealand" + ["VG"]="USA" + ["VI"]="USA" + ["VN"]="Australia/New Zealand" + ["VU"]="Australia/New Zealand" + ["WF"]="Australia/New Zealand" + ["WS"]="Australia/New Zealand" + ["YE"]="Europe" + ["YT"]="Default (EU)" + ["ZA"]="Europe" + ["ZM"]="Default (EU)" + ["ZW"]="Default (EU)" +) + +declare -A rf_region_integer_map=( + ["Europe"]=0 + ["USA"]=1 + ["Australia/New Zealand"]=2 + ["Hong Kong"]=3 + ["India"]=5 + ["Israel"]=6 + ["Russia"]=7 + ["China"]=8 + ["USA (Long Range)"]=9 + ["Europe (Long Range)"]=11 + ["Japan"]=32 + ["Korea"]=33 + ["Default (EU)"]=255 +) + if bashio::config.has_value 'network_key'; then # If both 'network_key' and 's0_legacy_key' are set and keys don't match, # we don't know which one to pick so we have to exit. If they are both set @@ -107,6 +377,23 @@ else log_level=$(bashio::config 'log_level') fi +if bashio::config.equals 'rf_region' 'Automatic'; then + country=$(bashio::supervisor.country) + rf_region="${country_rf_region_map[$country]:-"Default (EU)"}" + bashio::log.info "RF region set to Automatic: ${rf_region}" +else + rf_region=$(bashio::config 'rf_region') +fi +rf_region_integer=${rf_region_integer_map["${rf_region}"]} + +if [[ "${rf_region_integer}" -eq 255 ]]; then + rf_region_json="{}" + bashio::log.info "Using default RF region settings" +else + rf_region_json=$(jq -n --argjson region "${rf_region_integer}" '{ region: $region }') + bashio::log.info "Setting RF region to (${rf_region})" +fi + host_chassis=$(bashio::host.chassis) if bashio::config.equals 'soft_reset' 'Automatic'; then @@ -170,6 +457,7 @@ bashio::var.json \ log_level "${log_level}" \ log_to_file "${log_to_file}" \ log_max_files "${log_max_files}" \ + rf_region "${rf_region_json}" \ soft_reset "^${soft_reset}" \ presets "${presets}" | tempio \ diff --git a/zwave_js/rootfs/usr/share/tempio/zwave_config.conf b/zwave_js/rootfs/usr/share/tempio/zwave_config.conf index 4f95abe6579..a96affa113e 100644 --- a/zwave_js/rootfs/usr/share/tempio/zwave_config.conf +++ b/zwave_js/rootfs/usr/share/tempio/zwave_config.conf @@ -7,6 +7,7 @@ "filename": "/config/zwave", "forceConsole": true }, + "rf": {{ .rf_region }}, "storage": { "cacheDir": "/config/cache", "throttle": "slow" diff --git a/zwave_js/translations/en.yaml b/zwave_js/translations/en.yaml index 5a000030f2b..ab2cbfc86db 100644 --- a/zwave_js/translations/en.yaml +++ b/zwave_js/translations/en.yaml @@ -28,6 +28,9 @@ configuration: In previous versions of the addon, this was the only key that was needed. With the introduction of S2 security inclusion in zwave-js, this option has been deprecated. + rf_region: + name: Radio Frequency Region + description: The radio frequency region that the controller should use. s0_legacy_key: name: S0 Legacy Key description: >- From d870f1c75842626700a1028bf83bfa94ce558303 Mon Sep 17 00:00:00 2001 From: cretep Date: Tue, 10 Jun 2025 14:15:19 +0100 Subject: [PATCH 197/346] letsencrypt: Fix documentation link to Supervisor restart (#4034) Reflect change of home-assistant.io in 8ca5651 --- letsencrypt/DOCS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 0d83be1a977..b4131c65adf 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -225,7 +225,7 @@ renewal via [Home Assistant automation][haauto], and then restarting this automation every night via the [Supervisor Addon restart action][supervisorrestart]. [haauto]: https://www.home-assistant.io/docs/automation/editor/ -[supervisorrestart]: https://www.home-assistant.io/integrations/hassio/#service-hassioaddon_restart +[supervisorrestart]: https://www.home-assistant.io/integrations/hassio/#action-hassioaddon_restart In this example, the automation will run every day at the chosen time, checking if a renewal is due, and will request it if needed. From a8002fa7b6954cf124394ef5d66b6b9a4806b505 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Wed, 11 Jun 2025 13:17:30 +0200 Subject: [PATCH 198/346] Bump Z-Wave JS to 15.6.0 (#4042) --- zwave_js/CHANGELOG.md | 45 +++++++++++++++++++++++++++++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 414a0239790..f45c1edabf1 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,50 @@ # Changelog +## 0.15.0 + +### Features + +- Z-Wave JS: Add options to set powerlevel within legal limits on region change during startup +- Z-Wave JS: Allow the application to disable support for specific CCs +- Z-Wave JS: Support OTW updates for the controller via the firmware update service +- Z-Wave JS: Update Notification definitions to 2024B-3 specs +- Z-Wave JS: Add static methods to query Door Lock CC capabilities +- Z-Wave JS: The hardware watchdog no longer gets enabled by default, since this is now handled by recent firmwares. The corresponding driver option and preset have been deprecated. + +### Bug fixes + +- Z-Wave JS: When the serialport closes unexpectedly, try to reopen it first before throwing an error +- Z-Wave JS: Work around missing protocol version file in NVM backed up from SDK 7.23.0 and .1 +- Z-Wave JS: The default region is no longer considered to be Europe for firmware updates +- Z-Wave JS: Make the device ID check during OTA updates actually do something +- Z-Wave JS: Fixed a regression from v15 where Z-Wave JS would immediately soft-reset the controller instead of retrying after an ACK timeout +- Z-Wave JS: Fixed a type error after OTW firmware upgrade +- Z-Wave JS: Prevent the interview of battery-powered devices to stop after the first stage when re-interviewing after a firmware update +- Z-Wave JS: Omit empty fields from TX reports, ignore missing RSSI in routing statistics +- Z-Wave JS: Use local time for logging to file + +### Config file changes + +- Add/update several Simon iO devices +- Add Enbrighten (Jasco) 58446 / ZWA4013 Fan Control +- Add Aeotec ZWA046 Home Energy Meter 8 +- Add PE653 endpoints for VSP speeds and P5043ME pool/spa mode +- Add ZVIDAR WM25C +- Add MCO Home MH-S314-7102 +- Add McoHome thermostats MH4936, MH5-2D and MH5-4A +- Update Inovelli VZW31-SN to FW 1.04 +- Add param 29 (load sense) to HomePro ZDP100 +- Add Yale YDM3109A Smart Lock + + +### Detailed changelogs + +- [Z-Wave JS 15.6.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.6.0) +- [Z-Wave JS 15.5.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.5.0) +- [Z-Wave JS 15.4.2](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.4.2) +- [Z-Wave JS 15.4.1](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.4.1) +- [Z-Wave JS 15.4.0](https://github.com/zwave-js/node-zwave-js/releases/tag/v15.4.0) + ## 0.14.0 ### Breaking changes diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 7c52597ebfa..82b5aaef96b 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.0.2 - ZWAVEJS_VERSION: 15.3.2 + ZWAVEJS_VERSION: 15.6.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 7f9dae20a50..a2f115dbe94 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.14.0 +version: 0.15.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From b8e5f32ff45525c322edce81b0a843e2ae172532 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Thu, 12 Jun 2025 12:46:21 -0500 Subject: [PATCH 199/346] Add support for HuggingFace transformers Whisper models (#4038) --- whisper/CHANGELOG.md | 5 +++++ whisper/DOCS.md | 12 ++++++++++++ whisper/Dockerfile | 8 +++++++- whisper/build.yaml | 6 +++--- whisper/config.yaml | 5 ++++- whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run | 5 +++++ whisper/translations/en.yaml | 12 ++++++++++++ 7 files changed, 48 insertions(+), 5 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index 632ccc60b0c..bd346b2ca3f 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 2.6.0 + +- Upgrade to Debian bookworm +- Add support for HuggingFace transformers Whisper models + ## 2.5.0 - Added configuration mapping to access local models. diff --git a/whisper/DOCS.md b/whisper/DOCS.md index 24fa15911b6..97dbf4ad719 100644 --- a/whisper/DOCS.md +++ b/whisper/DOCS.md @@ -67,11 +67,23 @@ Available models: ### Option: `custom_model` Path to a converted model directory, or a CTranslate2-converted Whisper model ID from the HuggingFace Hub like "Systran/faster-distil-whisper-small.en". + +If `custom_model_type` is set to `transformers`, a HuggingFace transformers Whisper model ID from HuggingFace like "openai/whisper-tiny.en" must be used. + To use a local custom Whisper model, first create a `models` subdirectory in the add-on's configuration directory if it does not already exist. Then copy your model directory into: `/addon_configs/core_whisper/models/`. Then, set the `custom_model` path to: `/config/models/`. For a local model, the path must start with `/config/models/`, as this is how the add-on accesses your Home Assistant configuration directory through the container's mounted volume. +### Option: `custom_model_type` + +Either `faster-whisper` (the default) or `transformers`. + +When set to `transformers`, the `custom_model` option must be a HuggingFace transformers-based Whisper model like "openai/whisper-tiny.en". + +**Note:** Initial prompt is currently not supported for transformers-based models. + + ### Option: `beam_size` Number of candidates to consider simultaneously during transcription (see [beam search](https://en.wikipedia.org/wiki/Beam_search)). diff --git a/whisper/Dockerfile b/whisper/Dockerfile index eeecbda4a92..52cd33fb947 100644 --- a/whisper/Dockerfile +++ b/whisper/Dockerfile @@ -4,12 +4,13 @@ FROM ${BUILD_FROM} # Install Whisper WORKDIR /usr/src ARG WYOMING_WHISPER_VERSION +ENV PIP_BREAK_SYSTEM_PACKAGES=1 RUN \ apt-get update \ && apt-get install -y --no-install-recommends \ build-essential \ - netcat \ + netcat-traditional \ python3 \ python3-dev \ python3-pip \ @@ -19,6 +20,11 @@ RUN \ wheel \ && pip3 install --no-cache-dir \ "wyoming-faster-whisper @ https://github.com/rhasspy/wyoming-faster-whisper/archive/refs/tags/v${WYOMING_WHISPER_VERSION}.tar.gz" \ + 'transformers==4.52.4' \ + \ + && pip3 install --no-cache-dir \ + --index-url 'https://download.pytorch.org/whl/cpu' \ + 'torch==2.6.0' \ \ && apt-get purge -y --auto-remove \ build-essential \ diff --git a/whisper/build.yaml b/whisper/build.yaml index c9e004246ab..6fc9fb13cbc 100644 --- a/whisper/build.yaml +++ b/whisper/build.yaml @@ -1,9 +1,9 @@ --- build_from: - amd64: ghcr.io/home-assistant/amd64-base-debian:bullseye - aarch64: ghcr.io/home-assistant/aarch64-base-debian:bullseye + amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm + aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - WYOMING_WHISPER_VERSION: 2.4.0 + WYOMING_WHISPER_VERSION: 2.5.0 diff --git a/whisper/config.yaml b/whisper/config.yaml index 790b37084ed..c2bec930eb7 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.5.0 +version: 2.6.0 slug: whisper name: Whisper description: Speech-to-text with Whisper @@ -18,11 +18,14 @@ options: model: auto language: en beam_size: 0 + custom_model_type: "faster-whisper" debug_logging: false schema: model: | list(auto|tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|distil-large-v3|large-v3|turbo|custom) custom_model: str? + custom_model_type: | + list(faster-whisper|transformers) language: | list(auto|af|am|ar|as|az|ba|be|bg|bn|bo|br|bs|ca|cs|cy|da|de|el|en|es|et|eu|fa|fi|fo|fr|gl|gu|ha|haw|he|hi|hr|ht|hu|hy|id|is|it|ja|jw|ka|kk|km|kn|ko|la|lb|ln|lo|lt|lv|mg|mi|mk|ml|mn|mr|ms|mt|my|ne|nl|nn|no|oc|pa|pl|ps|pt|ro|ru|sa|sd|si|sk|sl|sn|so|sq|sr|su|sv|sw|ta|te|tg|th|tk|tl|tr|tt|uk|ur|uz|vi|yi|yo|zh|yue) beam_size: int diff --git a/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run b/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run index c9584fbaa01..2a4e2c9433a 100755 --- a/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run +++ b/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run @@ -4,6 +4,7 @@ # ============================================================================== # Start Whisper service # ============================================================================== +flags=() if [ "$(uname -m)" == "x86_64" ] && ! grep -qw 'avx' /proc/cpuinfo; then bashio::log.warning "Your CPU does not support Advanced Vector Extensions (AVX). Whisper will run slower than normal." @@ -16,6 +17,10 @@ if [ "${model}" = 'custom' ]; then if [ -z "${model}" ]; then bashio::exit.nok "Custom model is not set" fi + custom_model_type="$(bashio::config 'custom_model_type')" + if [ "${custom_model_type}" = 'transformers' ]; then + flags+=('--use-transformers') + fi fi if bashio::config.true 'debug_logging'; then diff --git a/whisper/translations/en.yaml b/whisper/translations/en.yaml index 3e0c1b5aad4..1f9eb560590 100644 --- a/whisper/translations/en.yaml +++ b/whisper/translations/en.yaml @@ -26,6 +26,18 @@ configuration: Path to a converted model directory, or a CTranslate2-converted Whisper model ID from the HuggingFace Hub like "Systran/faster-distil-whisper-small.en". + + If custom_model_type is set to 'transformers', a HuggingFace transformers + Whisper model ID from HuggingFace like 'openai/whisper-tiny.en' may be + used. + custom_model_type: + name: Custom model type + description: | + Type of Whisper model expected from custom model. + + The default is 'faster-whisper' which requires a CTranslate2-converted + Whisper model. If set to 'transformers', a HuggingFace transformers-based + Whisper model may be used. initial_prompt: name: Initial prompt description: >- From e756c7fc2b66795a15eef5b4dd0c3431b3e99e28 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Mon, 16 Jun 2025 16:55:58 +0200 Subject: [PATCH 200/346] Add Z-Wave JS power level config (#4043) * Add Z-Wave JS power level config * Fix declaration of variable * Fix JSON of default RF settings --- zwave_js/CHANGELOG.md | 6 ++++++ zwave_js/config.yaml | 2 +- zwave_js/rootfs/etc/cont-init.d/config.sh | 8 ++++---- zwave_js/rootfs/usr/share/tempio/zwave_config.conf | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index f45c1edabf1..6f83560282c 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.16.0 + +### Features + +- Add radio frequency power level driver configuration. + ## 0.15.0 ### Features diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index a2f115dbe94..0248c11221e 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.15.0 +version: 0.16.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS diff --git a/zwave_js/rootfs/etc/cont-init.d/config.sh b/zwave_js/rootfs/etc/cont-init.d/config.sh index b1b10d5a2f1..42ade6ce81c 100755 --- a/zwave_js/rootfs/etc/cont-init.d/config.sh +++ b/zwave_js/rootfs/etc/cont-init.d/config.sh @@ -15,7 +15,7 @@ declare flush_to_disk declare host_chassis declare rf_region declare rf_region_integer -declare rf_region_json +declare rf_json declare soft_reset declare presets_array declare presets @@ -387,10 +387,10 @@ fi rf_region_integer=${rf_region_integer_map["${rf_region}"]} if [[ "${rf_region_integer}" -eq 255 ]]; then - rf_region_json="{}" + rf_json=$(jq -n '{txPower: {powerlevel: "auto"}, maxLongRangePowerlevel: "auto"}') bashio::log.info "Using default RF region settings" else - rf_region_json=$(jq -n --argjson region "${rf_region_integer}" '{ region: $region }') + rf_json=$(jq -n --argjson region "${rf_region_integer}" '{region: $region, txPower: {powerlevel: "auto"}, maxLongRangePowerlevel: "auto"}') bashio::log.info "Setting RF region to (${rf_region})" fi @@ -457,7 +457,7 @@ bashio::var.json \ log_level "${log_level}" \ log_to_file "${log_to_file}" \ log_max_files "${log_max_files}" \ - rf_region "${rf_region_json}" \ + rf_json "${rf_json}" \ soft_reset "^${soft_reset}" \ presets "${presets}" | tempio \ diff --git a/zwave_js/rootfs/usr/share/tempio/zwave_config.conf b/zwave_js/rootfs/usr/share/tempio/zwave_config.conf index a96affa113e..090addac7cb 100644 --- a/zwave_js/rootfs/usr/share/tempio/zwave_config.conf +++ b/zwave_js/rootfs/usr/share/tempio/zwave_config.conf @@ -7,7 +7,7 @@ "filename": "/config/zwave", "forceConsole": true }, - "rf": {{ .rf_region }}, + "rf": {{ .rf_json }}, "storage": { "cacheDir": "/config/cache", "throttle": "slow" From 512b7ffae4d9871fc9932b4af2287e81e903bb32 Mon Sep 17 00:00:00 2001 From: Ry4an Brase Date: Fri, 20 Jun 2025 04:23:56 -0400 Subject: [PATCH 201/346] correct provider name for dnsimple in example (#4045) The token is `dns-dnsimple` not `dns-simple` as shown in the example. --- letsencrypt/DOCS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index b4131c65adf..0decadafa14 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -550,7 +550,7 @@ Use of this plugin requires a configuration file containing DNSimple API credent keyfile: privkey.pem challenge: dns dns: - provider: dns-simple + provider: dns-dnsimple dnsimple_token: dnssimple-token ``` From 0fa4437fb075dbb9c126980a67d1a97bfbcd4df1 Mon Sep 17 00:00:00 2001 From: Laszlo Magyar Date: Fri, 20 Jun 2025 16:55:21 +0300 Subject: [PATCH 202/346] NGINX: Fix origin header (#4044) * fix origin * update changelog, bump version * use $http_origin * Use canonical header name and match existing style --- nginx_proxy/CHANGELOG.md | 4 ++++ nginx_proxy/config.yaml | 2 +- nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl | 12 +++++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/nginx_proxy/CHANGELOG.md b/nginx_proxy/CHANGELOG.md index 9dc6ee2027a..c3fa5631e8b 100644 --- a/nginx_proxy/CHANGELOG.md +++ b/nginx_proxy/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.12.0 + +- Add origin and X-Forwarded-Proto headers to fix origin issues affecting Portainer and other addons + ## 3.11.1 - Update to new nginx http2 directive. This also suppress a deprecation warning. diff --git a/nginx_proxy/config.yaml b/nginx_proxy/config.yaml index 9bfcac14182..af58c194020 100644 --- a/nginx_proxy/config.yaml +++ b/nginx_proxy/config.yaml @@ -1,5 +1,5 @@ --- -version: 3.11.1 +version: 3.12.0 hassio_api: true slug: nginx_proxy name: NGINX Home Assistant SSL proxy diff --git a/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl index 58cd8d06e8f..4c1ea1efbb1 100644 --- a/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl +++ b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl @@ -1,6 +1,6 @@ -{{/* +{{/* Options saved in the addon UI are available in .options - Some variables are available in .variables, these are added in nginx/run + Some variables are available in .variables, these are added in nginx/run */}} daemon off; error_log stderr; @@ -21,7 +21,7 @@ http { server_tokens off; server_names_hash_bucket_size 128; - + # intermediate configuration ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; @@ -59,7 +59,7 @@ http { # dhparams file ssl_dhparam /data/dhparams.pem; - + {{- if not .options.real_ip_from }} listen 443 ssl; http2 on; @@ -81,9 +81,11 @@ http { {{- if .options.customize.active }} include /share/{{ .options.customize.default }}; {{- end }} - + location / { proxy_pass http://homeassistant.local.hass.io:{{ .variables.port }}; + proxy_set_header Origin $http_origin; + proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect http:// https://; proxy_http_version 1.1; From e12f32beb260cbec057ec4f4a26932865dd0b12b Mon Sep 17 00:00:00 2001 From: Petar Petrov Date: Mon, 23 Jun 2025 10:51:02 +0300 Subject: [PATCH 203/346] Bump Z-Wave JS Server to 3.1.0 (#4051) * Bump Z-Wave JS Server to 3.1.0 * add Detailed changelogs --- zwave_js/CHANGELOG.md | 10 ++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 6f83560282c..72399ef022c 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 0.17.0 + +### Features + +- Z-Wave JS Server: Add command to enable/disable the radio + +### Detailed changelogs + +- [Z-Wave JS Server 3.1.0](https://github.com/zwave-js/zwave-js-server/releases/tag/3.1.0) + ## 0.16.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 82b5aaef96b..88bea2ae16d 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 3.0.2 + ZWAVEJS_SERVER_VERSION: 3.1.0 ZWAVEJS_VERSION: 15.6.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 0248c11221e..b1164fd7143 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.16.0 +version: 0.17.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 1a1e7d4bd4ae4768b2a212b01d35fe5d9d9c8ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Tue, 24 Jun 2025 09:51:49 +0200 Subject: [PATCH 204/346] ssh: Bump CLI to v4.39.0 (#4053) --- ssh/CHANGELOG.md | 4 ++++ ssh/build.yaml | 2 +- ssh/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index 8b1385bcce6..c806f8ddfb8 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 9.18.0 + +- Upgrade Home Assistant CLI to 4.39.0 + ## 9.17.0 - Upgrade Home Assistant CLI to 4.38.0 diff --git a/ssh/build.yaml b/ssh/build.yaml index ea21a4a9c2e..8937426b82d 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -9,6 +9,6 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - CLI_VERSION: 4.38.0 + CLI_VERSION: 4.39.0 LIBWEBSOCKETS_VERSION: 4.3.5 TTYD_VERSION: 1.7.7 diff --git a/ssh/config.yaml b/ssh/config.yaml index 6e489e9c8e9..c6acb6776b2 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.17.0 +version: 9.18.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH From 7c4e5a91dc0147817eba61fdc977d11d6e7d0683 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 24 Jun 2025 21:13:41 +0200 Subject: [PATCH 205/346] samba: Bind on enabled interfaces only (#4054) --- samba/CHANGELOG.md | 4 ++++ samba/config.yaml | 2 +- samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run | 5 ++++- samba/rootfs/usr/share/tempio/smb.gtpl | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/samba/CHANGELOG.md b/samba/CHANGELOG.md index 258aa014829..7b6360ec3be 100644 --- a/samba/CHANGELOG.md +++ b/samba/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 12.5.2 + +- Avoid binding to disabled network interfaces + ## 12.5.1 - Add configurations option to disable Apple devices interoperability. Disabling this setting might be required for file systems that do not support extended attributes such as exFAT. diff --git a/samba/config.yaml b/samba/config.yaml index c4993389236..69779c1c91a 100644 --- a/samba/config.yaml +++ b/samba/config.yaml @@ -1,5 +1,5 @@ --- -version: 12.5.1 +version: 12.5.2 slug: samba name: Samba share description: Expose Home Assistant folders with SMB/CIFS diff --git a/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run b/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run index 422b1b6439d..bd94a670aca 100755 --- a/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run +++ b/samba/rootfs/etc/s6-overlay/s6-rc.d/init-smbd/run @@ -26,7 +26,10 @@ bashio::log.info "Hostname: ${HOSTNAME}" # Get supported interfaces for interface in $(bashio::network.interfaces); do - interfaces+=("${interface}") + interface_enabled=$(bashio::network.enabled "${interface}") + if bashio::var.true "${interface_enabled}"; then + interfaces+=("${interface}") + fi done if [ ${#interfaces[@]} -eq 0 ]; then bashio::exit.nok 'No supported interfaces found to bind on.' diff --git a/samba/rootfs/usr/share/tempio/smb.gtpl b/samba/rootfs/usr/share/tempio/smb.gtpl index 82b67f493a8..511780be35e 100644 --- a/samba/rootfs/usr/share/tempio/smb.gtpl +++ b/samba/rootfs/usr/share/tempio/smb.gtpl @@ -15,7 +15,7 @@ log level = 1 bind interfaces only = yes - interfaces = 127.0.0.1 {{ .interfaces | join " " }} + interfaces = lo {{ .interfaces | join " " }} hosts allow = 127.0.0.1 {{ .allow_hosts | join " " }} {{ if .compatibility_mode }} From 932883470395ce5ca36f2956c6c6ec194d8074a9 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Tue, 24 Jun 2025 14:15:24 -0500 Subject: [PATCH 206/346] Add streaming support to Piper (#4055) * Bump wyoming-piper to 1.6.0 with streaming support * Update change log * Fix docs --- piper/CHANGELOG.md | 4 ++++ piper/DOCS.md | 4 ++++ piper/build.yaml | 2 +- piper/config.yaml | 4 +++- piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run | 4 ++++ piper/translations/en.yaml | 6 ++++++ 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/piper/CHANGELOG.md b/piper/CHANGELOG.md index 615cdc92385..2abdbb8631d 100644 --- a/piper/CHANGELOG.md +++ b/piper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.6.0 + +- Add support for streaming audio on sentence boundaries + ## 1.5.4 - Add voices for Dutch: ronnie, pim diff --git a/piper/DOCS.md b/piper/DOCS.md index 7ffa39ed134..03aaa6ed88d 100644 --- a/piper/DOCS.md +++ b/piper/DOCS.md @@ -73,6 +73,10 @@ Increase `max_piper_procs` if you need to quickly switch between multiple voices Download the list of new voices automatically every time the add-on starts. You must also reload the Wyoming integration for Piper in Home Assistant to see new voices. +### Option: `streaming` + +Enable support for streaming audio. This breaks apart text at sentence boundaries and streams the audio as its being produced. Requires at least HA 2025.7. + ### Option: `debug_logging` Print DEBUG level messages to the add-on's log. diff --git a/piper/build.yaml b/piper/build.yaml index b395a1c843c..ce1c451f8bd 100644 --- a/piper/build.yaml +++ b/piper/build.yaml @@ -6,5 +6,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - WYOMING_PIPER_VERSION: 1.5.4 + WYOMING_PIPER_VERSION: 1.6.0 BINARY_PIPER_VERSION: 1.2.0 diff --git a/piper/config.yaml b/piper/config.yaml index 3af6af88ba1..b440e880553 100644 --- a/piper/config.yaml +++ b/piper/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.5.4 +version: 1.6.0 slug: piper name: Piper description: Text-to-speech with Piper @@ -23,6 +23,7 @@ options: max_piper_procs: 1 debug_logging: false update_voices: true + streaming: true schema: voice: | list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|cs_CZ-jirka-low|cs_CZ-jirka-medium|cy_GB-bu_tts-medium|cy_GB-gwryw_gogleddol-medium|da_DK-talesyntese-medium|da-nst_talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|el_GR-rapunzelina-low|en-gb-alan-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en-gb-southern_english_female-low|en_GB-southern_english_female-low|en_GB-vctk-medium|en-us-amy-low|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-bryce-medium|en-us-danny-low|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-john-medium|en-us-kathleen-low|en_US-kathleen-low|en_US-kristin-medium|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en-us-lessac-low|en_US-lessac-low|en-us-lessac-medium|en_US-lessac-medium|en-us-libritts-high|en_US-libritts-high|en_US-libritts_r-medium|en_US-ljspeech-high|en_US-ljspeech-medium|en_US-norman-medium|en_US-reza_ibrahim-medium|en-us-ryan-high|en_US-ryan-high|en-us-ryan-low|en_US-ryan-low|en-us-ryan-medium|en_US-ryan-medium|en_US-sam-medium|es-carlfm-x-low|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es-mls_10246-low|es-mls_9972-low|es_MX-ald-medium|es_MX-claude-high|fa_IR-amir-medium|fa_IR-ganji_adabi-medium|fa_IR-ganji-medium|fa_IR-gyro-medium|fa_IR-reza_ibrahim-medium|fi_FI-harri-low|fi_FI-harri-medium|fi-harri-low|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is-bui-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it_IT-paola-medium|it_IT-riccardo-x_low|it-riccardo_fasol-x-low|ka_GE-natia-medium|kk-iseke-x-low|kk-issai-high|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|kk-raya-x-low|lb_LU-marylux-medium|lv_LV-aivars-medium|ne-google-medium|ne-google-x-low|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|nl_NL-pim-medium|nl_NL-ronnie-medium|nl-rdh-medium|nl-rdh-x-low|no_NO-talesyntese-medium|no-talesyntese-medium|pl-mls_6892-low|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-cadu-medium|pt-br-edresson-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_BR-jeff-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru-irinia-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-lisa-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk-lada-x-low|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi-25hours-single-low|vi-vivos-x-low|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh-cn-huayan-x-low|zh_CN-huayan-x_low) @@ -33,6 +34,7 @@ schema: max_piper_procs: int debug_logging: bool update_voices: bool + streaming: bool ports: "10200/tcp": null homeassistant: 2023.8.0.dev20230718 diff --git a/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run b/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run index 3b807607c44..67f4e78af8d 100755 --- a/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run +++ b/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run @@ -9,6 +9,10 @@ if bashio::config.true 'update_voices'; then flags+=('--update-voices') fi +if bashio::config.true 'streaming'; then + flags+=('--streaming') +fi + if bashio::config.true 'debug_logging'; then flags+=('--debug') fi diff --git a/piper/translations/en.yaml b/piper/translations/en.yaml index df874ab7482..9873888c3d3 100644 --- a/piper/translations/en.yaml +++ b/piper/translations/en.yaml @@ -39,6 +39,12 @@ configuration: Download the list of new voices automatically every time the add-on starts. You must also reload the Wyoming integration for Piper in Home Assistant to see new voices. + streaming: + name: Streaming + description: >- + Enable support for streaming audio. This breaks apart text at sentence + boundaries and streams the audio as its being produced. Requires at least + HA 2025.7. debug_logging: name: Debug logging description: >- From 81aaeaa4899c0b76752eaa8a0663f5bbc4d5b8b6 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Mon, 30 Jun 2025 10:26:13 -0500 Subject: [PATCH 207/346] New voices and asterisk removal (#4060) --- piper/CHANGELOG.md | 9 +++++++++ piper/build.yaml | 2 +- piper/config.yaml | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/piper/CHANGELOG.md b/piper/CHANGELOG.md index 2abdbb8631d..f49d3bc9e64 100644 --- a/piper/CHANGELOG.md +++ b/piper/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 1.6.2 + +- Split sentences on numbered lists and remove asterisks surrounding words +- Remove asterisks at the start of a line (markdown list) +- Add new voices for Malayalam (arjun, meera) +- Add new voice for Nepali (chitwan) +- Add new voices for Hindi (pratham, priyamvada) +- Add new voice for Argentinian Spanish (daniela) + ## 1.6.0 - Add support for streaming audio on sentence boundaries diff --git a/piper/build.yaml b/piper/build.yaml index ce1c451f8bd..6331385b9c5 100644 --- a/piper/build.yaml +++ b/piper/build.yaml @@ -6,5 +6,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - WYOMING_PIPER_VERSION: 1.6.0 + WYOMING_PIPER_VERSION: 1.6.2 BINARY_PIPER_VERSION: 1.2.0 diff --git a/piper/config.yaml b/piper/config.yaml index b440e880553..1077b6b90b7 100644 --- a/piper/config.yaml +++ b/piper/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.6.0 +version: 1.6.2 slug: piper name: Piper description: Text-to-speech with Piper @@ -26,7 +26,7 @@ options: streaming: true schema: voice: | - list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|cs_CZ-jirka-low|cs_CZ-jirka-medium|cy_GB-bu_tts-medium|cy_GB-gwryw_gogleddol-medium|da_DK-talesyntese-medium|da-nst_talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|el_GR-rapunzelina-low|en-gb-alan-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en-gb-southern_english_female-low|en_GB-southern_english_female-low|en_GB-vctk-medium|en-us-amy-low|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-bryce-medium|en-us-danny-low|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-john-medium|en-us-kathleen-low|en_US-kathleen-low|en_US-kristin-medium|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en-us-lessac-low|en_US-lessac-low|en-us-lessac-medium|en_US-lessac-medium|en-us-libritts-high|en_US-libritts-high|en_US-libritts_r-medium|en_US-ljspeech-high|en_US-ljspeech-medium|en_US-norman-medium|en_US-reza_ibrahim-medium|en-us-ryan-high|en_US-ryan-high|en-us-ryan-low|en_US-ryan-low|en-us-ryan-medium|en_US-ryan-medium|en_US-sam-medium|es-carlfm-x-low|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es-mls_10246-low|es-mls_9972-low|es_MX-ald-medium|es_MX-claude-high|fa_IR-amir-medium|fa_IR-ganji_adabi-medium|fa_IR-ganji-medium|fa_IR-gyro-medium|fa_IR-reza_ibrahim-medium|fi_FI-harri-low|fi_FI-harri-medium|fi-harri-low|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is-bui-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it_IT-paola-medium|it_IT-riccardo-x_low|it-riccardo_fasol-x-low|ka_GE-natia-medium|kk-iseke-x-low|kk-issai-high|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|kk-raya-x-low|lb_LU-marylux-medium|lv_LV-aivars-medium|ne-google-medium|ne-google-x-low|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|nl_NL-pim-medium|nl_NL-ronnie-medium|nl-rdh-medium|nl-rdh-x-low|no_NO-talesyntese-medium|no-talesyntese-medium|pl-mls_6892-low|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-cadu-medium|pt-br-edresson-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_BR-jeff-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru-irinia-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-lisa-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk-lada-x-low|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi-25hours-single-low|vi-vivos-x-low|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh-cn-huayan-x-low|zh_CN-huayan-x_low) + list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|cs_CZ-jirka-low|cs_CZ-jirka-medium|cy_GB-bu_tts-medium|cy_GB-gwryw_gogleddol-medium|da_DK-talesyntese-medium|da-nst_talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|el_GR-rapunzelina-low|en-gb-alan-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en-gb-southern_english_female-low|en_GB-southern_english_female-low|en_GB-vctk-medium|en-us-amy-low|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-bryce-medium|en-us-danny-low|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-john-medium|en-us-kathleen-low|en_US-kathleen-low|en_US-kristin-medium|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en-us-lessac-low|en_US-lessac-low|en-us-lessac-medium|en_US-lessac-medium|en-us-libritts-high|en_US-libritts-high|en_US-libritts_r-medium|en_US-ljspeech-high|en_US-ljspeech-medium|en_US-norman-medium|en_US-reza_ibrahim-medium|en-us-ryan-high|en_US-ryan-high|en-us-ryan-low|en_US-ryan-low|en-us-ryan-medium|en_US-ryan-medium|en_US-sam-medium|es-carlfm-x-low|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es-mls_10246-low|es-mls_9972-low|es_MX-ald-medium|es_MX-claude-high|fa_IR-amir-medium|fa_IR-ganji_adabi-medium|fa_IR-ganji-medium|fa_IR-gyro-medium|fa_IR-reza_ibrahim-medium|fi_FI-harri-low|fi_FI-harri-medium|fi-harri-low|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|hi_IN-pratham-medium|hi_IN-priyamvada-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is-bui-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it_IT-paola-medium|it_IT-riccardo-x_low|it-riccardo_fasol-x-low|ka_GE-natia-medium|kk-iseke-x-low|kk-issai-high|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|kk-raya-x-low|lb_LU-marylux-medium|lv_LV-aivars-medium|ml_IN-arjun-medium|ml_IN-meera-medium|ne-google-medium|ne-google-x-low|ne_NP-chitwan-medium|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|nl_NL-pim-medium|nl_NL-ronnie-medium|nl-rdh-medium|nl-rdh-x-low|no_NO-talesyntese-medium|no-talesyntese-medium|pl-mls_6892-low|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-cadu-medium|pt-br-edresson-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_BR-jeff-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru-irinia-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-lisa-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk-lada-x-low|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi-25hours-single-low|vi-vivos-x-low|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh-cn-huayan-x-low|zh_CN-huayan-x_low) speaker: int length_scale: float noise_scale: float From de01c4bb169727750ca57c49989a375a36464d08 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Mon, 30 Jun 2025 16:47:13 -0500 Subject: [PATCH 208/346] Update speech-to-phrase to 1.4.0 (#4062) --- speech_to_phrase/CHANGELOG.md | 7 +++++++ speech_to_phrase/DOCS.md | 28 +++++++++++++++++++--------- speech_to_phrase/build.yaml | 2 +- speech_to_phrase/config.yaml | 2 +- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/speech_to_phrase/CHANGELOG.md b/speech_to_phrase/CHANGELOG.md index 315a67cbfce..696e08415ec 100644 --- a/speech_to_phrase/CHANGELOG.md +++ b/speech_to_phrase/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 1.4.0 + +- Load answers from `assist_satellite.ask_question` in automations and scripts +- Initial support for Catalan, Czech, Greek, Basque, Romanian, Portuguese, Russian, Polish, Hindi, Persian, Finnish, Mongolian, Slovenian, Swahili, and Turkish +- Rebalance sentence probabilities to reduce number confusion +- Timer minutes step by 5 instead of 10 after 20 + ## 1.3.0 - Add Coqui STT diff --git a/speech_to_phrase/DOCS.md b/speech_to_phrase/DOCS.md index 252af1dabf9..4d197f02fd5 100644 --- a/speech_to_phrase/DOCS.md +++ b/speech_to_phrase/DOCS.md @@ -23,23 +23,33 @@ for more information. ### Voice commands -- [English](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/english.md) -- [Français (French)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/french.md) -- [Deutsch (German)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/german.md) -- [Nederlands (Dutch)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/dutch.md) -- [Spanish (Español)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/spanish.md) -- [Italian (Italiano)](https://github.com/OHF-Voice/speech-to-phrase/blob/main/docs/italian.md) +See [available voice commands](https://github.com/OHF-Voice/speech-to-phrase/blob/main/SENTENCES.md) ### Custom sentences You can add [custom sentences][] to `/share/speech-to-phrase/custom_sentences//sentences.yaml` where `` is: -* `en` - English -* `fr` - French +* `ca` - Catalan +* `cs` - Czech * `de` - German -* `nl` - Dutch +* `el` - Greek +* `en` - English * `es` - Spanish +* `eu` - Basque +* `fa` - Persian/Farsi +* `fi` - Finnish +* `fr` - French +* `hi` - Hindi * `it` - Italian +* `mn` - Mongolian +* `nl` - Dutch +* `pl` - Polish +* `pt_PT` - Portuguese +* `ro` - Romanian +* `ru` - Russian +* `sl` - Slovenian +* `sw` - Swahili +* `tr` - Turkish ## Support diff --git a/speech_to_phrase/build.yaml b/speech_to_phrase/build.yaml index 736e1c3ba0b..c4037c02bdb 100644 --- a/speech_to_phrase/build.yaml +++ b/speech_to_phrase/build.yaml @@ -6,4 +6,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - SPEECH_TO_PHRASE_VERSION: 1.3.0 + SPEECH_TO_PHRASE_VERSION: 1.4.0 diff --git a/speech_to_phrase/config.yaml b/speech_to_phrase/config.yaml index cac2f2858fd..5f86a493418 100644 --- a/speech_to_phrase/config.yaml +++ b/speech_to_phrase/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.3.0 +version: 1.4.0 slug: speech-to-phrase name: Speech-to-Phrase description: Fast and personalized local speech-to-text From 690e67bd46f6e3062dfab94a309429e70f9e38c1 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Wed, 2 Jul 2025 16:14:08 -0500 Subject: [PATCH 209/346] Bump to 1.4.1 (#4064) --- speech_to_phrase/CHANGELOG.md | 7 +++++++ speech_to_phrase/build.yaml | 2 +- speech_to_phrase/config.yaml | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/speech_to_phrase/CHANGELOG.md b/speech_to_phrase/CHANGELOG.md index 696e08415ec..5e47e032512 100644 --- a/speech_to_phrase/CHANGELOG.md +++ b/speech_to_phrase/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 1.4.1 + +- More robust parsing of `ask_question` answers from Home Assistant +- Remove intent probability normalization +- Revert to Kneser-Ney smoothing instead of Witten-Bell +- Re-add German timer sentences + ## 1.4.0 - Load answers from `assist_satellite.ask_question` in automations and scripts diff --git a/speech_to_phrase/build.yaml b/speech_to_phrase/build.yaml index c4037c02bdb..b29cae9ec87 100644 --- a/speech_to_phrase/build.yaml +++ b/speech_to_phrase/build.yaml @@ -6,4 +6,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - SPEECH_TO_PHRASE_VERSION: 1.4.0 + SPEECH_TO_PHRASE_VERSION: 1.4.1 diff --git a/speech_to_phrase/config.yaml b/speech_to_phrase/config.yaml index 5f86a493418..16045e1e8f0 100644 --- a/speech_to_phrase/config.yaml +++ b/speech_to_phrase/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.4.0 +version: 1.4.1 slug: speech-to-phrase name: Speech-to-Phrase description: Fast and personalized local speech-to-text From a01812abaa6360727923eaa057c6007b4dbffcb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Fri, 4 Jul 2025 20:39:37 +0000 Subject: [PATCH 210/346] Update nginx_proxy to Alpine 3.22, current Mozilla intermediate config (#4059) --- nginx_proxy/build.yaml | 10 +++++----- nginx_proxy/config.yaml | 2 +- nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl | 4 +++- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/nginx_proxy/build.yaml b/nginx_proxy/build.yaml index ddb806cecdd..408fdc794ce 100644 --- a/nginx_proxy/build.yaml +++ b/nginx_proxy/build.yaml @@ -1,10 +1,10 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.20 - amd64: ghcr.io/home-assistant/amd64-base:3.20 - armhf: ghcr.io/home-assistant/armhf-base:3.20 - armv7: ghcr.io/home-assistant/armv7-base:3.20 - i386: ghcr.io/home-assistant/i386-base:3.20 + aarch64: ghcr.io/home-assistant/aarch64-base:3.22 + amd64: ghcr.io/home-assistant/amd64-base:3.22 + armhf: ghcr.io/home-assistant/armhf-base:3.22 + armv7: ghcr.io/home-assistant/armv7-base:3.22 + i386: ghcr.io/home-assistant/i386-base:3.22 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io diff --git a/nginx_proxy/config.yaml b/nginx_proxy/config.yaml index af58c194020..4cc01f6582f 100644 --- a/nginx_proxy/config.yaml +++ b/nginx_proxy/config.yaml @@ -1,5 +1,5 @@ --- -version: 3.12.0 +version: 3.13.0 hassio_api: true slug: nginx_proxy name: NGINX Home Assistant SSL proxy diff --git a/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl index 4c1ea1efbb1..e993652eb4a 100644 --- a/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl +++ b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl @@ -23,8 +23,10 @@ http { server_names_hash_bucket_size 128; # intermediate configuration + # https://ssl-config.mozilla.org/#server=nginx&version=1.28.0&config=intermediate&openssl=3.5.0 ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; + ssl_ecdh_curve X25519:prime256v1:secp384r1; + ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305; ssl_prefer_server_ciphers off; {{- if .options.cloudflare }} From 95af490433d408a3bd488ec0485b70d814f78ce7 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 4 Jul 2025 23:56:38 +0200 Subject: [PATCH 211/346] Make sure all build arguments are strings (#4063) --- letsencrypt/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index fe1550e5861..bcb9e9b3b7f 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -16,8 +16,8 @@ args: CERTBOT_DNS_DESEC_VERSION: 1.2.1 CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.15 CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 - CERTBOT_DNS_DREAMHOST_VERSION: 1.0 - CERTBOT_DNS_DUCKDNS_VERSION: 1.5 + CERTBOT_DNS_DREAMHOST_VERSION: "1.0" + CERTBOT_DNS_DUCKDNS_VERSION: "1.5" CERTBOT_DNS_DYNU_VERSION: 0.0.8 CERTBOT_DNS_EASYDNS_VERSION: 0.1.4 CERTBOT_DNS_EURODNS_VERSION: 1.8.1 From 547c0f193c06e31d67fad5e986a19ce17ba98041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 5 Jul 2025 08:15:41 +0000 Subject: [PATCH 212/346] Add missing nginx_proxy 3.13.0 changelog entry (#4066) --- nginx_proxy/CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nginx_proxy/CHANGELOG.md b/nginx_proxy/CHANGELOG.md index c3fa5631e8b..da5157c6d5b 100644 --- a/nginx_proxy/CHANGELOG.md +++ b/nginx_proxy/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 3.13.0 + +- Update Alpine Linux to 3.22 (nginx 1.28.x) +- Update to current Mozilla intermediate SSL config + ## 3.12.0 - Add origin and X-Forwarded-Proto headers to fix origin issues affecting Portainer and other addons From bfd804006e92d04b6db4bfc0512d7ff01ec30a2e Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 10 Jul 2025 18:03:18 +0200 Subject: [PATCH 213/346] Add Task issue form (#4074) * Add Task issue form * Fix linting * Fix linting --- .github/ISSUE_TEMPLATE/bug_report.yml | 4 +- .github/ISSUE_TEMPLATE/config.yml | 4 +- .github/ISSUE_TEMPLATE/task.yml | 63 ++++++++++++++++++ .github/workflows/restrict-task-creation.yml | 67 ++++++++++++++++++++ 4 files changed, 134 insertions(+), 4 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/task.yml create mode 100644 .github/workflows/restrict-task-creation.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 6a331190b3a..251dca45af0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -8,9 +8,9 @@ body: value: | This issue form is for reporting bugs with **supported** setups only! - If you have a feature or enhancement request, please use the [feature request][fr] section of our [Community Forum][fr]. + If you have a feature or enhancement request, please use our [Feature Requests][fr]. - [fr]: https://community.home-assistant.io/c/feature-requests + [fr]: https://github.com/orgs/home-assistant/discussions - type: textarea validations: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 9063623ce8c..7b54d386260 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -15,8 +15,8 @@ contact_links: url: https://www.home-assistant.io/help about: We use GitHub for tracking bugs, check our website for resources on getting help. - name: Feature Request - url: https://community.home-assistant.io/c/feature-requests - about: Please use our Community Forum for making feature requests. + url: https://github.com/orgs/home-assistant/discussions + about: Please use our GitHub Discussions for making feature requests. - name: I'm unsure where to go url: https://www.home-assistant.io/join-chat about: If you are unsure where to go, then joining our chat is recommended; Just ask! diff --git a/.github/ISSUE_TEMPLATE/task.yml b/.github/ISSUE_TEMPLATE/task.yml new file mode 100644 index 00000000000..62d1a3122d4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/task.yml @@ -0,0 +1,63 @@ +--- +name: Task +description: For staff only - Create a task +type: Task +body: + - type: markdown + attributes: + value: | + ## ⚠️ RESTRICTED ACCESS + + **This form is restricted to Open Home Foundation staff and + authorized contributors only.** + + If you are a community member wanting to contribute, please: + - For bug reports: Use the + [bug report form](https://github.com/home-assistant/addons/issues/new + ?template=bug_report.yml) + - For feature requests: Submit to + [Feature Requests](https://github.com/orgs/home-assistant/discussions) + + --- + + ### For authorized contributors + + Use this form to create tasks for development work, improvements, + or other actionable items that need to be tracked. + - type: textarea + id: description + attributes: + label: Description + description: | + Provide a clear and detailed description of the task that needs + to be accomplished. + + Be specific about what needs to be done, why it's important, and + any constraints or requirements. + placeholder: | + Describe the task, including: + - What needs to be done + - Why this task is needed + - Expected outcome + - Any constraints or requirements + validations: + required: true + - type: textarea + id: additional_context + attributes: + label: Additional context + description: | + Any additional information, links, research, or context that + would be helpful. + + Include links to related issues, research, prototypes, roadmap + opportunities etc. + placeholder: | + - Roadmap opportunity: [link] + - Epic: [link] + - Feature request: [link] + - Technical design documents: [link] + - Prototype/mockup: [link] + - Dependencies: [links] + validations: + required: false diff --git a/.github/workflows/restrict-task-creation.yml b/.github/workflows/restrict-task-creation.yml new file mode 100644 index 00000000000..ccb912d7dea --- /dev/null +++ b/.github/workflows/restrict-task-creation.yml @@ -0,0 +1,67 @@ +--- +name: Restrict task creation + +# yamllint disable-line rule:truthy +on: + issues: + types: [opened] + +jobs: + check-authorization: + runs-on: ubuntu-latest + # Only run if this is a Task issue type (from the issue form) + if: github.event.issue.issue_type == 'Task' + steps: + - name: Check if user is authorized + uses: actions/github-script@v7 + with: + script: | + const issueAuthor = context.payload.issue.user.login; + + // Check if user is an organization member + try { + await github.rest.orgs.checkMembershipForUser({ + org: 'home-assistant', + username: issueAuthor + }); + console.log(`✅ ${issueAuthor} is an organization member`); + return; // Authorized + } catch (error) { + console.log( + `❌ ${issueAuthor} is not authorized to create Task issues` + ); + } + + // Close the issue with a comment + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: `Hi @${issueAuthor}, thank you for your contribution!\n\n` + + `Task issues are restricted to Open Home Foundation ` + + `staff and authorized contributors.\n\n` + + `If you would like to:\n` + + `- Report a bug: Please use the ` + + `[bug report form](https://github.com/home-assistant/` + + `addons/issues/new?template=bug_report.yml)\n` + + `- Request a feature: Please submit to ` + + `[Feature Requests](` + + `https://github.com/orgs/home-assistant/discussions)\n\n` + + `If you believe you should have access to create ` + + `Task issues, please contact the maintainers.` + }); + + await github.rest.issues.update({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + state: 'closed' + }); + + // Add a label to indicate this was auto-closed + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + labels: ['auto-closed'] + }); From 23ab24941ec52b02cba744577ad13d780e8f126e Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Mon, 14 Jul 2025 21:05:59 +0200 Subject: [PATCH 214/346] Bump Z-Wave JS to 15.9.0 (#4078) --- zwave_js/CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 72399ef022c..eea2ad9954e 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,37 @@ # Changelog +## 0.18.0 + +### Features + +- Z-Wave JS: Automatically correct the transmit power of adapters set to the SDK default powerlevels +- Z-Wave JS: Reduced the need to re-interview devices after a configuration file update +- Z-Wave JS: Avoid multi-second communication delays when pinging unreachable devices + +### Bug fixes + +- Z-Wave JS: The progress for rebuilding routes ignores Long Range devices +- Z-Wave JS: Improved reliability of inclusion, exclusion, removing and replacing failed devices + +### Config file changes + +- Add First Alert Smart Smoke & CO Alarm +- Add Inovelli VZW32-SN mmWave Switch +- Update and correct Leviton device metadata +- Add params for Enbrighten (Jasco) 59337 and 59338 +- Add fingerprint `0x8101:0x4a36` to McoHome MH4936 +- Improve accuracy of N4002/N4012 rate parameter labels +- Add Aeotec Z-Stick 10 Pro +- Fixed an issue with Yale YRD226 and similar locks where the number of user codes was not stored during the interview +- Add Shelly Wave Dimmer, Motion and H&T +- Clean up inclusion/exclusion/reset instructions in many config files + +### Detailed changelogs + +- [Z-Wave JS 15.9.0](https://github.com/zwave-js/zwave-js/releases/tag/v15.9.0) +- [Z-Wave JS 15.8.0](https://github.com/zwave-js/zwave-js/releases/tag/v15.8.0) +- [Z-Wave JS 15.7.0](https://github.com/zwave-js/zwave-js/releases/tag/v15.7.0) + ## 0.17.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 88bea2ae16d..0761b204834 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.1.0 - ZWAVEJS_VERSION: 15.6.0 + ZWAVEJS_VERSION: 15.9.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index b1164fd7143..6f27d8fd174 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.17.0 +version: 0.18.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 6562ddc6d7b021a4d15daa9b61f0fe2d66877c38 Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Wed, 23 Jul 2025 15:28:52 +0200 Subject: [PATCH 215/346] Bump Z-Wave JS to 15.10.0 (#4084) --- zwave_js/CHANGELOG.md | 26 ++++++++++++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index eea2ad9954e..f530d55699d 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,31 @@ # Changelog +## 0.19.0 + +### Features + +- Z-Wave JS: Convert Battery CC `isLow` value to a notification +- Z-Wave JS: Removed several unnecessary Indicator CC values and fixed several remaining ones + +### Bug fixes + +- Z-Wave JS: Use configured RF region as fallback for firmware update checks on older controllers +- Z-Wave JS: When turning on a Multilevel Switch with supervision, the actual value is now queried immediately instead of 5s later + +### Config file changes + +- Add fingerprint to FireAngel ZHT-630, add FireAngel ZST-630 +- Remove unlock mapping for Schlage lock FE599 +- Add Fantem FT117 range extender +- Add Zooz ZEN35 +- Remove proprietary RGB functionality for ZWA-2 +- Update label and description for ZWA-2 +- Add missing parameter 117 (Reboot) on Shelly Wave Plug S EU (QNPL-0A112) + +### Detailed changelogs + +- [Z-Wave JS 15.10.0](https://github.com/zwave-js/zwave-js/releases/tag/v15.10.0) + ## 0.18.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 0761b204834..f70318ddd0f 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.1.0 - ZWAVEJS_VERSION: 15.9.0 + ZWAVEJS_VERSION: 15.10.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 6f27d8fd174..06ec52548ba 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.18.0 +version: 0.19.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 2cf222eeb78b782b499b79d8fb04cd76a51ef9e9 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Tue, 29 Jul 2025 12:01:47 +0200 Subject: [PATCH 216/346] Bump Z-Wave JS Server to 3.2.1 (#4094) --- zwave_js/CHANGELOG.md | 12 ++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index f530d55699d..892563ab76f 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 0.20.0 + +### Features + +- Z-Wave JS Server: Bump schema to 44 +- Z-Wave JS Server: Support OTW updates through the FW update service + +### Detailed changelogs + +- [Z-Wave JS Server 3.2.1](https://github.com/zwave-js/zwave-js-server/releases/tag/3.2.1) +- [Z-Wave JS Server 3.2.0](https://github.com/zwave-js/zwave-js-server/releases/tag/3.2.0) + ## 0.19.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index f70318ddd0f..64d25961207 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 3.1.0 + ZWAVEJS_SERVER_VERSION: 3.2.1 ZWAVEJS_VERSION: 15.10.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 06ec52548ba..e6e5a18128b 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.19.0 +version: 0.20.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 1a750add9a22372de44b915b01de947652eb6d0d Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 31 Jul 2025 13:22:09 -0400 Subject: [PATCH 217/346] Deprecate multiprotocol (#3833) * Update the README * Disable automatic firmware flashing * Update the README and bump versions Revert Core minimum version bump * Change addon stage to deprecated * Add a deprecation notice to the title * Clarify firmware flashing post-deprecation * Download the Gecko SDK via a ZIP file instead of Git * Make `[deprecated]` a suffix in the addon name * Revert "Disable automatic firmware flashing" This reverts commit 8874194bf604f716c5f3441cbc25b12fbb22b58d. * Bump flasher to latest version * Revert version bump * Use Java 21 (Azul Zulu builds) to make new SLC CLI versions work --------- Co-authored-by: Stefan Agner --- silabs-multiprotocol/Dockerfile | 16 ++++++++++++---- silabs-multiprotocol/README.md | 6 +++++- silabs-multiprotocol/build.yaml | 2 +- silabs-multiprotocol/config.yaml | 4 ++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/silabs-multiprotocol/Dockerfile b/silabs-multiprotocol/Dockerfile index 3852a7fa2fa..77537c4e507 100644 --- a/silabs-multiprotocol/Dockerfile +++ b/silabs-multiprotocol/Dockerfile @@ -90,25 +90,33 @@ FROM --platform=linux/amd64 cross-builder-${BUILD_ARCH} AS zigbeed-builder ARG GECKO_SDK_VERSION +# Install and sanity check SLC CLI binary RUN \ set -x \ && apt-get install -y --no-install-recommends \ python3 \ python3-jinja2 \ python3-pip \ - openjdk-17-jre \ git-lfs \ + gnupg \ unzip \ + && curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" > /etc/apt/sources.list.d/zulu.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + zulu21-jre \ && curl -O https://www.silabs.com/documents/login/software/slc_cli_linux.zip \ && unzip slc_cli_linux.zip \ - && cd slc_cli/ && chmod +x slc + && cd slc_cli/ && chmod +x slc \ + && ./slc --version ENV PATH="/usr/src/slc_cli/:$PATH" RUN \ set -x \ - && git clone --depth 1 -b ${GECKO_SDK_VERSION} \ - https://github.com/SiliconLabs/gecko_sdk.git + && curl -o gecko_sdk.zip -L https://github.com/SiliconLabs/gecko_sdk/releases/download/${GECKO_SDK_VERSION}/gecko-sdk.zip \ + && unzip -q -d gecko_sdk gecko_sdk.zip \ + && rm gecko_sdk.zip # zigbeed links against libcpc.so COPY --from=cpcd-builder /usr/local/ /usr/${DEBIAN_CROSS_PREFIX}/ diff --git a/silabs-multiprotocol/README.md b/silabs-multiprotocol/README.md index ef701bee92a..407d96a398e 100644 --- a/silabs-multiprotocol/README.md +++ b/silabs-multiprotocol/README.md @@ -1,4 +1,8 @@ -# Home Assistant Add-on: SiliconLabs Zigbee/OpenThread Multiprotocol Add-on +> [!CAUTION] +> Multiprotocol is no longer supported and will be removed in the near future! +> [Disable multiprotocol support](https://connectzbt1.home-assistant.io/procedures/disable-multiprotocol/) by migrating your radio back to Zigbee or Thread firmware. + +# \[DEPRECATED\] Home Assistant Add-on: SiliconLabs Zigbee/OpenThread Multiprotocol Add-on Zigbee/OpenThread Multiprotocol container for Silicon Labs based radios such as Home Assistant Yellow, Home Assistant SkyConnect, and Home Assistant Connect ZBT-1. diff --git a/silabs-multiprotocol/build.yaml b/silabs-multiprotocol/build.yaml index b6983d81fbd..eced3a05365 100644 --- a/silabs-multiprotocol/build.yaml +++ b/silabs-multiprotocol/build.yaml @@ -6,4 +6,4 @@ build_from: args: CPCD_VERSION: v4.3.1 GECKO_SDK_VERSION: v4.3.1 - UNIVERSAL_SILABS_FLASHER: 0.0.17 + UNIVERSAL_SILABS_FLASHER: 0.0.31 diff --git a/silabs-multiprotocol/config.yaml b/silabs-multiprotocol/config.yaml index 6d5b2b11f6a..675288ef698 100644 --- a/silabs-multiprotocol/config.yaml +++ b/silabs-multiprotocol/config.yaml @@ -1,7 +1,7 @@ --- version: 2.4.5 slug: silabs_multiprotocol -name: Silicon Labs Multiprotocol +name: "Silicon Labs Multiprotocol [deprecated]" description: Zigbee and OpenThread multiprotocol add-on url: > https://github.com/home-assistant/addons/tree/master/silabs-multiprotocol @@ -50,5 +50,5 @@ schema: otbr_enable: bool otbr_log_level: list(debug|info|notice|warning|error|critical|alert|emergency) otbr_firewall: bool -stage: experimental +stage: deprecated startup: services From 7cdf97bff3aee3ca9c1f1c1343c220e316b85d34 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Tue, 5 Aug 2025 01:49:24 -0500 Subject: [PATCH 218/346] Bump to wyoming 1.7.2 for fix (#4099) --- piper/CHANGELOG.md | 4 ++++ piper/build.yaml | 2 +- piper/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/piper/CHANGELOG.md b/piper/CHANGELOG.md index f49d3bc9e64..544a3a8fa3b 100644 --- a/piper/CHANGELOG.md +++ b/piper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.6.3 + +- Bump wyoming to 1.7.2 to fix event data error + ## 1.6.2 - Split sentences on numbered lists and remove asterisks surrounding words diff --git a/piper/build.yaml b/piper/build.yaml index 6331385b9c5..5526e166536 100644 --- a/piper/build.yaml +++ b/piper/build.yaml @@ -6,5 +6,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - WYOMING_PIPER_VERSION: 1.6.2 + WYOMING_PIPER_VERSION: 1.6.3 BINARY_PIPER_VERSION: 1.2.0 diff --git a/piper/config.yaml b/piper/config.yaml index 1077b6b90b7..1b7e098b86b 100644 --- a/piper/config.yaml +++ b/piper/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.6.2 +version: 1.6.3 slug: piper name: Piper description: Text-to-speech with Piper From be45e22e89ec30809d2c053969cc4b8a7c29d77e Mon Sep 17 00:00:00 2001 From: Christian Wendt Date: Thu, 7 Aug 2025 14:07:52 +0200 Subject: [PATCH 219/346] Only deploy challenge for main domain (#4073) - domain aliases are handled through CNAME records - update CHANGELOG - bump version --- duckdns/CHANGELOG.md | 4 ++++ duckdns/config.yaml | 2 +- duckdns/rootfs/root/hooks.sh | 18 +++++++++++------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index 57f6382ed9c..f0d8a9c61bd 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.20.0 + +- Only deploy challenge for the main domain, aliases are handled through CNAME records + ## 1.19.0 - Wait for up to 60 seconds for TXT record to propagate when deploying challenges diff --git a/duckdns/config.yaml b/duckdns/config.yaml index a09379ac336..8904074f4a2 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.19.0 +version: 1.20.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/rootfs/root/hooks.sh b/duckdns/rootfs/root/hooks.sh index d59024a2dfe..17545100afd 100755 --- a/duckdns/rootfs/root/hooks.sh +++ b/duckdns/rootfs/root/hooks.sh @@ -31,12 +31,14 @@ deploy_challenge() { # TXT record. For HTTP validation it is the value that is expected # be found in the $TOKEN_FILENAME file. - curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=$TOKEN_VALUE" - timeout 60s bash -c -- " - while ! dig -t txt \"_acme-challenge.$ALIAS\" | grep -F \"$TOKEN_VALUE\" > /dev/null; do - sleep 5; - done - " + if [ "$DOMAIN" = "$ALIAS" ]; then + curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=$TOKEN_VALUE" + timeout 60s bash -c -- " + while ! dig -t txt \"_acme-challenge.$ALIAS\" | grep -F \"$TOKEN_VALUE\" > /dev/null; do + sleep 5; + done + " + fi } clean_challenge() { @@ -49,7 +51,9 @@ clean_challenge() { # # The parameters are the same as for deploy_challenge. - curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=removed&clear=true" + if [ "$DOMAIN" = "$ALIAS" ]; then + curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=removed&clear=true" + fi } deploy_cert() { From b22d0a87856a9c37e97654f43d153e89d7b759dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 15:21:14 +0200 Subject: [PATCH 220/346] build(deps): bump docker/login-action from 3.4.0 to 3.5.0 (#4103) Bumps [docker/login-action](https://github.com/docker/login-action) from 3.4.0 to 3.5.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v3.4.0...v3.5.0) --- updated-dependencies: - dependency-name: docker/login-action dependency-version: 3.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 12b31549fca..13cd579a7af 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -100,7 +100,7 @@ jobs: - name: Login to DockerHub if: env.BUILD_ARGS == '--docker-hub-check' - uses: docker/login-action@v3.4.0 + uses: docker/login-action@v3.5.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From c450e808b1a6133c1589c31f05eba42ea649ec26 Mon Sep 17 00:00:00 2001 From: Xebozone Date: Mon, 11 Aug 2025 21:18:45 +0700 Subject: [PATCH 221/346] duckdns: Fix limitation of single TXT record (#4106) * run: - Call Dehydrator per-domain or alias due to limitation in DuckDNS which can only handle a single TXT record at a time hooks: - Output text to show that domain or alias is being processed - Remove filtering of the domain = alias, otherwise, aliases are not getting renewed - DuckDNS NameServer TTL is observed at 60s, so, we need to wait longer than that * Added CHANGELOG * Update duckdns/rootfs/root/hooks.sh Co-authored-by: Stefan Agner * Update duckdns/CHANGELOG.md Co-authored-by: Stefan Agner * Update duckdns/CHANGELOG.md Co-authored-by: Stefan Agner * Removed unused domain_args * Update duckdns/CHANGELOG.md Indeed, My original comment was regarding the DuckDNS Nameserver TTL. Co-authored-by: Stefan Agner * Spelling --------- Co-authored-by: Stefan Agner --- duckdns/CHANGELOG.md | 7 +++++++ duckdns/config.yaml | 2 +- .../rootfs/etc/s6-overlay/s6-rc.d/duckdns/run | 5 ++--- duckdns/rootfs/root/hooks.sh | 20 +++++++++---------- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index f0d8a9c61bd..1642f018a52 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 1.21.0 + +- Call Dehydrator per-domain or alias due to limitation in DuckDNS which can only handle a single TXT record at a time +- Log the domain or alias being processed +- Remove filtering of the domain = alias, otherwise, aliases are not getting renewed +- Increase DuckDNS name server timeout to 120s + ## 1.20.0 - Only deploy challenge for the main domain, aliases are handled through CNAME records diff --git a/duckdns/config.yaml b/duckdns/config.yaml index 8904074f4a2..cb931d940a1 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.20.0 +version: 1.21.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run index 78e01737e02..5ae36f899fb 100755 --- a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run +++ b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run @@ -18,7 +18,6 @@ ALGO=$(bashio::config 'lets_encrypt.algo') # Function that performs a renew function le_renew() { - local domain_args=() local domains='' local aliases='' @@ -36,10 +35,10 @@ function le_renew() { bashio::log.info "Renew certificate for domains: $(echo -n "${domains}") and aliases: $(echo -n "${aliases}")" for domain in $(echo "${domains}" "${aliases}" | tr ' ' '\n' | sort | uniq); do - domain_args+=("--domain" "${domain}") + # DuckDNS does not support more than a single TXT record, so, you need to process echo domain or alias separately + dehydrated --cron --algo "${ALGO}" --hook /root/hooks.sh --challenge dns-01 --domain "${domain}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true done - dehydrated --cron --algo "${ALGO}" --hook /root/hooks.sh --challenge dns-01 "${domain_args[@]}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true LE_UPDATE="$(date +%s)" } diff --git a/duckdns/rootfs/root/hooks.sh b/duckdns/rootfs/root/hooks.sh index 17545100afd..8d5f6b7af64 100755 --- a/duckdns/rootfs/root/hooks.sh +++ b/duckdns/rootfs/root/hooks.sh @@ -14,6 +14,8 @@ deploy_challenge() { local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}" ALIAS ALIAS="$(jq --raw-output --exit-status "[.aliases[]|{(.domain):.alias}]|add.\"$DOMAIN\"" $CONFIG_PATH)" || ALIAS="$DOMAIN" + bashio::log.info "Processing domain: $DOMAIN" + # This hook is called once for every domain that needs to be # validated, including any alternative names you may have listed. # @@ -31,14 +33,12 @@ deploy_challenge() { # TXT record. For HTTP validation it is the value that is expected # be found in the $TOKEN_FILENAME file. - if [ "$DOMAIN" = "$ALIAS" ]; then - curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=$TOKEN_VALUE" - timeout 60s bash -c -- " - while ! dig -t txt \"_acme-challenge.$ALIAS\" | grep -F \"$TOKEN_VALUE\" > /dev/null; do - sleep 5; - done - " - fi + curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=$TOKEN_VALUE" + timeout 120s bash -c -- " + while ! dig -t txt \"_acme-challenge.$ALIAS\" | grep -F \"$TOKEN_VALUE\" > /dev/null; do + sleep 5; + done + " } clean_challenge() { @@ -51,9 +51,7 @@ clean_challenge() { # # The parameters are the same as for deploy_challenge. - if [ "$DOMAIN" = "$ALIAS" ]; then - curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=removed&clear=true" - fi + curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=removed&clear=true" } deploy_cert() { From 833a777df9ac6a51c1a673cc25496845994c3a87 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 11 Aug 2025 16:19:29 +0200 Subject: [PATCH 222/346] Restart VLC when PulseAudio socket disappears (#4105) * Restart VLC when PulseAudio socket disappears It seems that VLC on its own does not handle it well when the PulseAudio socket disappears. The following lines are printed if the user attempts to play something after an audio plug-in restart ``` vlcpulse audio output error: stream connection failure: Bad state main audio output error: module not functional main decoder error: failed to create audio output ``` Monitor the socket file using inotify and stop the VLC service if the PulseAudio socket disappears. Also make sure to wait for the PulseAudio socket file to be present before starting VLC to avoid audio output errors right on restart. * Bump to Alpine 3.22 * Add log message that we are waiting for PulseAudio socket * Use full name PulseAudio when referring to PulseAudio socket --- vlc/CHANGELOG.md | 5 ++++ vlc/Dockerfile | 1 + vlc/build.yaml | 8 ++--- vlc/config.yaml | 2 +- .../s6-rc.d/pulse-monitor/dependencies.d/base | 0 .../etc/s6-overlay/s6-rc.d/pulse-monitor/run | 29 +++++++++++++++++++ .../etc/s6-overlay/s6-rc.d/pulse-monitor/type | 1 + .../s6-rc.d/user/contents.d/pulse-monitor | 0 vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run | 9 ++++++ 9 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/dependencies.d/base create mode 100755 vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/run create mode 100644 vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/type create mode 100644 vlc/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/pulse-monitor diff --git a/vlc/CHANGELOG.md b/vlc/CHANGELOG.md index b505485fa3d..3c9cb387b26 100644 --- a/vlc/CHANGELOG.md +++ b/vlc/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.3.1 + +- Restart VLC on Audio plug-in restart +- Update to Alpine 3.22 + ## 0.3.0 - Prevent race condition reading secrets on startup diff --git a/vlc/Dockerfile b/vlc/Dockerfile index 048f2269563..21ab5499d4f 100644 --- a/vlc/Dockerfile +++ b/vlc/Dockerfile @@ -6,6 +6,7 @@ WORKDIR /usr/src RUN \ set -x \ && apk add --no-cache \ + inotify-tools \ nginx \ pwgen \ vlc \ diff --git a/vlc/build.yaml b/vlc/build.yaml index ecb8cacf60b..4b47c5221c1 100644 --- a/vlc/build.yaml +++ b/vlc/build.yaml @@ -1,9 +1,9 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.19 - amd64: ghcr.io/home-assistant/amd64-base:3.19 - armv7: ghcr.io/home-assistant/armv7-base:3.19 - i386: ghcr.io/home-assistant/i386-base:3.19 + aarch64: ghcr.io/home-assistant/aarch64-base:3.22 + amd64: ghcr.io/home-assistant/amd64-base:3.22 + armv7: ghcr.io/home-assistant/armv7-base:3.22 + i386: ghcr.io/home-assistant/i386-base:3.22 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io diff --git a/vlc/config.yaml b/vlc/config.yaml index 92364b428f2..381cbb8d7d1 100644 --- a/vlc/config.yaml +++ b/vlc/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.3.0 +version: 0.3.1 slug: vlc name: VLC description: Turn your device into a Media Player with VLC diff --git a/vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/dependencies.d/base b/vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/dependencies.d/base new file mode 100644 index 00000000000..e69de29bb2d diff --git a/vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/run b/vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/run new file mode 100755 index 00000000000..714f2a1f097 --- /dev/null +++ b/vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/run @@ -0,0 +1,29 @@ +#!/command/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash +# ============================================================================== +# PulseAudio socket monitor service +# ============================================================================== + +bashio::log.info "Starting PulseAudio socket monitor..." + +while true; do + if [ -S "/run/audio/pulse.sock" ]; then + bashio::log.debug "Monitoring /run/audio/pulse.sock for changes..." + if ! inotifywait -q -e delete_self "/run/audio/pulse.sock"; then + bashio::log.warning "inotifywait failed, retrying in 5 seconds..." + sleep 5 + continue + fi + + bashio::log.info "PulseAudio socket deleted, restarting VLC service..." + s6-rc -d change vlc + sleep 1 + s6-rc -u change vlc + + bashio::log.info "VLC service restarted" + else + bashio::log.debug "PulseAudio socket not found, waiting 5 seconds..." + sleep 5 + fi +done diff --git a/vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/type b/vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/type new file mode 100644 index 00000000000..1780f9f44ef --- /dev/null +++ b/vlc/rootfs/etc/s6-overlay/s6-rc.d/pulse-monitor/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/vlc/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/pulse-monitor b/vlc/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/pulse-monitor new file mode 100644 index 00000000000..e69de29bb2d diff --git a/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run b/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run index 913716ffba8..41dff72bc92 100755 --- a/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run +++ b/vlc/rootfs/etc/s6-overlay/s6-rc.d/vlc/run @@ -7,6 +7,15 @@ # shellcheck disable=SC2155 readonly PASSWORD="$(cat /data/secret)" +bashio::log.info "Waiting for PulseAudio socket to become available..." + +while [ ! -S "/run/audio/pulse.sock" ] +do + sleep 1 +done + +bashio::log.info "PulseAudio socket available, starting VLC" + # Send out discovery information to Home Assistant /etc/s6-overlay/scripts/vlc-discovery & From 29a2a83966e6a277db50c010cfae1ed9186b16ba Mon Sep 17 00:00:00 2001 From: Xebozone Date: Mon, 11 Aug 2025 22:07:30 +0700 Subject: [PATCH 223/346] - Fix Bash IO logging issue (#4108) - Version Bump - Update ChangeLog --- duckdns/CHANGELOG.md | 4 ++++ duckdns/config.yaml | 2 +- duckdns/rootfs/root/hooks.sh | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index 1642f018a52..f19735226e5 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.22.0 + +- Fix bashio logger issue + ## 1.21.0 - Call Dehydrator per-domain or alias due to limitation in DuckDNS which can only handle a single TXT record at a time diff --git a/duckdns/config.yaml b/duckdns/config.yaml index cb931d940a1..99d74285c13 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.21.0 +version: 1.22.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/rootfs/root/hooks.sh b/duckdns/rootfs/root/hooks.sh index 8d5f6b7af64..62a1d0e8a0e 100755 --- a/duckdns/rootfs/root/hooks.sh +++ b/duckdns/rootfs/root/hooks.sh @@ -14,7 +14,8 @@ deploy_challenge() { local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}" ALIAS ALIAS="$(jq --raw-output --exit-status "[.aliases[]|{(.domain):.alias}]|add.\"$DOMAIN\"" $CONFIG_PATH)" || ALIAS="$DOMAIN" - bashio::log.info "Processing domain: $DOMAIN" + echo "Processing domain: $DOMAIN" + echo "" # This hook is called once for every domain that needs to be # validated, including any alternative names you may have listed. From 3b70294fc333be6c87ab9ddfccdb2f121f6308be Mon Sep 17 00:00:00 2001 From: HWXLR8 <68k@segv.moe> Date: Mon, 11 Aug 2025 12:14:48 -0400 Subject: [PATCH 224/346] ssh: Disable keyboard interactive authentication method if key used (#4096) * Disable keyboard interactive authentication method if key used * Bump version number, add to changelog * Add hyphen to changelog entry --- ssh/CHANGELOG.md | 4 ++++ ssh/config.yaml | 2 +- ssh/rootfs/usr/share/tempio/sshd_config | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index c806f8ddfb8..4baeb664865 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 9.19.0 + +- Disable keyboard interactive authentication method if keys are used + ## 9.18.0 - Upgrade Home Assistant CLI to 4.39.0 diff --git a/ssh/config.yaml b/ssh/config.yaml index c6acb6776b2..0d3a5b63473 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.18.0 +version: 9.19.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH diff --git a/ssh/rootfs/usr/share/tempio/sshd_config b/ssh/rootfs/usr/share/tempio/sshd_config index 604dd7d777c..11377b240e8 100644 --- a/ssh/rootfs/usr/share/tempio/sshd_config +++ b/ssh/rootfs/usr/share/tempio/sshd_config @@ -19,6 +19,7 @@ PrintMotd no {{ if .authorized_keys }} PasswordAuthentication no +KbdInteractiveAuthentication no {{ else if .password }} PasswordAuthentication yes PermitEmptyPasswords no From 429794d880c513c6aef598bc71e4ab67ec30fcbb Mon Sep 17 00:00:00 2001 From: Xebozone Date: Tue, 12 Aug 2025 04:20:49 +0700 Subject: [PATCH 225/346] - Add '--' to GREP to signify no more parameters. This should help if the Token contains a dash in it (#4109) - Bumped version - Updated changelog --- duckdns/CHANGELOG.md | 4 ++++ duckdns/config.yaml | 2 +- duckdns/rootfs/root/hooks.sh | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index f19735226e5..de87076dcc0 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.23.0 + +- Improve GREP syntax for better stability for tokens with dashes + ## 1.22.0 - Fix bashio logger issue diff --git a/duckdns/config.yaml b/duckdns/config.yaml index 99d74285c13..5e5e9cb1c52 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.22.0 +version: 1.23.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/rootfs/root/hooks.sh b/duckdns/rootfs/root/hooks.sh index 62a1d0e8a0e..16a9297b1e6 100755 --- a/duckdns/rootfs/root/hooks.sh +++ b/duckdns/rootfs/root/hooks.sh @@ -36,7 +36,7 @@ deploy_challenge() { curl -s "https://www.duckdns.org/update?domains=$ALIAS&token=$SYS_TOKEN&txt=$TOKEN_VALUE" timeout 120s bash -c -- " - while ! dig -t txt \"_acme-challenge.$ALIAS\" | grep -F \"$TOKEN_VALUE\" > /dev/null; do + while ! dig -t txt \"_acme-challenge.$ALIAS\" | grep -F -- \"$TOKEN_VALUE\" > /dev/null; do sleep 5; done " From 0fce3cd3012f7d77c68b65a091be572f2785d58d Mon Sep 17 00:00:00 2001 From: Xebozone Date: Wed, 13 Aug 2025 04:05:00 +0700 Subject: [PATCH 226/346] Add a pass to combine individual domain signatures into a single certificate (#4112) --- duckdns/CHANGELOG.md | 4 ++++ duckdns/config.yaml | 2 +- duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index de87076dcc0..4f42472031a 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.24.0 + +- Add a pass to combine individual domains into a single certificate + ## 1.23.0 - Improve GREP syntax for better stability for tokens with dashes diff --git a/duckdns/config.yaml b/duckdns/config.yaml index 5e5e9cb1c52..90d678493d6 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.23.0 +version: 1.24.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run index 5ae36f899fb..a8592d108b3 100755 --- a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run +++ b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run @@ -18,6 +18,7 @@ ALGO=$(bashio::config 'lets_encrypt.algo') # Function that performs a renew function le_renew() { + local domain_args=() local domains='' local aliases='' @@ -35,9 +36,15 @@ function le_renew() { bashio::log.info "Renew certificate for domains: $(echo -n "${domains}") and aliases: $(echo -n "${aliases}")" for domain in $(echo "${domains}" "${aliases}" | tr ' ' '\n' | sort | uniq); do + domain_args+=("--domain" "${domain}") + # DuckDNS does not support more than a single TXT record, so, you need to process echo domain or alias separately dehydrated --cron --algo "${ALGO}" --hook /root/hooks.sh --challenge dns-01 --domain "${domain}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true done + + # This final stage will combine everything into a single cert with SANs for the aliases + bashio::log.info "Final pass to combine individual certificates" + dehydrated --cron --algo "${ALGO}" --hook /root/hooks.sh --challenge dns-01 "${domain_args[@]}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true LE_UPDATE="$(date +%s)" } From ad209a79ae6f3186e2f49b3d38c6a07817a905d4 Mon Sep 17 00:00:00 2001 From: Maxim Smirnov Date: Wed, 13 Aug 2025 00:11:11 +0300 Subject: [PATCH 227/346] Allow to specify ezsp-baudrate in silabs_flasher (#4101) * Allow to specify ezsp-baudrate in silabs_flasher * Make ezsp_baudrate optional * Put back missed quote * Make array to specify arg, rather than string compilation * Fix config value in array * Fix separate array elements with space * Fix linter warning --- silabs_flasher/CHANGELOG.md | 4 ++++ silabs_flasher/DOCS.md | 13 +++++++------ silabs_flasher/config.yaml | 4 +++- .../s6-overlay/scripts/universal-silabs-flasher-up | 9 +++++++-- silabs_flasher/translations/en.yaml | 5 +++++ 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/silabs_flasher/CHANGELOG.md b/silabs_flasher/CHANGELOG.md index 22b7b305c04..5d2cb602ac7 100644 --- a/silabs_flasher/CHANGELOG.md +++ b/silabs_flasher/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.3.3 + +- Allow to start universal-silabs-flasher with custom ezsp baudrate + ## 0.3.2 - Update flasher script to work with Home Assistant Yellow with CM5 diff --git a/silabs_flasher/DOCS.md b/silabs_flasher/DOCS.md index 714467c013a..27f9b3832ae 100644 --- a/silabs_flasher/DOCS.md +++ b/silabs_flasher/DOCS.md @@ -21,12 +21,13 @@ SkyConnect/ZBT-1 or other USB based wireless adapters). Add-on configuration: -| Configuration | Description | -|--------------------|--------------------------------------------------------| -| device (mandatory) | Serial service where the Silicon Labs radio is attached | -| baudrate | Serial port baudrate (depends on firmware) | -| flow_control | If hardware flow control should be enabled (depends on firmware) | -| firmware_url | Custom URL to flash firmware from | +| Configuration | Description | +|---------------------|--------------------------------------------------------| +| device (mandatory) | Serial service where the Silicon Labs radio is attached | +| bootloader_baudrate | Serial port baudrate for gecko bootloader (depends on firmware) | +| ezsp_baudrate | Serial port baudrate for ezsp (depends on firmware) | +| flow_control | If hardware flow control should be enabled (depends on firmware) | +| firmware_url | Custom URL to flash firmware from | ## Support diff --git a/silabs_flasher/config.yaml b/silabs_flasher/config.yaml index a9f33694b5d..3467edde2d1 100644 --- a/silabs_flasher/config.yaml +++ b/silabs_flasher/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.3.2 +version: 0.3.3 slug: silabs_flasher name: Silicon Labs Flasher description: Silicon Labs firmware flasher add-on @@ -18,11 +18,13 @@ init: false options: device: null bootloader_baudrate: "115200" + ezsp_baudrate: null flow_control: true verbose: false schema: device: device(subsystem=tty)? bootloader_baudrate: list(57600|115200|230400|460800|921600) + ezsp_baudrate: int? flow_control: bool? firmware_url: str? verbose: bool? diff --git a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up index 5437841279e..1094e3b9ed2 100755 --- a/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ b/silabs_flasher/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up @@ -109,13 +109,18 @@ if bashio::config.true 'verbose'; then verbose="-v" fi +declare -a ezsp_baudrate_arg=() +if bashio::config.has_value 'ezsp_baudrate'; then + baud="$(bashio::config 'ezsp_baudrate')" + ezsp_baudrate_arg=(--ezsp-baudrate "$baud") +fi + bashio::log.info "Starting universal-silabs-flasher with ${device} (bootloader baudrate ${bootloader_baudrate})" # shellcheck disable=SC2086 universal-silabs-flasher \ ${verbose} \ --device ${device} \ --bootloader-baudrate "${bootloader_baudrate}" \ + "${ezsp_baudrate_arg[@]}" \ ${gpio_reset_flag} \ flash --force --firmware "/root/${firmware}" - - diff --git a/silabs_flasher/translations/en.yaml b/silabs_flasher/translations/en.yaml index 3a8065549fd..9f07e2dbfa9 100644 --- a/silabs_flasher/translations/en.yaml +++ b/silabs_flasher/translations/en.yaml @@ -8,6 +8,11 @@ configuration: description: >- The serial port baudrate used to communicate with the Silicon Labs radio in bootloader mode. + ezsp_baudrate: + name: EZSP Baudrate + description: >- + The serial port baudrate used to communicate with the Silicon Labs radio + in ezsp mode. flow_control: name: Hardware flow control description: Enable hardware flow control for serial port. From c433557ddd7d8bdde197d0cdb8ff79ba609cbb28 Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Wed, 13 Aug 2025 12:22:22 +0200 Subject: [PATCH 228/346] Bump Z-Wave JS to 15.11.0 (#4114) --- zwave_js/CHANGELOG.md | 27 +++++++++++++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 892563ab76f..5516f2fe71b 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## 0.21.0 + +### Features + +- Z-Wave JS: Add support for defining Scene labels in config files +- Z-Wave JS: Disable SmartStart provisioning entries after 5 failed inclusion attempts + +### Bug fixes + +- Z-Wave JS: Fixed an issue where Aeotec Z-Stick 5 would become unresponsive during NVM backup +- Z-Wave JS: Fixed firmware update progress jumping back and forth +- Z-Wave JS: Fixed incorrect long-term averaging of RSSI values +- Z-Wave JS: Ensure failures during NVM migration are surfaced to the application + +### Config file changes + +- Prepare Inovelli VZW31-SN for future firmware upgrade +- Add productID `0x0111` to Fakro AMZ Solar awning +- Add ECO-DIM.07 800 series version +- Update Aeotec Trisensor 8 to firmware 2.8.4 +- Remove non-existent parameter 107 for Shelly Wave Plus S +- Fix typo in Shelly dimmer output label + +### Detailed changelogs + +- [Z-Wave JS 15.11.0](https://github.com/zwave-js/zwave-js/releases/tag/v15.11.0) + ## 0.20.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 64d25961207..d77fcb4a3c6 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.2.1 - ZWAVEJS_VERSION: 15.10.0 + ZWAVEJS_VERSION: 15.11.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index e6e5a18128b..ad3e703edfc 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.20.0 +version: 0.21.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 21a00ece07d22f9fbc5838bdf2da884419708e4f Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 14 Aug 2025 11:27:01 +0200 Subject: [PATCH 229/346] matter_server: Bump Python Matter server to 8.1.0 (#4116) --- matter_server/CHANGELOG.md | 5 +++++ matter_server/build.yaml | 6 +++--- matter_server/config.yaml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 6359775cf3f..f172cf91ca8 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 8.1.0 + +- Bump Python Matter Server to [8.1.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/8.1.0) +- Update bashio to 0.17.1 + ## 8.0.0 - Bump Python Matter Server to [8.0.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/8.0.0) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 06f8b64214b..38b4ed2929b 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,8 +1,8 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:8.0.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:8.0.0 + aarch64: ghcr.io/home-assistant-libs/python-matter-server:8.1.0 + amd64: ghcr.io/home-assistant-libs/python-matter-server:8.1.0 args: - BASHIO_VERSION: 0.16.2 + BASHIO_VERSION: 0.17.1 TEMPIO_VERSION: 2024.11.2 S6_OVERLAY_VERSION: 3.1.6.2 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index b4267fda7a1..631e6570297 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.0.0 +version: 8.1.0 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From b4c42bb94bc82f14de5df9d00d9b2202b6543fa7 Mon Sep 17 00:00:00 2001 From: Xebozone Date: Fri, 15 Aug 2025 22:31:14 +0700 Subject: [PATCH 230/346] duckdns: Wildcard Domain Support (#4115) * Added wildcard domain support. To use this, you specify your domain as "*.yourDomain.duckdns.org > yourDomain.duckdns.org" run: - Separate array entries with newlines than spaces to allow for domains with spaces - Improve logging - Clarify code comment other: - Bump version - Update CHANGELOG * Adjust spacing * Remove .gitIgnore, added by mistake * - Added IFS Safety - Added to DOCS with example of alternative Wildcard syntax as reported by other users - Added to DOCS to suggest using a low TTL on CNAMEs * - Replace newline-delimited or space-delimited strings with arrays - Add wildcard alias support for IP updates by sanitising the input into unique 'duckdns.org' domains - Added helpful comments * - Forgot to quote the alias when adding to array. Fixes lint complaint. * - Some code safety to localise arrays - Clarifying comment * Nitpick spacing * Use of associative array to track additions when combining arrays --- duckdns/CHANGELOG.md | 4 +++ duckdns/DOCS.md | 2 ++ duckdns/config.yaml | 2 +- .../rootfs/etc/s6-overlay/s6-rc.d/duckdns/run | 35 +++++++++++++------ 4 files changed, 32 insertions(+), 11 deletions(-) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index 4f42472031a..af82080c7db 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.25.0 + +- Wildcard support when using domains as "*.yourDomain.duckdns.org > yourDomain.duckdns.org" + ## 1.24.0 - Add a pass to combine individual domains into a single certificate diff --git a/duckdns/DOCS.md b/duckdns/DOCS.md index 029f013e728..9ce4c1baea9 100644 --- a/duckdns/DOCS.md +++ b/duckdns/DOCS.md @@ -98,12 +98,14 @@ The DuckDNS authentication token found at the top of the DuckDNS account landing ### Option: `domains` A list of DuckDNS subdomains registered under your account. An acceptable naming convention is `my-domain.duckdns.org`. +Wildcard certificates can also be issued by using the syntax `*.my-domain.duckdns.org > my-domain.duckdns.org`. ### Option: `aliases` (optional) A list aliases of domains configured on the `domains` option. This is useful in cases where you would like to use your own domain. Create a CNAME record to point at the DuckDNS subdomain and set this value accordingly. +It is recommended to set the TTL value on your CNAME to a low value, typically under 60. For example: diff --git a/duckdns/config.yaml b/duckdns/config.yaml index 90d678493d6..bc067eb0660 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.24.0 +version: 1.25.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run index a8592d108b3..2c1c86049f0 100755 --- a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run +++ b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run @@ -20,25 +20,38 @@ ALGO=$(bashio::config 'lets_encrypt.algo') function le_renew() { local domain_args=() local domains='' - local aliases='' + local aliases=() + local domainsAndAliases=() domains=$(bashio::config 'domains') # Prepare domain for Let's Encrypt + + # Get a list of aliases against domains first from the options file for domain in ${domains}; do for alias in $(jq --raw-output --exit-status "[.aliases[]|{(.alias):.domain}]|add.\"${domain}\" | select(. != null)" /data/options.json) ; do - aliases="${aliases} ${alias}" + aliases+=("${alias}") done done - aliases="$(echo "${aliases}" | tr ' ' '\n' | sort | uniq)" - - bashio::log.info "Renew certificate for domains: $(echo -n "${domains}") and aliases: $(echo -n "${aliases}")" + readarray -t domainsarray <<< "$domains" # line-separated list of domains into an array + bashio::log.info "Renew certificate for domains: $(echo -n "${domainsarray[@]}") and aliases: $(echo -n "${aliases[@]}")" + + # Combine domains and aliases into one array, skipping duplicates + declare -A seen + for element in "${domainsarray[@]}" "${aliases[@]}"; do + if [[ -n "${element}" && -z "${seen["$element"]+x}" ]]; then + seen["$element"]=1 + domainsAndAliases+=("${element}") + fi + done + + # Actually do the renewals below - for domain in $(echo "${domains}" "${aliases}" | tr ' ' '\n' | sort | uniq); do + for domain in "${domainsAndAliases[@]}"; do domain_args+=("--domain" "${domain}") - # DuckDNS does not support more than a single TXT record, so, you need to process echo domain or alias separately + # DuckDNS does not support more than a single TXT record, so, process each domain or alias separately and combine later dehydrated --cron --algo "${ALGO}" --hook /root/hooks.sh --challenge dns-01 --domain "${domain}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true done @@ -73,7 +86,6 @@ fi # Run duckdns bashio::log.info "Starting DuckDNS..." while true; do - [[ ${IPV4} != *:/* ]] && ipv4=${IPV4} || ipv4=$(curl -s -m 10 "${IPV4}") [[ ${IPV6} != *:/* ]] && ipv6=${IPV6} || ipv6=$(curl -s -m 10 "${IPV6}") @@ -89,9 +101,12 @@ while true; do fi done fi + + # Sanitise the DOMAINS, filtering out duplicates, subdomains and wildcard aliases and retaining just the instances of my-domain.duckdns.org + duckdnsDomains=$(echo "$DOMAINS" | grep -Eo '[^ .>,]+\.duckdns\.org' | sort -u | paste -sd,) if [[ ${ipv6} == *:* ]]; then - if answer="$(curl -s "https://www.duckdns.org/update?domains=${DOMAINS}&token=${TOKEN}&ipv6=${ipv6}&verbose=true")" && [ "${answer}" != 'KO' ]; then + if answer="$(curl -s "https://www.duckdns.org/update?domains=${duckdnsDomains}&token=${TOKEN}&ipv6=${ipv6}&verbose=true")" && [ "${answer}" != 'KO' ]; then if [[ "${answer}" == *NOCHANGE* ]]; then bashio::log.debug "${answer}" else @@ -103,7 +118,7 @@ while true; do fi if [[ -z ${ipv4} || ${ipv4} == *.* ]]; then - if answer="$(curl -s "https://www.duckdns.org/update?domains=${DOMAINS}&token=${TOKEN}&ip=${ipv4}&verbose=true")" && [ "${answer}" != 'KO' ]; then + if answer="$(curl -s "https://www.duckdns.org/update?domains=${duckdnsDomains}&token=${TOKEN}&ip=${ipv4}&verbose=true")" && [ "${answer}" != 'KO' ]; then if [[ "${answer}" == *NOCHANGE* ]]; then bashio::log.debug "${answer}" else From 6b9091a6a495d3a70984063f544339962cf242a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Aug 2025 11:23:52 +0200 Subject: [PATCH 231/346] build(deps): bump actions/checkout from 4.2.2 to 5.0.0 (#4131) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.2.2...v5.0.0) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 13cd579a7af..5cd5f2a9d38 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9c758d0f580..168b59f4de2 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From 1227481f1aa35b7cdee7ba1e554186b9851c3eda Mon Sep 17 00:00:00 2001 From: TheJulianJES Date: Mon, 18 Aug 2025 11:58:05 +0200 Subject: [PATCH 232/346] Fix restrict-task-creation workflow (#4128) --- .github/workflows/restrict-task-creation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/restrict-task-creation.yml b/.github/workflows/restrict-task-creation.yml index ccb912d7dea..6051d3a7b6c 100644 --- a/.github/workflows/restrict-task-creation.yml +++ b/.github/workflows/restrict-task-creation.yml @@ -10,7 +10,7 @@ jobs: check-authorization: runs-on: ubuntu-latest # Only run if this is a Task issue type (from the issue form) - if: github.event.issue.issue_type == 'Task' + if: github.event.issue.type.name == 'Task' steps: - name: Check if user is authorized uses: actions/github-script@v7 From 10dfaa55dab56245b9d4a61d0fb1751bfd4d7289 Mon Sep 17 00:00:00 2001 From: Xebozone Date: Mon, 18 Aug 2025 17:47:47 +0700 Subject: [PATCH 233/346] - Use Xebozone fork of Dehydrated with support for Single-TXT domains (such as DuckDNS) (#4126) - Revise run to use the new parameters for dehydrated - Version bump - Updated Changelogs --- duckdns/CHANGELOG.md | 5 +++++ duckdns/Dockerfile | 2 +- duckdns/build.yaml | 2 +- duckdns/config.yaml | 2 +- duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run | 11 +++-------- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/duckdns/CHANGELOG.md b/duckdns/CHANGELOG.md index af82080c7db..8bdef5bd271 100644 --- a/duckdns/CHANGELOG.md +++ b/duckdns/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.26.0 + +- Updated dehydrated fork with support for single-txt domains +- Use the new dehydrated script parameters which handles individual domain processing now + ## 1.25.0 - Wildcard support when using domains as "*.yourDomain.duckdns.org > yourDomain.duckdns.org" diff --git a/duckdns/Dockerfile b/duckdns/Dockerfile index 5d229bc0d0b..0ebd61ceaff 100644 --- a/duckdns/Dockerfile +++ b/duckdns/Dockerfile @@ -5,7 +5,7 @@ FROM $BUILD_FROM ARG DEHYDRATED_VERSION RUN apk add --no-cache openssl \ && curl -s -o /usr/bin/dehydrated \ - "https://raw.githubusercontent.com/lukas2511/dehydrated/v${DEHYDRATED_VERSION}/dehydrated" \ + "https://raw.githubusercontent.com/Xebozone/dehydrated/${DEHYDRATED_VERSION}/dehydrated" \ && chmod a+x /usr/bin/dehydrated # Copy root filesystem diff --git a/duckdns/build.yaml b/duckdns/build.yaml index f0a265a8a4f..4d7c6b2ac37 100644 --- a/duckdns/build.yaml +++ b/duckdns/build.yaml @@ -9,4 +9,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - DEHYDRATED_VERSION: 0.7.1 + DEHYDRATED_VERSION: 0.8.0 diff --git a/duckdns/config.yaml b/duckdns/config.yaml index bc067eb0660..3c066dae752 100644 --- a/duckdns/config.yaml +++ b/duckdns/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.25.0 +version: 1.26.0 slug: duckdns name: Duck DNS description: >- diff --git a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run index 2c1c86049f0..23c2b1ff19a 100755 --- a/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run +++ b/duckdns/rootfs/etc/s6-overlay/s6-rc.d/duckdns/run @@ -46,18 +46,13 @@ function le_renew() { fi done - # Actually do the renewals below - + # Prepare arguments for domain in "${domainsAndAliases[@]}"; do domain_args+=("--domain" "${domain}") - - # DuckDNS does not support more than a single TXT record, so, process each domain or alias separately and combine later - dehydrated --cron --algo "${ALGO}" --hook /root/hooks.sh --challenge dns-01 --domain "${domain}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true done - # This final stage will combine everything into a single cert with SANs for the aliases - bashio::log.info "Final pass to combine individual certificates" - dehydrated --cron --algo "${ALGO}" --hook /root/hooks.sh --challenge dns-01 "${domain_args[@]}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true + # Do the certificate renewals + dehydrated --cron --separate-challenges --algo "${ALGO}" --hook /root/hooks.sh --challenge dns-01 "${domain_args[@]}" --out "${CERT_DIR}" --config "${WORK_DIR}/config" || true LE_UPDATE="$(date +%s)" } From d6a856fde920ff466a490876ede7c43fcc11e171 Mon Sep 17 00:00:00 2001 From: Francisco Ortiz Date: Tue, 19 Aug 2025 06:08:02 -0300 Subject: [PATCH 234/346] Add missing voice for Argentinian Spanish (daniela) (#4118) --- piper/CHANGELOG.md | 4 ++++ piper/config.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/piper/CHANGELOG.md b/piper/CHANGELOG.md index 544a3a8fa3b..f2914380a33 100644 --- a/piper/CHANGELOG.md +++ b/piper/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.6.4 + +- Add missing voice for Argentinian Spanish (daniela) + ## 1.6.3 - Bump wyoming to 1.7.2 to fix event data error diff --git a/piper/config.yaml b/piper/config.yaml index 1b7e098b86b..7ea2d342ee9 100644 --- a/piper/config.yaml +++ b/piper/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.6.3 +version: 1.6.4 slug: piper name: Piper description: Text-to-speech with Piper @@ -26,7 +26,7 @@ options: streaming: true schema: voice: | - list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|cs_CZ-jirka-low|cs_CZ-jirka-medium|cy_GB-bu_tts-medium|cy_GB-gwryw_gogleddol-medium|da_DK-talesyntese-medium|da-nst_talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|el_GR-rapunzelina-low|en-gb-alan-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en-gb-southern_english_female-low|en_GB-southern_english_female-low|en_GB-vctk-medium|en-us-amy-low|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-bryce-medium|en-us-danny-low|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-john-medium|en-us-kathleen-low|en_US-kathleen-low|en_US-kristin-medium|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en-us-lessac-low|en_US-lessac-low|en-us-lessac-medium|en_US-lessac-medium|en-us-libritts-high|en_US-libritts-high|en_US-libritts_r-medium|en_US-ljspeech-high|en_US-ljspeech-medium|en_US-norman-medium|en_US-reza_ibrahim-medium|en-us-ryan-high|en_US-ryan-high|en-us-ryan-low|en_US-ryan-low|en-us-ryan-medium|en_US-ryan-medium|en_US-sam-medium|es-carlfm-x-low|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es-mls_10246-low|es-mls_9972-low|es_MX-ald-medium|es_MX-claude-high|fa_IR-amir-medium|fa_IR-ganji_adabi-medium|fa_IR-ganji-medium|fa_IR-gyro-medium|fa_IR-reza_ibrahim-medium|fi_FI-harri-low|fi_FI-harri-medium|fi-harri-low|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|hi_IN-pratham-medium|hi_IN-priyamvada-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is-bui-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it_IT-paola-medium|it_IT-riccardo-x_low|it-riccardo_fasol-x-low|ka_GE-natia-medium|kk-iseke-x-low|kk-issai-high|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|kk-raya-x-low|lb_LU-marylux-medium|lv_LV-aivars-medium|ml_IN-arjun-medium|ml_IN-meera-medium|ne-google-medium|ne-google-x-low|ne_NP-chitwan-medium|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|nl_NL-pim-medium|nl_NL-ronnie-medium|nl-rdh-medium|nl-rdh-x-low|no_NO-talesyntese-medium|no-talesyntese-medium|pl-mls_6892-low|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-cadu-medium|pt-br-edresson-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_BR-jeff-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru-irinia-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-lisa-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk-lada-x-low|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi-25hours-single-low|vi-vivos-x-low|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh-cn-huayan-x-low|zh_CN-huayan-x_low) + list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|cs_CZ-jirka-low|cs_CZ-jirka-medium|cy_GB-bu_tts-medium|cy_GB-gwryw_gogleddol-medium|da_DK-talesyntese-medium|da-nst_talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|el_GR-rapunzelina-low|en-gb-alan-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en-gb-southern_english_female-low|en_GB-southern_english_female-low|en_GB-vctk-medium|en-us-amy-low|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-bryce-medium|en-us-danny-low|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-john-medium|en-us-kathleen-low|en_US-kathleen-low|en_US-kristin-medium|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en-us-lessac-low|en_US-lessac-low|en-us-lessac-medium|en_US-lessac-medium|en-us-libritts-high|en_US-libritts-high|en_US-libritts_r-medium|en_US-ljspeech-high|en_US-ljspeech-medium|en_US-norman-medium|en_US-reza_ibrahim-medium|en-us-ryan-high|en_US-ryan-high|en-us-ryan-low|en_US-ryan-low|en-us-ryan-medium|en_US-ryan-medium|en_US-sam-medium|es-carlfm-x-low|es_AR-daniela-high|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es-mls_10246-low|es-mls_9972-low|es_MX-ald-medium|es_MX-claude-high|fa_IR-amir-medium|fa_IR-ganji_adabi-medium|fa_IR-ganji-medium|fa_IR-gyro-medium|fa_IR-reza_ibrahim-medium|fi_FI-harri-low|fi_FI-harri-medium|fi-harri-low|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|hi_IN-pratham-medium|hi_IN-priyamvada-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is-bui-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it_IT-paola-medium|it_IT-riccardo-x_low|it-riccardo_fasol-x-low|ka_GE-natia-medium|kk-iseke-x-low|kk-issai-high|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|kk-raya-x-low|lb_LU-marylux-medium|lv_LV-aivars-medium|ml_IN-arjun-medium|ml_IN-meera-medium|ne-google-medium|ne-google-x-low|ne_NP-chitwan-medium|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|nl_NL-pim-medium|nl_NL-ronnie-medium|nl-rdh-medium|nl-rdh-x-low|no_NO-talesyntese-medium|no-talesyntese-medium|pl-mls_6892-low|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-cadu-medium|pt-br-edresson-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_BR-jeff-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru-irinia-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-lisa-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk-lada-x-low|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi-25hours-single-low|vi-vivos-x-low|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh-cn-huayan-x-low|zh_CN-huayan-x_low) speaker: int length_scale: float noise_scale: float From 8e96f76fec0c2cbe1bcb5a22aa5a5651dad48b49 Mon Sep 17 00:00:00 2001 From: burmistrzak <61958704+burmistrzak@users.noreply.github.com> Date: Thu, 21 Aug 2025 17:11:40 +0200 Subject: [PATCH 235/346] letsencrypt: Bump certbot-dns-desec to 1.3.1 (#4134) * Bump `certbot-dns-desec` to `1.3.0` Plugin now supports CNAME validation * Update CHANGELOG.md * Bump certbot-dns-desec to 1.3.1 Fixes dependency issues * Update CHANGELOG.md --- letsencrypt/CHANGELOG.md | 4 ++++ letsencrypt/build.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index 71ee9d68a19..55c44b8cc4d 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.4.10 + +- Update certbot-dns-desec to 1.3.1 + ## 5.4.9 - Fix pending issue in 5.4.8 with trust store when using a custom ACME server diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index bcb9e9b3b7f..cb288b47838 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -13,7 +13,7 @@ args: ACME_VERSION: 3.3.0 CERTBOT_DNS_AZURE_VERSION: 2.6.1 CERTBOT_DNS_CLOUDNS_VERSION: 0.7.0 - CERTBOT_DNS_DESEC_VERSION: 1.2.1 + CERTBOT_DNS_DESEC_VERSION: 1.3.1 CERTBOT_DNS_DIRECTADMIN_VERSION: 1.0.15 CERTBOT_DNS_DOMAINOFFENSIVE_VERSION: 2.0.0 CERTBOT_DNS_DREAMHOST_VERSION: "1.0" From 90e68a9e3b3fdb64448070523462de664c569fc8 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Mon, 25 Aug 2025 14:07:52 -0500 Subject: [PATCH 236/346] Bump zwavejs (#4143) --- zwave_js/CHANGELOG.md | 16 ++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 5516f2fe71b..cb21034ecc9 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 0.22.0 + +### Features + +- Firmware updates that fail due to an XMODEM communication error are now retried automatically, reducing the risk to get stuck in bootloader until a new firmware is flashed (#8086) + +### Bugfixes + +- Fixes an issue where the controller would indefinitely be considered as recovering from a jammed state, preventing commands from being re-transmitted (#8052) +- Fixed an issue where the key up event would be force-emitted too early on legacy devices that incorrectly report not to support the "slow refresh" capability (#8087) +- Canceling a "replace failed node" operation no longer prevents other inclusion/exclusion operations from being started (#8084) + +### Config file changes + +- Add HomeSeer WS300 (#8074) + ## 0.21.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index d77fcb4a3c6..1191014ee3a 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.2.1 - ZWAVEJS_VERSION: 15.11.0 + ZWAVEJS_VERSION: 15.12.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index ad3e703edfc..591f6ddc415 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.21.0 +version: 0.22.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From bcb62080e82cb2822a922c81abc727a0a5cceba2 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 1 Sep 2025 15:56:12 +0200 Subject: [PATCH 237/346] silabs_flasher: Make EZSP baudrate optional (#4136) --- silabs_flasher/CHANGELOG.md | 4 ++++ silabs_flasher/config.yaml | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/silabs_flasher/CHANGELOG.md b/silabs_flasher/CHANGELOG.md index 5d2cb602ac7..87a78c6abca 100644 --- a/silabs_flasher/CHANGELOG.md +++ b/silabs_flasher/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.3.4 + +- Make custom ezsp baudrate a truly optional configuration + ## 0.3.3 - Allow to start universal-silabs-flasher with custom ezsp baudrate diff --git a/silabs_flasher/config.yaml b/silabs_flasher/config.yaml index 3467edde2d1..2ba46285268 100644 --- a/silabs_flasher/config.yaml +++ b/silabs_flasher/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.3.3 +version: 0.3.4 slug: silabs_flasher name: Silicon Labs Flasher description: Silicon Labs firmware flasher add-on @@ -18,7 +18,6 @@ init: false options: device: null bootloader_baudrate: "115200" - ezsp_baudrate: null flow_control: true verbose: false schema: From 08433d236434bc55522312a376b080cfbca72c02 Mon Sep 17 00:00:00 2001 From: Riccardo Crippa Date: Thu, 4 Sep 2025 16:51:19 +0200 Subject: [PATCH 238/346] MOSQUITTO v2.0.22 (#4148) * MOSQUITTO v2.0.22 * update mosquitto to version 6.5.2. * update mosquitto changelog. --- mosquitto/CHANGELOG.md | 4 ++++ mosquitto/build.yaml | 2 +- mosquitto/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mosquitto/CHANGELOG.md b/mosquitto/CHANGELOG.md index 12917a1a776..58c85fe8ded 100644 --- a/mosquitto/CHANGELOG.md +++ b/mosquitto/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.5.2 + +- Update mosquitto to version 2.0.22 + ## 6.5.1 - Update mosquitto to version 2.0.21 diff --git a/mosquitto/build.yaml b/mosquitto/build.yaml index 9c0fe064148..ceae42c9840 100644 --- a/mosquitto/build.yaml +++ b/mosquitto/build.yaml @@ -10,5 +10,5 @@ codenotary: base_image: notary@home-assistant.io args: LIBWEBSOCKET_VERSION: 4.3.3 - MOSQUITTO_VERSION: 2.0.21 + MOSQUITTO_VERSION: 2.0.22 MOSQUITTO_AUTH_VERSION: 2.1.0 diff --git a/mosquitto/config.yaml b/mosquitto/config.yaml index c7877086437..4a11732dbb4 100644 --- a/mosquitto/config.yaml +++ b/mosquitto/config.yaml @@ -1,5 +1,5 @@ --- -version: 6.5.1 +version: 6.5.2 slug: mosquitto name: Mosquitto broker description: An Open Source MQTT broker From 538c89fdef7ca8cbf38e8bc369bdbae115e56ba0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 09:36:16 +0200 Subject: [PATCH 239/346] build(deps): bump actions/stale from 9.1.0 to 10.0.0 (#4154) Bumps [actions/stale](https://github.com/actions/stale) from 9.1.0 to 10.0.0. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v9.1.0...v10.0.0) --- updated-dependencies: - dependency-name: actions/stale dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index fa517401513..d481c2ee78d 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: 30 days stale issues - uses: actions/stale@v9.1.0 + uses: actions/stale@v10.0.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-issue-stale: 30 From d9c11a309fe71991db176f130c4ffd02ba992c0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 09:36:31 +0200 Subject: [PATCH 240/346] build(deps): bump actions/github-script from 7 to 8 (#4153) Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v7...v8) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/restrict-task-creation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/restrict-task-creation.yml b/.github/workflows/restrict-task-creation.yml index 6051d3a7b6c..da6fd831755 100644 --- a/.github/workflows/restrict-task-creation.yml +++ b/.github/workflows/restrict-task-creation.yml @@ -13,7 +13,7 @@ jobs: if: github.event.issue.type.name == 'Task' steps: - name: Check if user is authorized - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const issueAuthor = context.payload.issue.user.login; From 258168959bb4d2b90851d4db2f51d4571ad51d78 Mon Sep 17 00:00:00 2001 From: Garrett Plasky Date: Wed, 10 Sep 2025 09:11:26 -0700 Subject: [PATCH 241/346] letsencrypt: Improve docs for Lets Encrypt YAML to help prevent usage + copy/paste errors (#4076) * Fix: Improve docs for Lets Encrypt YAML to help prevent usage + copy/paste errors * Apply suggestions from code review --------- Co-authored-by: Stefan Agner --- letsencrypt/DOCS.md | 7 ++++--- letsencrypt/config.yaml | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 0decadafa14..464252081c7 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -296,9 +296,10 @@ When you specify a custom ACME server, the *Dry Run* and *Issue test certificate ## Example Configurations -Note: These configuration examples are raw YAML configs. When you use UI edit -mode (default), and configure DNS, simply copy the attributes underneath *dns* -into the *DNS Provider configuration* field. +**Important Note for UI Edit Mode:** These configuration examples are raw YAML configs. +When using the UI edit mode (which is the default), and configuring DNS, you **must** +only copy the attributes *underneath* the `dns:` key into the "DNS Provider configuration" field. +Do NOT include the `dns:` key itself when pasting into the UI field, as this will cause parsing errors.
HTTP challenge diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 5414f546429..f78c1e15c43 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -32,6 +32,9 @@ schema: certfile: str challenge: list(dns|http) dns: + # Note: When configuring DNS in the UI, only copy the attributes below this + # line (e.g., 'provider: dns-cloudflare', 'cloudflare_email: ...') into the + # "DNS Provider configuration" field. Do NOT include the 'dns:' key itself. # Developer note: please add a new plugin alphabetically into all lists aws_access_key_id: str? aws_secret_access_key: str? From 6e93e7322b53213e6aef006ec0f78ef661b5c546 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 11 Sep 2025 13:40:52 +0200 Subject: [PATCH 242/346] ssh: Bump CLI to 4.41.0, Alpine to 3.22 (#4157) Bump CLI to 4.41.0 and Alpine 3.22. Also use latest version 4.4.1 of libwebsockets. --- ssh/CHANGELOG.md | 6 ++++++ ssh/build.yaml | 14 +++++++------- ssh/config.yaml | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index 4baeb664865..e67c468f5cb 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 9.20.0 + +- Upgrade Home Assistant CLI to 4.41.0 +- Upgrade to Alpine Linux 3.22 +- Upgrade libwebsockets to 4.4.1 + ## 9.19.0 - Disable keyboard interactive authentication method if keys are used diff --git a/ssh/build.yaml b/ssh/build.yaml index 8937426b82d..09f6debd086 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -1,14 +1,14 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.19 - amd64: ghcr.io/home-assistant/amd64-base:3.19 - armhf: ghcr.io/home-assistant/armhf-base:3.19 - armv7: ghcr.io/home-assistant/armv7-base:3.19 - i386: ghcr.io/home-assistant/i386-base:3.19 + aarch64: ghcr.io/home-assistant/aarch64-base:3.22 + amd64: ghcr.io/home-assistant/amd64-base:3.22 + armhf: ghcr.io/home-assistant/armhf-base:3.22 + armv7: ghcr.io/home-assistant/armv7-base:3.22 + i386: ghcr.io/home-assistant/i386-base:3.22 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - CLI_VERSION: 4.39.0 - LIBWEBSOCKETS_VERSION: 4.3.5 + CLI_VERSION: 4.41.0 + LIBWEBSOCKETS_VERSION: 4.4.1 TTYD_VERSION: 1.7.7 diff --git a/ssh/config.yaml b/ssh/config.yaml index 0d3a5b63473..1092640a89d 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.19.0 +version: 9.20.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH From 7d42af93e2cc4c72d2e39fc72563fed077b78a32 Mon Sep 17 00:00:00 2001 From: Eskander Bejaoui Date: Sun, 14 Sep 2025 21:40:42 +0100 Subject: [PATCH 243/346] ssh: Fix Dockerfile to replace 'sh' with 'bash' (#4165) --- ssh/CHANGELOG.md | 4 ++++ ssh/Dockerfile | 2 +- ssh/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index e67c468f5cb..37e2ab103dd 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 9.20.1 + +- Fix default shell + ## 9.20.0 - Upgrade Home Assistant CLI to 4.41.0 diff --git a/ssh/Dockerfile b/ssh/Dockerfile index 78c3d7b3116..eb92f219c58 100644 --- a/ssh/Dockerfile +++ b/ssh/Dockerfile @@ -30,7 +30,7 @@ RUN \ openssl-dev \ zlib-dev \ \ - && sed -i "s/ash/bash/" /etc/passwd \ + && sed -i "s|/bin/sh|/bin/bash|" /etc/passwd \ \ && git clone --branch "v${LIBWEBSOCKETS_VERSION}" --depth=1 \ https://github.com/warmcat/libwebsockets.git /tmp/libwebsockets \ diff --git a/ssh/config.yaml b/ssh/config.yaml index 1092640a89d..fe9d10581d8 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.20.0 +version: 9.20.1 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH From 11c36dfb0f32837907e8581f096cf1783f643cce Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Tue, 16 Sep 2025 18:20:00 +0200 Subject: [PATCH 244/346] Bump Z-Wave JS to 15.13.0 (#4167) --- zwave_js/CHANGELOG.md | 24 ++++++++++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index cb21034ecc9..54f345ebbf6 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## 0.23.0 + +### Features + +- Support checking for all firmware updates at once, and support detecting devices unknown to the firmware update service + +### Bugfixes + +- Fixed an edge case preventing the migration of some controllers +- Clean up Battery "isLow" values that are no longer updated by the Z-Wave JS driver + +### Config file changes + +- Added support for Zooz ZEN75 +- Updated Inovelli VZW32-SN device support to match latest firmware + +### Detailed changelogs + +- [Z-Wave JS 15.13.0](https://github.com/zwave-js/zwave-js/releases/tag/v15.13.0) + ## 0.22.0 ### Features @@ -16,6 +36,10 @@ - Add HomeSeer WS300 (#8074) +### Detailed changelogs + +- [Z-Wave JS 15.12.0](https://github.com/zwave-js/zwave-js/releases/tag/v15.12.0) + ## 0.21.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 1191014ee3a..d474a2bb918 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.2.1 - ZWAVEJS_VERSION: 15.12.0 + ZWAVEJS_VERSION: 15.13.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 591f6ddc415..4e4769fdffb 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.22.0 +version: 0.23.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 702a852688b5bebad32a6f2fac53a3780787fcd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 08:12:10 +0200 Subject: [PATCH 245/346] build(deps): bump home-assistant/builder from 2025.03.0 to 2025.09.0 (#4172) --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 5cd5f2a9d38..aa28aa1981e 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -107,7 +107,7 @@ jobs: - name: Build ${{ matrix.addon }} add-on if: steps.check.outputs.build_arch == 'true' - uses: home-assistant/builder@2025.03.0 + uses: home-assistant/builder@2025.09.0 with: args: | ${{ env.BUILD_ARGS }} \ From 00ea8de2caf395b44e0e332d9e99365695612b67 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 22 Sep 2025 16:56:07 -0400 Subject: [PATCH 246/346] Update to Z-Wave JS 15.14.0 (#4170) * Allow specifying a socket for Z-Wave JS * Change version * fixes * Default values not set to null to be truly optional * Lint * Make it 1 field * Remove translation * Make device mandatory again * Bit less obvious changelog * Back to 2 fields for the win * Add translation back --- zwave_js/CHANGELOG.md | 14 +++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 6 ++--- zwave_js/rootfs/etc/services.d/zwave_js/run | 28 ++++++++++++++++++--- zwave_js/translations/en.yaml | 5 ++++ 5 files changed, 48 insertions(+), 7 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 54f345ebbf6..27c9c968b00 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## 0.24.0 + +### Features + +- Allow configuring a socket as an alternative to a device + +### Bugfixes + +- Fixed an issue where converting NVMs with unknown objects would fail due to unknown NVM section + +### Detailed changelogs + +- [Z-Wave JS 15.14.0](https://github.com/zwave-js/zwave-js/releases/tag/v15.14.0) + ## 0.23.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index d474a2bb918..73d7acc67db 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.2.1 - ZWAVEJS_VERSION: 15.13.0 + ZWAVEJS_VERSION: 15.14.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 4e4769fdffb..7537f391c8e 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.23.0 +version: 0.24.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS @@ -20,7 +20,6 @@ init: false map: - addon_config:rw options: - device: null log_level: info log_to_file: false log_max_files: 7 @@ -35,7 +34,8 @@ options: ports: 3000/tcp: null schema: - device: device(subsystem=tty) + device: device(subsystem=tty)? + socket: str? log_level: list(silly|debug|verbose|http|info|warn|error)? log_to_file: bool? log_max_files: int(1,)? diff --git a/zwave_js/rootfs/etc/services.d/zwave_js/run b/zwave_js/rootfs/etc/services.d/zwave_js/run index 9d5d150bd22..7f1fa07d965 100755 --- a/zwave_js/rootfs/etc/services.d/zwave_js/run +++ b/zwave_js/rootfs/etc/services.d/zwave_js/run @@ -4,13 +4,35 @@ # ============================================================================== # Start Z-Wave JS service for Z-Wave radio # ============================================================================== -SERIAL_DEVICE=$(bashio::config 'device') -# Emulate serial Hardware for test & development -if bashio::config.true 'emulate_hardware'; then +# Get config values +DEVICE=$(bashio::config 'device') +SOCKET=$(bashio::config 'socket') + +# Filter out null values +if [[ "${DEVICE}" == "null" ]]; then + DEVICE="" +fi +if [[ "${SOCKET}" == "null" ]]; then + SOCKET="" +fi + +# Determine which to use +if bashio::var.has_value "${DEVICE}"; then + CONNECTION_TYPE="device" + SERIAL_DEVICE="${DEVICE}" +elif bashio::var.has_value "${SOCKET}"; then + CONNECTION_TYPE="socket" + SERIAL_DEVICE="${SOCKET}" +elif bashio::config.true 'emulate_hardware'; then + CONNECTION_TYPE="mock" SERIAL_DEVICE="--mock-driver" +else + bashio::exit.nok "Either 'device' or 'socket' must be configured" fi +bashio::log.info "Using ${CONNECTION_TYPE}: ${SERIAL_DEVICE}" + # Send out discovery information to Home Assistant ./discovery & diff --git a/zwave_js/translations/en.yaml b/zwave_js/translations/en.yaml index ab2cbfc86db..11dbfe74b75 100644 --- a/zwave_js/translations/en.yaml +++ b/zwave_js/translations/en.yaml @@ -3,6 +3,11 @@ configuration: device: name: Device description: The Z-Wave controller device. + socket: + name: Socket + description: >- + Instead of using a physical device, you can connect to a Z-Wave adapter + via a socket. emulate_hardware: name: Enable Emulated Hardware description: >- From 481ddf6c0ef50e879c991b7037b7876d7ede412b Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 24 Sep 2025 10:34:23 +0200 Subject: [PATCH 247/346] matter_server: Bump Python Matter server to 8.1.1 (#4175) * matter_server: Bump Python Matter server to 8.1.1 * Use base image from new matter-js org * Update org in CHANGELOG.md link * Update config.yaml version --- matter_server/CHANGELOG.md | 4 ++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index f172cf91ca8..0ffcb4c37e4 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.1.1 + +- Bump Python Matter Server to [8.1.1](https://github.com/matter-js/python-matter-server/releases/tag/8.1.1) + ## 8.1.0 - Bump Python Matter Server to [8.1.0](https://github.com/home-assistant-libs/python-matter-server/releases/tag/8.1.0) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index 38b4ed2929b..b9d8156eaaa 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/home-assistant-libs/python-matter-server:8.1.0 - amd64: ghcr.io/home-assistant-libs/python-matter-server:8.1.0 + aarch64: ghcr.io/matter-js/python-matter-server:8.1.1 + amd64: ghcr.io/matter-js/python-matter-server:8.1.1 args: BASHIO_VERSION: 0.17.1 TEMPIO_VERSION: 2024.11.2 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 631e6570297..1f2c08253db 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.1.0 +version: 8.1.1 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From 1ac7a27a035f7791eb7a568acc96b7462d9bc19c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 29 Sep 2025 18:49:41 -0400 Subject: [PATCH 248/346] Upgrade to Z-Wave JS Server 3.3.0 (#4177) --- zwave_js/CHANGELOG.md | 10 ++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 27c9c968b00..6b311c4ea9b 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 0.25.0 + +### Features + +- Try re-establishing connection when communication with adapter is lost + +### Detailed changelogs + +- [Z-Wave JS Server 3.3.0](https://github.com/zwave-js/zwave-js-server/releases/tag/3.3.0) + ## 0.24.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 73d7acc67db..ba5bbb957d7 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 3.2.1 + ZWAVEJS_SERVER_VERSION: 3.3.0 ZWAVEJS_VERSION: 15.14.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 7537f391c8e..c361b3c5e9a 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.24.0 +version: 0.25.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 47c3072d6f3d958bd954c46c668392a40f22e100 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 30 Sep 2025 11:56:28 -0400 Subject: [PATCH 249/346] Bump add-on to 0.26.0 (#4179) --- zwave_js/CHANGELOG.md | 17 +++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 6b311c4ea9b..d1a73cbef92 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## 0.26.0 + +### Features + +- Support creating mixed LR and non-LR "multicast" groups + +### Bugfixes + +- IP based connections no longer block the process for several minutes on connection failures/timeouts +- Disable optimistic value updates for slow device classes, like shades and gates +- Fixed an edge case where support for EU Long Range is not inferred correctly +- During route rebuilds, invalid and non-existing association targets are now skipped instead of failing the whole process + +### Detailed changelogs + +- [Z-Wave JS 15.15.0](https://github.com/zwave-js/zwave-js/releases/tag/v15.15.0) + ## 0.25.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index ba5bbb957d7..f45bee9ba08 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -10,4 +10,4 @@ codenotary: base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.3.0 - ZWAVEJS_VERSION: 15.14.0 + ZWAVEJS_VERSION: 15.15.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index c361b3c5e9a..2f717a0944e 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.25.0 +version: 0.26.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 56c0d0207cb58b4a8ae92a621d1c1c20780b01b5 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 3 Oct 2025 15:15:08 -0400 Subject: [PATCH 250/346] Z-Wave JS 0.27.0 (#4182) --- zwave_js/CHANGELOG.md | 10 ++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index d1a73cbef92..6c0c0150bb8 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 0.27.0 + +### Changes + +- Revert automatic reconnection when communication with adapter is lost. Home Assistant already handles this. + +### Detailed changelogs + +- [Z-Wave JS Server 3.4.0](https://github.com/zwave-js/zwave-js-server/releases/tag/3.4.0) + ## 0.26.0 ### Features diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index f45bee9ba08..61b280de10c 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -9,5 +9,5 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - ZWAVEJS_SERVER_VERSION: 3.3.0 + ZWAVEJS_SERVER_VERSION: 3.4.0 ZWAVEJS_VERSION: 15.15.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 2f717a0944e..222dc0e4315 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.26.0 +version: 0.27.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 9aaac27d177dc3aef8c681d0111c314557b6210f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 12:18:23 +0200 Subject: [PATCH 251/346] build(deps): bump actions/stale from 10.0.0 to 10.1.0 (#4186) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index d481c2ee78d..555caf73d85 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: 30 days stale issues - uses: actions/stale@v10.0.0 + uses: actions/stale@v10.1.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-issue-stale: 30 From 28e0e8dbde596352556f16d63f982c607486b50e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 12:18:49 +0200 Subject: [PATCH 252/346] build(deps): bump docker/login-action from 3.5.0 to 3.6.0 (#4187) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index aa28aa1981e..e109fca361f 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -100,7 +100,7 @@ jobs: - name: Login to DockerHub if: env.BUILD_ARGS == '--docker-hub-check' - uses: docker/login-action@v3.5.0 + uses: docker/login-action@v3.6.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From 6f606ed00ae1b2855a28c56cc9f2a3f227e50455 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Tue, 7 Oct 2025 08:30:15 -0400 Subject: [PATCH 253/346] [openthread_border_router] Remove firmware flashing from the addon (#4061) * Remove firmware flashing capabilities from the OTBR addon * Update changelog and bump version * Add config cleanup * Bump to 2.14.0 --------- Co-authored-by: Stefan Agner --- openthread_border_router/CHANGELOG.md | 3 + openthread_border_router/DOCS.md | 8 +- openthread_border_router/Dockerfile | 3 - openthread_border_router/build.yaml | 1 - openthread_border_router/config.yaml | 6 +- .../dependencies.d/universal-silabs-flasher | 0 .../etc/s6-overlay/s6-rc.d/otbr-agent/run | 5 + .../dependencies.d/banner | 0 .../universal-silabs-flasher/notification-fd | 1 - .../s6-rc.d/universal-silabs-flasher/type | 1 - .../s6-rc.d/universal-silabs-flasher/up | 1 - .../scripts/universal-silabs-flasher-up | 95 ------------------ .../root/ot-rcp-v2.4.2.0-slzb-07-460800.gbl | Bin 107884 -> 0 bytes .../root/ot-rcp-v2.4.2.0-zbdonglee-460800.gbl | Bin 107884 -> 0 bytes ...cp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl | Bin 107908 -> 0 bytes ...cp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl | Bin 109048 -> 0 bytes openthread_border_router/translations/en.yaml | 5 - 17 files changed, 14 insertions(+), 115 deletions(-) delete mode 100644 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/dependencies.d/universal-silabs-flasher delete mode 100644 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/dependencies.d/banner delete mode 100644 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/notification-fd delete mode 100644 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/type delete mode 100644 openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/up delete mode 100755 openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up delete mode 100644 openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-slzb-07-460800.gbl delete mode 100644 openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-zbdonglee-460800.gbl delete mode 100644 openthread_border_router/rootfs/root/skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl delete mode 100644 openthread_border_router/rootfs/root/yellow_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 0573b2df9ed..f60450590c1 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 2.14.0 +- Remove firmware flashing from the addon, this is now handled by Core 2025.7.0. + ## 2.13.0 - Bump to OTBR POSIX version b067e5ac (2025-01-13 22:32:22 -0500) - Bump universal-silabs-flasher to 0.0.28 diff --git a/openthread_border_router/DOCS.md b/openthread_border_router/DOCS.md index 7ec95d6ae70..fe3b0d368f3 100644 --- a/openthread_border_router/DOCS.md +++ b/openthread_border_router/DOCS.md @@ -12,9 +12,10 @@ Follow these steps to get the add-on installed on your system: ## How to use -You will need a 802.15.4 capable radio supported by OpenThread. Home Assistant -Yellow as well as Home Assistant SkyConnect/Connect ZBT-1 are both capable to run -OpenThread. This add-on automatically installs the necessary firmware on these systems. +You will need a 802.15.4 capable radio supported by OpenThread flashed with OpenThread +RCP firmware. Home Assistant Yellow as well as Home Assistant SkyConnect/Connect ZBT-1 +are both able to run OpenThread and will be flashed with the correct firmware by Home +Assistant Core. If you are using Home Assistant Yellow, choose `/dev/ttyAMA1` as device. @@ -61,7 +62,6 @@ Add-on configuration: | device (mandatory) | Serial port where the OpenThread RCP Radio is attached | | baudrate | Serial port baudrate (depends on firmware) | | flow_control | If hardware flow control should be enabled (depends on firmware) | -| autoflash_firmware | Automatically install/update firmware (Home Assistant SkyConnect/Yellow) | | otbr_log_level | Set the log level of the OpenThread BorderRouter Agent | | firewall | Enable OpenThread Border Router firewall to block unnecessary traffic | | nat64 | Enable NAT64 to allow Thread devices accessing IPv4 addresses | diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index a758d34377b..8fe45750ec1 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -3,7 +3,6 @@ FROM $BUILD_FROM ARG BUILD_ARCH ARG OTBR_VERSION -ARG UNIVERSAL_SILABS_FLASHER # Set shell SHELL ["/bin/bash", "-o", "pipefail", "-c"] @@ -93,8 +92,6 @@ RUN \ && cd build/otbr/ \ && ninja \ && ninja install) \ - && pip install --break-system-packages \ - universal-silabs-flasher==${UNIVERSAL_SILABS_FLASHER} \ && apt-get purge -y --auto-remove \ git \ nodejs \ diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index 8bf57d2054f..a0998bc190f 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -4,4 +4,3 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm args: OTBR_VERSION: b067e5ac5f8b3e92750df24922017eee2bc0fa04 - UNIVERSAL_SILABS_FLASHER: 0.0.28 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 3e982a32837..31759ebfb2a 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.13.0 +version: 2.14.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on @@ -8,7 +8,7 @@ url: >- arch: - aarch64 - amd64 -homeassistant: 2023.9.0 +homeassistant: 2025.7.0 gpio: true hassio_api: true discovery: @@ -28,7 +28,6 @@ options: device: null baudrate: "460800" flow_control: true - autoflash_firmware: true otbr_log_level: notice firewall: true nat64: false @@ -43,7 +42,6 @@ schema: baudrate: list(57600|115200|230400|460800|921600) flow_control: bool network_device: str? - autoflash_firmware: bool otbr_log_level: list(debug|info|notice|warning|error|critical|alert|emergency) firewall: bool nat64: bool diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/dependencies.d/universal-silabs-flasher b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/dependencies.d/universal-silabs-flasher deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run index af84f245307..2b6885f8638 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run @@ -17,6 +17,11 @@ declare otbr_log_level_int declare otbr_rest_listen declare otbr_rest_listen_port +# Cleanup unused configs +if bashio::config.exists 'autoflash_firmware'; then + bashio::addon.option 'autoflash_firmware' +fi + backbone_if="$(bashio::api.supervisor 'GET' '/network/info' '' 'first(.interfaces[] | select (.primary == true)) .interface')" device=$(bashio::config 'device') diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/dependencies.d/banner b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/dependencies.d/banner deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/notification-fd b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/notification-fd deleted file mode 100644 index 00750edc07d..00000000000 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/notification-fd +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/type b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/type deleted file mode 100644 index bdd22a1850a..00000000000 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/type +++ /dev/null @@ -1 +0,0 @@ -oneshot diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/up b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/up deleted file mode 100644 index 56e09fe7678..00000000000 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/scripts/universal-silabs-flasher-up diff --git a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up b/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up deleted file mode 100755 index fc632d8139f..00000000000 --- a/openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/with-contenv bashio -# vim: ft=bash -# shellcheck shell=bash -# ============================================================================== -# Start universal-silabs-flasher if requested -# ============================================================================== - -# shellcheck disable=SC2034 -declare autoflash_firmware -declare device -declare firmware -declare usb_device_path -declare usb_manufacturer -declare usb_product -declare gpio_reset_flag - -function exit_no_firmware { - bashio::log.warning "No firmware found for the selected device, assuming firmware is installed." - exit 0 -} - -# Function to check if the device is Home Assistant Yellow -function is_home_assistant_yellow { - # First, ensure the device is /dev/ttyAMA1 - if [ "${device}" != "/dev/ttyAMA1" ]; then - return 1 - fi - - # Check the known paths for Home Assistant Yellow - local paths=( - "/sys/devices/platform/soc/fe201800.serial/tty/ttyAMA1" - "/sys/devices/platform/axi/1000120000.pcie/1f0003c000.serial/tty/ttyAMA1" - ) - for path in "${paths[@]}"; do - if [ -d "${path}" ]; then - return 0 - fi - done - return 1 -} - -device=$(bashio::config 'device') -gpio_reset_flag="" - -if bashio::config.false 'autoflash_firmware'; then - bashio::log.info "Flashing firmware is disabled" - exit 0 -fi - -if bashio::config.has_value 'network_device'; then - bashio::log.info "Network device is selected, skipping firmware flashing" - exit 0 -fi - -if is_home_assistant_yellow; then - bashio::log.info "Detected Home Assistant Yellow" - firmware="yellow_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl" - gpio_reset_flag="--bootloader-reset yellow" -else - # Check device manufacturer/product information - # shellcheck disable=SC2046,SC2086 - usb_device_path=$(realpath /sys/class/tty/$(readlink /sys/class/tty/$(basename ${device}) | sed 's:/[^/]*tty[^/]*::g' )/../) - if [ ! -f "${usb_device_path}/idProduct" ]; then - bashio::log.info "The selected serial port is not a USB device." - exit_no_firmware - fi - - if [ ! -f "${usb_device_path}/manufacturer" ] || [ ! -f "${usb_device_path}/product" ]; then - bashio::log.info "USB device is missing manufacturer or product name." - exit_no_firmware - fi - - usb_manufacturer=$(cat "${usb_device_path}/manufacturer") - usb_product=$(cat "${usb_device_path}/product") - - bashio::log.info "Checking ${device} identifying ${usb_product} from ${usb_manufacturer}." - if [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "SkyConnect"* ]]; then - firmware="skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl" - elif [[ "${usb_manufacturer}" == "Nabu Casa" && "${usb_product}" == "Home Assistant Connect ZBT-1"* ]]; then - firmware="skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl" - elif [[ "${usb_manufacturer}" == "ITEAD" && "${usb_product}" == "SONOFF Zigbee 3.0 USB Dongle Plus V2" ]]; then - firmware="ot-rcp-v2.4.2.0-zbdonglee-460800.gbl" - gpio_reset_flag="--bootloader-reset sonoff" - elif [[ "${usb_manufacturer}" == "SMLIGHT" && "${usb_product}" == "SMLIGHT SLZB-07" ]]; then - firmware="ot-rcp-v2.4.2.0-slzb-07-460800.gbl" - gpio_reset_flag="--bootloader-reset slzb07" - else - exit_no_firmware - fi -fi - -bashio::log.info "Starting universal-silabs-flasher with ${device}" -# shellcheck disable=SC2086 -exec universal-silabs-flasher --device ${device} ${gpio_reset_flag} \ - flash --ensure-exact-version --allow-cross-flashing --firmware "/root/${firmware}" diff --git a/openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-slzb-07-460800.gbl b/openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-slzb-07-460800.gbl deleted file mode 100644 index 81f92cb757c863381882779d5e0baaa43de5b1af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107884 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 z 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 diff --git a/openthread_border_router/rootfs/root/skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl b/openthread_border_router/rootfs/root/skyconnect_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl deleted file mode 100644 index 2b7b9cb91d3127c058bc7487600ade3d08429d8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107908 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≶6q}%^D^Pr`pUtUh11zz%Hmgu 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 AbpQYW diff --git a/openthread_border_router/translations/en.yaml b/openthread_border_router/translations/en.yaml index 8f55f9b9951..0d65aa973c4 100644 --- a/openthread_border_router/translations/en.yaml +++ b/openthread_border_router/translations/en.yaml @@ -16,11 +16,6 @@ configuration: when connecting to a device via sockets (takes precedence over above configuration). Not recommended! See documentation for more information. - autoflash_firmware: - name: Automatically flash firmware - description: >- - Automatically flash OpenThread RCP firmware on Home Assistant Yellow and - SkyConnect/Connect ZBT-1. otbr_log_level: name: OpenThread Border Router agent log level description: >- From 7c135d4e2a1c6ca3a918af9a70d1667cbe22d108 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 9 Oct 2025 16:44:53 +0200 Subject: [PATCH 254/346] Remove deprecated Google Assistant add-on (#4189) --- .github/workflows/lint.yml | 2 - README.md | 4 - google_assistant/CHANGELOG.md | 42 ------ google_assistant/DOCS.md | 114 ---------------- google_assistant/Dockerfile | 37 ----- google_assistant/README.md | 33 ----- google_assistant/build.yaml | 15 -- google_assistant/config.yaml | 35 ----- google_assistant/icon.png | Bin 4432 -> 0 bytes google_assistant/logo.png | Bin 40104 -> 0 bytes .../etc/services.d/google-assistant/finish | 12 -- .../etc/services.d/google-assistant/run | 28 ---- .../rootfs/usr/bin/hassio_gassistant.py | 83 ------------ .../rootfs/usr/bin/hassio_oauth.py | 128 ------------------ .../rootfs/usr/share/public/css/style.css | 97 ------------- .../rootfs/usr/share/public/favicon.ico | Bin 17957 -> 0 bytes .../rootfs/usr/share/public/logo.png | Bin 40104 -> 0 bytes .../rootfs/usr/share/sounds/end_sound.wav | Bin 30688 -> 0 bytes .../rootfs/usr/share/sounds/start_sound.wav | Bin 30688 -> 0 bytes google_assistant/translations/en.yaml | 20 --- 20 files changed, 650 deletions(-) delete mode 100644 google_assistant/CHANGELOG.md delete mode 100644 google_assistant/DOCS.md delete mode 100644 google_assistant/Dockerfile delete mode 100644 google_assistant/README.md delete mode 100644 google_assistant/build.yaml delete mode 100644 google_assistant/config.yaml delete mode 100644 google_assistant/icon.png delete mode 100644 google_assistant/logo.png delete mode 100755 google_assistant/rootfs/etc/services.d/google-assistant/finish delete mode 100755 google_assistant/rootfs/etc/services.d/google-assistant/run delete mode 100644 google_assistant/rootfs/usr/bin/hassio_gassistant.py delete mode 100644 google_assistant/rootfs/usr/bin/hassio_oauth.py delete mode 100644 google_assistant/rootfs/usr/share/public/css/style.css delete mode 100644 google_assistant/rootfs/usr/share/public/favicon.ico delete mode 100644 google_assistant/rootfs/usr/share/public/logo.png delete mode 100755 google_assistant/rootfs/usr/share/sounds/end_sound.wav delete mode 100755 google_assistant/rootfs/usr/share/sounds/start_sound.wav delete mode 100644 google_assistant/translations/en.yaml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 168b59f4de2..0d681b89f38 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -66,5 +66,3 @@ jobs: universal-silabs-flasher-up unlock-tables-for-backup vlc-discovery - ignore_paths: >- - google_assistant diff --git a/README.md b/README.md index 7e815a18755..c499a0ebf71 100644 --- a/README.md +++ b/README.md @@ -41,10 +41,6 @@ systems that have installed Home Assistant. Load and update configuration files for Home Assistant from a Git repository. -- **[Google Assistant SDK](/google_assistant/README.md)** - - A virtual personal assistant developed by Google. - - **[Let's Encrypt](/letsencrypt/README.md)** Manage and create certificates from Let's Encrypt. diff --git a/google_assistant/CHANGELOG.md b/google_assistant/CHANGELOG.md deleted file mode 100644 index d6e260b0d98..00000000000 --- a/google_assistant/CHANGELOG.md +++ /dev/null @@ -1,42 +0,0 @@ -# Changelog - -## 2.5.0 - -- Add an option to enable feedback sounds - -## 2.4.0 - -- Improve OAuth connection process UI -- Fix error 500 after submitting the OAuth token - -## 2.3.2 - -- Update Google Assistant SDK back to 0.5.1 -- Update Google Assistant Library back to 1.0.0 - -## 2.3.1 - -- Fix build armv7/armhf -- Spell error break startup - -## 2.3.0 - -- Update Google Assistant SDK 0.5.1 -- Update Google Assistant Library 1.1.0 -- Use homeassistant debian base images -- Support new audio backend -- Migrate to s6-overlay - -## 2.2.0 - -- Use homeassistant ubuntu base images - -## 2.1.0 - -- Add error handling for decoding UTF-8 - -## 2.0.0 - -- Update Google Assistant SDK 0.5.0 -- Update Google Assistant Library 1.0.0 -- Revert base images diff --git a/google_assistant/DOCS.md b/google_assistant/DOCS.md deleted file mode 100644 index 858da0777ef..00000000000 --- a/google_assistant/DOCS.md +++ /dev/null @@ -1,114 +0,0 @@ -# Home Assistant Add-on: Google Assistant SDK - -## Installation - -Follow these steps to get the add-on installed on your system: - -1. Navigate in your Home Assistant frontend to **Settings** -> **Add-ons** -> **Add-on store**. -2. Find the "Google Assistant SDK" add-on and click it. -3. Click on the "INSTALL" button. - -## Configuration - -Add-on configuration: - -```yaml -client_secrets: google_assistant.json -project_id: project_id_from_google -model_id: model_id_from_google -``` - -### Option: `clients_secrets` (required) - -The name of the client secrets file to you've downloaded from Google and placed in your `/share` folder. - -### Option: `project_id` (required) - -Project ID of the project you've created at Google for this add-on. -The project id can be found in your `google_assistant.json` file, or under project settings in the [Google Actions Console][google-actions-console]. - -### Option: `model_id` (required) - -The ID of the model you've registered at Google for this add-on. - -The model id can also be found under the "Develop - Device registration" tab in the [Google Actions Console][google-actions-console]. - -### Option group: `feedback` - -The following options are for the option group: `feedback`. - -#### Option: `feedback.enabled` - -Set to `true` if you want to hear feedback sounds when Google Assistant starts and stops listening to your command. - -#### Option: `feedback.volume` - -The percentage of volume to use for feedback sounds. - -## How to use - -You first need to enable access to the Google Assistant API. -To do so, do the following: - -1. Go to the [Google Actions Console][google-actions-console] and create a new project. -1. After you created the project on the bottom of the page click on "**Device registration**". Keep this tab open for later use. -1. Enable the Google Assistant API on the new project through [this][google-assistant-api] link. Make sure you have the right project selected (shown in the middle of the screen in the top bar). If you can't select the right project, it may help to open the link in an incognito window. -1. Configure the [OAuth consent screen][google-oauth-concent]. Again, check that you have the right project. - 1. Choose "**External**" as the User Type. - 1. Fill in a project name and your e-mail. - 1. Hit "**Save**" at the bottom of the page. -1. Go back to your device registration tab and click on "**REGISTER MODEL**". If you closed the tab, you can also open your project in the [Google Actions Console][google-actions-console], start the Quick setup, and in the left bar click "**Device registration**". - 1. Give you project a name and think of a nice manufacturer. Select "**speaker**" for the device type. If you want to, edit your model id, and copy it for later use. - 1. Click "**REGISTER MODEL**", and download the credentials. - 1. Click "**Next**" and click "**SKIP**". -1. Upload your credentials as `google_assistant.json` to the "hassio/share" folder, for example by using the [Samba][samba-addon] add-on. -1. On the add-on Configuration tab: - 1. In the "Config" section, fill-in you `project_id` and your `model_id` and hit "**Save**". Your project id can be found in the Google Actions console by clicking on the top right menu button and selecting "**Project settings**". This id may differ from the project name that you choose! - 1. In the "Audio" section, select the input and output audio devices to use for the Assistant and hit "**Save**". On a Raspberry Pi 3, `ALSA device 0` is the built-in headset port and `ALSA device 1` is the HDMI port. -1. The final step is to authenticate your Google account with Google Assistant. - 1. Start the add-on. Check the log and click refresh till it says: `ENGINE Bus STARTED`. - 1. Now click "**Open Web UI**" and follow the authentication process. - 1. Once you've signed in with Google and authorized the app, copy the code back in the web UI. You will get an empty response after you have send your token. - 1. After that, you can close the web UI tab. - -Google Assistant should now be running on your Raspberry Pi! -To test it, say "Ok Google", following by the command of your choice. - -### Troubleshooting - -#### Google Assistant is not working - -Google needs to be able to send data back to your Google Assistant SDK Add-on by sending webhooks to `https://yourdomain:yourport/api/google_assistant`. - -To do so, you need to make sure that your Home Assistant is accessible from the internet and that it's using `https` (SSL). - -#### The assistant voice volume is too low - -If the voice of the assistant is really low, you can ask it to increase the volume: -- "Ok Google, set volume to maximum." -- or "Ok Google, set volume to 85%." - -## Support - -Got questions? - -You have several options to get them answered: - -- The [Home Assistant Discord Chat Server][discord]. -- The Home Assistant [Community Forum][forum]. -- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] - -In case you've found a bug, please [open an issue on our GitHub][issue]. - -[discord]: https://discord.gg/c5DvZ4e -[documentation]: https://github.com/home-assistant/addons/blob/master/google_assistant/DOCS.md -[forum]: https://community.home-assistant.io -[google-actions-console]: https://console.actions.google.com/ -[google-assistant-api]: https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview -[google-oauth-client]: https://console.developers.google.com/apis/credentials/oauthclient -[google-oauth-concent]: https://console.developers.google.com/apis/credentials/consent -[google-platform-project]: https://console.cloud.google.com/project -[issue]: https://github.com/home-assistant/addons/issues -[reddit]: https://reddit.com/r/homeassistant -[repository]: https://github.com/hassio-addons/repository -[samba-addon]: https://github.com/home-assistant/addons/tree/master/samba diff --git a/google_assistant/Dockerfile b/google_assistant/Dockerfile deleted file mode 100644 index d9b7ab13797..00000000000 --- a/google_assistant/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -ARG BUILD_FROM -FROM $BUILD_FROM - -ARG GOOGLE_GRPC_VERSION -ARG GOOGLE_LIBRARY_VERSION -ARG GOOGLE_SDK_VERSION -ARG GOOGLE_AUTH_VERSION -ARG REQUESTS_OAUTHLIB_VERSION -ARG CHERRYPY_VERSION - -# Install packages -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - libportaudio2 \ - libasound2-plugins \ - pulseaudio-utils \ - python3 \ - python3-dev \ - build-essential \ - && curl --silent --show-error --retry 5 \ - "https://bootstrap.pypa.io/get-pip.py" \ - | python3 \ - && pip3 install --no-cache-dir \ - cherrypy=="${CHERRYPY_VERSION}" \ - google-assistant-grpc=="${GOOGLE_GRPC_VERSION}" \ - google-assistant-library=="${GOOGLE_LIBRARY_VERSION}" \ - google-assistant-sdk=="${GOOGLE_SDK_VERSION}" \ - google-auth=="${GOOGLE_AUTH_VERSION}" \ - requests_oauthlib=="${REQUESTS_OAUTHLIB_VERSION}" \ - && apt-get remove -y --purge \ - python3-dev \ - build-essential \ - && apt-get clean -y \ - && rm -rf /var/lib/apt/lists/* - -# Copy data -COPY rootfs / diff --git a/google_assistant/README.md b/google_assistant/README.md deleted file mode 100644 index a4e051c5265..00000000000 --- a/google_assistant/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Home Assistant Add-on: Google Assistant SDK - -> [!CAUTION] -> **Deprecation notice** -> The [Google Assistant SDK for device][google-assistant-sdk] Python library -> this add-on depends on is no longer developed and has been archived. The -> OAuth out-of-band (OOB) flow used by the add-on has been deprecated as well. -> Hence a new setup is currently no longer possible. - -A virtual personal assistant developed by Google. - -![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield] - -## About - -[Google Assistant][google-assistant] is an AI-powered voice assistant that runs on the Raspberry Pi and x86 platforms and interact via the [DialogFlow][dialogflow-integration] integration with Home-Assistant. You can also use [Google Actions][google-actions] to extend its functionality. - -This add-on allows you to access Google Assistant using the microphone and speaker attached to the computer or device running Home Assistant. You can say "Ok Google" followed by your command, and Google Assistant will answer your request. - -## ℹ️ Integration your mobile or Google/Nest Home with Home Assistant - -If you want to use Google Assistant (for example, from your phone or Google Home device) to interact with your Home Assistant managed devices, then you want the [Google Assistant integration][google-assistant-integration]. - -[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-no-red.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[dialogflow-integration]: https://www.home-assistant.io/integrations/dialogflow/ -[google-actions]: https://actions.google.com/ -[google-assistant-integration]: https://www.home-assistant.io/integrations/google_assistant/ -[google-assistant]: https://assistant.google.com/ -[google-assistant-sdk]: https://github.com/googlesamples/assistant-sdk-python -[i386-shield]: https://img.shields.io/badge/i386-no-red.svg -[aarch64-shield]: https://img.shields.io/badge/aarch64-no-red.svg diff --git a/google_assistant/build.yaml b/google_assistant/build.yaml deleted file mode 100644 index 543b6f7ace1..00000000000 --- a/google_assistant/build.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -build_from: - amd64: ghcr.io/home-assistant/amd64-base-debian:buster - armhf: ghcr.io/home-assistant/armhf-base-debian:buster - armv7: ghcr.io/home-assistant/armv7-base-debian:buster -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io -args: - CHERRYPY_VERSION: 18.1.1 - GOOGLE_AUTH_VERSION: 1.6.3 - GOOGLE_GRPC_VERSION: 0.2.0 - GOOGLE_LIBRARY_VERSION: 1.0.0 - GOOGLE_SDK_VERSION: 0.5.0 - REQUESTS_OAUTHLIB_VERSION: 1.2.0 diff --git a/google_assistant/config.yaml b/google_assistant/config.yaml deleted file mode 100644 index b7c191c9225..00000000000 --- a/google_assistant/config.yaml +++ /dev/null @@ -1,35 +0,0 @@ ---- -version: 2.5.0 -slug: google_assistant -name: Google Assistant SDK [deprecated] -description: A virtual personal assistant developed by Google -url: >- - https://github.com/home-assistant/addons/tree/master/google_assistant -advanced: true -arch: - - armhf - - armv7 - - amd64 -audio: true -image: homeassistant/{arch}-addon-google_assistant -init: false -map: - - share -options: - project_id: null - client_secrets: google_assistant.json - model_id: null - feedback: - enable: false - volume: 80 -ports: - 9324/tcp: 9324 -schema: - project_id: str - client_secrets: str - model_id: str - feedback: - enable: bool - volume: int(0,100) -stage: deprecated -webui: http://[HOST]:[PORT:9324] diff --git a/google_assistant/icon.png b/google_assistant/icon.png deleted file mode 100644 index 4bade319b4f49b583597c6cb09a0491c2af6cc37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4432 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 0: - subprocess.Popen(["paplay", "--volume={v}".format(v=feedback_volume), "/usr/share/sounds/{f}".format(f=sound_file)]) - -def process_event(event): - if event.type == EventType.ON_CONVERSATION_TURN_STARTED: - play_sound("start_sound.wav") - print() - - if event.type == EventType.ON_RECOGNIZING_SPEECH_FINISHED: - play_sound("end_sound.wav") - - try: - print(event) - except UnicodeEncodeError as err: - print("Can't print event: {}".format(err)) - - if (event.type == EventType.ON_CONVERSATION_TURN_FINISHED and event.args and not event.args['with_follow_on_turn']): - print() - - -if __name__ == '__main__': - cred_json = Path(sys.argv[1]) - device_json = Path(DEVICE_CONFIG) - - # Open credentials - print("OAuth with Google") - with cred_json.open('r') as data: - credentials = google.oauth2.credentials.Credentials(token=None, **json.load(data)) - - # Read device info - print("Initialize device infos") - if device_json.exists(): - with device_json.open('r') as data: - device_info = json.load(data) - - device_model_id = device_info['model_id'] - last_device_id = device_info.get('last_device_id', None) - else: - device_model_id = sys.argv[3] - last_device_id = None - - # Run assistant - print("Run Google Assistant SDK") - with Assistant(credentials, device_model_id) as assistant: - events = assistant.start() - device_id = assistant.device_id - - print("device_model_id: {}".format(device_model_id)) - print("device_id: {}".format(device_id)) - - # Register device - if last_device_id != device_id: - register_device(sys.argv[2], credentials, device_model_id, device_id) - with device_json.open('w') as dev_file: - json.dump({ - 'last_device_id': device_id, - 'model_id': device_model_id, - }, dev_file) - - for event in events: - process_event(event) - - print("Close Google Assistant SDK") diff --git a/google_assistant/rootfs/usr/bin/hassio_oauth.py b/google_assistant/rootfs/usr/bin/hassio_oauth.py deleted file mode 100644 index e2c3730d1c0..00000000000 --- a/google_assistant/rootfs/usr/bin/hassio_oauth.py +++ /dev/null @@ -1,128 +0,0 @@ -"""Run small webservice for oath.""" -import json -import sys -from pathlib import Path -import threading -import time - -import cherrypy -from requests_oauthlib import OAuth2Session -from google.oauth2.credentials import Credentials - -HEADERS = str(""" - - - -""") - -class oauth2Site(object): - """Website for handling oauth2.""" - - def __init__(self, user_data, cred_file): - """Init webpage.""" - self.cred_file = cred_file - self.user_data = user_data - - self.oauth2 = OAuth2Session( - self.user_data['client_id'], - redirect_uri='urn:ietf:wg:oauth:2.0:oob', - scope="https://www.googleapis.com/auth/assistant-sdk-prototype" - ) - - self.auth_url, _ = self.oauth2.authorization_url(self.user_data['auth_uri'], access_type='offline', prompt='consent') - - @cherrypy.expose - def index(self): - """Landing page.""" - return str(""" - {headers} - - - - """).format(url=self.auth_url, headers=HEADERS) - - @cherrypy.expose - def token(self, token): - """Read access token and process it.""" - try: - self.oauth2.fetch_token(self.user_data['token_uri'], client_secret=self.user_data['client_secret'], code=token) - except Exception as e: - cherrypy.log("Error with the given token: {error}".format(error=str(e))) - cherrypy.log("Restarting authentication process.") - raise cherrypy.HTTPRedirect('/') - - # create credentials - credentials = Credentials( - self.oauth2.token['access_token'], - refresh_token=self.oauth2.token.get('refresh_token'), - token_uri=self.user_data['token_uri'], - client_id=self.user_data['client_id'], - client_secret=self.user_data['client_secret'], - scopes=self.oauth2.scope - ) - - # write credentials json file - with self.cred_file.open('w') as json_file: - json_file.write(json.dumps({ - 'refresh_token': credentials.refresh_token, - 'token_uri': credentials.token_uri, - 'client_id': credentials.client_id, - 'client_secret': credentials.client_secret, - 'scopes': credentials.scopes, - })) - - threading.Thread(target=self.exit_app).start() - return str(""" - {headers} - -
    -
    - Google Assistant Logo -

    Google Assistant SDK

    -

    Setup completed.

    -

    You can now close this window.

    -
    -
    - - """).format(url=self.auth_url, headers=HEADERS) - - def exit_app(self): - time.sleep(2) - cherrypy.engine.exit() - -def hide_access_logs(): - """Hide file access logging for cleaner logs""" - access_log = cherrypy.log.access_log - for handler in tuple(access_log.handlers): - access_log.removeHandler(handler) - -if __name__ == '__main__': - oauth_json = Path(sys.argv[1]) - cred_json = Path(sys.argv[2]) - - with oauth_json.open('r') as data: - user_data = json.load(data)['installed'] - - hide_access_logs() - cherrypy.config.update({'server.socket_port': 9324, 'server.socket_host': '0.0.0.0'}) - cherrypy.quickstart(oauth2Site(user_data, cred_json), config={ - '/static': { - 'tools.staticdir.on': True, - 'tools.staticdir.dir': '/usr/share/public' - } - }) diff --git a/google_assistant/rootfs/usr/share/public/css/style.css b/google_assistant/rootfs/usr/share/public/css/style.css deleted file mode 100644 index 46c3517424d..00000000000 --- a/google_assistant/rootfs/usr/share/public/css/style.css +++ /dev/null @@ -1,97 +0,0 @@ -body { - font-family: 'Roboto', sans-serif; - background-color: #fafafa; - display: flex; - align-items: center; - justify-content: center; -} - -.card { - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); - background-color: #ffffff; - color: #212121; - border-radius: 2px; - margin: 15px; - display: flex; - flex-direction: column; - justify-content: space-between; - width: 400px; - max-width: 90vw; -} - -.card .card-content { - padding: 15px 25px; - border-bottom: 1px solid #bdbdbd; -} - -.card .card-actions { - padding: 15px 25px; -} - -h1 { - font-size: 24px; -} - -img { - max-height: 60px; -} - -ol { - margin: 28px 0 0 0; - padding: 0; - list-style-type: none; -} - -ol li { - counter-increment: step-counter; - margin-bottom: 20px; - display: flex; - align-items: center; -} - -ol li::before { - content: counter(step-counter); - margin-right: 5px; - padding: 3px 8px; - border-radius: 9999px; - border: 1px solid #bdbdbd; -} - -input { - border: none; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - border-bottom: 1px solid black; - font-size: 14px; - flex-grow: 1; - height: 30px; - width: 100%; - background: transparent; - outline: none; - transition: border-bottom 0.225s ease; -} - -input:focus { - border-bottom: 2px solid black; -} - -button { - font-size: 16px; - padding: 8px 10px; - background-color: transparent; - border: none; - color: #03a9f4; - cursor: pointer; - border-radius: 4px; - outline: none; - transition: background-color 0.225s ease; -} - -button:hover { - background-color: #03a8f425; -} - -button:active { - background-color: #03a8f44f; -} diff --git a/google_assistant/rootfs/usr/share/public/favicon.ico b/google_assistant/rootfs/usr/share/public/favicon.ico deleted file mode 100644 index 6d12158c18b17464323bea3d769003e6dd915af3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17957 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 diff --git a/google_assistant/rootfs/usr/share/public/logo.png b/google_assistant/rootfs/usr/share/public/logo.png deleted file mode 100644 index 78bad829866f93e5b61964f7bc5880d7350030a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40104 zcmeEt1yfv26YdfMK|+8K0>Ld1oZzk-B)Gc;*A4C#+}&Y$aR~12?(P;`7I)_!zPeTS zPh6^~qLw*5-96n;KizXSSWZR^4FwMc1OlN+h=UbCAb1ksmlz2V_=G{L3Iha6gGhjd zl$_xXJA8o8K;Hj772*`WdHwVM|Gav@_=KT7r+(5uvQ0dU0%kMo!J+O{ce2`aEU6qx zX5d5OL()-cV?Yj*P#&uP&hq}V_;`Ec$FIk4q%v-lZg80j%fvdn5s=AW)-E11j&ZwX zGfK(-pJSP-{q$Ay+)vyL*wqOt_mR|1vP6)Rjjug&4^Ez&7v0rF4EVRg*5{=GT*GY z8Xo#Gbc*_P?P4R;E9g0COs6LF=efw=$zI=Ct_Q9)cwS2OpD$ta()+i+F()Oz9M&ooM&3rI^Ujks-Om>NkY8a%%m2!c2@ zwjK}05$qO5TntO@T2L015?9x^9zAb5iZTmC;Lr52oYWb4t~4HJP%&m+-Q{XTxqW+$;JN&qVW;&n)-YTpMWoJEbv;Baim~L@F5jqM zH`ZxyJE^F&P-W^|`b6MxTzQFHh37l=DUQmEmp>Ere500fXznT^KeC|}u@u71e3F5; zd&Q?8#Qz}iqq~j|%^z7jhw-LC*06cC_il%}kAo0%El+EVABsH_?qZ{up237lWtiYF zqJ`(~Xf1M@0OP13^w`}r?%p{vdp(MP73RNdE9HvMZW)9Q>*tp?yX^Bf@k)y)TRkJq z&GjlqcaGVc3shvSRwK>F`??>E+;koUl2W12rs=|yIT|2Z5A1y$D{kt{u`&N~a}cFzD(JWJlu=*#TqG=QzPNaqPftlM0(*Ot8qEke4p`k( zhiOdb^o?0p=i|gJ5%2b0b*3d*ML4@Q!II-(OMIL6t@|e#_RVUPiZ5UTQxjcF+sT`y z;n0_7kG7FB*JtSQ{*sBUnDsDSM$~v{V@Axd8542(oT-k}CVffvhUU~O5WeT8g?z7k zvSHbHj34;EODEk@RzP;E@7bA_K{$mS0jX$AN4m2wK#HHip2+6ArGC3Z6v{O${ z9S@~co+lo&97orxZ#Ej<#4}E?bU+4VGLa-Irz^LL;JxH!@3J96k~Og0=>;-(x4I7} zgCHlrJz^bsS008TI}eFi6YHLp8-@oDyHhFq5oz`8TYX1|18g00yX*^Cs*kjsf3`IM ziJZlqr-iFe1gV;lX#i}fYh|vD$M%$%}Z-K>`>DdQK4)vxYb*R1xTVTbWzQ%C22 zUn4VdWt!$$S5wU7c$>4NT+1tpm_t?U@gMu#oMRu0M{I=Qo@n6iJ6mXq;X!iP{Ppky z&-urlIfU(w$Wg253NNiW=KIc_Ey(+m@MF_teoHvYVBByyx!n_CD70o%me;?HaccE}%_&PZ9UmTBDP_g{zJw zs`v$Db$RXmTgrWBV@Nmbju@^4=LFe9NE7E5&J0;MnV&p+z+h+ma`K$r7D1j z+A*dk3O@!=-#ztieV>B;8QV%c_z_+3yl}?0?MfNu{3Nz>o&P{6pOgPDSytr!`h9Xf z!J56H=Ze+c*}siKw)+K(x#aKqxP$cQCzyan?|(_ZEYi!?1Xh|F-8;n6#;)}TFRh8X zx72w-0!Iw*`3Z;~g9z4|r#)j@l8=WXVJ9fGhfbe4mN){|i3*?HUXy_-NUMfDO8Lc% zxWYLZDko>{8I4_a6#*gs-Le|o*B;#OST}bz4gR&rTR18DnURBvzKNW`rl)a**&DFv zUt?;?BP?^e|8D58(0@B65vU1-YifP4rmC(vAAFnPG7}cFC~OuBsF zS4{9qZU8I>A%&)R%RQgZ(96wz2*|jUu4>FXd_yc-T`Bt7)3rv zoAeAf1{-NGHSs$yh1cbaX*($X1Z4ci)vl4*F1ty_+-1${1!@oia4ILaDMZU|+(E;w zH=FL#Mn4>;a+v9L#^dnZcCpgQTj)#9@m@nBmsWZ9(IIhI*H{*+wCWL8s(#{3nQmt4 zN%HlaHGLb_7`!di@yF=8+KYdYf8zj+`t=A&mCkM)k-OwRvn_E*(@cr0OqV+FNjDHl z{xvNyVM%VKBD?OD*rs&SiG^YuAH~5q5Nt7k=k#_<1v^jm8{DPu>m{)7TZ#+Vo1hvu z>Nif`CNM?=qFd)$-F_%oPnV{sS$q8+_&aR_9COAA>?2?!!GA-lMURdxT;}HSp5LjA zU-oYA%Qu&H*EpqFb6EJUbZt#V>YT_Q$X#q6`UaFcR2ei02^^l!1%YSFi4%&I7aIAv zY(=e3S09~!2g6`3r6x_cBtI`7-N0J9Cu0(OF)T$#Uq-x6a2*B){}-pUr>PD!`nUCT z=I>=v~ zpW&XCJ#D`7s>Kz+fie}dS+jf$@QMaXAQol3Ste}hg}e3GLG9NMd%Y`JaHH1RGIxcN zRxr^^`EL6DIw2*8pywlRXA<9EH z25((Si4zTn<}+xG<2JLs7ioCxb^LM(D9WIlnlL{*OD;)sq-vL?0drpbuE+0(Y2zgB z<~UuctPRoSfy4Jy#jVaAX10t{qpOv^Xh?A|TP7I*jS82WfR`lzo z8MKUmIMi#ueG;YhYNcXpteR5wfK^ zyWIK^v}S1;+w}o>bZ3%1d2Zg*Qo?`0!J}p6>`+h3_D6T#rBt-Z%1}0+WF=Yas=Au> zg~{xqLB6Uc*K0}s`?5$wHd0wGAv+YFEJ@bt((Q8JS(WLKNrLHe9o<~tVk=bT(bVq% z#94K-G4McMeEtvN=z;j_%d{jFZs^f(=nL9GR7enyh^3g!@T^Sfv@GAfA?L>VObKxE zzx%aqVxtGWQphC-k8a3XR}Sy3N5)>38a&02jS)skIpv9|4i5e&Kwid&nR z!++6N6S3y}U<)7k-7zZ&if*p$r=qb~u&2y@(f!xoZKVZ#1`>N7f>WZfP}LXq?OR>O zK!myPX6ooOIx(2lon*;rI4b-$fDubUp(a7&n+RTr5Mx)2bw?rAz!T_#I|T7P;#~MihTkqPR?k zMoAxzDlVY2vyeXSPa*Z6I~;jyNmx}l02UqG2c(V!?_nn#uHkH?Dygv6+uBrl3{l&K z`RTt_r0WIz09(U>F571mzORhNUPrEr$D$cc)xyC+Ius9Ys0_`-te2mkv#>kV?(SMD zx1lY7r6j2*i=+zms-NkrAY;KrC(eW4o51#Rw$1;MGv-zJ4;?mbQJED!B@QwH$_g;9};Ip3iEvl{ugpZ9UV&)XLoS) zVD~HU??YEd#}Z5kY?$GoZ`M7uWnpsTpBGDe_5RLGV-)gQFS^<{@~XuL_-u{C`N(;U z546|pi4FiK1*NrWPE}?ID|{o{cwo6XzUz(qyh!sd zpwIP|ecMU8AFE6$(r8o_BsvtI#}El{&qO#4^U7eHIUgUbF@95qJLi*_F;QnwkW}7( zFD>~^Rav!X!!&LIkF0U12`4e6003yUEre_x$0bW%!8gd4IC!ia-Lvz$%L)VqJ&`&( z-9V$Ll?SG_P10>W?LyxJCj5)^Qi!&xH93#QI)S>+kNTVo`2}$j(gN0umQJA$vSNE> z1Nnj5UCWmihhJsbh0e*y!;!#t!}B2VeW_LxsgR`j>kG_AkauY z1*D&!g@&cokvVHx(|vQ`TdCV6-yrPWbPNv4!V|qu@D^p}f*y}XEDib(U8O^k8zceN zSpOv*;d4jY!{JJ@w)^#X48J;)()B_b+X@0s3GJccZ52ov-ImC|v5`YQ5 z-CGC$J;Zcy81@~pm6j30KlvhI%I7$7sfg)xK6|dCxOFa|(EtF4k)+ci`I-F~Hx_?N zm%G(!H;$GJkKjSba__p;(NOHDhvh)A@3Sf*;CRGxe`%jbYwd$QWTQN1t!dta4}V*T zz~DSa4}15*boU8!w_z?xpagis?S<6%Shh4dD9QVe*k-wUy+9*7%5Q)}y=;rTUdFcd zlK0;!X`tua7_3nN90RiL!HZ`)jOs+WII?M7WlIw9!@&IEK6TS0@!Lt_$7$D!6?#Pd zV*oHX@P_+0$R^vbX&k7aM&v$tHR5#-`9f5TiMaqxTfM3K6ram~^Q_)vxE`Xy6$Xgr zldT@&**%GCK)dEs|E_rA+BoNNZ(AmWj~VUJ8$(ycL2I5mS~`QC#%U2)ytc{^2-LkK z9TTJH%Ht+})}6~0+tET*Fsssmz?Y%J(csicgz!Q|lj*m%YJl*qu6{<g0TIgF?coLe=)AF?Yq)V-$=YUaRyO+zz^o7&Je)^oh1{UK02Z)$< zS<&Q=pc`sfovw?sHcYr&-`#=1BCJafZ*yME`bSJuU}CGRb=u}HjUs@Oq|7ZUMxL?I zG^{CwI>;0k=0y3>)aY`O$}r@8?`Xj*S^D6!5H4{yBTe78MR_UQX8G1}GSvU^ud&r7>8mQZ8yW>AqW?Cvto*XVchDJc#)Sl6 zjJurzzq>w(;@`_EOkIdWk~;?Gm9E-eG7n`!@>mXcv zL*B)6J~0@)b-Nf($mU>|P}^)}?hr}<_=YL}dsNZvJF(p!-%u@}P1DWr+G4=OblB+` z#!f7m{$2$Gh*-Pl?TiMk{yfU9%RMtG|eY52&C?R%hJ)b2+L6`jl;Kz)MpW zQGN)(W{8(Top#o zb8Jk^WT{#cm%mfm)0T{d%({2|xuT`oCR;xM<&zz#xyra4Y-OZq33Z!v7TP7j;0Opa z-;>VGPItAdyuo?(mzh@_VEp$7+lTH&)%@~SfoJ55%|p=lJ0>PpOhj`%gT~WXEjfd! z%m51@vA69oAyT(NiFeVOLIUp4|dDLu8O?eFnpS}`$&GuJG@^un&immdQQQ(mbqL*1(F zv_jIce{snX6{s$=VH)v2M(zXB>O~0!7O?lVxqr(=u6!jUn~Eo#tL&kjge1!o0}=Cyg(p&9T443>ci={Hb2?@f$GtFB_auKkG{prDkTuSlWL->SO|uzHPtU)}S3=L_5Y^T|`=k4~mf0OJq$A5z?Sq4rSnT-MnE z_*Xd50bEj0P_N5ka$>n;>C&|4@Wu{M4)xRu9whVK&qD|mw9ML$MMs_j9S4A;CFBJ%mI?j>;xoXzB8xul;)srHtit z91fhB=c=oq3l+65zy%0Wm&)DqNtjegMTTv*Ya$FG&}{C7901g1_GO~}T?SRI zszFb-jeQSHhA$Lkc;b9&N|=vpfs9gv=Uz2~|GfjX7w6L8l+^a^c3*M#RcS9j2!UCd zLcmsIgrp1Kmz)O%|Ap^PtACjWxWx5IwfM0N_1|g%+}))>H^vTTDM4UwrQXk~8e&^S zg^zAU?}0(baB-FGddNTNh3{65_fU6Ex(+fjyx&HB_E#>nhrv@YCB&})jejmCTeD8= zoSYuhmZgX1#hhp_z8NA#Lm9G?!424eR50%WxKtu)WK#vj2wse5kmUom`pq8ZjA#7g zC>%9)Dqp5Zdf>k|Ai?dmH<dc2M4Qs!~q@YL8jibUc8OSRR+dKceH;LO=dN}0FhU4FQ#F5>A_sMY}f!rb7gG$ zq2ay_j9<#B?fe_;CQ^8V4-ZE}H) z1|AOtDtfNc+$t8!Ef@AWxHl)4Wo-HNQ5ejs7s`7>U6U^)G_Y2V%~{6C8NIA$?akfNCwQx3FB*#YqI@ypk2O5 z;B>7(4i6A4{etsQm?Cox_mvBk`H2AtFmyOsik$#w<{hQ#JKekM6NQhC{M7IO4c;xO z{P+^cM<$@p=)`wqi`yO?glH8Fog=Y#pNh{IxA1JaE6maZp4aKe~>s~ZjfMCku@+gbW*UfG;@>D#Xt@>L+ z0PvjU)3xd}-m)JkLnDk@y6_x>xxRoS1umA|gcK0AQ|Q+gNNHcN`t{*K?aRG!j|X|P z26hG-Bi?-W(=wJOTF=jN-B&7`xr_iN zlz+xWj# zRVOcJl*($QT<1sHl^X&oIzTNMwvZZ925voKvF3ixO^t^$3!)zZ^n4G)IzuOY(jn85A_K*Xp=Kbr{A}OrYuE7jo}okhs$a(Ou;eJTy)G&;GAc!t z>0-XJ1t?RC=<6cSo4#8GS`(FpGM?6z9z9+=IY1V=%2X$e%6%nr?AF{d`Uxg`YGdFO98~U%UhDz~J6ECB(I-XGqC%%T&J* z0B@dZ;YG0SuPrysi3+O2Im=?3b9!JqbBYWTQX9k;*Q%LDZ+ z$hyL|9k5d~BZgKrFLES!L8Fi3Awtg(gYxw_9fwOf%NClgMN0;OMEL8yD~!wT+q}N%_3Hw&0a>|A-AmRF90>VMQ~*kxEH0QsY4XgZtesC>A}i2 zKK@Sn+Aj#g!Q9_!3I?YIVb7%Eup{I{m5qQ1dtxtK9-PK|Q0}X1!qo$sd@}ZIDyq5p z7mfYl4AX|iiVj{!P5bo$VIOXA@f{(G_Dj6pMGScF9VPn81a2vvWy%J zU1APg8Ve5E`+7h`1>8)!4y5P}KZ?@6u8F0MVQ%Y4BRCrw`QS?n2-?DmI=;D1;F454 zp(zvx+L(um7ZD?1Dmrx~9Xf=p1_ocABgE4Bz5sXA+sXhnxvQ-X;w8cQS<`07+2_qS0DjA~an;J*y26!Bc{P(&DX0T<7}g%&zP{LnM+YP02Rkp0w*Lf!8Qrj4^H!0A z9Hpe@&%{2xtK8NB(oaWaW6bJfzQK7Z@*ej1pbtoG^w zo0f6Qo}{frxq7YBHbh~7ygN~7r!0;*v~+83mgpkZ0qUa~i#A$Zy9QOW-u?;)DnIgx zb3YC-yg~3=C>=w*d@vXMNr3=Lc1?hN1 zm~@@xUPn3|Aw}GFji~4VS+Yxqw)KczXkfRwxWyE7Yyt$CUp!XT(3ll-pLCJ3i#!PQ zNg0nTUr6?#bs#~={)L=ux7NA*SU2EakvMqR$t zG-Z=E1udffP=FQ+7ygvU^&Gom?ICdmVPbwqHUm01;@#fj|BbDjq0&oB;1EX%nc>fz zP)BC(W7*e4T?tx^$FH*kI}V`L<-G-Y@1E7=QOvCJbGJ=DubzF_S_L|WUvIL28{XdM zE5W|#wv{MgyaqKf&K}&D*_mHXVlV*ljRytIzl*`2+O|75v{8H=pF2bUpv0Rw-0u_@ zSR0@6mIEz<@ni{$xdN3m4chBA)P?0hB;AU4b3|UD5j@~vV%oefgNOju8FS?DYb#+R zfk0!5YGy{FEl+uyMa<4bzro-`_%msy+{MSWoJwG7aLU_|tJ14Fp8-rbjQ;N)%vN`~ z_jY|8=lv0a*RN3Fl)E*3CovF`{ARAMNn56a8<-BO{mEVDl+757NanJggs*(AWnTaY z%-^=$ukV{gBV_k#O7ltG1V69>KIX;W=^Jrya|+Bh&|ESietl6WJ!UUsvTuvZGJMl) zPxQv=jWAFl9wIi_^mRJvv@2_^h9C3d4uNt%y(qZDo)<9`v4GtoEBJu|0H~>p6zmx` zpp$jL8Y%|X2-^4$4s&}bQvAi&mK6!?xbP+iy#1>ysH`qcJKq3xs38o)nQQ&U1bFdg zQSE{+;w4hkYGq}`1G%uNj+OIMprgbeMMj4kgSSp4O=X6ZA?Y*@bIHh=o;*$gmd7Km z)??$6|86{>V~qq}cYF{^@(}Pv(6tV8OU!a*p)7c_QkIIn?9R+`^QS|-$H2F6K9dbK zSaDSFY(t9N!-kDK+E8F0N6Djy`_KU-U?IWX-os)$wT@`Tvtq*L55~EVllOA&u*NZu zP{X4UK?(?j(m8jwI$XNz6{9pdArOF}VOtsV-o&XTX1w`XQ4v3}P%Np^ATYIZjqumt z{8EN=#VyMsj7D_mj-`>EE!#r1s_|XSgSqHQ9H&z6Ruhfr9CwriANO*aGRJgWgtn&4K?SEU;k6U(P*QaQ`Yo*TUAHrxbp30UaM`egD(C@!jK1ROl+& zl;pDY$Iw{OkiAk3W2CAnepohKYCh{4PPRa-qz+?cJ{BjstI&||>9;3*T=8OjvM|3p z;VZyx34P4q7_^st`qIKGr!b1fo_m6;KPnYo&iFKPxQWoRji1oAeD95M@UbTWC8y*w zA_5-4n-4MwK#RQ7#V44PhgQ}2ct zt-0&cpLIn{%}Hf#zCLp9xBuSwrv%Vtq{{1pU)H~z;l#3>(=ZN#jflJg6RJN;bQwgi z{k{m3rcv?I>7fviZwL^{SH!O=73$nOLDQRhW}W3WaCN^3VVu?Cz7?LWaN2JO9LIjf zG+W)J?k0JQ_@(}VlL-zaNR0>o!pa#r<>_`TU8(IVg>;qkIqe(ePze@ez!HuZq=3t! zCPktlhuJ*i`DsKn|Cc?qj?(K%E%Dmt(tRLR(JVJl5wa1goNz24h=EeWn71&3h+?I7PQFii`Y~R<@97DcE!cTK9`!Zz zLbRW6)~}yMR~o)2B;OZ?Tikn`=@nQAl1?XMKlezW6Z5-sRYrLUFsU}I15=d$qQRff z5YS4{bvz!TVjJy{MtF6=0d@~M_>fc{^~S660^Aj>Z887KW%SyI?~87esxO}@SWBN1 zcm+R0OUeAWOSaw8luTM~T){qad1sH;ueZYph~i*UT{F(fXVKAX_JdN=PYdO7A5&*9 z@eH7aiWQATlW4xMz=zV2O>%Wt7eC%FdOufqR#|sdRXbHDbJ~UhvAOD+i>4#b*Bo6a zw~N#b#}In?9ZG)~}6-znBjW%HuoKDM80v?XTcE z8wEb(9g(ap7JO;(_+vF%5L-9e%K739M@=MLSo0yJuBAlP6s~Q?1O5-(8_<8B-bY38 z>Z{srx2z%?$sAad=2S3b6$H!><9Fs+MFsSEU~jrK{fFbRNv`(sM$J|Lr*m&irgrD; zykA1%=bF#4S){Bb!v9s{WjcxTw^ePn_xJb!%x4gJ6zjS-p6daOT_^8^k||M(@M*F< z>qJj+QNzrg*B0#qabNuaImNb?x7D-S-B3tn#CFUt(od=f{|PA7ULlX-I68HXyaR%) zWKS%Xwm!1wlijqo@V87e?CrE~&UQJ}v`ZNitIAEQ6%%NPL8F_rZZ%mc5?uVFykbAD zbaO7z&&8uLLg*c%YA4V3|KrVsg9khq*9N!Fm^X8-EB$S=fX8n<41G0UK-Ko+;Il>95Q7&DtVM2vJZZQYN~#QnYVge4WP+JQCF{ zxUBC;|I0Qmm&dDN*JB>!Z6{<>UB+GK?-Q+SQ{bgTpXadWw81A|H;x9lXlH)(jcZ+z zg|LvV1nG=0Q#DZ(KPJJqKTAKhW)5tZHGV*S4-Bj2WTJeUqP54o1S;^Cy-7a((gmMM z7qzknNi31CeYou}ko#xhT5}_oY+^i{E^zzP^#ZUYkbs0>zo_BlZS$D!4JX}i(>I`R zi0~9etw-;Ijoy%M4SnS($#>G^XyYG_Yf$Jh&A4r!JEXD2-|%exF=EPSYRTp6N=zW8 zIZ90C2W==2j<{4l2VrWxI!#bW(e_R=xh5i`FA>Ers_goD;b_|81u4Zem18nvLOV8y z&(K?3OLvY|AdY`LuJLPw%SwLdVJK3j2}5NNl~p{+nzvRgI*R*yRFI%PE=e7WxxcQy zH;FF8aBEylDu<^lMrx~ck11b9{2r-&)*zekab(>vl+ugsBt{Y2Z=3~t-4(Ih!235Y z36Qh6(hO8+7&>?)1f*M`R-A4AVEG)I1TJKn?A52r4ru>Xj4=Dm$C>(bO}JVDVI=q* zRG_$n)`3%@TW$@i9)Y!S21!3vJ;FQ75|Nx=ka&h2PkfVfOc)<+Md-gM%x^$*LQvxhye4k@4(0CE8CEC z7Ve)5G1Zcy?qm1-6-9mI{lG`emkc}FBrIEI_ee9^ zM4y2;5c`*h7sxBoiH?L=BUiScdiQ~KhZePgk-QUuF z81ueWGwrp3pV8qzKVVYq6}@|B{T>6Ed`f~Fim;yZZXz(EdYA+VFTiK8{%wfS%!PpT zX$40nIcpDlyp!K6LOlB_HS=QaG zp3A~NgO~StKXpu~XAdIAPNyneKK!)|sGrfkABPBa<3#)XWjO5tpyeQ$o3tQY``IqC z$Nvc^47p~~`1b>Ap4*aIRe|8p|^EeB-j2YB#2?Mn4c@O3oYpQyW8iTh4c zG&G|rETyn#WNZHCE;k{ymBPJVWnFwox}=W3oNI|7sw3wr%Fu4DsqGm(a0~VyK{y3P z~Q^iP;a;(+GKoLet-HOl&ftee5 zvtYsO)<*f;S1ZKT;M!c)Rh~=2%%Se2emfa7S$~HDS8??R{&s@yZl+5yCy5MoSv}Jn zJ^-GuK5pe|br9rxi@MLHl#zp^S0ih(Z@Bvpa!}6_%5EBWKskAi$`@ zAB2zb)Pd`g=4{+z~dP>m{hBRi2S)X!kUW_1F?UajQ?f6=Ao?lp^yFC z9|HxVB`iU2@$dm4bgKH^k8WWqt)#BJQPSZ=?Rhb(q}BO765tbgXVNx0IU%<%H@rs_*CR?4$>bPtUX*CX5QdusAzMTtBBjo%!@q@pOKRpWXUZ?|gPZPnvmJoO zZ6tKx3qpN^HO#&FZAU=e$$8sv3V0;G^VK3cXc)Zk=gv&2pV>}dm<2IXH0b&vBE;F> zPi2C?p#l#(Q>Jx4DQJqh*-I?l1_{5r`-#-U%8);u5bhCB`NfS%@EKl|@h=aexa*}L zWq9+4%v%Mhg1O)Gq)&&wJILPRWn@)duqNKh!@X;~Y}0ydWd$4f0>oE2;os)-aiAX9 z5v`(=htGxsL=1*VT0h<5PthLb#;D=*keIdU=qoE|+`wK(_3ZXGWVFEG`W>9_}O;px1qBj}RWH`6l2LA+qlcZFq{ z<1rLARf}V|4hgjtOkpHa2r|i)4Ntw7zs3ZHFepK5S=1$ffJgaz6Klot?7f7v-sIrX_*(oD8-RTBeZuDz_^!iE+C_>1% zcKb#gnQl0la$z`~NUUh)N;7X08SjeRCZrBnK~lfqC~V)oRLatLRquW#MI!Y>B3~XD z(7c=LHL@|J2a&8|2d5u^M;HA-j=mmC5{(11OgtY*3cO9TQ2XK;9}}8Q5#h$olz2FQ zE|2lS5_^vn#f>f)7}+s|kusx|1>R20P{q56)ij(nL|OV2BZGQBjgY-e`irQ8)<|TB@6Jwo)3jffyU)MA70g$69~XZ|6aEB0)j;Q;A_DTk5T2KIk?$zA)Luxl zX*?TnIbn@rgYyo%VhN+wzJ$+TF0lK6jznDGUC_P0==bAS>TUPp&;zo!OjT2TbPjcm zr`h8#Mm9uDM{U5spAti#F72(uzpZ+ZX-B`Wz5hGVkKtptl5S$pv>YH_4mF+r@4=ue)sE85C5|;5-N$vg#o%0SJm^K zjZtWUBRvt=*n?!F=BYJ%d9gnR1YTzj<# zZwV(E?@`7mL{V=Y2%ag67 zQFD60P1evXYq<7XDQG7LY8N(jnm58HVI+MHnGSQL(H${yv1Uyk&|$$~?i_kJ=~z|+ z1D*XI;RRhhXvSdvrQ$+`ioI8K zWPOy@P`!Tx@~aYsA>i0Szd(uWe3XS2hq0sjtZzvajiPWy>^<&%_2V2bNZ`idu`wbj zAv-!MdB4S)YWD;I!zMr3Zz9i79@m_CY`vuef#oS4w6Li|cb~1jDI2GGakjpr5;sKO zq+M*P(ziD6@1G8CzZHyRvh%_!;aRKwMT{*`$?II zdlb+xf1+sJ0c4@_IS}Ks;6biuP^%8IO?}(ZAe4)VkrE<25R)-f%_8OV-kV5YRUS1s z%M>fhIIZ`Mcw(6>5$c?PQl|ZuZ~fzPJ|*#+V?!0D04|{*BOH6FehJOtXW|PIy4i+VUN{ z451-Tn)*p8&}B`Dn#j2Ub%ABa*gLadAF8Y*jucoLV~s>b*Lbh~_Nb>aSslfvKT)X` zlYm^)qAba!7pxy~GzHC*HbnlHzjuuV^v#<&bkKV;&@gY}&+0j!E&nRQblZHb>N&7@ z)%PTi->9Eq4|+4uO9>-M-7{*a81UL0R+SoPp`)cxYF$<$+;31eLJ5d|q&6+KMEt6j zbxkZ5go7dw(^XnZDTi*217p(B01Yt*-Gvarum*SROxOORa@3mu`8Wjdfe$6fnXIp8H$Ul<-(k z(WYQ;6$DRmd79HEsMDs~m&ykh|FwezQC_#_oaeS>m6VNN|K&Yk1I?>Xo0@~srFQdw zhVK=lOfLApdrdHLH$g-Wu}>~b!?6Tc4j^&vrf7DZm;VG%NjKH8?&%c;g6s`TdR^Uw z=XZZYzTvauYBl=#M{=0LuCk|#K>w9t1<{jzN*f6`oD($)sfZOj1BCkZ?$~@0MPImg z<#sFb2RRdnw^j#7%p_dKVvnBN4u-Z;_+wm5|BlDLb}u;oFcP_fr%}7L8z&rRcY);b z19a)bDtCDuAV4$SEOYQ8$6Jo_1~~L{sq7s6LC5Eljs*g^Q%+1LYjVQ7y|kmGKMU~h z%(Ef^6m#1_L7L)~6gh{X<0eFQ*v1dDyzor**J_t2C>KAoAKeqJu-jh7!?ovF`jFKj zGrH!Vzxy5r9Gbq#n;_x8N%`kuvDd84c(v;P^`U__Xl9e}YWm_C9%tmFr9KyVv$D{0 z+$QWCm#IqP#_%(sDWVWH$IO>M=+18N~D0(I;f@~gAB zOrqAv>#r3BhdvewVRO$jO+dm{HIKFF?IQjrG_{o65VUmv7gsWV=lZC60?SNbbskdP zkIPQnUtZZ!9ni|U;%6p)0_&gqYz*Alhf`rG5`6QgsIILi?yS&=?nCH?WhC$h@ zx|!oH1I7m}D;)cLVuaI8P3aQ@TCgPEDhVn(Go#h1a2re>rR(HfE7$9D*M|Ko=c%PL zT$==hL|;VW8~VJPO;}-ZI1-T(&X@c26f@*8B#zPrJXwOTr{3oMyjlG$FlZvq=qW*Q z@LiO@wrW~kU2^GIZ}_WqZFhibwrk0irLHf$GpAsZ6mq zpiW!opUYpH57Ijc^-14`!d_mB0i=;eu>lLY$)7`n9eLVA@S%d7;^41kn4K}7b~eg` z*$DV$!j(8OnLF3APUbkTB%!JNzxByZVG;bM5MymOExyH(%n2t1|pi zTRtI5t^a4hgY=Pb?5N!D!;l@-ke%cy6Qm)AhA1(;=8U!_H1>t-$)w9bN@s$nxp|DZi=bh~*=leg~eK>vFh}dSw!QRR~;%RYi4DZ96b^z{l?X~5%-#JF#Uz4X|HP!wKu^9CdBA&%SuPbuJXIo zOPWVVP&F)OPd%$&!$n#Z*TMHkTyOdHoo4huo>b2ljFx%|$+MdD|F&8VflDd)_4xx{ zE>kC~RkUqCjMI|SUT%enBStdiW$mNs;Rpl<&8Dn$EjJ!~M~;#wiV#nCf7Cq0^@8JO z4bK+?igL>Ie@@e)y7IZL?8)_~el?4*Q2cu>Vvdc_CpF2yF}9C;yzY+NY!+B5`_v=L7uAxvap670(&}cE*dBB(BYqxPaqjAa`5E z-;}yPUb=1iE3uQio{7l(cj~t@?>5bbt_+?i6X-pI@A~BZr{YKN&Ze|cK2`(}&S3cRdQSQ>?Rsk1+h>j|;#NuN zEb#y?8^-&|8s*f-BaM+w84N$^0RG!hqLLFK86%uYp?Nxo^~A-6Q1F zie##spKSde_VJg_48k`)2WYlarIn;Icd}io64yA3Lqbt8r0}KQb)(nbYHDERuRS#T z`T)Mg!#t0wb;A93{>V#}6VX5EJ*M(fNcN+Cnz$jly8+}H>hHfT*5*VbRr^wP%L1o&a zAa7jb4Q`oG$Ft`zGtD}>RYCF1K-`Sc+NbD@q#9dYq7|rRe#AVLD#_Vdn0grMs`8>$ zCn~^}7NxGQyq>hM&E%TS%T)z~*L{qRm#YOhWHWf>28X(NMT+0F*K)vvlfx=Au8mOH zR~hV;g#h*|+|j#OWiicre=VVLV@un^3>{GJcC@qY^YKibMoZhsp!0qzA=9Os#G&~JGroxI)3Zd@*@=f*vI$Xw*U|*Ok+QrI`xqwpXbgTb+MepPtI2hi(9(L7@w+C9zw18SAmXf z%sncuPUna|Var{!I>|DNTE;P*mcUWy;eyn){U1qaa3m`IMY~F^VJ~XsRphft9_v7WR6Eje za@SNPWKmvmbeVJYd^`;P(E+MAS}tg!=wQ`l#W(cGj-{=5s8!P!rQqy7Nub-I;x+i$ zdS9Ox&FS$G4wRKvnM==VV|78lKV#|J^SR2x8Q>a=!t`o|AB=Xp9S&o2C9y-Wo3Hz* zPgk2fwmQRf`v=Zo+LT??d}l~?7^HCfJET{f9_)sZtaMkAJ~+AuFzse<5J+C?Nbu_dcqfMajr+CJp_8 zik-7^D3x%lajIhrz55h&z{&QDw4AqSEU*CDN8*g(MOgk|h#gX)HAv%ra7u`~NwfAr zRo>{Jq!jZ{PSkEXfHU-=9H(LYOlcf|jctEEBh|+olQP8T4R@d+%N-Ct7}Mg#>r@+SzL)=Fb4H*`?UI>nV%&6&u(8``WM zIZ)7IU5D~Mfx@3)0^IJ!@0q|jyzuF0DF2t;X7dyOyWa4{Nc8rZT9$j=(GRp1F)S}7 zOmx-5p8Z_T)%TkV2#>;(8NWcz7{cSpcVb@|9KVNHm{PL3MO-yUqNTCNURnf|TV*h9pk%x|6;TaqTZm)0Rdw zf!39Ph%h__u@HOPHA~kA4cZV&6eUO?q54;Lwpoa9O9P!yb{wpi?pVeH@|7G{KKL!{wd)Re(A zggHBY;sPGtP`#5SR~u*Q5<-p5*DReM*l27MX)+*RD*gR^P=&|SERu#SpIG${1#AGS zXwBAfur~zF$WRhb?Thrs@SQcLOz}nLUsrxFj26nMw^}N)@>ZfJffW@o7 zI~>EtBHi6iogP4K5=q9qDg%rr6-j2xExOU? z_e%9dvUoz*7zoed=0k=eb=@1z2RpfmRg7^7PHmb8`T8UVhp2%8!CDl`$k&*A7$Bnm zhN^a04N{+x!ZXh)XGcbxH|NZYxWqUd?rGKRdIDqJdV5mY;gZgylwdErUasi7W%qb=u&!zf%pcVM%oM9>*ZM`kvy|so(mK^a)<>#wphHH zp*p6jZY7N|=?z63pkUnUZ<|q{=F?sttH4SWNloECzx(rhnRyPM(>eSYf>T&J;Z*T$ zr%+(fOkB*SSr+5I;rTQVKpd(Qy**()WvZ^E0xhdBIXkLiKLOZZm{gE^@2^~0GWEep zZ=?dTQOrJBx?o4-d-A zZ?4;g_{kU8aE$BmTsiW+L7&B4WiEwmtn6k-kJELTYitqK!*9jhtGh{U0cq$xadGrW zm{q7HezdM@4U475OaR#6D}F`3x#q>GrYgl^bsR@6z}e)Fm{zA&CP>*H>NY1gm#Ty! zT<2&#Lo6-V*h6ufsCO+W@l2v+gl0qNV?KP8MZFyErKL8m$=GNhB0=i%16Bvl57kng zrD(QxG=>0F|AXhN?k2JC#vAnI#+XNL2fTPz9dUJvEW+_WvB&)H+)#Z8{>3c-fw=d04VSOU#a67#{2Mst(O`@D z?)R~mv=pP)bObSILrt}6@aemjIxH!g@s^9;s`EUhG{8uL)wWF0DpPz?{6GPO4Uz6< zEL{NV4dHR@biuLQPWEMNp*wY)c?qse>Dkn~jnp=e7XrGU9T}0qp=Rql52fa)k9F3~ zq|CYf9>8`2g_T!IW0j5XII@kXDlvnAO{a8vY84dE+h|whqrZonNP^>hv2nDE(j|TV zdb`nv9(f@F`){i+4Jj@mKFKa3MDrLQfWxS%$$dBx-mbjd>;0>NR_u}_S{yK_7cWKc zIJz|d9ggjQg&FN$qdUl@dZs5_3*;ftt9^kVYt_k)-)S0(@Am@Aq5;7Sso26UaFcCK zm~x~{h;a&EN`yuhfO@>VHX;32tc-nWNJCpPCWoM3 zlRmhji$zwUdH#o~KoyCLnwJ-Lp~Yrc%X}Gw&NdSTzwQ#Io!?}q zrY(@xTPUZ?5(DUGxR4I^{Dc=6hWltshwL(I(G!j@2>bhXo;E$VNv|Vauc+V4i=-$h z*$Z>1c_dirCZSYLiWeR8@UkadD6sT* z3i(w>_PW%&j22)H{Bm2Ka8muLS!_k!wPB%#yd{D{d>Tsv#;Lu0`0`}CU*dFW zaM${5nv)IG&vQ5K;|H&AlvOI!)AlHJaYb|&+;N=ef4$vMv0_HBk9}A|`wbn;x84+G zxd7fsIMtL5M0(W?&+I~5=7r_X6Gi1w!}FG*q2XWqyv2 zV>IENdx;&;h)nVxzdOM4N_4$B#@sn5`?2)kMvWU&S3&mW z;9ZmzM-x@JhnB7WCq0$xfhiIoJ$l(9fi3>dm=ufRt$1U}w2A_b&aHFISII7RAl<5O z`nw0>V?6wQHm_j@je0or@5T;|Br<84Xq zCeFI*`B_?Pf?6}?nt6z~@YOQceejQsxBw9kMKskDaTK~J7$`!0*nC>^E{YY#vU+h* z0}^%(&=_Jc_*PPTG#93lY3-Qw8B?;cMq#9`vaJ%V15lOsXDG1b@i{uf;zK<47s(P{ zPZyZoAW)j_T^i}A{#&P{U2RLM5ODPsnQBSVg0KG;n)hn z*A#`k(WXW9V5o&DKqC%29nKl8$8PP0n_4N_;?~6})lb>)Qib;O$63ipe;Mm{QFA3D zL`}OR>$TIAX2Uw8B>8Y`qXKqlrpb+@F=~Fwd^ZBbV95W11KT6iu)G{0lTg54ZamX!-}!Np!mwlM1NIsj{##VpQZV^w#_S3<>~r)-M~AZ zAp_G3cozbX&|_Uu5lDcX%hdb|>H~CX^HY{XEHomd*Fs8zN+)XJu;kZGMl8=+mb{Hl8R>JT2o-osl*j&&V+o8ATT-V0!(YJXFnpE91P7b>_i6zl*2efm_R|_ zaI!;MwdR|ZCYxpb;vx>@S5(2rpEPNG{S*1z341%LHw;PaOkq$)mgqw`^O!?cR*tD{ z=718|x5LU8!bWE%tBVC6h?d6$2ibLQ7TU^K7R8Brcg>Bj3;O~!gUPC}*6^$R?dvZ$ z7qSmiZ?wZ;~~V zITK!`eA~59g_f4i#Ty$774{b$t@fp~Gt~;MDo|f<{zotk`>*;>jRq1oC>=>TZ)s^p zC#_4koLTc`@VMC1TYR@Ry%D8og#-vtN(Y<3M%wr3OX$4=kL)^M5Tsy8w_^vc=iln2 zkMl|z(K_~0OsUHtE?%%B(gMo&1}zL!*q$%BV2sxA^MwfSxe&zu*I?dO6>Cdy|5X+ zYVt;ORM0=E3%8^3&@)zt)Q=O@w(D~J2Mg?Pe(12jSjz&k8aF2$vSP1=T`7oATfe7(p|Qke+k7nWKi3R= zQ9uL-NEkR(`PMGy&ASjh9lZmjAQ?5W1Ur+p1{_@4(VBmavlI4lSC!iDLh0{Nmzsid`z^ApVs4dgGTGBo4#=QL4M!D8a0HDm$(!H5R-0 z80sg-;+Km(Q=cQ1Vf08Bmr|(!b0MJlqo%F;&)Ujw*1V!DW5{(NTAH{@-Xc0>bsLC* zLPk`bj*dEHWR~cth_P2s1`o7Ft5||NO&A4UA4BlhEG}7o8ULeB%76w0Et(uHmo5%< z31u`#4*9_pb+LyGM|?<9Bk09>^dBgQL}esHcCzBOd~S`36o9EelN>!}np#!=LEB)S zz6u010-{;r>4);--?VpU>65p~eV0~Nfl*X(8v55-voLNnL{#pM+h2Tc+qqe(s^#jw`JpS`GcC5au(zyK8Jli|Z{Dz(X>ufZF~yUfRK z88wEU%ue+29(VZdLNr^;#pR;p7NwcCNC%bi1t90pcK>Zr9CI;#KzQT1A;=kl2Kka1 zsYeQ;RPHsIDxXNeT6STJ0S=!$EWf*$D4VOa?galwL-1;TLsmgF@}&jtkkE&479z0( z>o?6RZ*cIOt%QWE6jv+M*yrhRp!}AQ8jjk=fYm(HLrfIuHzo@)>VKBW0hjj?7VnD* zcdw4wRYv)l`%ZfxS8r^#Xngmo6tf>>sg({0*u7Xz@ij|2nvV#a+>w<)1AvL3H(T=5 z?%lIAtd?1g>rNOD=5%6|scJ6de#%3sd|0z-D9bnJ16PA_7iMaqlxr73M`xFSQ)2-8 zBR?&J+d9CKdm4Y9LDy;kOqU2ST418l7`KseycC1{cH=6x2^biDkxd2MPybz6E}k99 z@;?0#-8}Bjm;<7249Vp7wIfD9g8$*@vSA<|^xo!ko;Il2UVa8WKz1sFWe-Y6)Bh@P z<~$?%`lGZ?hv(WpEp&Dl<_=AFvr$R!^!0bRRv2oQz}^4K`NQ{rKsgd!h9NSrFdoaz zWv2g%dwF5 zw*ca3Uw=<19v#|JvGj?lVBX&FralxP?%ID5GTycP8yKiql<*MrM7ma8=wR=5d+^wBQ2Plo^QcVg)5X`te^Ib#sO>j6z*pr) zxp&fI#`%M~J@_}$Ie&R+`L$>+o50ZGB5=YEd;xneG_c!RUD0Fu>lCIdjW!gMmm6_{ zpby7Eetoal;(FJ^9S?IjK&v!Hb3+6)b5@JMhZ7uGUCKp`Hhnd~xQ1nj^`*i;n)5Wb z$LLaGRU~`F`QIr5{>*TyqlsISFpd%}6^K|4OAH z%|3+bdVXyxK*Vb1Ao;3!Q4eE#6+uM-`sWPhAK9g~SrDeu8ErgQt$^L;Flw-~7z6bS z(W2v!dNDB`XU=Nb-|{W{@j4%5j!S9hrSS2@!1Yvj5u1@tz>tRY+5=dvfDTKaae^>t zjCsRGb5~=a1Qu%}t=@CQkpAS`&Xr|SLu(7;kE)Z74gts>`R3|toaa|rZ{CTN+J1ih zRd~WXJYQ|T3?3!QweJ)IwnDy0A4MiQ{`<_|+JYv6c`i!IAN{lwK2Ot{yMrq&e)9PJ zP}R-*{IUK-{-OrV{H@^Ex1i{FE=*oD^QPseb3bSkx2;HljRBYEVpA}l$VjJ*kX<^d zC^L3QRHF|DCa3QdLD49U5~=@%0Cx60U8)qIjD?V~p{aftwPyIxj}2w`>6l~01PFYc zgFjfQ^t&M_Z_J;17(1x9RUE1{IZg$+DiFBS40!5F;ord&b%3M-W^07t3BFEbk!it4L;umVY=ruhL%EWD29>8Vj+{8&cg zAFm`c%8K;`QQj|;ue0$viS4O^v1ZKm+l*T<@MFX}6hdVQ<~VtswXJeD8KJYJfKHXL z{5rN?e#=m-Mz6~KTdA7XR0u30j0pKZGbXnP<+W_J2^NZS1(+y}qr5?oo8)y#fyL^V z-d%YtNLqIW@`Q0hLTS8bj){=Cs^**8Vlkj4C;GxB&oIle1L51^oB5noi~i0T>@rb= zle_pgTe&h5S_It3iF<-wFG8;*rCm_-Td4j>c>?)vIE9daFx0N%f0aupoGk9M<^>H+ zuJ?My1OEeQAbg81qdssx>Qu|=m)Q{vLjF(Owp&rQkb9|p*txTf?F?~jc|UIuqB%TR z!EtYpyLUHdMINf9e)4bV(ADo%EYkD1@E`?Yz~{(Qv&U_ULZT}_z%CPV7pksf+49}@ zli_MjBA^M7=PYYd-e0J>RT!E3*%wLY$3P5Ws|0~hNzZPLCKse!J>|p6*+sqMJ||4PN;Wm9_zv z3{Q_a&AYl;iMMrR@Tot#-CS4cgz?&}r+iFPkN1H?!2ytD6d0(yaL$1=#KF7&W$1Oj z_&mhePMCzb0g{Iy{q1(Kvhmx^x5Z6mn2kz8#yWi!TR9ApE3+o9N0y$Gx#p*d>u*K2 zig3b&^fN{Bn}k(&Ni0gkWJ=m)M$E@>urx$WML*mAB2~#q$`DLgSlC=DN0EX+A-E=1 zheR?n#TIN`v^_(n8mFggl}XXEoXfRD?a-QM$!34*kA`4;7-mXFahl>b@;>-88`%Yj zJnWOd#2$3RWydL^Cjp@>Q*su~Y6C@}ia7)*S>WbXF+6uj-UrMlVREJUXY>1hfsg+@ z_*lofU5__fHLbKUWj2nCW=$5wDw}NsY|qBN z{&g&Qus_vpNR&_1Ig*2+h?MC-f8=w44otMdUK(~7zQE0FXugg1hT5<=wQDL8*i-<# zc=-`?U&C;T1lE{k(u1R1rZ{jP2I-esm9(0lXZ-EsrqYhp)_#! zC^65wRP*dbP!%cNs-dn2D6+snPU34tHCQJt&n3i~{m{do;?R!N89H}5^+@lpx<(B- zt56@fc%cA7O^ zo5Gpea`7uqN7_Q+V(Nqe0*q{0Ul4W$3S~eTh4$r=#f(-Z(3Hql#$dDC<>^V;b+t8? z0h%<=V)36xjZI1CQf3~&$MCn*h*bEUj|wMl2fZ7RkZyA{S+7ffW1=VxoU(LXgqT8e z)?b;=R~cOFqk!;+S`o1-4)Sy(R{n0*vVB(Ka_=ddna1JH+odxDuH2QpJ7YlWVGYd{Q2~jbQRnz(KAOd=1iHUE`^E7}Z#D zWPj1yvReG0*F?8E4~r#CmbyOt>?lv^91^>6eYT~u0V0mIDN5B$DsCGb?bg(_tYeUYzfj_gHW!kItI z=JXx@%93YCbk)n@@WOu$8km#;^6etr%{Naso94P}Z1=E{aI8M_leyFT>Uq@D2#y~6 z6;;#v%iHUFZ;x$-3HQyh+j9b2XY|RLs+Qgz8i)}4<7(%2ec(murddHRDd4f;d)=0k zof!@bFc()5zk2#b3p-GF;V-xZ{={3Ec9Pmj#$QkyRVtf7*wqJ=Kb)0f9@IYqO z9jFew`zQ4etmi8>JiAN3h2e`swn?8#*&G9pqwo=%Wx60C6lmFc?iL=+J?OwoOd7XU zqbuP%30UYRP;on!_`|4*o8>O}0#)IrR{}5vHS;^i6^m%wr? zt!?Sxel2Xgb)VwyG3?2lejE8XI%Bb{ORmHO$?~a-fRO+h<_lMH96ju@AjcHAP#&SV zGGbear4k>hc8;HTdb3!Cwf6&aE z`zHHak>O|tm@_>UBrsl%wylpNH?m2bR~V^5(;*~rq2lAH-m@BTOF0t(0r4ox!XAf{ zEyM|)WVjn~j?>$ZIsP5IH>NWxz;p`VLTA*evijZBr1w3USISg2Z8>4&JT_V`;XQv> zirH7Q!gyZQ+5C5l@y13l<;_ltP#93wHn^sgutVVWIAyB&lKkB;GZa=!zot$In~a1J9P6~ZYlT!pwz1fW z`r~Lj^H@M;<`58LI#QrZ)umx+;4kne&bH1Y6uX=JLXA0Y*vz`LhcIHj@hWlpgT$wFHvxCfd4i$f1sT! z!&*077jZ300Z(ZzDc)y7t*CdsE+-MhyMgSUFBLreLo_LrJym7h^|MB-?Ak`Zj1%;B zpU+w$@(UeXt36+M*_9bdRCB0Bbp)fu{$7$i20jl;d5e&w)qS}8RC}pPW&4F(kJ#av zOdY(m84>?1X-WxmdV35EdFFDgCQ4M`2g-LJetc}5y(FLM9+!ZKzU;_kaXj0R{|83{9gTX!r-8{mlk{_?o>v*Y*n7hseS$U@Jm$e(iJF0FmtRm_Gre8Q;~ z$jf{88mKW+g16~xc}`EUZN%6|(sS3??gd7hMWa(xsjY%T{k^la^3W%(7UsJbnNl1Ilofq{MuITpSXO-hLZ@ zUC>9Lg(-vP?R|OpMTqvbX(d1L>!i;Y9cxv-vdpuw;;lMSR(Bs}Qv||%^Y70uU<@L- zpb(Ls!wadxm^P||m0Z*e1UPL6RWPhLT8SV3ovHqk2~t&HtcbZ`@tO57@~PU#!Jz&R z_%fqoyrkUO)m?>pfj3iClyN@iBRmi`#j<)G?c31R!jrDst{jAc!Gh;H5gldR?I_i3UVZd{r2lrbG9mbd}~|Y-sdK-^pIg zja%n(cuZ>?D<{GNULNpa>p#+gcF||;ftJdps4sOHuQ}5c_cKRjbLo1Vxpx-JWoV$O zAk%wRi^_&O$Ah8|QAwOuQNjp5!XG;}gJMd|CqX{0){4_Hrh9m03Yt7sT|A%lpFnXT zwiUu;X|m>v^rO%HIC#6YQRog$lbXlq#p5{>3kz9aFIgRgOeN|*9t#Ukh=Ik|kyWt* z!_H}@r8s=CHs*i|j@nF`H_uV?{RgiPTQyCQ>Vnkq@p0%Qgr_m5z%`+Bzrg_}J3;8~ ze-V^OGHAl`#aH5Dc&xB*dF&iln3a^v%j<*587~GbRU2r=sJqI+l@DZbe|m4!wy0%`}rMOL(8*I@(NqVFcTR9Y$x@DamYzyB|slko#3SR8Ft# zP6O7C&z0=~sRl%_enczLQH%^CyXFh$VOgqkB3+pW#GLo}EDjMWnX$?WJ<8i2GiN^0x>Z6El%&6Q&BN23_T9{WihOxHztb9e9ZVTL<-|2D#`H8b~FM2nl^(iy;;6sk8`oWgagz>lw=V$9wyS!W7T`0>cO41>^p$ zj`o9uMpEix_wQ6{WIrO<>AQelyzAhiwdUXq)g_ruC{eS@Ihpi-j9&1F^TkYw|7_A; zr_dri?Y7-W+!66&N!eX}q_UFtRb8hpwA*-FH{l3V8@HH-iD2VoFZ)k$wls!s=hQqE z?5ZuH&aVA8JrVOGY$m6vzrAfLJuz8`JdJ{Nxg0?ZUpI6f*Rlv{wH88EwTDPR`~*lv z;F-ltN{a5dKwxhplkBFei!rsxyG<`jxi-K)jcNvYBSMj^E^B@Sdn-gixn%k5k%M>v_?>Q1of zcDZc)@KXL1-G<`3_@@(4~^Kix}g9a|IF4Y3>kSDL1Gw+~-A z9RjS$(E5mf$vKFdX?|qFix|h}atv>YrymFhK#)cKv&VcEv;JNSmaBPZxpGLzuq@8M z;LydYl{D~GgFt_s6V@+g#m4x*6_-)i#4nkB2VcWqgRnjzgm}P3o6`_tJ1`;7LaBzR z<4$5Tv9Cg(?naQ|*>zgvTld>zRybMQ=Ez6ez(28s%sVr2N%rIH8DCkW)Yx1`5_;@cw@I}A zZ8g{a)fg^4B+=_|(lUB??A|hOi~iel&r~hq>B`Rtb?Qz^>xb)Ip{Gl&!UkRavJ)pG6@!V)_-e{Ta{XOI z3Edb%Y=>^t(!qP^S6RAE{qMe!U+-$Ft~0i}^*=QqM@M>CzV1&6L!S79{fwEcJVT5% zrf@TUBk|Vhu5u4Q*UYwA^4bg$534z!F)EIYk*F_Al#A7D!CM}MoxO7VXFI=&N9Xif zS=DH9HF+~39j}?5f`SPNpm*uFTZ+5t*L3eC3a+lk#6h{%#X}b<08mWep{Y2OH%KB^s z!~+KKD#=+mtvB-;IV1dnp?d&-!jg>m6Qv%x$BdUAhtYM~K|DP#tETeZ1g{8 zg&5ce_vvF2Evu|c{)+GRbIaIq8Y`q;9p!mG_7jFROT+EM4jE5o{=nfFfeSqEbabh1 zeUv6f$v_J~H|gSwWk84Q@m|bMObwxXWUW$>Gvo>0y~BfSP)Q^hlE0|X{dj(m5jGFX z*?_rl|7Sb3Mzfpd{O8*FVCMIETArsICTqzjhg=fwd=Ny9m!5>uQJuhN>rRPycUtgj znA=ZF1}C@D*}zLR59ZN{K}?28+W6P zCqBkUcU_2BXr$dJvapAek!-gZAMFxPM8XiYi4w^+Ro;7YO%=~1hwKQ2uItrPM6jfY zv*3rTYwWROfh(x4Ka!W(NDWPt9|YjU0BHxQ{pk>h2JLl6`9sHHt(j}ve?^4b;V1vWE|{K0 zBsVJ+4HD>{Dc+*Yv=_X)ox`&_VLGceJ-s)RP(lWh~*wzAo7Xp`WM zxLejSil38c5+XB9Zc$ihQ1Qdq^Ny#KNm+-E#BXWMabIb|abCT?4tFj+mdw(vq z330Oie1wM(4SqxWegDhk$MZF-z2iWJzRq24=d^PXOlg?+XfmeJb9wns{koes)ir0o zxl7meTt|P1DR5-rFSf(Ssef&{^UeP-F=*eocIUSJF;&CC#|8$< zI4S&$uOHke&t~QBV-QN%Mhwx+u(6M2DW_i2-o4e1ew5g2eWftBH#fD~DoBUMUTtP! z-tZDnYdVv-_PIaBrN$-#{oQQcct<#oiQV=9*EU?mpVzVRbye%I`|s-U$~ouV67Bg= z3Q9kc77Jl(pr>Q8XIpyPq?p5b<)&%AOVsskt>j?osCQ@IgD!b2=$oZMMHLW=`G5NP zN)}8XmM9{3CDGO_tjz769J%f9S&_UsuqTLp% zxVm8Q+!#x^d@KG&`|2}sQ$^c)klON)kiO3mJ>O7Qn9^D&$BJ~K*2Y$(m*1mg%hJ6? z$gu^dHy=yAu@HO2KNDNZe|Q<;b2u0QBxs_QOS|}w#OD}PnlGvlWL|5LRlP?;Wj(8u z+AgO%eb#Z6noK$|vbo31J>CwpD1FpwT;*J+vW(I{@kS+3c_Sxr%bJuT^CeOdi8h)I z>12GN#;|H3MBKDSq^zi^*D(s>@)DSX2%demB%bUb*AQZgC9ouG4--}w46 zyIF+MxT}_$lkb#WOUtEV_TL+q_8n7`O&@3BQG=n!+?&YnMsFQmkxyv%=lIQurEftw zHfz^?6b_@oPG+xf!BULJHqj_AKcM?iXo+1V}Dm_Yi z1Z@xaF={}j5Cn2PG3{e>O->1FP@!Odfyd9fm9tKEz4xK|B1h=mN#YFMbI`hF=7#HAfW$4ZXl{_-df!`W92Dc@n+E)e3Kjqk(_QG!bf5>-NiZR zH0>hdS3cLmN0}+Q9O)Vpy3GG4>3qnEQ1r2IgmV3qyeEaCF!7E#AoBua@(y1SP(T9AO*eS}lN-lGTf1&lkR7A8Rmy?;P;w#4DGi4X zit5aIl7=y^L>*r(oU0HtyimAuzhJJoz|F)JzAsJreBH}!uJnzPBy>JJIQ{XJqik}K zJMrv7VeSZJHu!wO?HME(?89k19+uyU*JF60a^?P|nf{Biw~Fxn`OR)I5F-So>^Fs& zx7BFR(Wx5>V!Y?j`zWe>;q^)ma#p`5RxknKv?m)~%4oh5VBxt2hh|;}37?1vq089D zo(wQJQVKNlb4tXKIC{NFlOq1#f4^Eq8X!DsvRwq(v7>dTku-%c=WO3r(UHB@3i7%9SmjB z>m~UCL<2R`UnKP=p(Ld*Qdgpeur%d69YxTh>+Zn0%nRJm( zdF;dp&#Zi&puyim71>`VZhEcN9W%nD-x>{JoJ`rfO5jy-h{b6EnlWP*! z?{`O?*x?>GJ<8Ll5R+v*}6JX?buicR6Eo5da+ z>@VOQdqP-+cO;*CyYA0|$g+9~3R!V`C&MUtuB{z$euiJe(TR_9QuWOxnYcft$JwVD)7shNVr1(hiR_tIFx?Ye!>{oFMFsirjM z&Q@vVJOu!pdHEqnKE)d*o}YYxv=V6KY#R(f_T{m&Ofx+ z#Ygrd_w9o|3a%TSVS?#cTpsA6Q}A$JV*j9+>r5{8m*w5@uBSDbg~77Vt&7*|lCN>U ztD5B2RVt|drM=5Z0L!1`KE*X2sgiNp|BZpKS8AvAJx=YDvKNI{%VGMLQYrut2SSg&VJy7njFspvUIFmTk7Oyw2Oik&+IEsKn#Vc_+hMmMYg- z{&43J?mdyur8v#t+S{TrmGBa}JgKUj?Zj~6OPjj*59TcW$>ef*<>uyF^x)7Rt>tu~`T_$VuTx{bOG2a$wzw76k{T9JW+%#C~c*sQ3PPtoEgn{^NxHHJM? zZ4reWS(B*J%hqojUE;RZ?!fXg?U$G(IexbtCUdpRfLAI`(L@*o-^Od&9MiB#z{ zuJoF8G90aHoHlCzkCs1Q+OiYQn!-~aw-bj6TFKcw^Bukl92O8tUg)WssabJcDb4d; zxyI_?>wRXa1f<6d?7ykX%-tWtWN`tG4m9d^+Pc$nC1TrMnMv!F(&yg9IM-gG?VG%a z|B@;JOWt08e|SLIxVSVRy>{nv^e!Hp$qD6`YFzsp;TcW(>fEZ(dBP4pr;cY75PeT8g*UL=#YsTI=on?Pdse zlg$tb20t*d9{{Exb0WwP9;XxCCrTXh}~NK zr*N@L5O;YOZhfcCHFVr4Ef)~f@^|HA^qnk|f3}L%Y1A5!Z7w~_BMEK%ADP9#RDP!w z_dCxx*(EslPI#h1iOse-A51V^iF~dQ{Gd^r0&YhARMf;%a;Xm{>JTKD(1}IMbH`oy zR>-{8ED3y3{-3l}VM-d5R0FS*<+1-}EP+4>^7q#IVSJ42E=hj6+JT!-j)E#KvWYyk zY-te;qhMq! zc_89R#aFBFtV%~)z0!N2GwU2JKG8_{DIMTLO8B)_lMrZB%ua#O?Jnsz;BKCBb2J9n46{hKGyS7sAQ!oxH*<9!Rs!dp|&|6L=+3xK7-Yu=VtOtX*+w{d~ zl3a3nq%Ck|251)zUyrEJ`;G@t_pZ}~mjJjH_2(56nzn5Tr8X=3<0D|qF6de~_k@4? z?h6_|_c^<9;w@Jyit9F~=Vn31$ir+^g@K${)KmR|duLX~29SIP?SjoUD=MF)iCI^(EeY*p#SX&yUy=cdC_vK* zJnZNt&7RP5F`tDG(~LK<5DFjl9P+Pjtm!UyJc$nd0=~h>7T!Bsg)TNy>_=ZWaG4m22#f%YPZ_5(oNALB8uwB`K6$Iyofq9|^d8 z(@Y_|hCE;r1!dtpSXpk#OHNO)fHZLUG{T)cD-WNsW|Zw7Df&Q)uvhS^G~CrPa}3#M zy-~?{0G>hk+!E4jEoJq49AVx5*PNDDAg8r|)D}RLQ zd;j$Qlu#*4-pXXnUe?eMvV_QBW^B_?))Zsk##)h3lU=e!vM(81h-o1^X+ndsYbIk7 zW63u2y|>TzhwmTpo!@5Wb)V;)=REs8_gqMh1m<8zT6U6vR*m7eeD^5h`XoDDy-I7c zQ_utl0B*4 zKPTVlyXZ`=T}jCw(vk$W8nPv?{Ha*ke8&sP-!(we8KH-)eMde#q!O9wEBgjUMfB6X zpiRCV^vN{bdnys+y4>E!dnEbeldjl8KV`D-m>s&!4%`pPCKpvzHqpX|^bM`AaA%YK zVrTwuRp`ypf~YD!U7NoMDHVgMiSza8$gNm>ME)m^u?J7i*6rgwv2+!5z21KzO_scy zXNTZ6Emk)7^V!9YoRt5vFqU`V&ZlMn7Xa0Po70QTGUzj?WDmW^RS36sAbY~{sQ3+j*wd0vG&cg zpk*qUU=DCAKR5djfx9rG?eBH2(*i%(#Pe~81DA0=T@k?i+yRDqrzIzKrP^A5)mo;w zFav$r>bN&JkNO>L2a5WhbdIzfMUf>;L^Z%vlzVE7CP`YO--cRmu0G@l;`ZY?nsUkV zPQ-V$8b~EA6LePi_uegbyeJ)=kA@Y$%y~rPcK-wT@4!1=Q`Ncwxu|**aP)^uJRiQT z7PMXdogOc2#>F@Zwc7Q9`yyVIqm@2%dVn*;>y6i*BsWAo;kt2D_Q*-O-_oMx?1tk* z1uup4@BkyF7_VDwVn>n>0aJa?cT)Ta=&XQ~tcy_7$`0|;y1;>TagoP;oIa#HE!j%v zl+ppy6oB!PzVfrk&{$4ea)wSBD(0V~R=cOG&NO34n(%tPzmV2V>k&x7xf*fe>g*Xu zx&14meBvdZn|5dd@H!iSL_!mf*)~o~9uazruXTwwocS@KXML0KKp=nJ(x2Fskx+8{ zzv2&$un(rIM+ubgy6tkB6do5f{AtS_Yg&YyVce__n4CqfZ zc(+)5Zfeuxt*U;1s&M>^;<@hus}NK7@QxlG;+^(m<>!}JT9nH! zS;`{;zalA-&I_z&h&Pr%3A;Zv=hFw?AlJKCARw)R&b4DCWgr)1&E7sRl2c%gew2ev zra9I!MN{FK0P0pQ^$)LdwS2+r>e<TISqkmGkM zb!fhatWyeO`13a-OX#_K=JRSoz}8nbrM1(_<^4kl8+xJsj<1Yp#%UD?y#@^7mvzQX z=>^bwp~_Byc(!bV?yw(d3NN8ir;O#cxK0j<^&6)I z@|aR?NWa5Lh(&RINZw{g3PhBnLkb}BuZLWRA;N!&n1R&LV;2(;tQ;e*84cUc^?oH+ zg40|uZ?54dMvdCzAS*>N$=4sd2E!?D@1RKqV3v}HJ}Y_w}Q0|20B7+sEq9BF8-(Zt3Lb42q{_(wVI1j$ua}&OK+=3 z!)=vji16B?ind-T*4Jm}43&d!|C3KaE^S5YUkArxzM`gFO_?gJ-aY4*K;b99k}lro zdQ2deV7^FNMB;D*Deowz2>>w0B3Dc*(msg`HnBGzLgkcwWq04D?qMD@vR8_XtpE@& zW2rb=m-g;Txg2yaE5lmvC?LHvpGaF~XUI*Ppa%1%>h1@T!U&IX>V%QH3K`Mj0dA8y z`=!fkheZ?yq8GQL>;O8J&RpXN^W`a8I%FW@9=n(!D$Zk;s`~w&gYAq<5x1c#3s7`R z?9}2JKULcS_*~k=!PP({26!Gbn(d0V=QC6ETXSg(;Bh*(^p{hw6w^8)Y^xK84vM!{ zN3w3Si{1S2Rbo%~M-=MHRwn0N8u+617~aLOd@A)Opq;BW!RT6iUywZX_L1UXlkO~? zGNw!_jU)z;ld+O&ahTc~ObQI`3wBE=?XQYGIsar|L(8)^r*$Qe&q)>p-6qj_Okm>$ zw7|e$9_h#~0R`(Qp_Zsidu=V~+I(v8)I|{GC)H#UND~UVBme!=B?W8Dhz&W$v_TuC zEB=*!4y-fNHKkjwA$HeE7NHLJNCGGIKc+ReWy@!suHgfNBJcp5Pu4ri;XtnsKzC~p zAmR8AbtGG)pXU3N#0-=LHj@6e7H^M&(v@9{%u}hUBG728_{5ipyev_V5hVyE(5|g<=M}l=tsnN)HtnngfH?vU$@jyUD9B zBN{vylV-=9s+mcAYuq8_1~wcp{?)F)dVHJv*~E8-oH(R?RJM1J635c{1h+0(n23Wm zI`)B{7t0f2(?mcSO512Vp)Nh_<9*iboZ+s?UcMFRHF8#an0qm#-Kr1F)DZp;say9> zSN?7|CM{Ylsp`M0>=~jSxt5KgWm|s+057-NElz|x>UC$eJH%DQKW7&^FIYJdFwZ?R zS<6DCO)?R(0RZev`Eh4x4Z7wdd=mNip51G{Y3wDexJFoQ4m7$tN7Dd+ShC~89VMoz zvOV(Y$WO98Z{rWm|AAFb!0U`whgx+jl(q6D0a)3|61uQo^HhUfJnZfT{*$_W=SokW z=6Q4oDBAD_rHWS!8f(DCLnN72rDwUR_l~d`iVG?`7vQ6)p8Xa-2FgGbJs!3V^4HY zThns=LX%*u(m&3lo8_H}9`u7Elc-@7Sl0?%FV#pQtrc;~snC+-5Jv1m1-^&np|oyN zHB7hnh7+iGWxi5T70(w-j`!s^phz$;cCk)Qm}c>Wy5rQ2amu-2P;U^LjSH9kI~f(` zUO)RAkgApu0<=(mUVUK}LB3Kcw1euMm*-SvHTf%*@2?BF+y4B5t$Ml1LT$z+tU!NV zCsB;+=+4YF6f%EnCPE+^)0RER{jav}2Y~kCE{7q@x>Iu8sfwP!f%7h@nKxkg9W|iD zIiqULotK^(M=5-5Up4T50LmwLk64U4D7gkMuzlk{ug+FnX1{#y_NwvV8=PV&Yv z)J>}oC8lB$r6SO;e@Y|vg1G&?J^DF; zJxy$p`O?d$PNhLT((t7#mSStUBZYzLuhUrW#ITXkO3u9-{+s8Ah7JAm2pN1}4(qQ~ zAOW^enzhMw5A6w|`x=L1l^BHv#xCQVFFMx+7hAUxEt3Tb0QCLQ5L$KW3~LJuLH$1G zHhS!-W8NIsSoEn!L)E}h*&krpdBZQNRI|W%^;;0%n~^$rQ_0NuZ1nP<@jEi2iv?YB zi7cr`eQ{})quWKNvWYP;%~2ZbxunqjLP{#~=XHpVY`H%F$@O8lOl4F$fgzzCgi;S; zUPcr6e+KaM&Vb9ZLB}?(>{dKZsQq5G^5_6W&l5WAQ9#68d1L`WN8MxAi&q@n-H8Xl zF%f$g=H2SqA*d}ix5Jl2@T{;<+9>r)SQfg#HUVBxaAm#mZap2dlLdg;u#@f1C!$Km zBpn=UR$4LLCqm<7rW1{--p_>5F>jo@vfA6D$8)3ueOllk?dYVRZ;htNiUnmZW-~Qa zt;`gjY_S?wWyYMe(mKNURrQ3JKpvy+=8uwc%)0Q-Gmr&nXOliJDqanWSlN)-RK+?K zAxyaa=qHQCMa8l);#s6u9f)IPc+sG}B^R@6ByJQ~*$gU)d<>(F))Ak*xD7O}FGvTC z2$u#m?t>eB*;+T%M#_)hfT}E*_0k3z5?TkGloJxl=>b=CJ zXs{EZR9%{A>ixXD=thC94SkjqUzTjwH92Suml2Wsx&cYMOdvJn$+qW9vp_EslXLSt z21^Wtcrtx&E0OEuJ7SW%lj2!H^kke`q;gKjEu3jh`T|J!OE1Ilb?pmxXR~Q^sFBZ7 z^ihu=20L{RBcUpL3z+$VYka7SFi<<*d$rh4LAGII37NKXZ9{)1-(;Y*H*Uu8I z^eM)pBT=%LJvVExvl0_EoHpc>;7ZI=r&0HxL4%cQ4ek>n9`gDO$o>2{7kvdAS5sqb zvQ#A`m<+5^oM!xEN#b4~lZ z?cZ4y^{CZUJa~yKhc+po_VINmXn%qtwi3Ub$4kz&sFEA5qdiR=+IugRS zXdMjV+v!5i=k`o2&)cF)#h;3yHIK_qE8Z6LkMJ-wSvwsNrafd*@dz1;{U$l|?tC+4 z^f<{I*!Bii%m|9D8-bGGNx+Ri6#-w>{~-QuOMGJaFE^`nG5sbA}M zRs$wA6xXz2{_)fDz@>U!Umzg~q`edea?=lef$YtPA9FGTWoDmVR5~Wy-4!q)=j|^j7l-rV(5hl1Y38m<)`is>W~*MufjX#T7MdgoEM@E&=bI5iV_(mf6 z#Z`fPJiP1lyMAviAN1<9#`sb*S%L-n)tHqI!Rtc@4nY?K26_3MwvrRo4yNm90TO16 zefeumPe?viy@w6%%7jp~&@yyGhH`uQg{>%~Au>4pgN`i<=&4lr21CzMlWHQesJ z=Y9(b$@5CR=ksmk$MDbJ#pu2Yh^CFsJ_2&qrg=Y|k|9@`Ttp}x>8UG4tCrCd_K*!b z{Ut%<3#|t)N-ziUdRukPeJp??Tg=o}xMVY>>#9b8eG=|MxSp~5feGn&d^%D~tt94; zEai~38sZnv?D#SHwn8}Y=S?84esR4BC9Ytv9i*7FhvrLngR2z7#K5kphxkPMrkbMP zeD2KZFfsnI-(z>2BOR$RYj+>7!|u0VxNiBLhQG&we9KJ64eiDyT!@OZK!-N9(Ocj^ z7Pk>hTK^B|j=torrt1uIyEe}NIS4xRk!dbdK_G8WR$Ap!^$K*s?verXUF^k+5-t=O zrj=FQzQ?VBZ5QWfdB(EG2A@UIzrPaNo7~?NsdTqPUA3JgHkI9B2nN1e3X=+&Tb=@n zxnn%x_jRrtdx8=GZe)7U;O9er_cvPXu8=Uxsb=P0YYb%7PQ67S)|#{#-#GfEvTC{8 zLm{{Byf{J|E*?#x5%wbw(C2~ErypJ1oqh&?SNe%-%d@S6XjoDj*szlXZKWDvmcPoI z?-u>|b+F3)*->=Kza8}BFO#Rl#Yr_j<3WuDTpXfQb$UxB;8;NB5JSuWP{$?a|y&VRKEQfvIwR{_)0>GOO$kGLsfmN3 zd6>!2f?lub*^=RWQY00Ab(kR|oB^s|da6EFi*Rbdr)ABx+56y-M!>QgY zXVRc5T2(HL=vU53gt^Wi5q5EV*wsbW(MQ7$ryj5yjYE5J0&2XQ<=5Gie zkKy|ln11fD6XD3PP1=!=;iOVGEsW0P9G%);Nm!mYZxV(2?XwXy@&i{|>#ex!PG5>9 z)D>)cy8@7Sx2Euo=6*~|oidBcDBV1_<7UA6;v1yKEM)l%<3QVBJFEbPmKVmX9XffJ~)}X(z_y=u3i_mVg1+7PW&^9boqY~_1J9ZDkuG&!zmePuLp;Amn zh6NRt4xwi3s78&b679z%#Aq`n(TzzKV<;79Df%13`HrFg{$Hp<|DiuIi8>6U4(-Fv z8nM`i<VOagB0mFv>m;VsjiOKb1=YLTI?Z70&7=uAfT7l&#!tQio z5`EZ}7}M9FI6#8pv63Sw0WhH`hJ*w3Sc(OUa*Xc~rrVBbHlei`uR4rlF~+P23ngd) z7K$;>760S^|MgIdArE0?Ribo&4p0FOUEm#^J_)`wNo*wVzgX=UQ7ga)NCK7u+kw--GvF=o z8K?mM0e^v3pdC9a2R;CgfdjyLU_9W8;Wnb5&~xYpbSmnHI-*q6Xi->Ti`ind*r3DE z8R%v-8*4cn#%K$F0O2!R^EC$F0UK!$soka5|tGI1i*^+6uG60W@!yUsF;o5K@-VyJH z55ha()wpKdE8JR~Gp-M~gw;bgdK(>u4q@7>E%p}J+-81heq_!ue=`3vvn=73U6xYI zNc1SycV+_l02j9eSB}Hu6YvM|kMTe7zw!0>7ueY|~aknoSj^0#lm_G>T3Vhj^KY5ILmrr0FCfsgrn-C?swm$nbvn1-SFTSG3Q9n3K#a zP2Y@O#%Bh1L!Z2Z;x9hb>G~xPH2ZuOcEpp&)s<%vO3s0!R-^LuK`H z3j7fnuimGdXB=m##3hr+)F{Smb}sifk72dOnkbYC#X^O3mDO#*aNabIl=+JGndFIo zYsoa6(acjeK&Pd?VwMQ%m-k)i^XPlqw`RagG)8a}p?YTQ}RqU;B(YP8taGxlttbE>Go5zkjT(5Y(^l|WW^>6S$;b-fU;PuXJ zqhp3m0N<5aMZ9I%uI+;M4Q2HPx09Qa>td?c{&`cGT)DKe=5N-&lKNjQ4c#Y2%OPu> z0QZ&}0GkrR+Lp@3w)|1v0 zRW14TsAxexCHM2E?H|!k2fkG235!E3p4Tv2HxHbFubcd6omPKcI00Q@YootUm^%5v zv~4r~ruNOCPt8w`i+3Bt9v<$QYP*6godJ^LGv|Dl!UeS49U^5OW~lsA9hWW3+^IXM4Z$==Fo4ffqKsX|91 zd4Oa`y3gd1@5k(p%T8K4Wz;m@boXherkIj`#LbSp5PZS6)afw)2<5b~7TVVLvbnCx zyDX#7D|g4o$ak;bh~H@6UHs&n$1mPn;Z~R1VK0`e1Mnl+D%;_n7lQtVH^%HrSUu@Q ziv6_qsX0@Il6Q<>6y+24I3U2yTX=<0g{qWiL@(RV)UK;IR1D;Q`<(D0^@*~xn*Rwf*eZ5UG(eB5ul zOM%roIstv5%oW*n%&U9)TVL|*Tke;gpB{X;{bB5bimgd_Hu3&s z`Q#&$<|b{8cZu2_wmtBiyUM176^*aZoRH*o6*T1isVf~(X!mu_=kSl!ACwK`kf9jWXe?2b{Ibx-=17IzB044 zweWIY-Itv?-*X=3s`49)sK2tSCNvdvgVJ)%XWT(%v@pf>m7i&3XapxFJ$_`u$i#+( z2ji9Faw4aP-5&PabG5^GUKPd9T!Net^>uhO*!+zuyIr*CTk2O%Ze*_Ft7ieO#J+rM zHMeE0$M2f}jsF*y5|cbe9&#x#!jt7Ni#L}l zv~(#c;?G^}jSkhb%b%5m7f#6k{B_e;Qhr}SLWym8LiORM^W7IDKh&wf4?4l>v(rcK zrl8ue3z3SL>NwK)x_E9}RkY`rF`*&DxL%_j%lIv{O7yQ9m3-|9Y1#bm#c!9Nzl+`! zP`|b3I~RQV-tuF3MQQbaP4X^3ahbB*{F1U6?6=EuKkvU|B!u6-Nm{xS@`~IS?l5=HyDx3dVn$hlN zF-tYg{EKYh|c?lp91)N}Z7KR@>~_Nn~$^d_9Geve|D zD6dP}+)*q2Yx8^7uTMWW{ybK8t(@}bQO)?q;&#V=zARncYu-S9&Aw)Ba=h%3;TID` z41N-d8x=9iEvzee({PjjF|TNsiMI8iiYCU1^+e>P_+{_e?f2LLPD*G$7 zfAuxIhT*OB?uUc9@-R(}c{54LbQZMQsa+;{eeeq$c6|7^5&99L;f7&AfZjXE{kh`` z;Y;po+7A2_<1|%{?A#!!$F)7MSyTVCcEvx+zt{iL>-rlev^?l|)*Cdm5R$5In&Jp} z`cm#J>sI^sE?+%5y+`^@@jvZf=EwJ);q~3^j?)!ek|2W3r9Q;XF-}+Sf;`1L`&V?! z+n2UpXkOhE--K&k*7B^aw)1{3P9&2qKnAoA%!dhqw5RO9{986T4zVr*cPmdvuXL|c z&rlDIE95l7e$d*Br)FNFaPdb>9IXiUlog50eSf>hcBZulw&l0t+dSJ99ecV9`tn6S zG8!^NTVe{sU#2uMe}l=^DRzGy@4DP}le;hXV0y^hOfJ)$1on}_K3)iW2F-`4wutpQ zRffVtnkkCw&+d8EHKp@X$B~Yx&RtzuJ*oXgqK8s@Sfkb(+<+OR#dIf5Hvfvy$-djs z=seA}-1WBW6_h)IYgNjws7ozn3_dPeegq^cGqB>+9 zNnI;@V)|=DV(A8WkLH!p2#h2zW`uIz3SQYbI2fGFF0pQGspuO6TT=*&Wf5Yx!IypS zd;Gc&be--JcK_FNrY~x6gLuCD9Ad9+Gu8lCNP+YMb_Z{P^gsjogg< zrsL!c*N?E4a?rjG0v&l>64Sx@jr(}cDcga0t?s3ETkq9-=NOMPntEz z4LMID6lM4S>pjvV=|;LA^bq=_{d+_YBoiPn5NDwaE zXB%wq>2Ta(gu`t6GTU6Cvz3tdl3hcWlE2~aTb3DiYf6w*Xtea!(7D0d{vUm#`p81Mr73}Y&lLi!I!v}73)w9cy8FeJ~Fx=3i^ zWkal?%|qkG8zsTA*^n6iq7rG{jr%QP+$d5gRmdn{;kbXm8Tmz-fp>(v zn=N82qh*rU5Hf)I=1GQm+IH18WTB!!ep&WR8Z3>J-jc47-H}gJ1R$qXAzH28V6q3o z2o7W;^$kPA>f$^EJ9v-zWPw1ikAIMt1n%RkVDT8osM(}CyaLslIELlgPSr}}tim9_ zF3XXoOUFnvq~WqSc@A_8{;mws4C=a!ZI&UNfoP#zrH^3k;YL5fpc#4~}E;HiqfWtHYJU;KdL{?j<`bT_U|Nog!N#?|`1e?aBojwtm1^ zW9h=ZCa$JfXo<{db|)tgr15s~PVgLf>0l!FE8D{Craz_9$r*%P0I*Co{?wh*ELL4c zsBkl6ly8$SkzbLgK`Rtr;3LZ8>aW@WLzyWP9ft2F9-~NUZcGyUCg(5rDQLs9<^2R@ z+wDaJ$R1GJsjvpXSqimpUWcaW?vHx&xa-+dXpa9&1~uW(kr|Nu+uCzJkV{_tW*6!X2ZdXdC;J|LavgZgH|bS!)#@@ zs#O!DKW=oklmPPyM$&F-8C}FIXQy!Yfl0h8ynQ?oILO_}`OG@b2&5e){~^$Eqb;Y6 zTHSTc7S$7k0k>d?^W?+i*S^pQWnk99A!T3HKlv z!du6S;XMPNbG)V9;ys+qveeY0zo^}>zO6LCxr&dFR{l_aOD=$#AUwPe z$xyA+6zfJBo6H9QYeF8$o4Ss^is{Kd&AG@81doHuK^51F3vdpwau_+ZjT9f!Gki2q zVP0u;)@w9$b*S%QvzHsj9mQ#7&17cKlc_ZFRe~*UuZ3(nqo1PnS5H;u!0Qwl&=2_q`Ac~a z#KfLyyO6J{CQXF?l`+!N3aleA$*ZU@=w-~KY!L?sW`iBzC(se}c{sECBKkQu6E&30XnVXnCcU5}R&=TaWi z-ZL(+TsX;GF7_bP2CPcbF}PY~3EsC6x?03}+}FK_eg+ zXbD78NEES1sq&!uj7ZItcPDK^w1UP08|F;QmlZVBjZ(08c*E@L!W6nT8~>o z{D94SR7Mjsg}s$Com0I3$5>7)L*_Jvxh+=FDm zj}>tWFU3wpARLJ7Q2MF`+7SIkBWm6csPOAaIg~2eAI1jOH+DW}9`_!GsNpzsEUY8U ze{?amgM5M*if==gnfXSAZcrmsUr^3NlHf;*)rvKWABxlP3&fzjtv;!}sV_I$S`Gm< zct@<|m(cteADKp0BYOttB4;(Hhs|djm?s(iGy#=E788Eq?xMTQnZ^tHW^JrSs`{mD zMG_DZ48dcN7NlJ%RKL)y)vYvKHg#Hpa7PIciA!~(>lp`FU)Yy8LTnttoXMP7Y(K1x z`e+Dci1eDU8s~+!n;sf2>Yix~s(s2i$R@Z)@kCLkh=R@VFy#~MEzWe^al;>z2f7>A zN8pj|sV?*~#z z{$k9a=Tf`KR8k+l5V&nwZklbFrrWO>Q0-RkM6%&f*dJaB_rukQS-DGXueH{XGR`z# zM4NCVB9}~{{-I?s-Y_d!=h!rk3rEeK$6n2fW#-c@RBH->^cTMe7;Qm}h58(=R6Rq* zP_mFEFdZhq$*>46M-7zD#`pSL+9I`3^%S`W|52<{%vRh}_`w`xn)0=3gJ!kvvLV;x zitfVRiVczEl;5<)Si9G<_OP`W)4yyl_81n#SW3T3y-Us_PQ>GYFXrh+Up-SBfmx<- zBn;l5a8WQ7%N0ae4hJZ|sm^OMb(IF5c^z7T^B^uDXHpl^$;^YSOY9Y#4vw6Y%VBdU z>>Q>QLr7C%m^S!hn4Ldlu-CzAi!u>uSNw#C&~^D$Y{b8YJ}V-TPGy(cNq5v>WqyRF z;CqN`Dc@*)j7HWH&NJ>skjop+6N4TggL|9(nVCfor9L24;4LWE9B;_d+Nt{yjbb6> zg1x=VlfICWWG`f`@)e5F$R?FUb6G#n6oa~9bI41|DEfZpMfPOw12Bsh%%8?*@RN8^ z;B!tH)>qS+AV!4lgUph4kJHR$y%PlY|@}r_zKc~s(~KHn#^hD+VIT0RTw6YAIR(H z#&f2#Y#2AFC@Gn+3bBzBT_4?=~3Ay~94uOraN1=%i8jByFz@Vg}ahWsFMJD$YCZU2qg{ zHP4rK3OvQN;!I*iGIZ3X;A!>Em<1%w`8j-|o4O&_KWQBPMkz$X>AAt6*PAC&Ke;uT9^ zDRN)+R#T%JX8dXn1ioYa^f9HA*28$pvgQou8o04w0x0ErbNQTHmIKp@4pW|yYzSEZ z*>cwCrAIV!m8zh7RtfKs4MbU`B>em^)(za!Ir(aK|&n)F!efpHB-k* zfV;{jbz#_QT+{2uA?6a&u=4SeJ>O=Ap zqCZ}O-ZW1(2J3yaaq4%NwVMu~R*Y1*Dpn}CFcXPZwyExE-s`FjVde{HJ8lFqoxGG9 zKp$kpvX-$!uvJbE=OM?FGm6b*Wib>q5|u!P33qWTQCBl;_@nF61goDaw;{)2rQ*Ee zwnCw}2VX_%l$+EewZZxY#%E>~IvIb5_>ZP?5w;e6yUIXrefGlsF2 zwv)1ep!JzqIom+FrTotvhkeZ91`aVyOmYK+|B5r5vaBp(^A}Fbg6lgagzS9R;@m&ny0*k z7~zlbZ#WLoAaZ4#`m1KWF3b>PinXKy+wgmdTgc<6L$pZ7a%MQIn5D%+7E8_KGJEK| zX>Ak^*^TIoX9GeD#}sZjs*`E1sJE-GC=uihavkYMb}188OVyt>QMxW{M!9T0hHk*E zAOw;S@=2rGBazq3hA#H=Z$PqG`Bs1d#NTJc;^})UkvQdFWwz>#nx);U;~2_~ z$INq49~_O4Pn=6`rg+hY(MgPJ3=IR%tYd6pl+g!h<gngv3lv?UAdOX9K`GVQW z{K4GL%x9F+-_XWTv&p?g7J-J-S`;Ro0jE#U=BgK|W+?9>p@=_n7#XLGQr%Z4XLc*E+h=Vg|+mu_!AyZkV2|BeIddn_HLX*M**?CK z82-#hO9|^6H=8%*uU)+O(X^FOk9^L6iw%?ePFHij-~UkcV&Iwd`J;Ea`Nw`Iw+mq< z>5bjOVGYs4ru>-Qxgc>-dwN;whQ!6;lRd+@fZ;{&fxk=gX1wsfd;Dt4<*`@a-Whlv zlvn$ApfBF^lb_)CGD?&}p1*$C>6L-Yr!H7Ett>MLEt914rzS)v`?IY+n#T`N zs;%-@yb#?PceUqo*VVv#2VMyZUFvcr$B644JwjI|C#T2+S$tnW{VT%1}8Wa5&R{uYR?rEyc~1)Q`XK)O-mf!C zh7m_O@QWY2YSQwwoAYZI;OA|besFws$Wm8FCPTBJYf9yduZLdlc)+=R z_154$kLMS1KK%O7b{9#aJ#~H^5|l7|R>tDy6%nhhEThhsr6{B7{XPi}nfDJARL}V4 z_6m1@<@L8&p4U&_JM*$Ie@b=qz$vpzu*UyQbn8_61+~jBtqxvQopCQME^&RRpUXko zTLfxLD<>kIdsrRW5_h%=3Y%D%rw?H({yoR^aYgPEfgk{rx=7i1rZ?@yK!{Zaf zLOn)ula2cZXtkw9Z$E6wzVmS1gU-kBE5g@n<%(9Wf=qg8>kyb2l{V?}tXt{m{QGlT zrj=0#{-9*DtRb@%`kx3s1W5ez@&>&*$m-_o+qGYPSqNHJQLPuiN45ME#6E z^PCs57VMf`I3;FW^>BM9J9@ABcn?&qEZXro_qE%Lx)-nUoPfEqsA*g3Vu&2`T6@Ry{77|GDY)(ied*r@veC)wN93pc18; zoVYXGkq|=sK#DZ&!o0V0XU@!>=pA)B@UmS5`5?T%edO(L)_qrde@&lxzX=Fyj=cr z?%N4p%1hG!jqKf|4x%oz3-!M_8i{{AY4X&(6f}8V?7XmD-utbW5{+U@8ATr_Folo{D+ztZYw)J*h?Svq2@%V`$2jWxKj zKBrXv<-nW9>@m;Eo{xH$kazLdt|lw-Q`0Pt#RVBYKI&{DBjw$+Ia9e4J!751c6hr9 zYe;)kjJ~9Le0fe`PwvZ{z}%REi$C*gMt4TZc@{m3<#^2Rb*NQTK-`n~tXR_6;E+>3 zZFc7w7mZ&ezuIix$CWD!BR@TQUHgLcD&Rek=T?T+D+XX)JcHoq7HEj*9iKK? zKK0Jj^^=arPZ_=1|GfPgx}82vL~WM;epi(Dbw@YEAsF7+=;X)XD4MOWJi^cT;RbI#+(Oo6gdrQDv^}E%tb6FwJ0 zyAnkkn*b@wH&{ z=a=uY-bR18lsmShvMRg78k!8O2j94k7``I%>G;DFODCsJ8kO)UDkylk=T55@BB)~a zU96v3ZYXTYotiWE3z}d5<4ILf+XKl`BWA1Zj`)OyxQwlg?TcR&ml5R|X6Fw%PUlF_ zEQMW?TZ$_yD(mffMeueU4+LD&18;_hj?0;lmpCzDY3#5FtDv{8 zFM0Ry`w?z0RM-1!N1=5t_4As~3%{N%dh>gElWHJK^MagW{naC8#Nsj6Voy$ROPC!$ zF)AUn(07KzIo5Q`cqp{{Z{356(Iu?~CEqCD|0^y1^R#JC|6^r3Udr9-wAfD+{5c{e z>SEM|F*8F`0tQ@)_{T{!twm(jW>vH6*Rx{6_cPz8{}BE@Qs>>ZQ})@INMB{M%=7;6 zgQH(Ze~*0{n;Z>?7X_tx*a`EguzsE7Z+lY>{a5?<&-o>Jo&|49##GL1T-T>ZK)f9| z!MVoYJ*;wUTI{K~RpVHZuY-U3bl87nL6!_fbhv~l&{DP>6U(IStM#<#W5I*?eC3(`k4^vnY$+8N?)bL2 zU}N!)^6*;!&TCTGu!0sZ{NkQ6Y)x4H7~NRMv13MW9XZlh?Klj4Mj&b|qS5V(YvJF4 zWeZ9l|17JxR`a{1uYW8u6J5s~uwi*52Zo0%2){78XcQ^m@f) zsD!xE56(&5D{bx@1JRx0{0xXFaZ7 zDIJ*Dx}(Ne&MOrae<~SQw)>Bveo>d7^qp=Y=^B{p5bTv5_;sX1Xl2On5t9P8cy!s3 zxJ!tyb(dtvd#zgY>RwdaS2y<*MsSBW`j7W~ zr;RQi zbu>6TAjh3(8^C%D1ghqX-nJLj_5V3m{;KTkFHR-npM49lZv;d&GAMU>K91I2K7oo6 zV?&I=lSV`a5IqAN3?PZ}+lVOS192Uz8{hv+sa{%*{_AV(?szd+1m8EkreyM>9jf;JMo&owteNV;T;V2e}<34JT^W{C)UmT$Nv~eREG&xcEPn zH`+%t@bwO>Jg9!F11}6)7^wF>=n?JsT)<-J0kdY0jM~rc7;O4c-&q&gP~IHVxqHAG zI-}c$PiNk>>T$f|am9B-04Z?3|4#2yuCT3^E1)!+z9BI~k}m6(i2DEj$!f}K8yfrD z^ZQ{rLBEgC&3Y(Ia!L2j4#*F>Fx)w4lm9bMU#D=ZiHv$+u4a{VM(>-}lKS2nyXsHX zdutard39zEY89X{gS3%z$!3{LmRGsohk%6vb-u2iN1e7=&t;t@e9$KXu2&aWoT=8JlWo1T*<+Z`BH!IU7d*eaB-$O}eW&dQ!nASn$bsdZ zp)J)7+vn;-TQb_s`{yAC)EP}u$%5S*Jn?_pBe!jbWKX@zM*EwwyuH)Pz zKQaGPeUx75S9BU%#m%kFg{?Jk(}m~MR1KJ#Nf+2}tlv1!ai8S9()Y0Mb?^W{X zy~g$#?njpa?hS`T*>4MfW?Y0^=D>RB$| zW`WZ%cR#Oj-sxUv-IY#xHj_X-)diTLRmpb`PV3HXW3|j`e$t|E=l6aX+7Ejf=!6Ca zTM%R~c9D1xy&2wio}*nq+LsFcGA9uC7y+fdWL)3Zjz2BWn&vlAT6VSH?g<-$6N(Z(ty`kgBAX;|1`UsUtSeXK4|Vh&>ipZLX;ripb%yi_ z#2zrB^Teglc%V}F%CXONvxl!I$%E^<$6=Fo3}+_AYUtyFgPPDfsFqY8 z)wHNRvTu*{t~wrtsW!Z1J8#!iuLHgh{cig1^xEY5%dUzirriT(YcI*a3=Ho|X&u`X z))?Fr+6r{77_gFOYhIzBsk1ON#+gv}JP6;I*!6 ztvj218zqf*Tf90``oBrT)Si|x6o@k@{OF{0Kjm%jTjZ1G<=__Xpb_LU`v`JFJd!Hj z*Xz`=zU5j|anqlc{Eo4Gt`f5HtTC2Y$$Tu>XK!?=_Gs}M^rCsDx=QRFtrA#2i4;?& z@|xsbpI_&k*0koS&0|{WoyYo?NfsypQxkD3YlBsyL!Rq$&(YpPUe7(Yxty_!=8NbC zT!W6KFb-0>FSPbH+BYm}c-hq3R^8(xeu#WBl1M!E8tWU5sqV?%vA)B7son-RTgMu! zOx9weo6!cT9lF&cZDTguHik5=Z$8&PzxR_EuOyrNNH**V)~SvyZn<6ueWv<2dl_6q z9SnjFCWjbcJdHdTcl93XkhXX zv)JXToee*eo`%zE0jO-CwsUpM?}qexr2a|Moc2Gx_aqxtZRQ1(h1_d4C!HHTl6(q% zy?ryiP}es5B?5rSA#e?g;B7-iJ!{)*n)yu=o0hc9?&$Ar5dTEx8Uu(wm|q0%?8mr< zdCvCU>s{>W?N;N!wjR#DManiwmBo^qeGMIjEoYmiH`%t7xBK>*hD7j5!y1A&bAn*L zy_KuGXNvbO?GwLzZ~WS$W=|bC03@RBKlYrA^tfyEkKKzQR)% z2c%FnoD%C54#!=n?m6yf+^#v(?A@$v*y-fOmK7SEe4YsDF?HN;Gi;SDu;X0T4hgg+3XhQ9^-c3d4qj})i6#YMTZX46)ULX<$aD_^V^f# z3~h5dC-r_1c|!*@i55?CF6*XXmmS`j;Wop)!|jnvwZl=N1K3B4!JjfjEALCWgTH%l zU0oehIyZOI`=vt?=((oN43a#VYk5OLCkMzW%%$47*KvW}d8=!jF6v8MnqjSyE&Dup zu6L*_r_-;?q32w`pST%H(D<17#0EM5CR(qvi+0R%n&p(`u)U7xJA!{@DPxT8G(ha|(4?;(~J)I{X$+=jj@9Ip*aDza#LtZ%KHc-)9-!r#&QvW#-PPP=;r4w7$kghRezz(ZJw#D}M z9oP;6yE^L)ykOQ0iZ2c@x~W^B4HAmzPyayQ_03E^{$XL6 zZKd6EyZ1J~tiFMR%te$dxNIX+)1x>l9X2EzF!Zk+V2B{`p!}oKS1+*?5tq^TaN79e zgokW*+xgoawRvLo7HnY7p=9E&7>Cr~6pN*dp{jwF{&54{gT>;H^4&_auF&$Dm`Xp$ z8Q{+np0Pb_=V`ae=8V-J2=cv-Ay>Q+4Fv!J;H3uXI;ID=LFt^Hwxc|+4=Rj^WX z%oK%hq_A0!!8ukOn~S#1ww*SwtmpBaIQI1WM5$%GUaK4q#Ytv}jt`*yxdWx5UWu(j zpuS?54S?h=jL}>t0ay6bCfatZ%|7d?{6NlZx|kS)KGH8#J%uVHVo}6k!NBgpgF{!P z4;2U0Erv~ifSk_YbE$$M>kl@;w(D)SSWoANaOTm?#QEqi{Z&;rWGfvzbaT*Q5OV|^ z63YBxnr4lWfqP8uWL)Mh5rhdFY?5u)*(|V*;s;^*S&=TF9tMK?km85bO1wb?h$=hgg>i-E5MC)2w27sq8Pb2gI4E&=909RRqcQip8RB zqTxe4iBy&g57Ss1AmHu|6nx3d&e}X-|pg&@%>+x)k0d=Skm+ z_lXxuX2>EGMrE81XKuk=BLj?bb|a|Z zmqk^Q$I?x5NBFktk&b1)jdLI;(zPsz%i$*qRtPTeKY>#AYDN_0JDz1(uXk3b!V~2* zX`T4Fc&B8!%wO?MDc9~dO~mO*Yw5Gt7eF07C*JX3K^nXJt;iqOf#!_*nflN>a-CRfX%k6uV23G8 zw_N20-{cZgHZI6)EN z11-n&W7ON=J@QG?;S!vrSMp7kp{P{8(n7`r;2iM`mCTf~O^m!UxMJ15cBV`A>Vxx+GU6Q=}C6S;e5TN^5Jn36M#VG!2u)oxyv}=L>f5<(Ri{ zDl?0^g=hWdhjSN#k3lwgf)l}t zrB{%L@KTG)5T)%=dcby2hisROAxP9ie`g`hByskVF4=cz6Vj!w)blMz@eSlI`Z9JDIF3J6uoA18 zvtSiFjuA>J!24P5>Q}1Yz_;Yfr8bgE@gB)=*-ywr32OHkt%0XR3Qf%n=jQQd3Y3CV zf&hLyx0pqt*OJ!aP*btaq^f`?L!~mlY>DiK{G;Nu(x7QE7%d=yNV!Zu#cJe4ga5#F zn5QX)?aTN==_C9`%Zw83G1W8pJ~U6xkw23UQ=CC=s3+(ro6q5XkbcnSu~N9Fc&+?# zf(Lvq?=&ZlIfL3uh(ymB_!=IPEw`5L5qAvD6n9G&$aCNy>S+dNR71E({mq=k1^EMl zCsr%0_<~ljj7?_zCC|i{m{;o8t8vJD=#=cEv_{%1>xZ5r0uA0U+_D~jj+{n6%W~y5 zfzNnHc^kpaoafAF+EkJYuEkWULsf0?BB)yCEjuJ@#J=bhs&ciB#xUS2@fY#IiAjOoZyQ#W>jfy(i1ldQKS?&ZYm1$ZJBNJs2ev-ZD z5R=83&n@SsbD10!Gl1So4k1iMPa4JAe3b__>OC+&=qr#LyjQsk8%tyh3-3;r(vnzY zE)Vlr+sZHG`GU{cyBY5(y9s>sonfCQ2g!nbWp5?cl5-M`GznUQ_-d9Ix-1I_Ih4l? z75gX{%GdJW@VD|ZxEokXnv(Pbx6Qm!U!=Z^j8(jl6XlWe_0US#Mm0yvHV#=T@F&Pk zw6~b|wh#9aH<3%_Fj>>+AY~ol3Yu@U*43#%grcazJk=HQWW{M@vs$a`Hj!|CBwN~Z z=3P!R7{q_br}Hm?J{%G=o=PP?MFTM_;jBcUb+Sgu2+3|qg;XlFdm)_}%0T z`ajl1?g`#GehFX98x4MCpJ3EbN(pz-L)a|3Nc9H(484^fl_x=vVkK5H)&{&qhkZS} ziFSl3XP@P!fqtMXcLMtoV=nax@g?xcRG}NE4o8&GVtKKQA|Lg?S#+;

    Z$zmGFnM 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[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 - Project ID of the project you've created at Google for this add-on. - client_secrets: - name: Client Secrets - description: >- - The name of the client secrets file to you've downloaded from Google and - placed in your `/share` folder. - model_id: - name: Model ID - description: >- - The ID of the model you've registered at Google for this add-on. - feedback: - name: Feedback - description: Control feedback options -network: - 9324/tcp: The port for the Webserver From e9d9f4b2ef966aca0d21de07708231aae3ad6287 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 14 Oct 2025 16:33:59 +0200 Subject: [PATCH 255/346] Drop codenotary options (#4188) The builder no longer creates Codenotary signature and Supervisor no longer checks Codenotary signatures. This information has become obsolete, so remove it from all add-ons. --- assist_microphone/build.yaml | 3 --- cec_scan/build.yaml | 3 --- configurator/build.yaml | 3 --- deconz/build.yaml | 3 --- dhcp_server/build.yaml | 3 --- dnsmasq/build.yaml | 3 --- duckdns/build.yaml | 3 --- git_pull/build.yaml | 3 --- letsencrypt/build.yaml | 3 --- mariadb/build.yaml | 3 --- mosquitto/build.yaml | 3 --- nginx_proxy/build.yaml | 3 --- openwakeword/build.yaml | 3 --- piper/build.yaml | 3 --- rpc_shutdown/build.yaml | 3 --- samba/build.yaml | 3 --- speech_to_phrase/build.yaml | 3 --- ssh/build.yaml | 3 --- tellstick/build.yaml | 3 --- vlc/build.yaml | 3 --- whisper/build.yaml | 3 --- zwave_js/build.yaml | 3 --- 22 files changed, 66 deletions(-) diff --git a/assist_microphone/build.yaml b/assist_microphone/build.yaml index 0457e61b23d..1ab09e7b2a3 100644 --- a/assist_microphone/build.yaml +++ b/assist_microphone/build.yaml @@ -2,8 +2,5 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: WYOMING_SATELLITE_VERSION: 1.3.0 diff --git a/cec_scan/build.yaml b/cec_scan/build.yaml index f7aeba897e4..39c55300242 100644 --- a/cec_scan/build.yaml +++ b/cec_scan/build.yaml @@ -5,8 +5,5 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.14 armv7: ghcr.io/home-assistant/armv7-base:3.14 i386: ghcr.io/home-assistant/i386-base:3.14 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: LIBCEC_VERSION: 6.0.2 diff --git a/configurator/build.yaml b/configurator/build.yaml index 9366f81e814..cafcee02c35 100644 --- a/configurator/build.yaml +++ b/configurator/build.yaml @@ -5,8 +5,5 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.19 armv7: ghcr.io/home-assistant/armv7-base:3.19 i386: ghcr.io/home-assistant/i386-base:3.19 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: CONFIGURATOR_VERSION: 0.5.2 diff --git a/deconz/build.yaml b/deconz/build.yaml index c9e53f138db..33d2ca68a98 100644 --- a/deconz/build.yaml +++ b/deconz/build.yaml @@ -3,8 +3,5 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm armhf: ghcr.io/home-assistant/armhf-base-raspbian:bookworm -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: DECONZ_VERSION: 2.30.2 diff --git a/dhcp_server/build.yaml b/dhcp_server/build.yaml index 039821f92e6..19306375de0 100644 --- a/dhcp_server/build.yaml +++ b/dhcp_server/build.yaml @@ -5,6 +5,3 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.19 armv7: ghcr.io/home-assistant/armv7-base:3.19 i386: ghcr.io/home-assistant/i386-base:3.19 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io diff --git a/dnsmasq/build.yaml b/dnsmasq/build.yaml index 039821f92e6..19306375de0 100644 --- a/dnsmasq/build.yaml +++ b/dnsmasq/build.yaml @@ -5,6 +5,3 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.19 armv7: ghcr.io/home-assistant/armv7-base:3.19 i386: ghcr.io/home-assistant/i386-base:3.19 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io diff --git a/duckdns/build.yaml b/duckdns/build.yaml index 4d7c6b2ac37..6243e988e5d 100644 --- a/duckdns/build.yaml +++ b/duckdns/build.yaml @@ -5,8 +5,5 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.20 armv7: ghcr.io/home-assistant/armv7-base:3.20 i386: ghcr.io/home-assistant/i386-base:3.20 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: DEHYDRATED_VERSION: 0.8.0 diff --git a/git_pull/build.yaml b/git_pull/build.yaml index 1e6de937829..a9a234c27c1 100644 --- a/git_pull/build.yaml +++ b/git_pull/build.yaml @@ -5,6 +5,3 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.21 armv7: ghcr.io/home-assistant/armv7-base:3.21 i386: ghcr.io/home-assistant/i386-base:3.21 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index cb288b47838..bb9f3475ca1 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -5,9 +5,6 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base-python:3.13-alpine3.21 armv7: ghcr.io/home-assistant/armv7-base-python:3.13-alpine3.21 i386: ghcr.io/home-assistant/i386-base-python:3.13-alpine3.21 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: # Developer note: please add a new plugin alphabetically into all lists ACME_VERSION: 3.3.0 diff --git a/mariadb/build.yaml b/mariadb/build.yaml index 039821f92e6..19306375de0 100644 --- a/mariadb/build.yaml +++ b/mariadb/build.yaml @@ -5,6 +5,3 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.19 armv7: ghcr.io/home-assistant/armv7-base:3.19 i386: ghcr.io/home-assistant/i386-base:3.19 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io diff --git a/mosquitto/build.yaml b/mosquitto/build.yaml index ceae42c9840..dc5ac449067 100644 --- a/mosquitto/build.yaml +++ b/mosquitto/build.yaml @@ -5,9 +5,6 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base-debian:bookworm armv7: ghcr.io/home-assistant/armv7-base-debian:bookworm i386: ghcr.io/home-assistant/i386-base-debian:bookworm -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: LIBWEBSOCKET_VERSION: 4.3.3 MOSQUITTO_VERSION: 2.0.22 diff --git a/nginx_proxy/build.yaml b/nginx_proxy/build.yaml index 408fdc794ce..eaa479f4423 100644 --- a/nginx_proxy/build.yaml +++ b/nginx_proxy/build.yaml @@ -5,6 +5,3 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.22 armv7: ghcr.io/home-assistant/armv7-base:3.22 i386: ghcr.io/home-assistant/i386-base:3.22 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io diff --git a/openwakeword/build.yaml b/openwakeword/build.yaml index e880a2dd014..d66d59bad0e 100644 --- a/openwakeword/build.yaml +++ b/openwakeword/build.yaml @@ -3,8 +3,5 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm armv7: ghcr.io/home-assistant/armv7-base-debian:bookworm -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: WYOMING_OPENWAKEWORD_VERSION: 1.10.0 diff --git a/piper/build.yaml b/piper/build.yaml index 5526e166536..af190404afd 100644 --- a/piper/build.yaml +++ b/piper/build.yaml @@ -2,9 +2,6 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: WYOMING_PIPER_VERSION: 1.6.3 BINARY_PIPER_VERSION: 1.2.0 diff --git a/rpc_shutdown/build.yaml b/rpc_shutdown/build.yaml index 039821f92e6..19306375de0 100644 --- a/rpc_shutdown/build.yaml +++ b/rpc_shutdown/build.yaml @@ -5,6 +5,3 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.19 armv7: ghcr.io/home-assistant/armv7-base:3.19 i386: ghcr.io/home-assistant/i386-base:3.19 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io diff --git a/samba/build.yaml b/samba/build.yaml index 039821f92e6..19306375de0 100644 --- a/samba/build.yaml +++ b/samba/build.yaml @@ -5,6 +5,3 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.19 armv7: ghcr.io/home-assistant/armv7-base:3.19 i386: ghcr.io/home-assistant/i386-base:3.19 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io diff --git a/speech_to_phrase/build.yaml b/speech_to_phrase/build.yaml index b29cae9ec87..7116ce093db 100644 --- a/speech_to_phrase/build.yaml +++ b/speech_to_phrase/build.yaml @@ -2,8 +2,5 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: SPEECH_TO_PHRASE_VERSION: 1.4.1 diff --git a/ssh/build.yaml b/ssh/build.yaml index 09f6debd086..3aca0fe80db 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -5,9 +5,6 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.22 armv7: ghcr.io/home-assistant/armv7-base:3.22 i386: ghcr.io/home-assistant/i386-base:3.22 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: CLI_VERSION: 4.41.0 LIBWEBSOCKETS_VERSION: 4.4.1 diff --git a/tellstick/build.yaml b/tellstick/build.yaml index fb0bee1d4e1..b9ad078aff0 100644 --- a/tellstick/build.yaml +++ b/tellstick/build.yaml @@ -5,8 +5,5 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.15 armv7: ghcr.io/home-assistant/armv7-base:3.15 i386: ghcr.io/home-assistant/i386-base:3.15 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: TELLDUS_COMMIT: 2598bbed16ffd701f2a07c99582f057a3decbaf3 diff --git a/vlc/build.yaml b/vlc/build.yaml index 4b47c5221c1..7b748a43247 100644 --- a/vlc/build.yaml +++ b/vlc/build.yaml @@ -4,6 +4,3 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base:3.22 armv7: ghcr.io/home-assistant/armv7-base:3.22 i386: ghcr.io/home-assistant/i386-base:3.22 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io diff --git a/whisper/build.yaml b/whisper/build.yaml index 6fc9fb13cbc..82e9c2e0c2b 100644 --- a/whisper/build.yaml +++ b/whisper/build.yaml @@ -2,8 +2,5 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: WYOMING_WHISPER_VERSION: 2.5.0 diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 61b280de10c..4dc0d1c95f4 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -5,9 +5,6 @@ build_from: armhf: ghcr.io/home-assistant/armhf-base:3.21 armv7: ghcr.io/home-assistant/armv7-base:3.21 i386: ghcr.io/home-assistant/i386-base:3.21 -codenotary: - signer: notary@home-assistant.io - base_image: notary@home-assistant.io args: ZWAVEJS_SERVER_VERSION: 3.4.0 ZWAVEJS_VERSION: 15.15.0 From 8e5138809bbb635a0203be73dd8ffdbed50ec327 Mon Sep 17 00:00:00 2001 From: mattreim <80219712+mattreim@users.noreply.github.com> Date: Thu, 23 Oct 2025 15:06:45 +0200 Subject: [PATCH 256/346] Bump deCONZ to v2.31.2 [1] (#4191) * Bump deCONZ to v2.31.2 * Update CHANGELOG.md * Update to version: 8.3.0 * Update CHANGELOG.md --------- Co-authored-by: Stefan Agner --- deconz/CHANGELOG.md | 4 ++++ deconz/build.yaml | 2 +- deconz/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index 8c3549c5ab0..8510b835f0b 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.3.0 + +- Bump deCONZ to 2.31.2 [[CHANGELOG](https://github.com/dresden-elektronik/deconz-rest-plugin/releases/tag/v2.31.2)] + ## 8.2.0 - Bump deCONZ to 2.30.2 [[CHANGELOG](https://github.com/dresden-elektronik/deconz-rest-plugin/releases/tag/v2.30.2)] diff --git a/deconz/build.yaml b/deconz/build.yaml index 33d2ca68a98..3e3bdc6af69 100644 --- a/deconz/build.yaml +++ b/deconz/build.yaml @@ -4,4 +4,4 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm armhf: ghcr.io/home-assistant/armhf-base-raspbian:bookworm args: - DECONZ_VERSION: 2.30.2 + DECONZ_VERSION: 2.31.2 diff --git a/deconz/config.yaml b/deconz/config.yaml index 933cf386801..6ac13f898f6 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.2.0 +version: 8.3.0 slug: deconz name: deCONZ description: >- From 1ac6ca8a042965f7d3cbdc7f72c69b1ffde1074e Mon Sep 17 00:00:00 2001 From: mattreim <80219712+mattreim@users.noreply.github.com> Date: Fri, 24 Oct 2025 10:50:12 +0200 Subject: [PATCH 257/346] deCONZ: Update ingress, docs and a few corrections [2] (#4161) * Update deCONZ: Ingress, discovery, doc, translations and a few corrections * Update for coderabbitai * Update for coderabbitai_2 * Update for coderabbitai_3 * Added some suggestions from coderabbitai * Update for coderabbitai_4 * Update for coderabbitai_5 * Update for coderabbitai_6 * Update for coderabbitai_7 * Update for coderabbitai_8 * Update ingress.html * Update ingress_2 * Update ingress_3 * Change DOC.md and remove clean cache * Revert to device * Remove the constants * Revert to net.wait_for * Add --focus-color * Revert ripple.remove * Add var(--button-hover-color) * Small correction in the DOC * Spaces removed * Update for coderabbitai_doc * Bump deCONZ to v2.31.2 * Update discovery * Revert otau-ledvance script * Update CHANGELOG.md * Remove German translation file * Small correction in the otau-ledvance script * Revert discovery * Update CHANGELOG.md * Remove deCONZ 2.31.2 * Update to TigerVNC link * Update to version: 8.4.0 * Update CHANGELOG.md --- README.md | 2 +- deconz/CHANGELOG.md | 6 + deconz/DOCS.md | 41 +- deconz/README.md | 2 +- deconz/config.yaml | 4 +- deconz/rootfs/etc/services.d/otau-ikea/run | 2 +- .../rootfs/etc/services.d/otau-ledvance/run | 6 +- deconz/rootfs/usr/share/www/ingress.html | 478 ++++++++---------- deconz/translations/en.yaml | 9 +- 9 files changed, 261 insertions(+), 289 deletions(-) diff --git a/README.md b/README.md index c499a0ebf71..36971d7b90e 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ systems that have installed Home Assistant. - **[deCONZ](/deconz/README.md)** - Control a Zigbee network using ConBee or RaspBee hardware by Dresden Elektronik. + Control a Zigbee network using ConBee or RaspBee hardware by dresden elektronik. - **[DHCP server](/dhcp_server/README.md)** diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index 8510b835f0b..e21274eef0f 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 8.4.0 + +- Ingress entry page revised (for example, light and dark mode) +- Update DOCS.md and a few naming corrections +- Expand English translation + ## 8.3.0 - Bump deCONZ to 2.31.2 [[CHANGELOG](https://github.com/dresden-elektronik/deconz-rest-plugin/releases/tag/v2.31.2)] diff --git a/deconz/DOCS.md b/deconz/DOCS.md index f0ba649824c..374729f2446 100644 --- a/deconz/DOCS.md +++ b/deconz/DOCS.md @@ -28,20 +28,20 @@ The add-on needs to know where your ConBee/RaspBee can be found, and therefore, you'll need to configure the add-on to point to the right device. If you're using Home Assistant you may find the correct value for this on the -`Settings -> System -> Hardware` page. It is recommended +**Settings** -> **System** -> **Hardware** -> **All hardware** page. It is recommended to use a "by-id" path to the device if one exists, as it is not subject to change if other devices are added to the system. 1. Replace `null` in the `device` option in the add-on configuration and specify - the device name in quotes: e.g. something like + the device name in quotes: e.g. something like
    `"/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_XXXXXXXX-if00"`, `"/dev/ttyUSB0"`, `"/dev/ttyAMA0"`, or `"/dev/ttyACM0"`. 2. Click on "SAVE" to save the add-on configuration. 3. Toggle the "Show in sidebar" to add it to your Home Assistant side bar. 4. Start the add-on. -After installing and starting this add-on, access the deCONZ WebUI ("Phoscon") -with "WEB UI" button. +After installing and launching this add-on, you can select **deCONZ** under web UI to access +the deCONZ GUI via VNC, or select **Phoscon** to configure the settings in the Phoscon App. ## Configuring the Home Assistant deCONZ integration @@ -56,14 +56,14 @@ follow these instructions to configure the deCONZ integration: -## Migrating to this Add-on +## Migrating to this add-on -To migrate deCONZ to Home Assistant and this add-on, backup your deCONZ config via the -Phoscon WebUI, then restore that config after installing/reinstalling. +To migrate deCONZ to Home Assistant and this add-on, back up your configuration via +the Phoscon App and restore it after installation/reinstallation. **_You must perform these steps or your Light, Group names and other data will be lost!_** -However, your Zigbee devices will still paired to your ConBee or RaspBee hardware. +However, your Zigbee devices will still be paired to your ConBee or RaspBee hardware. ## Accessing the deCONZ application and viewing the mesh via VNC @@ -89,10 +89,9 @@ settings. ## Upgrading RaspBee and ConBee firmware -This add-on allows you to upgrade your firmware straight from the Phoscon -web interface with ease. +This add-on allows you to upgrade your firmware straight from the Phoscon App with ease. -Go to "Settings -> Gateway" and click the upgrade button. +In the Phoscon App, go to **Settings** -> **Gateway**, then select the upgrade button. However, some USB sticks (like the Aeotec Z-Wave sticks), can interfere with the upgrade process, causing the firmware upgrade to fail silently. If you end @@ -107,8 +106,7 @@ Some add-ons are capable of consuming the deCONZ API directly. Node-RED is one of those applications, that is available as an add-on, that can consume the deCONZ API using the `node-red-contrib-deconz` node. -**WARNING** Do not use the following settings to set up a integration manually -from within Home Assistant! +**WARNING:** Do not use these settings to set up an integration in Home Assistant. To allow these add-ons to connect to deCONZ, use the following settings: @@ -116,8 +114,7 @@ To allow these add-ons to connect to deCONZ, use the following settings: - **(API) Port**: `40850` - **WebSocket Port**: `8081` -_Please note: the above settings are likely to change in a future update -of this add-on._ +_Note: The above settings are likely to change in a future update of this add-on._ ## Advanced debug output control @@ -154,13 +151,14 @@ device: /dev/ttyAMA0 The device address of your ConBee/RaspBee. If you're using Home Assistant you may find the correct value for this on the -`Supervisor -> System -> Host system -> Hardware` page. It is recommended +**Settings** -> **System** -> **Hardware** -> **All hardware** page. It is recommended to use a "by-id" path to the device if one exists, as it is not subject to change if other devices are added to the system. In most cases this looks like one of the following: -- `"/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_XXXXXXXX-if00"` (and similar for RaspBee and the original ConBee, replace `XXXXXXXX` with the value you see in your above mentioned hardware page) +- `"/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_XXXXXXXX-if00"`
    + (and similar for RaspBee and the original ConBee, replace `XXXXXXXX` with the value you see in your above mentioned hardware page) - `"/dev/ttyUSB0"` - `"/dev/ttyAMA0"` - `"/dev/ttyACM0"` @@ -179,15 +177,14 @@ fails to communicate new settings to Home Assistant. This can be solved by the following steps: -1. Backup your deCONZ data, by going into the Web UI, from the menu choose: - **Settings** -> **Gateway** -> **Backup Option** button, next create +1. Backup your deCONZ/Phoscon data, by going into the Phoscon App, from the menu choose: + **Settings** -> **Gateway** -> **Backup options**, then create a new backup and download it onto your computer. 2. Uninstall the add-on. 3. In Home Assistant, remove the current integration you have for deCONZ. 4. Restart Home Assistant. 5. Install the deCONZ add-on again, and configure it again according to the [instructions](#configure-the-add-on). -6. Restore the backup you created at the first step at the same location - in the Web UI as before. +6. Restore the backup you created at the first step at the same location in the Phoscon App as before. 7. Restart the add-on and next, restart Home Assistant once more. 8. Follow the instructions on [setting up the deCONZ integration](#configuring-the-home-assistant-deconz-integration). @@ -235,5 +232,5 @@ In case you've found a bug, please [open an issue on our GitHub][issue]. [issue]: https://github.com/home-assistant/addons/issues [manual-upgrade]: https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Update-deCONZ-manually [reddit]: https://reddit.com/r/homeassistant -[vnc-viewer]: https://bintray.com/tigervnc/stable/tigervnc/ +[vnc-viewer]: https://tigervnc.org [vnc-service-url]: vnc://homeassistant.local:5900 diff --git a/deconz/README.md b/deconz/README.md index c8a485c9270..0aa17a81a8c 100644 --- a/deconz/README.md +++ b/deconz/README.md @@ -2,7 +2,7 @@ ![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield] -Control a Zigbee network using ConBee or RaspBee hardware by Dresden Elektronik. +Control a Zigbee network using ConBee or RaspBee hardware by dresden elektronik. [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg [amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg diff --git a/deconz/config.yaml b/deconz/config.yaml index 6ac13f898f6..e3024c8a985 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,9 +1,9 @@ --- -version: 8.3.0 +version: 8.4.0 slug: deconz name: deCONZ description: >- - Control a Zigbee network with ConBee or RaspBee by Dresden Elektronik + Control a Zigbee network with ConBee or RaspBee by dresden elektronik url: https://github.com/home-assistant/addons/tree/master/deconz apparmor: false arch: diff --git a/deconz/rootfs/etc/services.d/otau-ikea/run b/deconz/rootfs/etc/services.d/otau-ikea/run index 1f7053d54a0..169782b763a 100755 --- a/deconz/rootfs/etc/services.d/otau-ikea/run +++ b/deconz/rootfs/etc/services.d/otau-ikea/run @@ -12,7 +12,7 @@ mkdir -p "/data/otau" bashio::log.info "Running the IKEA OTA updater..." if ! IKEA_DATA="$(curl -sL ${URL_IKEA})"; then - bashio::log.info "Can't fetch data from ikea!" + bashio::log.info "Can't fetch data from IKEA!" exec sleep 18000 fi diff --git a/deconz/rootfs/etc/services.d/otau-ledvance/run b/deconz/rootfs/etc/services.d/otau-ledvance/run index 7a69b94c045..58694b31f4f 100755 --- a/deconz/rootfs/etc/services.d/otau-ledvance/run +++ b/deconz/rootfs/etc/services.d/otau-ledvance/run @@ -2,18 +2,18 @@ # vim: ft=bash # shellcheck shell=bash # ============================================================================== -# Download available firmware update for OSRAM Ledvance +# Download available firmware update for OSRAM LEDVANCE # ============================================================================== readonly URL_OSRAM="https://api.update.ledvance.com/v1/zigbee/firmwares" # Ensure otau folder exists mkdir -p "/data/otau" -bashio::log.info "Running the OSRAM LEdvance OTA updater..." +bashio::log.info "Running the OSRAM LEDVANCE OTA updater..." # fetch data if ! OSRAM_DATA="$(curl -sL ${URL_OSRAM})"; then - bashio::log.info "Can't fetch data from osram!" + bashio::log.info "Can't fetch data from OSRAM!" exec sleep 18000 fi diff --git a/deconz/rootfs/usr/share/www/ingress.html b/deconz/rootfs/usr/share/www/ingress.html index a47be0028a1..99e91d33b8a 100644 --- a/deconz/rootfs/usr/share/www/ingress.html +++ b/deconz/rootfs/usr/share/www/ingress.html @@ -1,306 +1,272 @@ - + + + + + deCONZ | dresden elektronik

    - -
    -

    Zigbee network by Dresden Elektronik

    +

    Zigbee network by dresden elektronik

    -

    - You can use the - Phoscon Web App - or the - deCONZ application - through VNC -

    - -
    - - - - - - +
    +

    + You can use the + Phoscon App + or the + deCONZ GUI + through VNC. +

    +
    + Phoscon + deCONZ +
    + diff --git a/deconz/translations/en.yaml b/deconz/translations/en.yaml index 8672c154c49..535c8008518 100644 --- a/deconz/translations/en.yaml +++ b/deconz/translations/en.yaml @@ -14,6 +14,9 @@ configuration: dbg_zdp: name: Debug zdp network: - 40850/tcp: deCONZ API backend (Not required for Ingress) - 5900/tcp: deCONZ via VNC (Not required for Ingress. Not secure!) - 8081/tcp: deCONZ WebSocket (Not required for Ingress) + 40850/tcp: >- + deCONZ API backend (Access for Phoscon and REST API outside the add-on) + 5900/tcp: >- + deCONZ via VNC (Accessing the GUI with external VNC software. Not secured!) + 8081/tcp: >- + deCONZ WebSocket (Connection to other applications e.g. Node-RED) From 8e05d57cc490c842f23732c7dc1c39e15b5d5e0e Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 24 Oct 2025 16:45:28 +0200 Subject: [PATCH 258/346] silabs_flasher: Bump to latest universal-silabs-flasher (#4193) * silabs_flasher: Bump to latest universal-silabs-flasher Bump to latest universal-silabs-flasher 0.0.35 and Alpine 3.22. * Bump to 0.0.36 --- silabs_flasher/CHANGELOG.md | 5 +++++ silabs_flasher/build.yaml | 12 ++++++------ silabs_flasher/config.yaml | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/silabs_flasher/CHANGELOG.md b/silabs_flasher/CHANGELOG.md index 87a78c6abca..e7bf37f8426 100644 --- a/silabs_flasher/CHANGELOG.md +++ b/silabs_flasher/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.4.0 + +- Upgrade to Alpine 3.22 +- Update universal-silabs-flasher to v0.0.36 + ## 0.3.4 - Make custom ezsp baudrate a truly optional configuration diff --git a/silabs_flasher/build.yaml b/silabs_flasher/build.yaml index 0ac17423164..b6801ac71d3 100644 --- a/silabs_flasher/build.yaml +++ b/silabs_flasher/build.yaml @@ -1,9 +1,9 @@ --- build_from: - aarch64: ghcr.io/home-assistant/aarch64-base-python:3.11-alpine3.19 - amd64: ghcr.io/home-assistant/amd64-base-python:3.11-alpine3.19 - armhf: ghcr.io/home-assistant/armhf-base-python:3.11-alpine3.19 - armv7: ghcr.io/home-assistant/armv7-base-python:3.11-alpine3.19 - i386: ghcr.io/home-assistant/i386-base-python:3.11-alpine3.19 + aarch64: ghcr.io/home-assistant/aarch64-base-python:3.13-alpine3.22 + amd64: ghcr.io/home-assistant/amd64-base-python:3.13-alpine3.22 + armhf: ghcr.io/home-assistant/armhf-base-python:3.13-alpine3.22 + armv7: ghcr.io/home-assistant/armv7-base-python:3.13-alpine3.22 + i386: ghcr.io/home-assistant/i386-base-python:3.13-alpine3.22 args: - UNIVERSAL_SILABS_FLASHER: 0.0.25 + UNIVERSAL_SILABS_FLASHER: 0.0.36 diff --git a/silabs_flasher/config.yaml b/silabs_flasher/config.yaml index 2ba46285268..b8010e651c0 100644 --- a/silabs_flasher/config.yaml +++ b/silabs_flasher/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.3.4 +version: 0.4.0 slug: silabs_flasher name: Silicon Labs Flasher description: Silicon Labs firmware flasher add-on From 8f41e34f4b50b2c56d51a98108f0d5a55ae9d928 Mon Sep 17 00:00:00 2001 From: mattreim <80219712+mattreim@users.noreply.github.com> Date: Fri, 24 Oct 2025 17:21:08 +0200 Subject: [PATCH 259/346] deCONZ: Fix discovery script [3] (#4192) * deCONZ fix discovery script * Update for coderabbitai * Update CHANGELOG.md * Update CHANGELOG.md --- deconz/CHANGELOG.md | 4 + deconz/config.yaml | 2 +- deconz/rootfs/etc/services.d/deconz/discovery | 94 +++++++++++++------ 3 files changed, 70 insertions(+), 30 deletions(-) diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index e21274eef0f..d57be43f734 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.5.0 + +- Fix discovery script + ## 8.4.0 - Ingress entry page revised (for example, light and dark mode) diff --git a/deconz/config.yaml b/deconz/config.yaml index e3024c8a985..575e74bab8f 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.4.0 +version: 8.5.0 slug: deconz name: deCONZ description: >- diff --git a/deconz/rootfs/etc/services.d/deconz/discovery b/deconz/rootfs/etc/services.d/deconz/discovery index 7d3355412cd..757b1380ff6 100755 --- a/deconz/rootfs/etc/services.d/deconz/discovery +++ b/deconz/rootfs/etc/services.d/deconz/discovery @@ -4,13 +4,13 @@ # ============================================================================== # Send deCONZ discovery information to Home Assistant # ============================================================================== -readonly DATA_STORE="/data/.local/share/dresden-elektronik/deCONZ/zll.db" declare api_key declare config -declare query declare retries declare serial +bashio::log.info "Starting discovery script ..." + # Wait for deCONZ to start before continuing bashio::net.wait_for 40850 @@ -20,42 +20,78 @@ if bashio::fs.file_exists /data/hassio.json; then rm /data/hassio.json fi -# Try to get API key from deCONZ database -query='SELECT apikey FROM auth WHERE devicetype="Home Assistant" ORDER BY createdate DESC LIMIT 1' -api_key=$(sqlite3 "${DATA_STORE}" "${query}" .exit) -if ! bashio::var.has_value "${api_key}"; then - # Register an API key for Home Assistant - if ! result="$(curl --silent --show-error --request POST -d '{"devicetype": "Home Assistant"}' "http://127.0.0.1:40850/api")"; - then - bashio::log.debug "${result}" - bashio::exit.nok "Can't get API key from deCONZ gateway" +# Locate database +DATA_STORE="/data/.local/share/deCONZ/zll.db" +if [ ! -f "$DATA_STORE" ]; then + bashio::log.warning "Database not found at $DATA_STORE, trying alternative path..." + DATA_STORE="/data/.local/share/dresden-elektronik/deCONZ/zll.db" + if [ ! -f "$DATA_STORE" ]; then + bashio::log.error "No database found in either path! Proceeding without serial." + DATA_STORE="" fi - api_key="$(bashio::jq "${result}" '.[0].success.username')" fi -# Try to get the bridge ID/serial, try to avoid using 0000000000000000 -retries=25 -serial="0000000000000000" -while [[ "${serial}" = "0000000000000000" ]]; do - bashio::log.debug "Waiting for bridge ID..." - sleep 10 +# Read API key from database +if [ -n "$DATA_STORE" ]; then + api_key=$(sqlite3 "${DATA_STORE}" \ + 'SELECT apikey FROM auth WHERE devicetype="Home Assistant" ORDER BY createdate DESC LIMIT 1' 2>/dev/null) +fi - # If we tried 25 times, just abort. - if [[ "${retries}" -eq 0 ]]; then - bashio::exit.nok "Failed to get a valid bridge ID. Discovery aborted." +# Test API key immediately, if available +if [ -n "$api_key" ]; then + http_code=$(curl -s -o /dev/null -w "%{http_code}" \ + "http://127.0.0.1:40850/api/${api_key}/config") + if [[ "$http_code" != "200" ]]; then + bashio::log.warning "Existing API key invalid (HTTP $http_code), will try to create a new one..." + api_key="" + else + bashio::log.info "Existing API key is valid." fi +fi - # Get bridge ID from API - if ! result="$(curl --silent --show-error --request GET "http://127.0.0.1:40850/api/${api_key}/config")"; - then - bashio::log.debug "${result}" - bashio::exit.nok "Can't get data from deCONZ gateway" +# Try to create API key if none exists +if ! bashio::var.has_value "${api_key}"; then + bashio::log.warning "No API key found – trying to create a new one..." + for i in $(seq 1 60); do + if result="$(curl --silent --show-error --request POST \ + -d '{"devicetype": "Home Assistant"}' \ + "http://127.0.0.1:40850/api")"; then + api_key="$(bashio::jq "${result}" '.[0].success.username')" + if bashio::var.has_value "${api_key}"; then + bashio::log.info "API key successfully created after ${i} seconds." + break + fi + fi + sleep 1 + done + if ! bashio::var.has_value "${api_key}"; then + bashio::log.error "Failed to get an API key from deCONZ – continuing without discovery." + exit 0 fi - serial="$(bashio::jq "${result}" '.bridgeid')" +fi +# Get serial/bridge ID +retries=25 +serial="0000000000000000" +while [[ "${serial}" = "0000000000000000" && "${retries}" -gt 0 ]]; do + sleep 5 + if result="$(curl --silent --show-error \ + --request GET "http://127.0.0.1:40850/api/${api_key}/config")"; then + candidate="$(bashio::jq "${result}" '.bridgeid')" + if [[ "$candidate" =~ ^[0-9A-Fa-f]{16}$ ]]; then + serial="$candidate" + else + serial="0000000000000000" + fi + fi ((retries--)) done +if [[ "${serial}" = "0000000000000000" ]]; then + bashio::log.error "Failed to get a valid bridge ID – continuing without discovery." + exit 0 +fi + # Create config payload for Home Assistant config=$(bashio::var.json \ host "$(hostname)" \ @@ -66,7 +102,7 @@ config=$(bashio::var.json \ # Send discovery info if bashio::discovery "deconz" "${config}" > /dev/null; then - bashio::log.info "Successfully send discovery information to Home Assistant." + bashio::log.info "Successfully sent discovery information to Home Assistant." else - bashio::log.error "Discovery message to Home Assistant failed!" + bashio::log.error "Failed to send discovery message to Home Assistant!" fi From bd26d1fabd0e8190438cc538060e33f779cc5b2c Mon Sep 17 00:00:00 2001 From: Cameron Gray Date: Fri, 24 Oct 2025 17:22:29 +0200 Subject: [PATCH 260/346] Samba: Add Server Signing Parameter Option (#4198) * Add server_signing option to config.yaml * Add Server Signing to Docs.md * Add Server_Signing to transalations/en.yaml * Add server signing to smb.gptl * fix typo of enum * Change enum to list * Update samba/DOCS.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update en.yaml as per coderabbit suggestion * Bump Version * Update CHANGELOG.md --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- samba/CHANGELOG.md | 4 ++++ samba/DOCS.md | 7 +++++++ samba/config.yaml | 4 +++- samba/rootfs/usr/share/tempio/smb.gtpl | 2 ++ samba/translations/en.yaml | 6 ++++++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/samba/CHANGELOG.md b/samba/CHANGELOG.md index 7b6360ec3be..90ae8337c26 100644 --- a/samba/CHANGELOG.md +++ b/samba/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 12.5.3 + +- Add option for setting server signing parameter + ## 12.5.2 - Avoid binding to disabled network interfaces diff --git a/samba/DOCS.md b/samba/DOCS.md index b8c7c2514e9..7e67bb0bb32 100644 --- a/samba/DOCS.md +++ b/samba/DOCS.md @@ -107,6 +107,13 @@ This can cause issues with file systems that do not support xattr such as exFAT. Defaults to `true`. +### Option: `server_signing` + +Configure the SMB server signing requirement. This option can improve security by requiring message signing, which helps prevent man-in-the-middle attacks. +Refer to the man page for smb.conf for detailed information about the values: **default**, **auto**, **mandatory**, and **disabled**. + +Defaults to `default`. + ## Support Got questions? diff --git a/samba/config.yaml b/samba/config.yaml index 69779c1c91a..d4a22ee4175 100644 --- a/samba/config.yaml +++ b/samba/config.yaml @@ -1,5 +1,5 @@ --- -version: 12.5.2 +version: 12.5.3 slug: samba name: Samba share description: Expose Home Assistant folders with SMB/CIFS @@ -38,6 +38,7 @@ options: - ssl compatibility_mode: false apple_compatibility_mode: true + server_signing: "default" veto_files: - ._* - .DS_Store @@ -60,6 +61,7 @@ schema: - "match(^(?i:(addons|addon_configs|backup|config|media|share|ssl))$)" compatibility_mode: bool apple_compatibility_mode: bool + server_signing: list("default", "auto", "mandatory", "disabled") veto_files: - str allow_hosts: diff --git a/samba/rootfs/usr/share/tempio/smb.gtpl b/samba/rootfs/usr/share/tempio/smb.gtpl index 511780be35e..6b00b14c387 100644 --- a/samba/rootfs/usr/share/tempio/smb.gtpl +++ b/samba/rootfs/usr/share/tempio/smb.gtpl @@ -31,6 +31,8 @@ vfs objects = catia fruit streams_xattr {{ end }} + server signing = {{ .server_signing }} + {{ if (has "config" .enabled_shares) }} [config] browseable = yes diff --git a/samba/translations/en.yaml b/samba/translations/en.yaml index 8ccd46bab1e..d350494eeee 100644 --- a/samba/translations/en.yaml +++ b/samba/translations/en.yaml @@ -33,6 +33,12 @@ configuration: Enable Samba configurations to improve interoperability with Apple devices. May cause issues with file systems that do not support xattr such as exFAT. + server_signing: + name: Server signing + description: >- + Configure SMB server message signing requirements. + Refer to the smb.conf man page for more information. + Only change this if you know your SMB clients can support it. veto_files: name: Veto Files description: List of files that are neither visible nor accessible. From e088f8526f114a1e4088e07e81f23eb4ce840a5b Mon Sep 17 00:00:00 2001 From: Cameron Gray Date: Fri, 24 Oct 2025 22:01:09 +0200 Subject: [PATCH 261/346] Fix the invalid inverted comments in the list parameter (#4203) Co-authored-by: Franck Nijhof --- samba/CHANGELOG.md | 4 ++++ samba/config.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/samba/CHANGELOG.md b/samba/CHANGELOG.md index 90ae8337c26..0f9bd4a2171 100644 --- a/samba/CHANGELOG.md +++ b/samba/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 12.5.4 + +- Fix invalid inverted commas in server signing parameter + ## 12.5.3 - Add option for setting server signing parameter diff --git a/samba/config.yaml b/samba/config.yaml index d4a22ee4175..fdb31bbf878 100644 --- a/samba/config.yaml +++ b/samba/config.yaml @@ -1,5 +1,5 @@ --- -version: 12.5.3 +version: 12.5.4 slug: samba name: Samba share description: Expose Home Assistant folders with SMB/CIFS @@ -61,7 +61,7 @@ schema: - "match(^(?i:(addons|addon_configs|backup|config|media|share|ssl))$)" compatibility_mode: bool apple_compatibility_mode: bool - server_signing: list("default", "auto", "mandatory", "disabled") + server_signing: list(default|auto|mandatory|disabled) veto_files: - str allow_hosts: From 89da0673cffd2ac4e4d4041268f0c78dfd6f6f66 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Tue, 28 Oct 2025 03:35:07 -0400 Subject: [PATCH 262/346] [openthread_border_router] Migrate last active datasets when adapter changes (#4196) * Migrate settings on OTBR startup * Handle plugging in an old adapter * Update minor version and changelog * Allow for duplicate keys in the data file * Use debug logging * Ignore data files without useful settings * Migrate `CHILD_INFO` as well * Fix syntax error --- openthread_border_router/CHANGELOG.md | 3 + openthread_border_router/Dockerfile | 3 + openthread_border_router/build.yaml | 1 + openthread_border_router/config.yaml | 2 +- .../etc/s6-overlay/s6-rc.d/otbr-agent/run | 4 + .../usr/local/bin/migrate_otbr_settings.py | 189 ++++++++++++++++++ 6 files changed, 201 insertions(+), 1 deletion(-) create mode 100755 openthread_border_router/rootfs/usr/local/bin/migrate_otbr_settings.py diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index f60450590c1..d2281ea8846 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 2.15.0 +- Automatically migrate the active dataset to a new adapter when changing the addon serial port path. + ## 2.14.0 - Remove firmware flashing from the addon, this is now handled by Core 2025.7.0. diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index 8fe45750ec1..a758d34377b 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -3,6 +3,7 @@ FROM $BUILD_FROM ARG BUILD_ARCH ARG OTBR_VERSION +ARG UNIVERSAL_SILABS_FLASHER # Set shell SHELL ["/bin/bash", "-o", "pipefail", "-c"] @@ -92,6 +93,8 @@ RUN \ && cd build/otbr/ \ && ninja \ && ninja install) \ + && pip install --break-system-packages \ + universal-silabs-flasher==${UNIVERSAL_SILABS_FLASHER} \ && apt-get purge -y --auto-remove \ git \ nodejs \ diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index a0998bc190f..16c96c5d466 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -4,3 +4,4 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm args: OTBR_VERSION: b067e5ac5f8b3e92750df24922017eee2bc0fa04 + UNIVERSAL_SILABS_FLASHER: 0.0.36 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 31759ebfb2a..fe36bbbf7eb 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.14.0 +version: 2.15.0 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run index 2b6885f8638..45ff8e2ef12 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run @@ -143,6 +143,10 @@ fi echo "${otbr_rest_listen}" > /tmp/otbr-agent-rest-api echo "${otbr_rest_listen_port}" >> /tmp/otbr-agent-rest-api +# Migrate OTBR settings to new adapter if needed +bashio::log.info "Migrating OTBR settings if needed..." +python3 /usr/local/bin/migrate_otbr_settings.py --adapter "${device}" --baudrate "${baudrate}" --data-dir /data/thread/ + bashio::log.info "Starting otbr-agent..." # shellcheck disable=SC2086 exec s6-notifyoncheck -d -s 300 -w 300 -n 0 stdbuf -oL \ diff --git a/openthread_border_router/rootfs/usr/local/bin/migrate_otbr_settings.py b/openthread_border_router/rootfs/usr/local/bin/migrate_otbr_settings.py new file mode 100755 index 00000000000..74c009cce9a --- /dev/null +++ b/openthread_border_router/rootfs/usr/local/bin/migrate_otbr_settings.py @@ -0,0 +1,189 @@ +import asyncio +import argparse +import datetime +import zigpy.serial +from pathlib import Path + +from enum import Enum +from universal_silabs_flasher.spinel import SpinelProtocol, CommandID, PropertyID + +CONNECT_TIMEOUT = 10 + + +class OtbrSettingsKey(Enum): + ACTIVE_DATASET = 0x0001 + PENDING_DATASET = 0x0002 + NETWORK_INFO = 0x0003 + PARENT_INFO = 0x0004 + CHILD_INFO = 0x0005 + SLAAC_IID_SECRET_KEY = 0x0007 + DAD_INFO = 0x0008 + SRP_ECDSA_KEY = 0x000B + SRP_CLIENT_INFO = 0x000C + SRP_SERVER_INFO = 0x000D + BR_ULA_PREFIX = 0x000F + BR_ON_LINK_PREFIXES = 0x0010 + BORDER_AGENT_ID = 0x0011 + + +def parse_otbr_settings(data: bytes) -> list[tuple[OtbrSettingsKey, bytes]]: + """Parses an OTBR binary settings file.""" + settings = [] + + while data: + key_bytes = data[:2] + if not key_bytes: + break + + assert len(key_bytes) == 2 + key = int.from_bytes(key_bytes, "little") + + length_bytes = data[2:4] + assert len(length_bytes) == 2 + + length = int.from_bytes(length_bytes, "little") + value = data[4 : 4 + length] + assert len(value) == length + + settings.append((OtbrSettingsKey(key), value)) + data = data[4 + length :] + + return settings + + +def serialize_otbr_settings(settings: list[tuple[OtbrSettingsKey, bytes]]) -> bytes: + """Serialize OTBR binary settings.""" + data = b"" + + for key, value in settings: + key_bytes = key.value.to_bytes(2, "little") + length_bytes = len(value).to_bytes(2, "little") + data += key_bytes + length_bytes + value + + return data + + +def is_valid_otbr_settings_file(settings: list[tuple[OtbrSettingsKey, bytes]]) -> bool: + """Check if parsed settings represent a valid OTBR settings file.""" + return {OtbrSettingsKey.ACTIVE_DATASET} <= {key for key, _ in settings} + + +async def get_adapter_hardware_addr(port: str, baudrate: int = 460800) -> str: + loop = asyncio.get_running_loop() + + async with asyncio.timeout(CONNECT_TIMEOUT): + _, protocol = await zigpy.serial.create_serial_connection( + loop=loop, + protocol_factory=SpinelProtocol, + url=port, + baudrate=baudrate, + ) + await protocol.wait_until_connected() + + try: + rsp = await protocol.send_command( + CommandID.PROP_VALUE_GET, + PropertyID.HWADDR.serialize(), + ) + finally: + await protocol.disconnect() + + prop_id, hwaddr = PropertyID.deserialize(rsp.data) + assert prop_id == PropertyID.HWADDR + + return hwaddr.hex() + + +def hwaddr_to_filename(hwaddr: str) -> str: + port_offset = 0 + node_id = int(hwaddr, 16) + + return f"{port_offset}_{node_id:x}.data" + + +def backup_file(path: Path) -> Path: + suffix = datetime.datetime.now().strftime("%Y%m%d%H%M%S") + backup_path = path.with_suffix(path.suffix + f".backup-{suffix}") + path.rename(backup_path) + return backup_path + + +async def main() -> None: + parser = argparse.ArgumentParser(description="Migrate OTBR settings to new adapter") + parser.add_argument( + "--data-dir", type=Path, help="Path to OTBR data directory", required=True + ) + parser.add_argument( + "--adapter", type=str, help="Serial port of the new adapter", required=True + ) + parser.add_argument( + "--baudrate", type=int, default=460800, help="Baudrate of the new adapter" + ) + + args = parser.parse_args() + + # First, read the hardware address of the new adapter + hwaddr = await get_adapter_hardware_addr(args.adapter, args.baudrate) + + # Then, look at existing settings + all_settings = [] + + for settings_path in args.data_dir.glob("*.data"): + mod_time = settings_path.stat().st_mtime + otbr_settings = parse_otbr_settings(settings_path.read_bytes()) + + # Ensure our parsing is valid + assert serialize_otbr_settings(otbr_settings) == settings_path.read_bytes() + + if not is_valid_otbr_settings_file(otbr_settings): + print( + f"Settings file {settings_path} is not a valid OTBR settings file, skipping" + ) + continue + + all_settings.append((mod_time, settings_path, otbr_settings)) + + if not all_settings: + print("No existing settings files found, skipping") + return + + most_recent_settings_info = sorted(all_settings, reverse=True)[0] + most_recent_settings_path = most_recent_settings_info[1] + most_recent_settings = most_recent_settings_info[2] + + expected_settings_path = args.data_dir / hwaddr_to_filename(hwaddr) + + if expected_settings_path.exists(): + if most_recent_settings_path == expected_settings_path: + print( + f"Adapter settings file {expected_settings_path} is the most recently used, skipping" + ) + return + + # If the settings file is old, we should "delete" it + print( + f"Settings file for adapter {hwaddr} already exists at {expected_settings_path} but appears to be old, archiving" + ) + backup_file(expected_settings_path) + + # Write back a new settings file that keeps only a few keys + new_settings = [ + (key, value) + for key, value in most_recent_settings + if key + in ( + OtbrSettingsKey.ACTIVE_DATASET, + OtbrSettingsKey.PENDING_DATASET, + OtbrSettingsKey.CHILD_INFO, + ) + ] + + expected_settings_path.write_bytes(serialize_otbr_settings(new_settings)) + print(f"Wrote new settings file to {expected_settings_path}") + + +if __name__ == "__main__": + import coloredlogs + + coloredlogs.install(level="DEBUG") + asyncio.run(main()) From 54e407b8771cdc78f18e1fc8e86c20e795d42638 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 29 Oct 2025 11:12:11 +0100 Subject: [PATCH 263/346] Remove Codenotary signing information (#4208) --- configurator/config.yaml | 1 - deconz/config.yaml | 1 - dhcp_server/config.yaml | 1 - mosquitto/config.yaml | 1 - samba/config.yaml | 1 - ssh/config.yaml | 1 - zwave_js/config.yaml | 1 - 7 files changed, 7 deletions(-) diff --git a/configurator/config.yaml b/configurator/config.yaml index b345c7efe27..25a03594e3c 100644 --- a/configurator/config.yaml +++ b/configurator/config.yaml @@ -4,7 +4,6 @@ slug: configurator name: File editor description: Simple browser-based file editor for Home Assistant url: https://github.com/home-assistant/addons/tree/master/configurator -codenotary: notary@home-assistant.io arch: - armhf - armv7 diff --git a/deconz/config.yaml b/deconz/config.yaml index 575e74bab8f..0c8150c045b 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -12,7 +12,6 @@ arch: - aarch64 backup_exclude: - "*/otau" -codenotary: notary@home-assistant.io devices: - /dev/mem discovery: diff --git a/dhcp_server/config.yaml b/dhcp_server/config.yaml index 9cc1aeb6b4c..7d0563e2c26 100644 --- a/dhcp_server/config.yaml +++ b/dhcp_server/config.yaml @@ -4,7 +4,6 @@ slug: dhcp_server name: "DHCP server [deprecated]" description: A simple DHCP server url: https://home-assistant.io/addons/dhcp_server/ -codenotary: notary@home-assistant.io advanced: true arch: - armhf diff --git a/mosquitto/config.yaml b/mosquitto/config.yaml index 4a11732dbb4..ceb572884bf 100644 --- a/mosquitto/config.yaml +++ b/mosquitto/config.yaml @@ -4,7 +4,6 @@ slug: mosquitto name: Mosquitto broker description: An Open Source MQTT broker url: https://github.com/home-assistant/addons/tree/master/mosquitto -codenotary: notary@home-assistant.io arch: - armhf - armv7 diff --git a/samba/config.yaml b/samba/config.yaml index fdb31bbf878..0b53621b9fc 100644 --- a/samba/config.yaml +++ b/samba/config.yaml @@ -4,7 +4,6 @@ slug: samba name: Samba share description: Expose Home Assistant folders with SMB/CIFS url: https://github.com/home-assistant/addons/tree/master/samba -codenotary: notary@home-assistant.io arch: - armhf - armv7 diff --git a/ssh/config.yaml b/ssh/config.yaml index fe9d10581d8..fcea1a221db 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -4,7 +4,6 @@ slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH url: https://github.com/home-assistant/addons/tree/master/ssh -codenotary: notary@home-assistant.io advanced: true arch: - armhf diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 222dc0e4315..4b75d56832b 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -10,7 +10,6 @@ arch: - armhf - armv7 - aarch64 -codenotary: notary@home-assistant.io discovery: - zwave_js hassio_api: true From c5704cef88f620a2265a3bf11220a230777745f7 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Fri, 7 Nov 2025 02:17:59 -0600 Subject: [PATCH 264/346] Bump to wyoming-openwakeword 2.1.0 (#4215) --- openwakeword/CHANGELOG.md | 6 ++++++ openwakeword/Dockerfile | 2 +- openwakeword/README.md | 5 +---- openwakeword/build.yaml | 3 +-- openwakeword/config.yaml | 3 +-- openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run | 2 +- 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/openwakeword/CHANGELOG.md b/openwakeword/CHANGELOG.md index 7f4f96145ea..7f5f8d79cf8 100644 --- a/openwakeword/CHANGELOG.md +++ b/openwakeword/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.1.0 + +- Upgrade to wyoming-openwakeword 2.1.0 +- Fix zeroconf discovery +- Drop support for `armv7` + ## 1.10.0 - Upgrade to wyoming 1.5.3 diff --git a/openwakeword/Dockerfile b/openwakeword/Dockerfile index c4c3858b89b..da233bb5823 100644 --- a/openwakeword/Dockerfile +++ b/openwakeword/Dockerfile @@ -15,13 +15,13 @@ RUN \ netcat-traditional \ python3 \ python3-pip \ - libopenblas0 \ \ && pip3 install --no-cache-dir -U \ setuptools \ wheel \ && pip3 install --no-cache-dir \ --extra-index-url https://www.piwheels.org/simple \ + "wyoming[zeroconf]>=1.8,<2" \ "wyoming-openwakeword @ https://github.com/rhasspy/wyoming-openwakeword/archive/refs/tags/v${WYOMING_OPENWAKEWORD_VERSION}.tar.gz" \ \ && rm -rf /var/lib/apt/lists/* diff --git a/openwakeword/README.md b/openwakeword/README.md index 4496fd41817..2226d009952 100644 --- a/openwakeword/README.md +++ b/openwakeword/README.md @@ -1,6 +1,6 @@ # Home Assistant Add-on: openWakeWord -![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armv7 Architecture][armv7-shield] +![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] Home Assistant add-on that uses [openWakeWord](https://github.com/dscripka/openwakeword) for wake word detection. @@ -10,6 +10,3 @@ Requires Home Assistant 2023.9 or later. [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg [amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-no-red.svg -[i386-shield]: https://img.shields.io/badge/i386-no-red.svg diff --git a/openwakeword/build.yaml b/openwakeword/build.yaml index d66d59bad0e..d6a946d9721 100644 --- a/openwakeword/build.yaml +++ b/openwakeword/build.yaml @@ -2,6 +2,5 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm - armv7: ghcr.io/home-assistant/armv7-base-debian:bookworm args: - WYOMING_OPENWAKEWORD_VERSION: 1.10.0 + WYOMING_OPENWAKEWORD_VERSION: 2.1.0 diff --git a/openwakeword/config.yaml b/openwakeword/config.yaml index cb2254ef922..d5d5ed782ec 100644 --- a/openwakeword/config.yaml +++ b/openwakeword/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.10.0 +version: 2.1.0 slug: openwakeword name: openWakeWord description: openWakeWord using the Wyoming protocol @@ -7,7 +7,6 @@ url: https://github.com/home-assistant/addons/blob/master/openwakeword arch: - amd64 - aarch64 - - armv7 init: false discovery: - wyoming diff --git a/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run b/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run index 17431b97304..7db54150326 100755 --- a/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run +++ b/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run @@ -13,7 +13,7 @@ fi # shellcheck disable=SC2068 exec python3 -m wyoming_openwakeword \ --uri 'tcp://0.0.0.0:10400' \ - --preload-model 'ok_nabu' \ + --zeroconf \ --custom-model-dir /share/openwakeword \ --threshold "$(bashio::config 'threshold')" \ --trigger-level "$(bashio::config 'trigger_level')" ${flags[@]} From fd351036dc09d3ee9887258f20f6bf338cc6adf3 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Tue, 11 Nov 2025 02:26:47 -0600 Subject: [PATCH 265/346] Bump to wyoming-piper 2.1.1 (#4217) * Bump to wyoming-piper 2.1.1 * Fix image * Remove deprecated options * Remove options * Fix quotes --- piper/CHANGELOG.md | 8 ++++++++ piper/DOCS.md | 14 -------------- piper/Dockerfile | 9 ++------- piper/build.yaml | 3 +-- piper/config.yaml | 6 +----- piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run | 16 ++++++++++------ piper/translations/en.yaml | 12 ------------ 7 files changed, 22 insertions(+), 46 deletions(-) diff --git a/piper/CHANGELOG.md b/piper/CHANGELOG.md index f2914380a33..0a0cadb88ba 100644 --- a/piper/CHANGELOG.md +++ b/piper/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2.1.1 + +- Upgrade to `wyoming-piper` 2.1.1 +- Streaming is enabled by default (remove `streaming` option) +- Remove `max_piper_procs` option (no longer applicable) +- Drop support for `armv7` +- Fix zeroconf discovery + ## 1.6.4 - Add missing voice for Argentinian Spanish (daniela) diff --git a/piper/DOCS.md b/piper/DOCS.md index 03aaa6ed88d..a622b066571 100644 --- a/piper/DOCS.md +++ b/piper/DOCS.md @@ -59,24 +59,10 @@ Controls the variability of audio by adding noise during audio generation. The e Controls the variability of speaking cadence (phoneme widths). The effect highly depends on the voice itself, but in general a value of 0 removes variability and values above 1 produce extreme stutters and pauses. -### Option: `max_piper_procs` - -Number of Piper processes to run simultaneously (default is 1). Each Piper process loads a single voice model into RAM, so using multiple voices at the same time requires: - -- Starting/stopping Piper processes as voices are used, or -- Running more Piper processes - -This add-on will start a Piper process for each requested voice up to `max_piper_procs`. After that, the least recently used voice will be stopped. -Increase `max_piper_procs` if you need to quickly switch between multiple voices, but beware that this will increase RAM usage by the add-on. - ### Option: `update_voices` Download the list of new voices automatically every time the add-on starts. You must also reload the Wyoming integration for Piper in Home Assistant to see new voices. -### Option: `streaming` - -Enable support for streaming audio. This breaks apart text at sentence boundaries and streams the audio as its being produced. Requires at least HA 2025.7. - ### Option: `debug_logging` Print DEBUG level messages to the add-on's log. diff --git a/piper/Dockerfile b/piper/Dockerfile index 8969f0b8c32..6d9ffa187b2 100644 --- a/piper/Dockerfile +++ b/piper/Dockerfile @@ -8,7 +8,6 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] WORKDIR /usr/src ARG BUILD_ARCH ARG WYOMING_PIPER_VERSION -ARG BINARY_PIPER_VERSION ENV PIP_BREAK_SYSTEM_PACKAGES=1 RUN \ apt-get update \ @@ -21,14 +20,10 @@ RUN \ setuptools \ wheel \ && pip3 install --no-cache-dir \ + --extra-index-url https://www.piwheels.org/simple \ + "wyoming[zeroconf]>=1.8,<2" \ "wyoming-piper @ https://github.com/rhasspy/wyoming-piper/archive/refs/tags/v${WYOMING_PIPER_VERSION}.tar.gz" \ \ - && ARCH="${BUILD_ARCH}" \ - && if [[ "${BUILD_ARCH}" = "aarch64" ]]; then ARCH="arm64"; fi \ - && curl -L -s \ - "https://github.com/rhasspy/piper/releases/download/v${BINARY_PIPER_VERSION}/piper_${ARCH}.tar.gz" \ - | tar -zxvf - -C /usr/share \ - \ && rm -rf /var/lib/apt/lists/* WORKDIR / diff --git a/piper/build.yaml b/piper/build.yaml index af190404afd..93f22c4020b 100644 --- a/piper/build.yaml +++ b/piper/build.yaml @@ -3,5 +3,4 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm args: - WYOMING_PIPER_VERSION: 1.6.3 - BINARY_PIPER_VERSION: 1.2.0 + WYOMING_PIPER_VERSION: 2.1.1 diff --git a/piper/config.yaml b/piper/config.yaml index 7ea2d342ee9..97a65ea45cf 100644 --- a/piper/config.yaml +++ b/piper/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.6.4 +version: 2.1.1 slug: piper name: Piper description: Text-to-speech with Piper @@ -20,10 +20,8 @@ options: length_scale: 1.0 noise_scale: 0.667 noise_w: 0.333 - max_piper_procs: 1 debug_logging: false update_voices: true - streaming: true schema: voice: | list(ar_JO-kareem-low|ar_JO-kareem-medium|ca_ES-upc_ona-medium|ca_ES-upc_ona-x_low|ca_ES-upc_pau-x_low|ca-upc_ona-x-low|ca-upc_pau-x-low|cs_CZ-jirka-low|cs_CZ-jirka-medium|cy_GB-bu_tts-medium|cy_GB-gwryw_gogleddol-medium|da_DK-talesyntese-medium|da-nst_talesyntese-medium|de_DE-eva_k-x_low|de_DE-karlsson-low|de_DE-kerstin-low|de_DE-mls-medium|de_DE-pavoque-low|de_DE-ramona-low|de_DE-thorsten_emotional-medium|de_DE-thorsten-high|de_DE-thorsten-low|de_DE-thorsten-medium|de-eva_k-x-low|de-karlsson-low|de-kerstin-low|de-pavoque-low|de-ramona-low|de-thorsten-low|el-gr-rapunzelina-low|el_GR-rapunzelina-low|en-gb-alan-low|en_GB-alan-low|en_GB-alan-medium|en_GB-alba-medium|en_GB-aru-medium|en_GB-cori-high|en_GB-cori-medium|en_GB-jenny_dioco-medium|en_GB-northern_english_male-medium|en_GB-semaine-medium|en-gb-southern_english_female-low|en_GB-southern_english_female-low|en_GB-vctk-medium|en-us-amy-low|en_US-amy-low|en_US-amy-medium|en_US-arctic-medium|en_US-bryce-medium|en-us-danny-low|en_US-danny-low|en_US-hfc_female-medium|en_US-hfc_male-medium|en_US-joe-medium|en_US-john-medium|en-us-kathleen-low|en_US-kathleen-low|en_US-kristin-medium|en_US-kusal-medium|en_US-l2arctic-medium|en_US-lessac-high|en-us-lessac-low|en_US-lessac-low|en-us-lessac-medium|en_US-lessac-medium|en-us-libritts-high|en_US-libritts-high|en_US-libritts_r-medium|en_US-ljspeech-high|en_US-ljspeech-medium|en_US-norman-medium|en_US-reza_ibrahim-medium|en-us-ryan-high|en_US-ryan-high|en-us-ryan-low|en_US-ryan-low|en-us-ryan-medium|en_US-ryan-medium|en_US-sam-medium|es-carlfm-x-low|es_AR-daniela-high|es_ES-carlfm-x_low|es_ES-davefx-medium|es_ES-mls_10246-low|es_ES-mls_9972-low|es_ES-sharvard-medium|es-mls_10246-low|es-mls_9972-low|es_MX-ald-medium|es_MX-claude-high|fa_IR-amir-medium|fa_IR-ganji_adabi-medium|fa_IR-ganji-medium|fa_IR-gyro-medium|fa_IR-reza_ibrahim-medium|fi_FI-harri-low|fi_FI-harri-medium|fi-harri-low|fr_FR-gilles-low|fr_FR-mls_1840-low|fr_FR-mls-medium|fr_FR-siwis-low|fr_FR-siwis-medium|fr_FR-tom-medium|fr_FR-upmc-medium|fr-gilles-low|fr-mls_1840-low|fr-siwis-low|fr-siwis-medium|hi_IN-pratham-medium|hi_IN-priyamvada-medium|hu_HU-anna-medium|hu_HU-berta-medium|hu_HU-imre-medium|is-bui-medium|is_IS-bui-medium|is_IS-salka-medium|is_IS-steinn-medium|is_IS-ugla-medium|is-salka-medium|is-steinn-medium|is-ugla-medium|it_IT-paola-medium|it_IT-riccardo-x_low|it-riccardo_fasol-x-low|ka_GE-natia-medium|kk-iseke-x-low|kk-issai-high|kk_KZ-iseke-x_low|kk_KZ-issai-high|kk_KZ-raya-x_low|kk-raya-x-low|lb_LU-marylux-medium|lv_LV-aivars-medium|ml_IN-arjun-medium|ml_IN-meera-medium|ne-google-medium|ne-google-x-low|ne_NP-chitwan-medium|ne_NP-google-medium|ne_NP-google-x_low|nl_BE-nathalie-medium|nl_BE-nathalie-x_low|nl_BE-rdh-medium|nl_BE-rdh-x_low|nl-mls_5809-low|nl-mls_7432-low|nl-nathalie-x-low|nl_NL-mls_5809-low|nl_NL-mls_7432-low|nl_NL-mls-medium|nl_NL-pim-medium|nl_NL-ronnie-medium|nl-rdh-medium|nl-rdh-x-low|no_NO-talesyntese-medium|no-talesyntese-medium|pl-mls_6892-low|pl_PL-darkman-medium|pl_PL-gosia-medium|pl_PL-mc_speech-medium|pl_PL-mls_6892-low|pt_BR-cadu-medium|pt-br-edresson-low|pt_BR-edresson-low|pt_BR-faber-medium|pt_BR-jeff-medium|pt_PT-tugão-medium|ro_RO-mihai-medium|ru-irinia-medium|ru_RU-denis-medium|ru_RU-dmitri-medium|ru_RU-irina-medium|ru_RU-ruslan-medium|sk_SK-lili-medium|sl_SI-artur-medium|sr_RS-serbski_institut-medium|sv_SE-lisa-medium|sv_SE-nst-medium|sw_CD-lanfrica-medium|tr_TR-dfki-medium|tr_TR-fahrettin-medium|tr_TR-fettah-medium|uk-lada-x-low|uk_UA-lada-x_low|uk_UA-ukrainian_tts-medium|vi-25hours-single-low|vi-vivos-x-low|vi_VN-25hours_single-low|vi_VN-vais1000-medium|vi_VN-vivos-x_low|zh_CN-huayan-medium|zh-cn-huayan-x-low|zh_CN-huayan-x_low) @@ -31,10 +29,8 @@ schema: length_scale: float noise_scale: float noise_w: float - max_piper_procs: int debug_logging: bool update_voices: bool - streaming: bool ports: "10200/tcp": null homeassistant: 2023.8.0.dev20230718 diff --git a/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run b/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run index 67f4e78af8d..5e6b7b277cd 100755 --- a/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run +++ b/piper/rootfs/etc/s6-overlay/s6-rc.d/piper/run @@ -9,24 +9,28 @@ if bashio::config.true 'update_voices'; then flags+=('--update-voices') fi -if bashio::config.true 'streaming'; then - flags+=('--streaming') -fi - if bashio::config.true 'debug_logging'; then flags+=('--debug') fi +# Delete old options +options=$(bashio::addon.options) +for old_key in 'max_piper_procs' 'streaming'; do + if bashio::jq.exists "${options}" ".${old_key}"; then + bashio::log.info "Removing ${old_key}" + bashio::addon.option "${old_key}" + fi +done + # shellcheck disable=SC2068 exec python3 -m wyoming_piper \ - --piper '/usr/share/piper/piper' \ --uri 'tcp://0.0.0.0:10200' \ + --zeroconf \ --length-scale "$(bashio::config 'length_scale')" \ --noise-scale "$(bashio::config 'noise_scale')" \ --noise-w "$(bashio::config 'noise_w')" \ --speaker "$(bashio::config 'speaker')" \ --voice "$(bashio::config 'voice')" \ - --max-piper-procs "$(bashio::config 'max_piper_procs')" \ --data-dir /data \ --data-dir /share/piper \ --download-dir /data ${flags[@]} diff --git a/piper/translations/en.yaml b/piper/translations/en.yaml index 9873888c3d3..0cb90d1e21e 100644 --- a/piper/translations/en.yaml +++ b/piper/translations/en.yaml @@ -27,24 +27,12 @@ configuration: Controls the variability of speaking cadence (phoneme widths). The effect highly depends on the voice itself, but in general a value of 0 removes variability and values above 1 produce extreme stutters and pauses. - max_piper_procs: - name: Maximum Piper processes - description: >- - Number of Piper processes to run simultaneously (default is 1). Increase - if you need to quickly switch between multiple voices, but beware that - this will increase RAM usage by the add-on. update_voices: name: Update voices description: >- Download the list of new voices automatically every time the add-on starts. You must also reload the Wyoming integration for Piper in Home Assistant to see new voices. - streaming: - name: Streaming - description: >- - Enable support for streaming audio. This breaks apart text at sentence - boundaries and streams the audio as its being produced. Requires at least - HA 2025.7. debug_logging: name: Debug logging description: >- From 4a9e18632bdfd924b89c56c08397614be15e6b68 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Tue, 11 Nov 2025 02:29:24 -0600 Subject: [PATCH 266/346] Bump to wyoming-faster-whisper 3.0.1 (#4216) * Bump to wyoming-faster-whisper 3.0.1 * Linting * Custom model type overrides stt library --- whisper/CHANGELOG.md | 7 +++++++ whisper/DOCS.md | 11 +++++++++++ whisper/Dockerfile | 3 ++- whisper/README.md | 10 ++++++---- whisper/build.yaml | 2 +- whisper/config.yaml | 5 ++++- whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run | 14 ++++++++++---- whisper/translations/en.yaml | 11 +++++++++++ 8 files changed, 52 insertions(+), 11 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index bd346b2ca3f..19a9c56628b 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 3.0.1 + +- Add support for `sherpa-onnx` and Nvidia's parakeet model +- Prefer parakeet model in `auto` +- Add support for GigaAM for Russian +- Add `stt_library` option to choose backend + ## 2.6.0 - Upgrade to Debian bookworm diff --git a/whisper/DOCS.md b/whisper/DOCS.md index 97dbf4ad719..152d611ba61 100644 --- a/whisper/DOCS.md +++ b/whisper/DOCS.md @@ -96,6 +96,17 @@ Increasing the beam size will increase accuracy at the cost of performance. Description of audio that can help Whisper transcribe unusual words better. See [this discussion](https://github.com/openai/whisper/discussions/963) for an example. +### Option: `stt_library` + +Speech-to-text backend library to use: + +- `auto` - select the best backend based on language/hardware +- `faster-whisper` - force faster whisper backend +- `sherpa` - force sherpa onnx backend (parakeet model only) +- `transformers` - force HuggingFace transformers backend + +**Note**: When `custom_model` is set, then `custom_model_type` will override `stt_library`. + ## Backups Whisper model files can be large, so they are automatically excluded from backups and re-downloaded on restore for remote models. diff --git a/whisper/Dockerfile b/whisper/Dockerfile index 52cd33fb947..7baabb7fca8 100644 --- a/whisper/Dockerfile +++ b/whisper/Dockerfile @@ -19,7 +19,8 @@ RUN \ setuptools \ wheel \ && pip3 install --no-cache-dir \ - "wyoming-faster-whisper @ https://github.com/rhasspy/wyoming-faster-whisper/archive/refs/tags/v${WYOMING_WHISPER_VERSION}.tar.gz" \ + "wyoming[zeroconf]==1.8.0" \ + "wyoming-faster-whisper[sherpa] @ https://github.com/rhasspy/wyoming-faster-whisper/archive/refs/tags/v${WYOMING_WHISPER_VERSION}.tar.gz" \ 'transformers==4.52.4' \ \ && pip3 install --no-cache-dir \ diff --git a/whisper/README.md b/whisper/README.md index 75d92c987e9..cc6daa3e06c 100644 --- a/whisper/README.md +++ b/whisper/README.md @@ -2,12 +2,14 @@ ![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] -Home Assistant add-on that uses [faster-whisper](https://github.com/guillaumekln/faster-whisper/) for speech-to-text. +Home Assistant add-on that uses multiple speech-to-text backends: + +- [faster-whisper](https://github.com/guillaumekln/faster-whisper/) +- [HuggingFace transformers](https://huggingface.co/docs/transformers/index) +- [sherpa-onnx](https://k2-fsa.github.io/sherpa/onnx/index.html) ([parakeet](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3) only) +- [onnx-asr](https://github.com/istupakov/onnx-asr) ([GigaAM](https://github.com/salute-developers/GigaAM) only) Part of the [Year of Voice](https://www.home-assistant.io/blog/2022/12/20/year-of-voice/). [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg [amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-no-red.svg -[armv7-shield]: https://img.shields.io/badge/armv7-no-red.svg -[i386-shield]: https://img.shields.io/badge/i386-no-red.svg diff --git a/whisper/build.yaml b/whisper/build.yaml index 82e9c2e0c2b..50db89d1aba 100644 --- a/whisper/build.yaml +++ b/whisper/build.yaml @@ -3,4 +3,4 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm args: - WYOMING_WHISPER_VERSION: 2.5.0 + WYOMING_WHISPER_VERSION: 3.0.1 diff --git a/whisper/config.yaml b/whisper/config.yaml index c2bec930eb7..2656f0b88db 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.6.0 +version: 3.0.1 slug: whisper name: Whisper description: Speech-to-text with Whisper @@ -19,10 +19,13 @@ options: language: en beam_size: 0 custom_model_type: "faster-whisper" + stt_library: "auto" debug_logging: false schema: model: | list(auto|tiny-int8|tiny|tiny.en|base-int8|base|base.en|small-int8|distil-small.en|small|small.en|distil-medium.en|medium-int8|medium|medium.en|large|large-v1|distil-large-v2|large-v2|distil-large-v3|large-v3|turbo|custom) + stt_library: | + list(auto|faster-whisper|sherpa|transformers) custom_model: str? custom_model_type: | list(faster-whisper|transformers) diff --git a/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run b/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run index 2a4e2c9433a..5df6c174090 100755 --- a/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run +++ b/whisper/rootfs/etc/s6-overlay/s6-rc.d/whisper/run @@ -11,15 +11,19 @@ if [ "$(uname -m)" == "x86_64" ] && ! grep -qw 'avx' /proc/cpuinfo; then fi model="$(bashio::config 'model')" +stt_library="$(bashio::config 'stt_library')" + if [ "${model}" = 'custom' ]; then # Override with custom model model="$(bashio::config 'custom_model')" if [ -z "${model}" ]; then - bashio::exit.nok "Custom model is not set" + bashio::exit.nok "Custom model is not set" fi - custom_model_type="$(bashio::config 'custom_model_type')" - if [ "${custom_model_type}" = 'transformers' ]; then - flags+=('--use-transformers') + stt_library="$(bashio::config 'custom_model_type')" +elif [ "${model}" != 'auto' ]; then + if [ "${stt_library}" = 'auto' ]; then + # Default to faster whisper if model is selected + stt_library='faster-whisper' fi fi @@ -30,7 +34,9 @@ fi # shellcheck disable=SC2068 exec python3 -m wyoming_faster_whisper \ --uri 'tcp://0.0.0.0:10300' \ + --zeroconf \ --model "${model}" \ + --stt-library "${stt_library}" \ --beam-size "$(bashio::config 'beam_size')" \ --language "$(bashio::config 'language')" \ --initial-prompt "$(bashio::config 'initial_prompt')" \ diff --git a/whisper/translations/en.yaml b/whisper/translations/en.yaml index 1f9eb560590..6377fb8eb9e 100644 --- a/whisper/translations/en.yaml +++ b/whisper/translations/en.yaml @@ -38,11 +38,22 @@ configuration: The default is 'faster-whisper' which requires a CTranslate2-converted Whisper model. If set to 'transformers', a HuggingFace transformers-based Whisper model may be used. + + Overrides `stt_library` when `custom_model` is set. initial_prompt: name: Initial prompt description: >- Description of audio that can help Whisper transcribe unusual words better. + stt_library: + name: Speech-to-text library + description: >- + Speech-to-text backend library to use. + + The default `auto` will select the best backend/model based on + language/hardware. + + Overridden by `custom_model_type` when `custom_model` is set. debug_logging: name: Debug logging description: >- From 19ab6b21e81193ec8f1cd7a19134b734fedea5af Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 12 Nov 2025 09:14:06 +0100 Subject: [PATCH 267/346] openthread_border_router: Improve RCP error recovery (#4220) Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- ...source-match-tables-before-restoring.patch | 32 +++++++++++++++++++ openthread_border_router/CHANGELOG.md | 3 ++ openthread_border_router/Dockerfile | 2 ++ openthread_border_router/config.yaml | 2 +- 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 openthread_border_router/0002-spinel-Clear-source-match-tables-before-restoring.patch diff --git a/openthread_border_router/0002-spinel-Clear-source-match-tables-before-restoring.patch b/openthread_border_router/0002-spinel-Clear-source-match-tables-before-restoring.patch new file mode 100644 index 00000000000..f23ae4f73bb --- /dev/null +++ b/openthread_border_router/0002-spinel-Clear-source-match-tables-before-restoring.patch @@ -0,0 +1,32 @@ +From 668b240bddca3e4813e6bb07b438c18f170dac5d Mon Sep 17 00:00:00 2001 +Message-ID: <668b240bddca3e4813e6bb07b438c18f170dac5d.1762891338.git.stefan@agner.ch> +In-Reply-To: <5d539271f0a5eed0319684d2e8d293d5e37b4aaf.1762891338.git.stefan@agner.ch> +References: <5d539271f0a5eed0319684d2e8d293d5e37b4aaf.1762891338.git.stefan@agner.ch> +From: Stefan Agner +Date: Fri, 7 Nov 2025 18:32:54 +0100 +Subject: [PATCH] [spinel] Clear source match tables before restoring + +--- + src/lib/spinel/radio_spinel.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/lib/spinel/radio_spinel.cpp b/src/lib/spinel/radio_spinel.cpp +index f467c1f28..3e90582aa 100644 +--- a/src/lib/spinel/radio_spinel.cpp ++++ b/src/lib/spinel/radio_spinel.cpp +@@ -2207,6 +2207,12 @@ void RadioSpinel::RestoreProperties(void) + otLinkGetFrameCounter(mInstance) + kFrameCounterGuard)); + } + ++ // Clear source match tables before restoring to ensure there's room for entries. ++ // This is especially important when RCP is not fully reset (e.g., in multipan mode) ++ // where stale entries may remain and fill up the limited hardware table. ++ IgnoreError(ClearSrcMatchShortEntries()); ++ IgnoreError(ClearSrcMatchExtEntries()); ++ + for (int i = 0; i < mSrcMatchShortEntryCount; ++i) + { + SuccessOrDie( +-- +2.51.2 + diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index d2281ea8846..30447a87143 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 2.15.1 +- Make radio spinel recovery more reliable by clearing source match tables before restoring + ## 2.15.0 - Automatically migrate the active dataset to a new adapter when changing the addon serial port path. diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index a758d34377b..9e39d3498d1 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -18,6 +18,7 @@ ENV DHCPV6_PD_REF 0 ENV DOCKER 1 COPY 0001-channel-monitor-disable-by-default.patch /usr/src +COPY 0002-spinel-Clear-source-match-tables-before-restoring.patch /usr/src COPY openthread-core-ha-config-posix.h /usr/src # Required and installed (script/bootstrap) can be removed after build ENV OTBR_BUILD_DEPS build-essential ninja-build cmake wget ca-certificates \ @@ -56,6 +57,7 @@ RUN \ && ( \ cd third_party/openthread/repo \ && patch -p1 < /usr/src/0001-channel-monitor-disable-by-default.patch \ + && patch -p1 < /usr/src/0002-spinel-Clear-source-match-tables-before-restoring.patch \ && cp /usr/src/openthread-core-ha-config-posix.h . \ ) \ # Mimic rt_tables_install \ diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index fe36bbbf7eb..bd9a8fe1cbf 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.15.0 +version: 2.15.1 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on From ca77f311fe8ef4b99449efafcc88a2b437da3d21 Mon Sep 17 00:00:00 2001 From: Matthias Saou Date: Wed, 12 Nov 2025 11:25:51 +0100 Subject: [PATCH 268/346] Re-introduce nginx_proxy listen_ipv6 option (#4218) * Re-introduce nginx_proxy listen_ipv6 option This should fix #4184. * Fix nginx_proxy listen to keep IPv4 when IPv6 enabled * Fix nginx_proxy listen to keep IPv4 when IPv6 enabled Why did nginx -t say it was working? It was not. * Revert all listen_ipv6 to enable unconditionally --- nginx_proxy/CHANGELOG.md | 4 ++++ nginx_proxy/config.yaml | 2 +- nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/nginx_proxy/CHANGELOG.md b/nginx_proxy/CHANGELOG.md index da5157c6d5b..9c64b21d5b5 100644 --- a/nginx_proxy/CHANGELOG.md +++ b/nginx_proxy/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.14.0 + +- Listen over IPv6, since true IPv6 support for add-ons is now available + ## 3.13.0 - Update Alpine Linux to 3.22 (nginx 1.28.x) diff --git a/nginx_proxy/config.yaml b/nginx_proxy/config.yaml index 4cc01f6582f..617256a4ec3 100644 --- a/nginx_proxy/config.yaml +++ b/nginx_proxy/config.yaml @@ -1,5 +1,5 @@ --- -version: 3.13.0 +version: 3.14.0 hassio_api: true slug: nginx_proxy name: NGINX Home Assistant SSL proxy diff --git a/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl index e993652eb4a..271ec4e830a 100644 --- a/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl +++ b/nginx_proxy/rootfs/etc/nginx/nginx.conf.gtpl @@ -37,6 +37,8 @@ http { server_name _; listen 80 default_server; listen 443 ssl default_server; + listen [::]:80 default_server; + listen [::]:443 ssl default_server; http2 on; ssl_reject_handshake on; return 444; @@ -47,6 +49,7 @@ http { # These shouldn't need to be changed listen 80; + listen [::]:80; return 301 https://$host$request_uri; } @@ -64,9 +67,11 @@ http { {{- if not .options.real_ip_from }} listen 443 ssl; + listen [::]:443 ssl; http2 on; {{- else }} listen 443 ssl proxy_protocol; + listen [::]:443 ssl proxy_protocol; http2 on; {{- range .options.real_ip_from }} set_real_ip_from {{.}}; From 86e40f6b5d50ac0a2643d00b7dc8bc18879ca81e Mon Sep 17 00:00:00 2001 From: mattreim <80219712+mattreim@users.noreply.github.com> Date: Wed, 12 Nov 2025 15:29:59 +0100 Subject: [PATCH 269/346] deCONZ: Add more debug options [1] (#4211) * deCONZ: Add more debug options * Spaces removed * Remove unused dbg_otau * Add int min/max schema * Update run --- deconz/CHANGELOG.md | 4 +++ deconz/DOCS.md | 13 ++++++--- deconz/config.yaml | 16 ++++++----- deconz/rootfs/etc/services.d/deconz/discovery | 2 +- deconz/rootfs/etc/services.d/deconz/run | 27 ++++++++++++++++--- deconz/translations/en.yaml | 22 ++++++++++----- 6 files changed, 62 insertions(+), 22 deletions(-) diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index d57be43f734..bde581ca6c0 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.5.1 + +- Add more debug options + ## 8.5.0 - Fix discovery script diff --git a/deconz/DOCS.md b/deconz/DOCS.md index 374729f2446..0502be52c99 100644 --- a/deconz/DOCS.md +++ b/deconz/DOCS.md @@ -124,17 +124,22 @@ the add-on configuration: - `dbg_info` - `dbg_aps` -- `dbg_otau` - `dbg_zcl` - `dbg_zdp` +- `dbg_ddf` +- `dbg_dev` +- `dbg_ota` +- `dbg_error` +- `dbg_http` -These options require a number that represents the log level. +These options require a number that represents the log level. The default value +of `dbg_info` is 1 and all other debug options are 0. -Example add-on config with `dbg_aps` enabled on log level 1: +Example add-on config with `dbg_aps` enabled on log level L2: ```yaml device: /dev/ttyUSB0 -dbg_aps: 1 +dbg_aps: 2 ``` diff --git a/deconz/config.yaml b/deconz/config.yaml index 0c8150c045b..8ee27137f19 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.5.0 +version: 8.5.1 slug: deconz name: deCONZ description: >- @@ -34,11 +34,15 @@ privileged: - SYS_RAWIO schema: device: device(subsystem=tty) - dbg_aps: int? - dbg_info: int? - dbg_otau: int? - dbg_zcl: int? - dbg_zdp: int? + dbg_info: int(0,2)? + dbg_aps: int(0,2)? + dbg_zcl: int(0,1)? + dbg_zdp: int(0,1)? + dbg_ddf: int(0,1)? + dbg_dev: int(0,1)? + dbg_ota: int(0,1)? + dbg_error: int(0,2)? + dbg_http: int(0,1)? startup: services udev: true usb: true diff --git a/deconz/rootfs/etc/services.d/deconz/discovery b/deconz/rootfs/etc/services.d/deconz/discovery index 757b1380ff6..9af1401bd92 100755 --- a/deconz/rootfs/etc/services.d/deconz/discovery +++ b/deconz/rootfs/etc/services.d/deconz/discovery @@ -9,7 +9,7 @@ declare config declare retries declare serial -bashio::log.info "Starting discovery script ..." +bashio::log.info "Starting discovery script..." # Wait for deCONZ to start before continuing bashio::net.wait_for 40850 diff --git a/deconz/rootfs/etc/services.d/deconz/run b/deconz/rootfs/etc/services.d/deconz/run index 010299d028b..3138df2efbb 100755 --- a/deconz/rootfs/etc/services.d/deconz/run +++ b/deconz/rootfs/etc/services.d/deconz/run @@ -35,7 +35,7 @@ fi export XDG_RUNTIME_DIR="${TMP_FOLDER}" export DISPLAY=":0" -bashio::log.info "Starting VNC server (local/${LOCAL_ONLY})..." +bashio::log.info "Starting VNC server (local - ${LOCAL_ONLY})..." tigervncserver \ -name "Home Assistant - deCONZ" \ -geometry 1920x1080 \ @@ -50,17 +50,32 @@ tigervncserver \ bashio::log.info "deCONZ waiting for VNC to start" bashio::net.wait_for 5900 +# Delete unused key +options=$(bashio::addon.options) +if bashio::jq.exists "${options}" ".dbg_otau"; then + bashio::log.info "Removing dbg_otau" + bashio::addon.option "dbg_otau" +fi + # Load debug values bashio::config.has_value 'dbg_info' \ && DBG_INFO="$(bashio::config 'dbg_info')" || DBG_INFO=1 bashio::config.has_value 'dbg_aps' \ && DBG_APS="$(bashio::config 'dbg_aps')" || DBG_APS=0 -bashio::config.has_value 'dbg_otau' \ - && DBG_OTAU="$(bashio::config 'dbg_otau')" || DBG_OTAU=0 bashio::config.has_value 'dbg_zcl' \ && DBG_ZCL="$(bashio::config 'dbg_zcl')" || DBG_ZCL=0 bashio::config.has_value 'dbg_zdp' \ && DBG_ZDP="$(bashio::config 'dbg_zdp')" || DBG_ZDP=0 +bashio::config.has_value 'dbg_ddf' \ + && DBG_DDF="$(bashio::config 'dbg_ddf')" || DBG_DDF=0 +bashio::config.has_value 'dbg_dev' \ + && DBG_DEV="$(bashio::config 'dbg_dev')" || DBG_DEV=0 +bashio::config.has_value 'dbg_ota' \ + && DBG_OTA="$(bashio::config 'dbg_ota')" || DBG_OTA=0 +bashio::config.has_value 'dbg_error' \ + && DBG_ERROR="$(bashio::config 'dbg_error')" || DBG_ERROR=0 +bashio::config.has_value 'dbg_http' \ + && DBG_HTTP="$(bashio::config 'dbg_http')" || DBG_HTTP=0 # Send out discovery information to Home Assistant ./discovery & @@ -72,9 +87,13 @@ exec deCONZ \ --auto-connect=1 \ --dbg-info="${DBG_INFO}" \ --dbg-aps="${DBG_APS}" \ - --dbg-otau="${DBG_OTAU}" \ --dbg-zcl="${DBG_ZCL}" \ --dbg-zdp="${DBG_ZDP}" \ + --dbg-ddf="${DBG_DDF}" \ + --dbg-dev="${DBG_DEV}" \ + --dbg-ota="${DBG_OTA}" \ + --dbg-error="${DBG_ERROR}" \ + --dbg-http="${DBG_HTTP}" \ --upnp=0 \ --http-port=40850 \ --ws-port=8081 \ diff --git a/deconz/translations/en.yaml b/deconz/translations/en.yaml index 535c8008518..0a3748c0a06 100644 --- a/deconz/translations/en.yaml +++ b/deconz/translations/en.yaml @@ -3,16 +3,24 @@ configuration: device: name: Device description: The device address of your ConBee/RaspBee. - dbg_aps: - name: Debug aps dbg_info: - name: Debug info - dbg_otau: - name: Debug otau + name: Debug Info + dbg_aps: + name: Debug APS dbg_zcl: - name: Debug zcl + name: Debug ZCL dbg_zdp: - name: Debug zdp + name: Debug ZDP + dbg_ddf: + name: Debug DDF + dbg_dev: + name: Debug DEV + dbg_ota: + name: Debug OTA + dbg_error: + name: Debug Error + dbg_http: + name: Debug HTTP network: 40850/tcp: >- deCONZ API backend (Access for Phoscon and REST API outside the add-on) From a16da1f859c6f1ec7f61a1224d2a6d4aebfc02d0 Mon Sep 17 00:00:00 2001 From: mattreim <80219712+mattreim@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:16:40 +0100 Subject: [PATCH 270/346] deCONZ: Update OTAU scripts [2] (#4219) * deCONZ: Update OTAU scripts * Fix for line too long * Fix trailing spaces * Fix ShellCheck * Fix ShellCheck2 * Fix ShellCheck3 * Switched to grouped * Switch to S6_STAGE2_HOOK * Log data reduced and blank lines deleted * Add OSRAM * Remove `-rf` and consistency OSRAM * Add files * Revert to `rm -rf ` * Reduze Bosch log --- deconz/CHANGELOG.md | 5 ++ deconz/Dockerfile | 2 + deconz/config.yaml | 10 ++- .../etc/s6-overlay/scripts/enable-check.sh | 19 ++++++ deconz/rootfs/etc/services.d/otau-bosch/run | 62 +++++++++++++++++++ deconz/rootfs/etc/services.d/otau-ikea/run | 23 +++---- .../rootfs/etc/services.d/otau-ledvance/run | 36 +++++------ deconz/translations/en.yaml | 12 ++++ 8 files changed, 138 insertions(+), 31 deletions(-) create mode 100755 deconz/rootfs/etc/s6-overlay/scripts/enable-check.sh create mode 100755 deconz/rootfs/etc/services.d/otau-bosch/run diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index bde581ca6c0..a62d223b58d 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 8.5.2 + +- Add configurable OTA update switches for Bosch, IKEA and OSRAM/LEDVANCE (default is off) +- Add Bosch Smart Home OTA update script (Official repo) + ## 8.5.1 - Add more debug options diff --git a/deconz/Dockerfile b/deconz/Dockerfile index 3d8401e9018..6dd0713e783 100644 --- a/deconz/Dockerfile +++ b/deconz/Dockerfile @@ -56,3 +56,5 @@ RUN \ && sed -i 's/\/root/\/data/' /etc/passwd COPY rootfs / + +ENV S6_STAGE2_HOOK=/etc/s6-overlay/scripts/enable-check.sh diff --git a/deconz/config.yaml b/deconz/config.yaml index 8ee27137f19..ff5c0cb4599 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.5.1 +version: 8.5.2 slug: deconz name: deCONZ description: >- @@ -25,6 +25,10 @@ init: false kernel_modules: true options: device: null + ota_update: + bosch: false + ikea: false + ledvance: false panel_icon: mdi:zigbee ports: 40850/tcp: null @@ -34,6 +38,10 @@ privileged: - SYS_RAWIO schema: device: device(subsystem=tty) + ota_update: + bosch: bool + ikea: bool + ledvance: bool dbg_info: int(0,2)? dbg_aps: int(0,2)? dbg_zcl: int(0,1)? diff --git a/deconz/rootfs/etc/s6-overlay/scripts/enable-check.sh b/deconz/rootfs/etc/s6-overlay/scripts/enable-check.sh new file mode 100755 index 00000000000..4ad367f8494 --- /dev/null +++ b/deconz/rootfs/etc/s6-overlay/scripts/enable-check.sh @@ -0,0 +1,19 @@ +#!/usr/bin/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Custom S6 stage2 hook — runs before services.d start +# ============================================================================== +if ! bashio::config.true 'ota_update.bosch'; then + bashio::log.info "Bosch OTA update is disabled." + rm -rf /etc/services.d/otau-bosch +fi + +if ! bashio::config.true 'ota_update.ikea'; then + bashio::log.info "IKEA OTA update is disabled." + rm -rf /etc/services.d/otau-ikea +fi + +if ! bashio::config.true 'ota_update.ledvance'; then + bashio::log.info "OSRAM/LEDVANCE OTA update is disabled." + rm -rf /etc/services.d/otau-ledvance +fi diff --git a/deconz/rootfs/etc/services.d/otau-bosch/run b/deconz/rootfs/etc/services.d/otau-bosch/run new file mode 100755 index 00000000000..e2f9894c145 --- /dev/null +++ b/deconz/rootfs/etc/services.d/otau-bosch/run @@ -0,0 +1,62 @@ +#!/usr/bin/with-contenv bashio +# vim: ft=bash +# shellcheck shell=bash +# ============================================================================== +# Download available firmware update for Bosch Smart Home (*.fw) +# ============================================================================== +readonly REPO="BoschSmartHome/bosch-smart-home-files" +readonly API_BASE="https://api.github.com/repos/${REPO}/contents/firmware-otau-files" + +# Ensure OTAU folder exists +mkdir -p "/data/otau" + +bashio::log.info "Running the Bosch OTA updater..." + +# Fetch GitHub firmware data +if ! curl -fsL "${API_BASE}" >/dev/null; then + bashio::log.warning "⚠️ Can't fetch data from GitHub — retry in 5 hours." + exec sleep 18000 +fi + +fetch_fw_files() { + local api_url + api_url="$1" + + local data + data=$(curl -s "$api_url") + + # Some GitHub responses return a single object instead of an array + [[ $(echo "$data" | jq -r 'type') == "object" ]] && data="[$data]" + + echo "$data" | jq -r '.[] | @base64' | while read -r entry; do + _jq() { echo "$entry" | base64 --decode | jq -r "$1"; } + + local type + type=$(_jq '.type') + local name + name=$(_jq '.name') + local path + path=$(_jq '.path') + local download_url + download_url=$(_jq '.download_url') + + if [[ "$type" == "dir" ]]; then + # Recursive call for subfolders + local encoded_path + encoded_path=$(python3 -c "import urllib.parse; print(urllib.parse.quote('''${path}''', safe=''))") + fetch_fw_files "https://api.github.com/repos/${REPO}/contents/${encoded_path}?ref=main" + elif [[ "$name" == *.fw && -n "$download_url" ]]; then + local target + target="/data/otau/${name}" + + # Skip already downloaded files + [[ -f "${target}" ]] && continue + + # Download firmware + curl -s -L -o "${target}" "${download_url}" + fi + done +} +fetch_fw_files "${API_BASE}" + +exec sleep 259200 # Sleep for 3 days before next check diff --git a/deconz/rootfs/etc/services.d/otau-ikea/run b/deconz/rootfs/etc/services.d/otau-ikea/run index 169782b763a..4139c3ce648 100755 --- a/deconz/rootfs/etc/services.d/otau-ikea/run +++ b/deconz/rootfs/etc/services.d/otau-ikea/run @@ -6,30 +6,31 @@ # ============================================================================== readonly URL_IKEA="http://fw.ota.homesmart.ikea.net/feed/version_info.json" -# Ensure otau folder exists +# Ensure OTAU folder exists mkdir -p "/data/otau" bashio::log.info "Running the IKEA OTA updater..." +# Fetch IKEA firmware data if ! IKEA_DATA="$(curl -sL ${URL_IKEA})"; then - bashio::log.info "Can't fetch data from IKEA!" + bashio::log.warning "⚠️ Can't fetch data from IKEA — retry in 5 hours." exec sleep 18000 fi +# Process each firmware entry IKEA_DATA_SIZE="$(echo "${IKEA_DATA}" | jq --raw-output '. | length')" -for (( i=0; i < "${IKEA_DATA_SIZE}"; i++ )); do +for (( i=0; i < IKEA_DATA_SIZE; i++ )); do OTAU_URL=$(echo "${IKEA_DATA}" | jq --raw-output ".[$i].fw_binary_url // empty") + OTAU_FILE="/data/otau/${OTAU_URL##*/}" - if [ -z "${OTAU_URL}" ]; then - continue - fi + # Skip empty URLs + [[ -z "${OTAU_URL}" ]] && continue - OTAU_FILE="/data/otau/${OTAU_URL##*/}" - if [ -f "${OTAU_FILE}" ]; then - continue - fi + # Skip already downloaded files + [[ -f "${OTAU_FILE}" ]] && continue + # Download firmware curl -s -L -o "${OTAU_FILE}" "${OTAU_URL}" done -exec sleep 259200 +exec sleep 266400 # Sleep for 3 days 2 hours before next check diff --git a/deconz/rootfs/etc/services.d/otau-ledvance/run b/deconz/rootfs/etc/services.d/otau-ledvance/run index 58694b31f4f..cabbeaffa60 100755 --- a/deconz/rootfs/etc/services.d/otau-ledvance/run +++ b/deconz/rootfs/etc/services.d/otau-ledvance/run @@ -2,40 +2,38 @@ # vim: ft=bash # shellcheck shell=bash # ============================================================================== -# Download available firmware update for OSRAM LEDVANCE +# Download available firmware update for OSRAM/LEDVANCE # ============================================================================== readonly URL_OSRAM="https://api.update.ledvance.com/v1/zigbee/firmwares" -# Ensure otau folder exists +# Ensure OTAU folder exists mkdir -p "/data/otau" -bashio::log.info "Running the OSRAM LEDVANCE OTA updater..." +bashio::log.info "Running the OSRAM/LEDVANCE OTA updater..." -# fetch data +# Fetch OSRAM/LEDVANCE firmware data if ! OSRAM_DATA="$(curl -sL ${URL_OSRAM})"; then - bashio::log.info "Can't fetch data from OSRAM!" + bashio::log.warning "⚠️ Can't fetch data from OSRAM/LEDVANCE — retry in 5 hours." exec sleep 18000 fi OSRAM_DATA_SIZE="$(echo "${OSRAM_DATA}" | jq --raw-output '.firmwares | length')" -DL_DONE=0 -for (( i=0; i < "${OSRAM_DATA_SIZE}"; i++ )); do +for (( i=0; i < OSRAM_DATA_SIZE; i++ )); do OSRAM_COMPANY=$( echo "${OSRAM_DATA}" | jq --raw-output ".firmwares[$i].identity.company // empty" 2>/dev/null) OSRAM_PRODUCT=$( echo "${OSRAM_DATA}" | jq --raw-output ".firmwares[$i].identity.product // empty" 2>/dev/null) OTAU_FILENAME=$( echo "${OSRAM_DATA}" | jq --raw-output ".firmwares[$i].name // empty" 2>/dev/null) - OTAU_URL="$URL_OSRAM/download/${OSRAM_COMPANY}/${OSRAM_PRODUCT}/latest" - + OTAU_URL="$URL_OSRAM/download/${OSRAM_COMPANY}/${OSRAM_PRODUCT}/latest" OTAU_FILE="/data/otau/${OTAU_FILENAME}" - if [ -e "${OTAU_FILE}" ]; then - continue - fi + + # Skip empty file names + [[ -z "${OTAU_FILENAME}" ]] && continue + + # Skip already downloaded files + [[ -e "${OTAU_FILE}" ]] && continue + + # Download firmware curl -s -L -o "${OTAU_FILE}" "${OTAU_URL}" || true - ((DL_DONE+1)) - if [ "$((DL_DONE % 10))" == "0" ]; then - # LEDVANCE/OSRAM API RateLimits : The rate limit 10 calls per 60 seconds or quota 100 MB per month. - DL_DONE=0 - sleep 65 - fi + sleep 5 # OSRAM/LEDVANCE API rate limits: The limit is 30 requests per minute. done -exec sleep 259200 +exec sleep 273600 # Sleep for 3 days 4 hours before next check diff --git a/deconz/translations/en.yaml b/deconz/translations/en.yaml index 0a3748c0a06..988b348b99c 100644 --- a/deconz/translations/en.yaml +++ b/deconz/translations/en.yaml @@ -21,6 +21,18 @@ configuration: name: Debug Error dbg_http: name: Debug HTTP + ota_update: + name: Zigbee OTA updates + description: >- + Automatically downloads available Zigbee firmware updates when + enabled. + fields: + bosch: + name: Bosch + ikea: + name: IKEA + ledvance: + name: OSRAM/LEDVANCE network: 40850/tcp: >- deCONZ API backend (Access for Phoscon and REST API outside the add-on) From fd18876f6f33d29783d5cafb179760f256930e37 Mon Sep 17 00:00:00 2001 From: Salim B Date: Wed, 19 Nov 2025 09:19:54 +0100 Subject: [PATCH 271/346] docs: Update Piper repo URL (#4231) --- piper/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/piper/README.md b/piper/README.md index 8bd711a1c4e..3fb1a1619e5 100644 --- a/piper/README.md +++ b/piper/README.md @@ -2,7 +2,7 @@ ![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] -Home Assistant add-on that uses [piper](https://github.com/rhasspy/piper/) for text-to-speech. +Home Assistant add-on that uses [piper](https://github.com/OHF-Voice/piper1-gpl) for text-to-speech. Part of the [Year of Voice](https://www.home-assistant.io/blog/2022/12/20/year-of-voice/). From b10dd00691712e16714f5e5d0943c19fe5b37a56 Mon Sep 17 00:00:00 2001 From: SuperJohn007 <104853719+SuperJohn007@users.noreply.github.com> Date: Wed, 19 Nov 2025 03:20:07 -0500 Subject: [PATCH 272/346] Fix Linode API version formatting in documentation (#4232) Corrected the API version formatting in Linode instructions. Moved the period outside of the '4'. --- letsencrypt/DOCS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 464252081c7..0eed6678177 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -941,7 +941,7 @@ You can find further detailed information here:
    Linode -To use this addon with Linode DNS, first [create a new API/access key](https://www.linode.com/docs/platform/api/getting-started-with-the-linode-api#get-an-access-token), with read/write permissions to DNS; no other permissions are needed. Newly keys will likely use API version '4.' **Important**: single quotes are required around the `linode_version` number; failure to do this will cause a type error (as the addon expects a string, not an integer). +To use this addon with Linode DNS, first [create a new API/access key](https://www.linode.com/docs/platform/api/getting-started-with-the-linode-api#get-an-access-token), with read/write permissions to DNS; no other permissions are needed. Newly keys will likely use API version '4'. **Important**: single quotes are required around the `linode_version` number; failure to do this will cause a type error (as the addon expects a string, not an integer). ```yaml email: you@mailprovider.com From 67b7d19017a32627329fa5ad84447352744f6be5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 07:45:19 +0100 Subject: [PATCH 273/346] build(deps): bump actions/checkout from 5.0.0 to 6.0.0 (#4241) --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index e109fca361f..6d7e15aa48b 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6.0.0 - name: Get changed files id: changed_files @@ -74,7 +74,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6.0.0 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0d681b89f38..f81c617d8a7 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6.0.0 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6.0.0 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6.0.0 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From b9b856c91568bd5ae97f22e6f25326a57c08470c Mon Sep 17 00:00:00 2001 From: schrob <83939986+schdro@users.noreply.github.com> Date: Mon, 24 Nov 2025 10:00:46 +0100 Subject: [PATCH 274/346] nRF54L15 SDK firmware needs OT baud rate 1000000 (#4239) With nRF Connect SDK firmware (sdk-nrf/samples/openthread sample), default baudrate is 1000000. Also documented as recommendation in Nordic Semiconductor recommendations for coprocessor design. Other baud rates do not seem to work (OTBR response timeout). So add new option of 1Mbaud. --- openthread_border_router/CHANGELOG.md | 3 +++ openthread_border_router/config.yaml | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 30447a87143..23c7041bc2f 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 2.15.2 +- Add baudrate list option 1000000 (Nordic Semiconductor nRF Connect SDK firmware) + ## 2.15.1 - Make radio spinel recovery more reliable by clearing source match tables before restoring diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index bd9a8fe1cbf..eeeaa20ad73 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.15.1 +version: 2.15.2 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on @@ -39,7 +39,7 @@ ports_description: 8081/tcp: OpenThread REST API port schema: device: device(subsystem=tty) - baudrate: list(57600|115200|230400|460800|921600) + baudrate: list(57600|115200|230400|460800|921600|1000000) flow_control: bool network_device: str? otbr_log_level: list(debug|info|notice|warning|error|critical|alert|emergency) From 93b9a8e31283caa63fd72b66a4158dc91f221171 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Dec 2025 19:59:00 +0100 Subject: [PATCH 275/346] build(deps): bump home-assistant/builder from 2025.09.0 to 2025.11.0 (#4248) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 6d7e15aa48b..acf3d834cc1 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -107,7 +107,7 @@ jobs: - name: Build ${{ matrix.addon }} add-on if: steps.check.outputs.build_arch == 'true' - uses: home-assistant/builder@2025.09.0 + uses: home-assistant/builder@2025.11.0 with: args: | ${{ env.BUILD_ARGS }} \ From 60abe1c45779363882075f13c0bc3e95c44d9cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Tue, 2 Dec 2025 16:49:23 +0100 Subject: [PATCH 276/346] Drop build for deprecated archs, use latest native runners (#4251) In #4248 breaking bump of the builder action was merged. This means that future attempts at builds of deprecated architectures will fail. This change removes the deprecated architectures from the build matrix and changes the build job to use native runner for aarch64 build, while updating to latest runner versions as well. --- .github/workflows/builder.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index acf3d834cc1..c58c0408da8 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -14,7 +14,7 @@ on: jobs: init: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest name: Initialize builds outputs: changed_files: ${{ steps.changed_files.outputs.all }} @@ -64,13 +64,17 @@ jobs: build: needs: init - runs-on: ubuntu-22.04 + runs-on: ${{ matrix.runs-on }} if: needs.init.outputs.changed == 'true' name: Build ${{ matrix.arch }} ${{ matrix.addon }} add-on strategy: matrix: addon: ${{ fromJson(needs.init.outputs.changed_addons) }} - arch: ["aarch64", "amd64", "armhf", "armv7", "i386"] + arch: ["aarch64", "amd64"] + include: + - runs-on: ubuntu-24.04 + - runs-on: ubuntu-24.04-arm + arch: aarch64 steps: - name: Check out repository @@ -109,6 +113,7 @@ jobs: if: steps.check.outputs.build_arch == 'true' uses: home-assistant/builder@2025.11.0 with: + image: ${{ matrix.arch }} args: | ${{ env.BUILD_ARGS }} \ --${{ matrix.arch }} \ From 2f6933d309dc579ec921a144b2b6736e252b6c5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Tue, 2 Dec 2025 17:25:20 +0100 Subject: [PATCH 277/346] Remove deprecated dhcp_server and tellstick add-on (#4250) --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 - README.md | 8 -- dhcp_server/CHANGELOG.md | 35 ------ dhcp_server/DOCS.md | 151 ----------------------- dhcp_server/Dockerfile | 13 -- dhcp_server/README.md | 21 ---- dhcp_server/build.yaml | 7 -- dhcp_server/config.yaml | 55 --------- dhcp_server/data/run.sh | 87 -------------- dhcp_server/icon.png | Bin 25871 -> 0 bytes dhcp_server/logo.png | Bin 39788 -> 0 bytes dhcp_server/translations/en.yaml | 26 ---- tellstick/CHANGELOG.md | 32 ----- tellstick/DOCS.md | 167 -------------------------- tellstick/Dockerfile | 48 -------- tellstick/README.md | 30 ----- tellstick/build.yaml | 9 -- tellstick/config.yaml | 45 ------- tellstick/data/run.sh | 81 ------------- tellstick/icon.png | Bin 9775 -> 0 bytes tellstick/logo.png | Bin 50186 -> 0 bytes tellstick/translations/en.yaml | 7 -- 22 files changed, 824 deletions(-) delete mode 100644 dhcp_server/CHANGELOG.md delete mode 100644 dhcp_server/DOCS.md delete mode 100644 dhcp_server/Dockerfile delete mode 100644 dhcp_server/README.md delete mode 100644 dhcp_server/build.yaml delete mode 100644 dhcp_server/config.yaml delete mode 100755 dhcp_server/data/run.sh delete mode 100644 dhcp_server/icon.png delete mode 100644 dhcp_server/logo.png delete mode 100644 dhcp_server/translations/en.yaml delete mode 100644 tellstick/CHANGELOG.md delete mode 100644 tellstick/DOCS.md delete mode 100644 tellstick/Dockerfile delete mode 100644 tellstick/README.md delete mode 100644 tellstick/build.yaml delete mode 100644 tellstick/config.yaml delete mode 100755 tellstick/data/run.sh delete mode 100644 tellstick/icon.png delete mode 100644 tellstick/logo.png delete mode 100644 tellstick/translations/en.yaml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 251dca45af0..b3b01c47f3f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,7 +55,6 @@ body: - CEC Scanner - File editor - deCONZ - - DHCP Server - Dnsmasq - Duck DNS - Git pull @@ -72,7 +71,6 @@ body: - Silicon Labs Flasher - Silicon Labs Multiprotocol - Terminal & SSH - - TellStick - VLC - Whisper - Z-Wave JS diff --git a/README.md b/README.md index 36971d7b90e..0f192a73cfe 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,6 @@ systems that have installed Home Assistant. Control a Zigbee network using ConBee or RaspBee hardware by dresden elektronik. -- **[DHCP server](/dhcp_server/README.md)** - - A simple DHCP server. - - **[Dnsmasq](/dnsmasq/README.md)** A simple DNS server. @@ -69,10 +65,6 @@ systems that have installed Home Assistant. Allow logging in remotely to Home Assistant using SSH or just the web terminal with Ingress. -- **[TellStick](/tellstick/README.md)** - - TellStick and TellStick Duo service. - - **[Z-Wave JS](/zwave_js/README.md)** Allow Home Assistant to talk to a Z-Wave Network via a USB Controller. diff --git a/dhcp_server/CHANGELOG.md b/dhcp_server/CHANGELOG.md deleted file mode 100644 index bbe3bc18cb3..00000000000 --- a/dhcp_server/CHANGELOG.md +++ /dev/null @@ -1,35 +0,0 @@ -# Changelog - -## 1.5.0 - -**Deprecation notice** -This will be the final update for this add-on. The maintenance of the ISC DHCP -Server ended in 2022 already. - -- Update base image to alpine 3.20 - -## 1.4.0 - -- Update base image to alpine 3.19 - -## 1.3.1 - -- Don't fail if no DNS is provided - -## 1.3.0 - -- Add NTP server configuration option. - -## 1.2 - -- Fixes crash when using FQDN as domain - -## 1.1 - -- Rewrite add-on onto Bashio -- Added documentation to add-on repository -- Small changes to code styling - -## 1.0 - -- Update DHCP to 4.4.1 diff --git a/dhcp_server/DOCS.md b/dhcp_server/DOCS.md deleted file mode 100644 index 30bdd4d4853..00000000000 --- a/dhcp_server/DOCS.md +++ /dev/null @@ -1,151 +0,0 @@ -# Home Assistant Add-on: DHCP server - -## Installation - -Follow these steps to get the add-on installed on your system: - -1. Navigate in your Home Assistant frontend to **Settings** -> **Add-ons** -> **Add-on store**. -2. Find the "DHCP server" add-on and click it. -3. Click on the "INSTALL" button. -4. Modify configuration as needed - -## How to use - -1. Set the `domain` option, e.g., `mynetwork.local`. -2. Save the add-on configuration by clicking the "SAVE" button. -3. Start the add-on. - -## Configuration - -The DHCP server add-on can be tweaked to your likings. This section -describes each of the add-on configuration options. - -Example add-on configuration: - -```yaml -domain: mynetwork.local -dns: - - 8.8.8.8 - - 8.8.4.4 -ntp: - - 192.168.1.0 -default_lease: 86400 -max_lease: 172800 -networks: - - subnet: 192.168.1.0 - netmask: 255.255.255.0 - range_start: 192.168.1.100 - range_end: 192.168.1.200 - broadcast: 192.168.1.255 - gateway: 192.168.1.1 - interface: end0 -hosts: - - name: webcam_xy - mac: aa:bb:ee:cc - ip: 192.168.1.40 -``` - -### Option: `domain` (required) - -Your network domain name, e.g., `mynetwork.local` or `home.local` - -### Option: `dns` (required) - -The DNS servers your DHCP server gives to your clients. This option can -contain a list of servers. By default, it is configured to have Google's -public DNS servers: `"8.8.8.8", "8.8.4.4". - -### Option `ntp` (required) - -The NTP servers your DHCP server gives to your clients. This option can -contain a list of server. By default, none are configured ([]) - -### Option: `default_lease` (required) - -The default time in seconds that the IP is leased to your client. -Defaults to `86400`, which is one day. - -### Option: `max_lease` (required) - -The max time in seconds that the IP is leased to your client. -Defaults to `172800`, which is two days. - -### Option: `networks` (one item required) - -This option defines settings for one or multiple networks for the DHCP server -to hand out IP addresses for. - -At least one network definition in your configuration is required for the -DHCP server to work. - -#### Option: `networks.subnet` - -Your network schema/subnet. For example, if your IP addresses are `192.168.1.x` -the subnet becomes `192.168.1.0`. - -#### Option: `networks.netmask` - -Your network netmask. For example, if your IP addresses are `192.168.1.x` the -netmask becomes `255.255.255.0`. - -#### Option: `networks.range_start` - -Defines the start IP address for the DHCP server to lease IPs for. -Use this together with the `range_end` option to define the range of IP -addresses the DHCP server operates in. - -#### Option: `networks.range_end` - -Defines the end IP address for the DHCP server to lease IPs for. - -#### Option: `networks.broadcast` - -The broadcast address specific to the lease range. For example, if your -IP addresses are `192.168.1.x`, the broadcast address is usually `192.168.1.255`. - -#### Option: `networks.gateway` - -Sets the gateway address for that the DHCP server hands out to its clients. -This is usually the IP address of your router. - -#### Option: `networks.interface` - -The network interface to listen to for this network, e.g., `end0`. - -### Option: `hosts` (optional) - -This option defines settings for one or host definitions for the DHCP server. - -It allows you to fix a host to a specific IP address. - -By default, non are configured. - -#### Option: `hosts.name` - -The name of the hostname you'd like to fix an address for. - -#### Option: `hosts.mac` - -The MAC address of the client device. - -#### Option: `hosts.ip` - -The IP address you want the DHCP server to assign. - -## Support - -Got questions? - -You have several options to get them answered: - -- The [Home Assistant Discord Chat Server][discord]. -- The Home Assistant [Community Forum][forum]. -- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] - -In case you've found a bug, please [open an issue on our GitHub][issue]. - -[discord]: https://discord.gg/c5DvZ4e -[forum]: https://community.home-assistant.io -[issue]: https://github.com/home-assistant/addons/issues -[reddit]: https://reddit.com/r/homeassistant -[repository]: https://github.com/hassio-addons/repository diff --git a/dhcp_server/Dockerfile b/dhcp_server/Dockerfile deleted file mode 100644 index c7fb74da5a8..00000000000 --- a/dhcp_server/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -ARG BUILD_FROM -FROM $BUILD_FROM - -# Add env -ENV LANG C.UTF-8 - -# Setup base -RUN apk add --no-cache dhcp - -# Copy data -COPY data/run.sh / - -CMD [ "/run.sh" ] diff --git a/dhcp_server/README.md b/dhcp_server/README.md deleted file mode 100644 index 0630124a61a..00000000000 --- a/dhcp_server/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Home Assistant Add-on: DHCP server - -> [!CAUTION] -> **Deprecation notice** -> The maintenance of the ISC DHCP Server ended in 2022 already. Alpine Linux -> dropped the package in Alpine 3.21. Hence, the add-on is deprecated as well. -> Consider using the DHCP functionality of your router instead. - -A simple DHCP server. - -![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield] - -This add-on provides a simple DHCP server for your network. -It provides some basic needs, like, reserving IP addresses for your devices -to ensure they always get assigned the same IP address. - -[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg -[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg diff --git a/dhcp_server/build.yaml b/dhcp_server/build.yaml deleted file mode 100644 index 19306375de0..00000000000 --- a/dhcp_server/build.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.19 - amd64: ghcr.io/home-assistant/amd64-base:3.19 - armhf: ghcr.io/home-assistant/armhf-base:3.19 - armv7: ghcr.io/home-assistant/armv7-base:3.19 - i386: ghcr.io/home-assistant/i386-base:3.19 diff --git a/dhcp_server/config.yaml b/dhcp_server/config.yaml deleted file mode 100644 index 7d0563e2c26..00000000000 --- a/dhcp_server/config.yaml +++ /dev/null @@ -1,55 +0,0 @@ ---- -version: 1.5.0 -slug: dhcp_server -name: "DHCP server [deprecated]" -description: A simple DHCP server -url: https://home-assistant.io/addons/dhcp_server/ -advanced: true -arch: - - armhf - - armv7 - - aarch64 - - amd64 - - i386 -host_network: true -image: homeassistant/{arch}-addon-dhcp_server -options: - default_lease: 86400 - dns: - - 8.8.8.8 - - 8.8.4.4 - ntp: [] - domain: null - hosts: [] - max_lease: 172800 - networks: - - broadcast: 192.168.1.255 - gateway: 192.168.1.1 - interface: eth0 - netmask: 255.255.255.0 - range_end: 192.168.1.200 - range_start: 192.168.1.100 - subnet: 192.168.1.0 -schema: - default_lease: int - dns: - - str - ntp: - - str - domain: str - hosts: - - ip: str - mac: str - name: str - max_lease: int - networks: - - broadcast: str - gateway: str - interface: str - netmask: str - range_end: str - range_start: str - subnet: str -startup: system -init: false -stage: deprecated diff --git a/dhcp_server/data/run.sh b/dhcp_server/data/run.sh deleted file mode 100755 index 11b673abc7a..00000000000 --- a/dhcp_server/data/run.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/with-contenv bashio -# shellcheck shell=bash -set -e - -CONFIG="/etc/dhcpd.conf" -LEASES="/data/dhcpd.lease" - -bashio::log.info "Creating DHCP configuration..." - -# Create main config -DEFAULT_LEASE=$(bashio::config 'default_lease') -DOMAIN=$(bashio::config 'domain') -MAX_LEASE=$(bashio::config 'max_lease') - -{ - echo "option domain-name \"${DOMAIN}\";" - echo "default-lease-time ${DEFAULT_LEASE};" - echo "max-lease-time ${MAX_LEASE};" - echo "authoritative;" -} > "${CONFIG}" - -# Create DNS Server List -if [ "$(bashio::config 'dns')" ] -then - DNS=$(bashio::config 'dns|join(", ")') - { - echo "option domain-name-servers ${DNS};"; - } >> "${CONFIG}" -fi - - -# Create NTP Server List -if [ "$(bashio::config 'ntp')" ] -then - NTP=$(bashio::config 'ntp|join(", ")') - { - echo "option ntp-servers ${NTP};"; - } >> "${CONFIG}" -fi - -# Create networks -for network in $(bashio::config 'networks|keys'); do - BROADCAST=$(bashio::config "networks[${network}].broadcast") - GATEWAY=$(bashio::config "networks[${network}].gateway") - INTERFACE=$(bashio::config "networks[${network}].interface") - NETMASK=$(bashio::config "networks[${network}].netmask") - RANGE_END=$(bashio::config "networks[${network}].range_end") - RANGE_START=$(bashio::config "networks[${network}].range_start") - SUBNET=$(bashio::config "networks[${network}].subnet") - - { - echo "subnet ${SUBNET} netmask ${NETMASK} {" - echo " interface ${INTERFACE};" - echo " range ${RANGE_START} ${RANGE_END};" - echo " option routers ${GATEWAY};" - echo " option broadcast-address ${BROADCAST};" - echo "}" - } >> "${CONFIG}" -done - -# Create hosts -for host in $(bashio::config 'hosts|keys'); do - IP=$(bashio::config "hosts[${host}].ip") - MAC=$(bashio::config "hosts[${host}].mac") - NAME=$(bashio::config "hosts[${host}].name") - - { - echo "host ${NAME} {" - echo " hardware ethernet ${MAC};" - echo " fixed-address ${IP};" - echo " option host-name \"${NAME}\";" - echo "}" - } >> "${CONFIG}" -done - -# Create database -if ! bashio::fs.file_exists "${LEASES}"; then - touch "${LEASES}" -fi - -# Start DHCP server -bashio::log.info "Starting DHCP server..." -exec /usr/sbin/dhcpd \ - -4 -f -d --no-pid \ - -lf "${LEASES}" \ - -cf "${CONFIG}" \ - < /dev/null diff --git a/dhcp_server/icon.png b/dhcp_server/icon.png deleted file mode 100644 index b2d889511c009d234dfd7c4038bb5f11d1f1bc34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25871 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�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%0AZMd1p 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 diff --git a/dhcp_server/translations/en.yaml b/dhcp_server/translations/en.yaml deleted file mode 100644 index fa29373b8e3..00000000000 --- a/dhcp_server/translations/en.yaml +++ /dev/null @@ -1,26 +0,0 @@ ---- -configuration: - default_lease: - name: Default Lease Time - description: >- - The default time in seconds that the IP is leased to your client. - dns: - name: DNS Servers - description: The DNS servers your DHCP server gives to your clients. - domain: - name: Domain - description: >- - Your network domain name, e.g., `mynetwork.local` or `home.local` - hosts: - name: Hosts - description: >- - This option defines settings for one or host definitions for the DHCP - server. - max_lease: - name: Max Lease Time - description: The max time in seconds that the IP is leased to your client. - networks: - name: Networks - description: >- - This option defines settings for one or multiple networks for the DHCP - server to hand out IP addresses for. diff --git a/tellstick/CHANGELOG.md b/tellstick/CHANGELOG.md deleted file mode 100644 index 9be6437ccf8..00000000000 --- a/tellstick/CHANGELOG.md +++ /dev/null @@ -1,32 +0,0 @@ -# Changelog - -## 2.2.0 - -**Deprecation notice** -This will be the final update for this addon. The library it depends on is abandoned. -It's last activity was 5 years ago it it cannot be built on alpine >3.15. Users -can continue to use it but no issues or PRs will be accepted for it going forward. - -- Use Alpine 3.15 - -## 2.1.0 - -- Update hardware configuration for Supervisor 2021.02.5 -- Use Alpine 3.13 - -## 2.0.0 - -- Rewrites add-on onto Bashio -- Added documentation to the add-on repository -- Code formatting - -## 1.0.0 - -- Update base image - -## 0.5.0 - -- Added possibility for config options: - protocols: comen, fineoffset, mandolyn, oregon - models: temperature, temperaturehumidity -- Created changelog diff --git a/tellstick/DOCS.md b/tellstick/DOCS.md deleted file mode 100644 index d775d268c57..00000000000 --- a/tellstick/DOCS.md +++ /dev/null @@ -1,167 +0,0 @@ -# Home Assistant Add-on: TellStick - -## Installation - -Follow these steps to get the add-on installed on your system: - -1. Navigate in your Home Assistant frontend to **Settings** -> **Add-ons** -> **Add-on store**. -2. Find the "TellStick" add-on and click it. -3. Click on the "INSTALL" button. - -## How to use - -### Starting the add-on - -After installation you are presented with a default and example configuration, -to alter this you must follow both the JSON format and also be aligned with -the [valid parameters for Tellstick configuration file (tellstick.conf)][conf]. - -1. Adjust the add-on configuration to match your devices. See the add-on - configuration options below for more details. -2. Save the add-on configuration by clicking the "SAVE" button. -3. Start the add-on. - -### Home Assistant integration - -You will need to add internal communication details to the `configuration.yaml` -file to enable the integration with the add-on. - -```yaml -# Example configuration.yaml entry -tellstick: - host: core-tellstick - port: [50800, 50801] -``` - -To add lights, sensors and switches to Home Assistant, you need to follow the -guidelines for each type individually that is described for Home Assistant. - -For more information, check the Home Assistant documentation: - - - -## Configuration - -After installation you are presented with a default and example configuration, -to alter this you must follow both the JSON format and also be aligned with -the [valid parameters for Tellstick configuration file (tellstick.conf)][conf]. - -Example add-on configuration: - -```yaml -devices: - - id: 1 - name: Example device - protocol: everflourish - model: selflearning-switch - house: A - unit: '1' - - id: 2 - name: Example device two - protocol: everflourish - model: selflearning-switch - house: A - unit: '2' -``` - -Please note: After any changes have been made to the configuration, -you need to restart the add-on for the changes to take effect. - -### Option: `devices` (required) - -Add one or more devices entries to the add-on configuration for each -device you'd like to add. Please note the comma separator between each -device (see example above). - -#### Option: `devices.id` (required) - -A unique number / identifier that must be unique for each device. - -#### Option: `devices.name` (required) - -A name for your device, making it easier to identify it. - -#### Option: `devices.protocol` (required) - -This is the protocol the device uses. For a full list of supported protocols -(and thus valid values for this configuration option), check the -TellStick [protocol list][protocol-list]. - -#### Option: `devices.model` (optional) - -The model parameter is only used by some protocols where there exists different -types of devices using the same protocol. This can be dimmers versus non-dimmers, -codeswitch versus self-learning, etc. - -#### Option: `devices.house` (optional) - -Depending on protocol the values here can vary a lot to identify -or group per house or type. - -#### Option: `devices.unit` (optional) - -Unit identifier, in most cases a value between 1 to 16 and often used in -combination with the house. - -#### Option: `devices.fade` (optional) - -Fade is either `true` or `false` and tells a dimmer if it should fade smooth -or instant between values (only for IKEA protocol as it seems). - -#### Option: `devices.code` (optional) - -A number series based on ones and zeroes often used for dip-switch based devices. - -## Service calls - -If you wish to teach a self-learning device in your TellStick configuration: - -Go to Home Assistant service call in Developer tools and select: - -- Service: `hassio.addon_stdin` -- Enter service Data: - `{"addon":"core_tellstick","input":{"function":"learn","device":"1"}}` - -Replace `1` with the corresponding ID of the device in your TellStick configuration. - -You can also use this to list devices or sensors and read the output in the -add-on log: `{"addon":"core_tellstick","input":{"function":"list-sensors"}}` - -### Supported service commands - -- `"function":"list"` - List currently configured devices with name and device id and all discovered sensors. - -- `"function":"list-sensors"` - -- `"function":"list-devices"` - Alternative devices/sensors listing: Shows devices and/or sensors using key=value - format (with tabs as separators, one device/sensor per line, no header lines.) - -- `"function":"on","device":"x"` - Turns on device. ’x’ could either be an integer of the device-id, - or the name of the device. - -- `"function":"off","device":"x"` - Turns off device. ’x’ could either be an integer of the device-id, - or the name of the device. - -## Support - -Got questions? - -You have several options to get them answered: - -- The [Home Assistant Discord Chat Server][discord]. -- The Home Assistant [Community Forum][forum]. -- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] - -In case you've found a bug, please [open an issue on our GitHub][issue]. - -[conf]: http://developer.telldus.com/wiki/TellStick_conf -[discord]: https://discord.gg/c5DvZ4e -[forum]: https://community.home-assistant.io -[issue]: https://github.com/home-assistant/addons/issues -[protocol-list]: http://developer.telldus.com/wiki/TellStick_conf -[reddit]: https://reddit.com/r/homeassistant -[repository]: https://github.com/hassio-addons/repository diff --git a/tellstick/Dockerfile b/tellstick/Dockerfile deleted file mode 100644 index ced11dab864..00000000000 --- a/tellstick/Dockerfile +++ /dev/null @@ -1,48 +0,0 @@ -ARG BUILD_FROM -FROM $BUILD_FROM - -ENV LANG C.UTF-8 - -# Install Telldus library for TellStick (using same approach as in hassio docker installation) -ARG TELLDUS_COMMIT -RUN \ - set -x \ - && apk add --no-cache \ - confuse \ - libftdi1 \ - libstdc++ \ - socat \ - && apk add --no-cache --virtual .build-dependencies \ - argp-standalone \ - build-base \ - cmake \ - confuse-dev \ - doxygen \ - gcc \ - git \ - libftdi1-dev \ - && ln -s /usr/include/libftdi1/ftdi.h /usr/include/ftdi.h \ - && mkdir -p /usr/src \ - && cd /usr/src \ - && git clone https://github.com/telldus/telldus \ - && cd telldus/telldus-core \ - && git reset --hard ${TELLDUS_COMMIT} \ - && sed -i \ - "/\/a \#include \" \ - common/Socket_unix.cpp \ - && cmake . \ - -DBUILD_LIBTELLDUS-CORE=ON \ - -DBUILD_TDADMIN=OFF \ - -DBUILD_TDTOOL=ON \ - -DGENERATE_MAN=OFF \ - -DFORCE_COMPILE_FROM_TRUNK=ON \ - -DFTDI_LIBRARY=/usr/lib/libftdi1.so \ - && make \ - && make install \ - && apk del .build-dependencies \ - && rm -rf /usr/src/telldus - -# Copy data for add-on -COPY data/run.sh / - -CMD [ "/run.sh" ] diff --git a/tellstick/README.md b/tellstick/README.md deleted file mode 100644 index ca8be041709..00000000000 --- a/tellstick/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Home Assistant Add-on: TellStick - -> [!CAUTION] -> **Deprecation notice** -> The library this add-on depends on is abandoned. Its last activity was 5 -> years ago and it cannot be built on Alpine versions above 3.15. Users can continue -> using the add-on, but no issues or pull requests will be accepted. - -TellStick and TellStick Duo service. - -![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield] - -## About - -This add-on wraps around the `telldus-core` package to expose a service -for your TellStick and TellStick Duo. - -This integration allows users to add switches, lights, and sensors which are -communicating with 433 MHz. There are a number of vendors (Capidi Elro, -Intertechno, Nexa, Proove, Sartano, and Viking) who are selling products that -work with TellStick. - -For more details, please check the TellStick [protocol list][protocol-list]. - - -[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg -[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg diff --git a/tellstick/build.yaml b/tellstick/build.yaml deleted file mode 100644 index b9ad078aff0..00000000000 --- a/tellstick/build.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.15 - amd64: ghcr.io/home-assistant/amd64-base:3.15 - armhf: ghcr.io/home-assistant/armhf-base:3.15 - armv7: ghcr.io/home-assistant/armv7-base:3.15 - i386: ghcr.io/home-assistant/i386-base:3.15 -args: - TELLDUS_COMMIT: 2598bbed16ffd701f2a07c99582f057a3decbaf3 diff --git a/tellstick/config.yaml b/tellstick/config.yaml deleted file mode 100644 index aa37005d120..00000000000 --- a/tellstick/config.yaml +++ /dev/null @@ -1,45 +0,0 @@ ---- -version: 2.2.0 -slug: tellstick -name: TellStick [deprecated] -description: TellStick and TellStick Duo service -url: https://github.com/home-assistant/addons/tree/master/tellstick -arch: - - armhf - - armv7 - - aarch64 - - amd64 - - i386 -image: homeassistant/{arch}-addon-tellstick -options: - devices: - - house: A - id: 1 - model: selflearning-switch - name: Example device - protocol: everflourish - unit: "1" - - house: A - id: 2 - model: selflearning-switch - name: Example device two - protocol: everflourish - unit: "2" -schema: - devices: - - code: str? - fade: str? - house: str? - id: int(1,) - model: "match(codeswitch|bell|selflearning-switch|selflearning-dimmer|\ - selflearning|ecosavers|kp100|temperaturehumidity|temperature)?" - name: str - protocol: "match(arctech|brateck|comen|everflourish|fineoffset|fuhaote|\ - hasta|ikea|kangtai|mandolyn|oregon|risingsun|sartano|\ - silvanchip|upm|waveman|x10|yidong)" - unit: str? -startup: system -stdin: true -usb: true -init: false -stage: deprecated diff --git a/tellstick/data/run.sh b/tellstick/data/run.sh deleted file mode 100755 index f2ca631f59d..00000000000 --- a/tellstick/data/run.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/with-contenv bashio -# shellcheck shell=bash -set -e - -CONFIG="/etc/tellstick.conf" - -bashio::log.info "Initialize the tellstick configuration..." -# User access -{ - echo "user = \"root\"" - echo "group = \"plugdev\"" - echo "ignoreControllerConfirmation = \"false\"" -} > "${CONFIG}" - -# devices -for device in $(bashio::config 'devices|keys'); do - DEV_ID=$(bashio::config "devices[${device}].id") - DEV_NAME=$(bashio::config "devices[${device}].name") - DEV_PROTO=$(bashio::config "devices[${device}].protocol") - DEV_MODEL=$(bashio::config "devices[${device}].model") - ATTR_HOUSE=$(bashio::config "devices[${device}].house") - ATTR_CODE=$(bashio::config "devices[${device}].code") - ATTR_UNIT=$(bashio::config "devices[${device}].unit") - ATTR_FADE=$(bashio::config "devices[${device}].fade") - - ( - echo "" - echo "device {" - echo " id = ${DEV_ID}" - echo " name = \"${DEV_NAME}\"" - echo " protocol = \"${DEV_PROTO}\"" - - bashio::var.has_value "${DEV_MODEL}" \ - && echo " model = \"${DEV_MODEL}\"" - - if bashio::var.has_value "${ATTR_HOUSE}${ATTR_CODE}${ATTR_UNIT}${ATTR_FADE}"; - then - echo " parameters {" - - bashio::var.has_value "${ATTR_HOUSE}" \ - && echo " house = \"${ATTR_HOUSE}\"" - - bashio::var.has_value "${ATTR_CODE}" \ - && echo " code = \"${ATTR_CODE}\"" - - bashio::var.has_value "${ATTR_UNIT}" \ - && echo " unit = \"${ATTR_UNIT}\"" - - bashio::var.has_value "${ATTR_FADE}" \ - && echo " fade = \"${ATTR_FADE}\"" - - echo " }" - fi - - echo "}" - ) >> "${CONFIG}" -done - -bashio::log.info "Exposing sockets and loading service..." - -# Expose the unix socket to internal network -socat TCP-LISTEN:50800,reuseaddr,fork UNIX-CONNECT:/tmp/TelldusClient & -socat TCP-LISTEN:50801,reuseaddr,fork UNIX-CONNECT:/tmp/TelldusEvents & - -# Run telldus-core daemon in the background -/usr/local/sbin/telldusd --nodaemon < /dev/null & - -# Listen for input to tdtool -bashio::log.info "Starting event listener..." -while read -r input; do - # parse JSON value - funct=$(bashio::jq "${input}" '.function') - devid=$(bashio::jq "${input}" '.device // empty') - bashio::log.info "Read ${funct} / ${devid}" - - if ! msg="$(tdtool "--${funct}" "${devid}")"; then - bashio::log.error "TellStick ${funct} fails -> ${msg}" - else - bashio::log.info "TellStick ${funct} success -> ${msg}" - fi -done diff --git a/tellstick/icon.png b/tellstick/icon.png deleted file mode 100644 index 1b40bd9b1244ace71395b88babcd3b8bbb88561d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9775 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%0D*9&RUE8Y5q0JYlf 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 z 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 JtaD0e0s!^+2L1p5 diff --git a/tellstick/translations/en.yaml b/tellstick/translations/en.yaml deleted file mode 100644 index 22b08727503..00000000000 --- a/tellstick/translations/en.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -configuration: - devices: - name: Devices - description: >- - Add one or more devices entries to the add-on configuration for each - device you'd like to add. From 3ce339c6d23e980b4a285b2fcd777f9866d80e2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 08:51:38 +0100 Subject: [PATCH 278/346] build(deps): bump actions/stale from 10.1.0 to 10.1.1 (#4255) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 555caf73d85..ef60e8636b4 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: 30 days stale issues - uses: actions/stale@v10.1.0 + uses: actions/stale@v10.1.1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-issue-stale: 30 From 58e67c7c779787ef109ab76430c872a0760ae5bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 08:51:51 +0100 Subject: [PATCH 279/346] build(deps): bump actions/checkout from 6.0.0 to 6.0.1 (#4254) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/builder.yml | 4 ++-- .github/workflows/lint.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index c58c0408da8..1254c358598 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -22,7 +22,7 @@ jobs: changed: ${{ steps.changed_addons.outputs.changed }} steps: - name: Check out the repository - uses: actions/checkout@v6.0.0 + uses: actions/checkout@v6.0.1 - name: Get changed files id: changed_files @@ -78,7 +78,7 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v6.0.0 + uses: actions/checkout@v6.0.1 - name: Get information id: info diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f81c617d8a7..7676dc31769 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: name: hadolint steps: - name: Check out the repository - uses: actions/checkout@v6.0.0 + uses: actions/checkout@v6.0.1 - name: Run linter id: changed_files @@ -36,7 +36,7 @@ jobs: name: YAMLLint steps: - name: Check out the repository - uses: actions/checkout@v6.0.0 + uses: actions/checkout@v6.0.1 - name: Run YAMLLint uses: frenck/action-yamllint@v1.5 @@ -46,7 +46,7 @@ jobs: name: ShellCheck steps: - name: Check out the repository - uses: actions/checkout@v6.0.0 + uses: actions/checkout@v6.0.1 - name: Run linter uses: ludeeus/action-shellcheck@2.0.0 From f68e2824a0a3c9c4524cf3cc7547397d496c48c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Mon, 8 Dec 2025 13:00:49 +0100 Subject: [PATCH 280/346] ssh: Bump CLI to 4.44.0, remove unsupported architectures (#4256) --- ssh/CHANGELOG.md | 5 +++++ ssh/README.md | 5 +---- ssh/build.yaml | 5 +---- ssh/config.yaml | 5 +---- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index 37e2ab103dd..d0fcf8cd4bb 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 9.21.0 + +- Remove support for armhf, armv7, and i386 architectures +- Upgrade Home Assistant CLI to 4.44.0 + ## 9.20.1 - Fix default shell diff --git a/ssh/README.md b/ssh/README.md index 0d9d66ee637..4630f06e3b8 100644 --- a/ssh/README.md +++ b/ssh/README.md @@ -2,7 +2,7 @@ Allow logging in remotely to Home Assistant using SSH or just the web terminal with Ingress. -![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield] +![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ## About @@ -12,6 +12,3 @@ client. It also includes a command-line tool to access the Home Assistant API. [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg [amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg -[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg diff --git a/ssh/build.yaml b/ssh/build.yaml index 3aca0fe80db..5d74309a4d8 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -2,10 +2,7 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base:3.22 amd64: ghcr.io/home-assistant/amd64-base:3.22 - armhf: ghcr.io/home-assistant/armhf-base:3.22 - armv7: ghcr.io/home-assistant/armv7-base:3.22 - i386: ghcr.io/home-assistant/i386-base:3.22 args: - CLI_VERSION: 4.41.0 + CLI_VERSION: 4.44.0 LIBWEBSOCKETS_VERSION: 4.4.1 TTYD_VERSION: 1.7.7 diff --git a/ssh/config.yaml b/ssh/config.yaml index fcea1a221db..f3a8841726b 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,16 +1,13 @@ --- -version: 9.20.1 +version: 9.21.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH url: https://github.com/home-assistant/addons/tree/master/ssh advanced: true arch: - - armhf - - armv7 - aarch64 - amd64 - - i386 audio: true hassio_api: true hassio_role: manager From 88dcaaaca1005ea34e2bc0d1569c016dc05839b5 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Mon, 15 Dec 2025 04:13:29 -0500 Subject: [PATCH 281/346] [openthread_border_router] Match OTBR flow control and startup RTS/DTR state in settings migration script (#4263) * Pass through flow control settings * Add a delay after disconnect * Move to latest serialx release * Bump version * Reset on startup * Bump serialx again * Export `SERIALX_VERSION` as an arg * Rename `UNIVERSAL_SILABS_FLASHER` to `UNIVERSAL_SILABS_FLASHER_VERSION` --- openthread_border_router/CHANGELOG.md | 3 ++ openthread_border_router/Dockerfile | 6 ++- openthread_border_router/build.yaml | 3 +- openthread_border_router/config.yaml | 2 +- .../etc/s6-overlay/s6-rc.d/otbr-agent/run | 9 ++++- .../usr/local/bin/migrate_otbr_settings.py | 40 +++++++++++++++++-- 6 files changed, 55 insertions(+), 8 deletions(-) diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 23c7041bc2f..32cb3475c8a 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 2.15.3 +- Fix inconsistent startup for adapters that remap hardware flow control pins for firmware flashing. + ## 2.15.2 - Add baudrate list option 1000000 (Nordic Semiconductor nRF Connect SDK firmware) diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index 9e39d3498d1..2a69591dfa0 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -3,7 +3,8 @@ FROM $BUILD_FROM ARG BUILD_ARCH ARG OTBR_VERSION -ARG UNIVERSAL_SILABS_FLASHER +ARG SERIALX_VERSION +ARG UNIVERSAL_SILABS_FLASHER_VERSION # Set shell SHELL ["/bin/bash", "-o", "pipefail", "-c"] @@ -96,7 +97,8 @@ RUN \ && ninja \ && ninja install) \ && pip install --break-system-packages \ - universal-silabs-flasher==${UNIVERSAL_SILABS_FLASHER} \ + universal-silabs-flasher==${UNIVERSAL_SILABS_FLASHER_VERSION} \ + serialx==${SERIALX_VERSION} \ && apt-get purge -y --auto-remove \ git \ nodejs \ diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index 16c96c5d466..e97a87f043b 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -4,4 +4,5 @@ build_from: amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm args: OTBR_VERSION: b067e5ac5f8b3e92750df24922017eee2bc0fa04 - UNIVERSAL_SILABS_FLASHER: 0.0.36 + UNIVERSAL_SILABS_FLASHER_VERSION: 0.1.2 + SERIALX_VERSION: 0.5.0 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index eeeaa20ad73..481f3d79dfe 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 2.15.2 +version: 2.15.3 slug: openthread_border_router name: OpenThread Border Router description: OpenThread Border Router add-on diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run index 45ff8e2ef12..94dcbcccc44 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/run @@ -12,6 +12,7 @@ declare backbone_if declare device declare baudrate declare flow_control +declare migrate_flow_control declare otbr_log_level declare otbr_log_level_int declare otbr_rest_listen @@ -34,8 +35,10 @@ flow_control="" if bashio::config.true 'flow_control'; then flow_control="&uart-flow-control" + migrate_flow_control="hardware" else flow_control="&uart-init-deassert" + migrate_flow_control="none" fi otbr_log_level=$(bashio::string.lower "$(bashio::config otbr_log_level)") @@ -145,7 +148,11 @@ echo "${otbr_rest_listen_port}" >> /tmp/otbr-agent-rest-api # Migrate OTBR settings to new adapter if needed bashio::log.info "Migrating OTBR settings if needed..." -python3 /usr/local/bin/migrate_otbr_settings.py --adapter "${device}" --baudrate "${baudrate}" --data-dir /data/thread/ +python3 /usr/local/bin/migrate_otbr_settings.py \ + --adapter "${device}" \ + --baudrate "${baudrate}" \ + --flow-control "${migrate_flow_control}" \ + --data-dir /data/thread/ bashio::log.info "Starting otbr-agent..." # shellcheck disable=SC2086 diff --git a/openthread_border_router/rootfs/usr/local/bin/migrate_otbr_settings.py b/openthread_border_router/rootfs/usr/local/bin/migrate_otbr_settings.py index 74c009cce9a..0c1a6411f51 100755 --- a/openthread_border_router/rootfs/usr/local/bin/migrate_otbr_settings.py +++ b/openthread_border_router/rootfs/usr/local/bin/migrate_otbr_settings.py @@ -3,11 +3,18 @@ import datetime import zigpy.serial from pathlib import Path +from serialx import PinState from enum import Enum -from universal_silabs_flasher.spinel import SpinelProtocol, CommandID, PropertyID +from universal_silabs_flasher.spinel import ( + SpinelProtocol, + CommandID, + PropertyID, + ResetReason, +) CONNECT_TIMEOUT = 10 +AFTER_DISCONNECT_DELAY = 1 class OtbrSettingsKey(Enum): @@ -68,7 +75,9 @@ def is_valid_otbr_settings_file(settings: list[tuple[OtbrSettingsKey, bytes]]) - return {OtbrSettingsKey.ACTIVE_DATASET} <= {key for key, _ in settings} -async def get_adapter_hardware_addr(port: str, baudrate: int = 460800) -> str: +async def get_adapter_hardware_addr( + port: str, baudrate: int = 460800, flow_control: str | None = None +) -> str: loop = asyncio.get_running_loop() async with asyncio.timeout(CONNECT_TIMEOUT): @@ -77,9 +86,17 @@ async def get_adapter_hardware_addr(port: str, baudrate: int = 460800) -> str: protocol_factory=SpinelProtocol, url=port, baudrate=baudrate, + flow_control=flow_control, + # OTBR uses `uart-init-deassert` when flow control is disabled + rtsdtr_on_open=( + PinState.HIGH if flow_control == "hardware" else PinState.LOW + ), + rtsdtr_on_close=PinState.LOW, ) await protocol.wait_until_connected() + await protocol.reset(ResetReason.STACK) + try: rsp = await protocol.send_command( CommandID.PROP_VALUE_GET, @@ -119,11 +136,26 @@ async def main() -> None: parser.add_argument( "--baudrate", type=int, default=460800, help="Baudrate of the new adapter" ) + parser.add_argument( + "--flow-control", + type=str, + default="none", + help="Flow control for the serial connection (hardware, software, or none)", + ) args = parser.parse_args() + flow_control = args.flow_control + + if flow_control == "none": + flow_control = None + # First, read the hardware address of the new adapter - hwaddr = await get_adapter_hardware_addr(args.adapter, args.baudrate) + hwaddr = await get_adapter_hardware_addr( + port=args.adapter, + baudrate=args.baudrate, + flow_control=flow_control, + ) # Then, look at existing settings all_settings = [] @@ -181,6 +213,8 @@ async def main() -> None: expected_settings_path.write_bytes(serialize_otbr_settings(new_settings)) print(f"Wrote new settings file to {expected_settings_path}") + await asyncio.sleep(AFTER_DISCONNECT_DELAY) + if __name__ == "__main__": import coloredlogs From b3c07090e6fd2dc48f256f6aa2f2678d391daeb4 Mon Sep 17 00:00:00 2001 From: Flat <2048861+Flat@users.noreply.github.com> Date: Fri, 19 Dec 2025 05:05:52 -0500 Subject: [PATCH 282/346] matter_server: Bump Python Mater server to 8.1.2 (#4271) --- matter_server/CHANGELOG.md | 4 ++++ matter_server/build.yaml | 4 ++-- matter_server/config.yaml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/matter_server/CHANGELOG.md b/matter_server/CHANGELOG.md index 0ffcb4c37e4..8e1b038abd2 100644 --- a/matter_server/CHANGELOG.md +++ b/matter_server/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.1.2 + +- Bump Python Matter Server to [8.1.2](https://github.com/matter-js/python-matter-server/releases/tag/8.1.2) + ## 8.1.1 - Bump Python Matter Server to [8.1.1](https://github.com/matter-js/python-matter-server/releases/tag/8.1.1) diff --git a/matter_server/build.yaml b/matter_server/build.yaml index b9d8156eaaa..e0484f7724f 100644 --- a/matter_server/build.yaml +++ b/matter_server/build.yaml @@ -1,7 +1,7 @@ --- build_from: - aarch64: ghcr.io/matter-js/python-matter-server:8.1.1 - amd64: ghcr.io/matter-js/python-matter-server:8.1.1 + aarch64: ghcr.io/matter-js/python-matter-server:8.1.2 + amd64: ghcr.io/matter-js/python-matter-server:8.1.2 args: BASHIO_VERSION: 0.17.1 TEMPIO_VERSION: 2024.11.2 diff --git a/matter_server/config.yaml b/matter_server/config.yaml index 1f2c08253db..d9c84765154 100644 --- a/matter_server/config.yaml +++ b/matter_server/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.1.1 +version: 8.1.2 slug: matter_server name: Matter Server description: Matter WebSocket Server for Home Assistant Matter support. From 104349e9b9d6f65c08084ae944aa729822700426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Wed, 7 Jan 2026 12:08:23 +0100 Subject: [PATCH 283/346] ssh: Bump CLI to 4.45.0 (#4283) --- ssh/CHANGELOG.md | 4 ++++ ssh/build.yaml | 2 +- ssh/config.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ssh/CHANGELOG.md b/ssh/CHANGELOG.md index d0fcf8cd4bb..77734a1c663 100644 --- a/ssh/CHANGELOG.md +++ b/ssh/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 9.22.0 + +- Upgrade Home Assistant CLI to 4.45.0 + ## 9.21.0 - Remove support for armhf, armv7, and i386 architectures diff --git a/ssh/build.yaml b/ssh/build.yaml index 5d74309a4d8..8ac4f3c608c 100644 --- a/ssh/build.yaml +++ b/ssh/build.yaml @@ -3,6 +3,6 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base:3.22 amd64: ghcr.io/home-assistant/amd64-base:3.22 args: - CLI_VERSION: 4.44.0 + CLI_VERSION: 4.45.0 LIBWEBSOCKETS_VERSION: 4.4.1 TTYD_VERSION: 1.7.7 diff --git a/ssh/config.yaml b/ssh/config.yaml index f3a8841726b..8923e36ce5c 100644 --- a/ssh/config.yaml +++ b/ssh/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.21.0 +version: 9.22.0 slug: ssh name: Terminal & SSH description: Allow logging in remotely to Home Assistant using SSH From ea7065229938d1de7c2d9fc74c2fc71e1652048c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20BOU=C3=89?= Date: Tue, 13 Jan 2026 23:02:22 +0100 Subject: [PATCH 284/346] Update supported devices for OpenThread (#4282) --- openthread_border_router/DOCS.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/openthread_border_router/DOCS.md b/openthread_border_router/DOCS.md index fe3b0d368f3..4769efe4aca 100644 --- a/openthread_border_router/DOCS.md +++ b/openthread_border_router/DOCS.md @@ -13,9 +13,13 @@ Follow these steps to get the add-on installed on your system: ## How to use You will need a 802.15.4 capable radio supported by OpenThread flashed with OpenThread -RCP firmware. Home Assistant Yellow as well as Home Assistant SkyConnect/Connect ZBT-1 -are both able to run OpenThread and will be flashed with the correct firmware by Home -Assistant Core. +RCP firmware: +- Home Assistant Yellow +- Home Assistant SkyConnect/Connect ZBT-1 +- Home Assistant Connect ZBT-2 + +These devices are all capable to run OpenThread and will be flashed with the correct +firmware by Home Assistant Core. If you are using Home Assistant Yellow, choose `/dev/ttyAMA1` as device. From ba468a62a4ae47c3896ad73824647f1e1d968f7a Mon Sep 17 00:00:00 2001 From: elibl Date: Wed, 14 Jan 2026 11:40:53 +0100 Subject: [PATCH 285/346] Bump Z-Wave JS to 15.19.0 (#4287) * Update to Z-Wave JS 15.19.0 * Z-Wave JS 0.28.0 * Fix typo * Adjust header topology --------- Co-authored-by: Martin Hjelmare --- zwave_js/CHANGELOG.md | 125 ++++++++++++++++++++++++++++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 127 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 6c0c0150bb8..102b6e8edbc 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,130 @@ # Changelog +## 0.28.0 + +### Z-Wave JS 15.19.0 + +#### Features + +- Add option to force associations without checking if they are valid/allowed +- Devices that failed to include with Security S2 are no longer interviewed + +#### Bugfixes + +- During the initial interview after inclusion, user codes are now cleared unless `queryAllUserCodes` driver option is set +- The `ConfigurationCCDefaultReset` command now uses Supervision if supported +- Correct log messages for `SoundSwitchCCConfigurationSet` +- Fixed an issue where `setValue` calls with `disableOptimisticValueUpdate` would cause the next `value updated` event to have an incorrect previous value +- Fixed an issue where some 500 series controllers could hang during an NVM backup + +#### Config file changes + +- Add missing parameter for latest VZW31-SN firmware +- Correct manual link metadata for Inovelli VZW31-SN and VZW32-SN +- Label endpoints of Shelly Wave Shutter +- Remove unnecessary firmware version check from Zooz ZEN35 +- Add fingerprint for Kwikset HC620 +- Add Zooz Zen58 Low Voltage XS Relay +- Hide VZW32-SN test parameter from production use +- Add Aeotec ZWA050 SmokeShield for Ei Smoke Detectors + +### Z-Wave JS 15.18.0 + +#### Features + +- Device configuration parameters can now be marked as hidden +- Allow setting either `defaultToneId` or `defaultVolume` in Sound Switch CC + +#### Bugfixes + +- Remove overly strict ASCII event data padding validation in Entry Control CC +- Fixed an issue where an (unexpected) "Node ID added" notification during an ongoing inclusion would cause security bootstrapping to be skipped +- The `lastSeen` field is now restored when initializing node statistics +- Spec compliance: use `Extended User Code Set` to control V2+ devices + +#### Config file changes + +- Omit `dimmingDuration` field for TKBHome Dimmer +- Add Heatit Z-TRM6 DC Thermostat + +### Z-Wave JS 15.17.1 + +#### Bugfixes + +- Fixed an error that could happen when receiving an S0 Nonce Report before the request acknowledgement + +### Z-Wave JS 15.17.0 + +#### Features + +- Add rudimentary support for Application Status Command Class +- Implement `refreshValues` for Window Covering CC + +#### Bugfixes + +- Add missing "Panic alert" event to "Emergency Alarm" notification +- Fixed an issue where Basic CC values were incorrectly exposed after including a device +- Fixed an error that could happen when receiving an S2 Nonce Report before the request acknowledgement +- Cached user codes are now cleared when an "All user codes deleted" notification is received +- For notification sensors operating in push mode, the notification state is now queried during the interview +- Fixed a regression where value changes were not verified on slow devices after immediately successful supervised commands + +#### Config file changes + +- Add Shelly Wave Shutter, update Wave 1, Wave 1PM, Wave 2PM, Wave Plug S +- Add product id `0x03b9` to Kwikset 918 +- Update documentation link for Eurotronic Comet Z +- Add Philips DDL240X Touchscreen Deadbolt +- Add US variant to Shelly Wave 2PM + +### Z-Wave JS 15.16.0 + +#### Features + +- Config parameter values can now be marked as recommended and automatically be set during the interview +- Config parameters can now be marked as destructive, allowing applications to confirm before setting them +- Add API to enable more frequent background RSSI measurements + +#### Bugfixes + +- Battery CC reports with invalid levels are now discarded + +#### Config file changes + +- Add fingerprint to Kwikset HC-620 +- Add Zooz ZSE11 800LR +- Add version conditionals and correct parameters for Enbrighten 55258 +- Replace wrong troubleshooting link in 700 series firmware warning template +- Add Kwikset 918 +- Correct user code slot bit field for BE468ZP/BE469/BE469ZP +- Add parameters 3, 40 and 84 for Enbrighten 55258, firmware version 5.51 + +### Z-Wave JS 15.15.2 + +#### Bugfixes + +- Fixes a rare issue with the cache serialization of certain values that could lead to out-of-memory crashes, often immediately or shortly after startup + +#### Config file changes + +- Add Namron 4512774 Remote Controller + +### Z-Wave JS 15.15.1 + +#### Bugfixes + +- Fixed a warning in bundlers about an unexpected `node:net` import +- Fixed an issue where the device class of newly joined devices would not be persisted, causing legacy secure devices not to be automatically included with encryption + +#### Config file changes + +- Update parameters for HomeSeer WS300 +- Add Zooz ZEN78 High Power Relay + +### Detailed changelogs + +- [Z-Wave JS 15.15.0...15.19.0](https://github.com/zwave-js/zwave-js/compare/v15.15.0...v15.19.0) + ## 0.27.0 ### Changes diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 4dc0d1c95f4..09bf194876f 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -7,4 +7,4 @@ build_from: i386: ghcr.io/home-assistant/i386-base:3.21 args: ZWAVEJS_SERVER_VERSION: 3.4.0 - ZWAVEJS_VERSION: 15.15.0 + ZWAVEJS_VERSION: 15.19.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 4b75d56832b..0872f9cacc0 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.27.0 +version: 0.28.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From 3f3391eb90abbb2e561400a5fb87bebeed1c4ab7 Mon Sep 17 00:00:00 2001 From: AlCalzone Date: Fri, 16 Jan 2026 12:16:57 +0100 Subject: [PATCH 286/346] Bump Z-Wave JS to 15.20.0 (#4293) * Bump Z-Wave JS to 15.20.0 * add detailed changelog link --- zwave_js/CHANGELOG.md | 22 ++++++++++++++++++++++ zwave_js/build.yaml | 2 +- zwave_js/config.yaml | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/zwave_js/CHANGELOG.md b/zwave_js/CHANGELOG.md index 102b6e8edbc..3007ba1794c 100644 --- a/zwave_js/CHANGELOG.md +++ b/zwave_js/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## 0.29.0 + +### Z-Wave JS 15.20.0 + +#### Features + +- Sound Switch CC: Reset the current tone back to none when done playing +- Support connecting to ESPHome Z-Wave proxies with API encryption +- Try to find Z-Wave QR code strings in longer strings + +#### Bugfixes + +- Avoid false positive detections for changed device configs after upgrading from a version before 15.19.0 + +#### Config file changes + +- Update Zooz ZEN16 to support 800 series version + +### Detailed changelogs + +- [Z-Wave JS 15.19.0...15.20.0](https://github.com/zwave-js/zwave-js/compare/v15.19.0...v15.20.0) + ## 0.28.0 ### Z-Wave JS 15.19.0 diff --git a/zwave_js/build.yaml b/zwave_js/build.yaml index 09bf194876f..bcfd330444d 100644 --- a/zwave_js/build.yaml +++ b/zwave_js/build.yaml @@ -7,4 +7,4 @@ build_from: i386: ghcr.io/home-assistant/i386-base:3.21 args: ZWAVEJS_SERVER_VERSION: 3.4.0 - ZWAVEJS_VERSION: 15.19.0 + ZWAVEJS_VERSION: 15.20.0 diff --git a/zwave_js/config.yaml b/zwave_js/config.yaml index 0872f9cacc0..fd791e2d56c 100644 --- a/zwave_js/config.yaml +++ b/zwave_js/config.yaml @@ -1,5 +1,5 @@ --- -version: 0.28.0 +version: 0.29.0 slug: zwave_js name: Z-Wave JS description: Control a Z-Wave network with Home Assistant Z-Wave JS From a4e6acfcb10a0076a66faa1a92a47c33f47312bb Mon Sep 17 00:00:00 2001 From: mattreim <80219712+mattreim@users.noreply.github.com> Date: Thu, 22 Jan 2026 09:23:54 +0100 Subject: [PATCH 287/346] deCONZ: Align ingress colors (#4302) * Alignment ingress colors * deCONZ version update * Apply suggestions from code review --------- Co-authored-by: Stefan Agner --- deconz/CHANGELOG.md | 4 ++++ deconz/config.yaml | 2 +- deconz/rootfs/usr/share/www/ingress.html | 14 +++++++------- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/deconz/CHANGELOG.md b/deconz/CHANGELOG.md index a62d223b58d..a19950f2805 100644 --- a/deconz/CHANGELOG.md +++ b/deconz/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 8.5.3 + +- Align ingress colors with Homo Assistant + ## 8.5.2 - Add configurable OTA update switches for Bosch, IKEA and OSRAM/LEDVANCE (default is off) diff --git a/deconz/config.yaml b/deconz/config.yaml index ff5c0cb4599..7f781fc2faa 100644 --- a/deconz/config.yaml +++ b/deconz/config.yaml @@ -1,5 +1,5 @@ --- -version: 8.5.2 +version: 8.5.3 slug: deconz name: deCONZ description: >- diff --git a/deconz/rootfs/usr/share/www/ingress.html b/deconz/rootfs/usr/share/www/ingress.html index 99e91d33b8a..8658cc6fb94 100644 --- a/deconz/rootfs/usr/share/www/ingress.html +++ b/deconz/rootfs/usr/share/www/ingress.html @@ -8,7 +8,7 @@

-R22lA^Q0sYp_FJ_o*0E6zfLNySm>8UCbVwK9o#pk6?#Bq5pKs9hEt z!=6GfObYWlYqkR4N#>IU{>12xgKR!Huh9rlIODvznDc3;sNYFtpjFp18r4do=hT9f zDm%f1p@5Ja1#W;=4B;cZAln<)VpJ&w^k+1vmR19dJsO>=%TlYO6xibkq;c`8LX|5P zJ0N^wRy3cO3Enc+2A*D{NK`-;vTsu3N*XbczaA*(4JYu$_MxwSIM#6V)8Jm@UhEkL zA*{W7b0x#yJ^%Fm6TBNrmOW|6%ZHxGSeOP6Y-x;Q0%DE)-uvYL9cFMECq4Q(^zYg@ z6=WFn)N3RPR?r4rJfogZG|0IywvuH!Mv|2>I~Qs2BpQ|)IBt-YvpR!}ODH+7-gk0- z70gsIX&qy4hBI~^{^^L;Yv8$MV{yie-yXIj`t7;9gm9Q=#-1z=Qr=-4%Q4O4OfyNV zo0W09DYwA9cw>FDQdiEzb_mnzN;MNEfr)s#e7`Vv%pE3<+2uC@P+M zW`-U}8_&M0dtGX-J}72B3;&DTq%7j*G5;u*hbcP#Bw?j(3WoF8%pj=bZ(quZo%Z!L zb}Y{oqdpKTQ>7JetOqXb2&J!J97p@-v3MdICg7>S4oI9q0tCi;Uo?Lo@X-hj0SeF< zreJ@dfcWh-gh2~Hr7v)7*%JKn)Bj(hf9cD2cs_8j>oI1OK&en*e_k>>N@XghGZ%OIw~U-gay9ms5FacGEG9F7q+lP0*R<^4`O0W); zC4@z#1~cB-Cv9zQET*f|$Poscl>LOLvDu>E&m~D-BTseE?3+|>ly9NmO#if(iWXb! z;h(f^+WU&UGG?azXN4W_1aQZ~PVOT}+Dgi~{Mo#Amq$K`@eks+7{*j1BVPRCNmNd|rg0mZI#0Z1Me`fcK$EzPm?*Bp)O1A`c? z6%$90D-el&340QHVcLW^1Z0zTXT7s7q00WemTZmB7%p!4p+SN5UzE1c`)m5t>WhEQyQxSBRXzL^jZw6@rZ z#4>7CZ6mB*+p-58PtaY~VP5{V@PZg9D6qt>XM28leEp0DjT}ioP*H{s4@s BTE74Q diff --git a/openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-zbdonglee-460800.gbl b/openthread_border_router/rootfs/root/ot-rcp-v2.4.2.0-zbdonglee-460800.gbl deleted file mode 100644 index 6b62389913f7d835d827078eb7e6e431d11fc735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107884 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%0D1plgOKe^5+bQS&(-I!~{s*8azee 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

Ixi=nGm(k_xI} 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 kiBq@j@6Y`I{2BpAQxhi<1g&T=)lu!$(bL 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 aBAn)uRmhUc`urt9xWsgdH$Q%^`+os#?P_QM literal 0 HcmV?d00001 diff --git a/silabs_flasher/rootfs/root/yellow_ncp-uart-hw_7.4.3.0.gbl b/silabs_flasher/rootfs/root/yellow_ncp-uart-hw_7.4.3.0.gbl new file mode 100644 index 0000000000000000000000000000000000000000..faaecbe808a26b886b23194445243eca3dd85e37 GIT binary patch literal 240388 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%0D{$B4fsk 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