diff --git a/supervisor/addons/addon.py b/supervisor/addons/addon.py index 03a2ba3b0..80a4efbb7 100644 --- a/supervisor/addons/addon.py +++ b/supervisor/addons/addon.py @@ -393,6 +393,11 @@ class Addon(AddonModel): input_profile=self.audio_input, output_profile=self.audio_output ) + # Cleanup wrong maps + if self.path_pulse.is_dir(): + shutil.rmtree(self.path_pulse, ignore_errors=True) + + # Write pulse config try: with self.path_pulse.open("w") as config_file: config_file.write(pulse_config) @@ -400,11 +405,10 @@ class Addon(AddonModel): _LOGGER.error( "Add-on %s can't write pulse/client.config: %s", self.slug, err ) - raise AddonsError() - - _LOGGER.debug( - "Add-on %s write pulse/client.config: %s", self.slug, self.path_pulse - ) + else: + _LOGGER.debug( + "Add-on %s write pulse/client.config: %s", self.slug, self.path_pulse + ) async def install_apparmor(self) -> None: """Install or Update AppArmor profile for Add-on.""" diff --git a/supervisor/docker/homeassistant.py b/supervisor/docker/homeassistant.py index b5d55f100..3e0eb2c89 100644 --- a/supervisor/docker/homeassistant.py +++ b/supervisor/docker/homeassistant.py @@ -135,7 +135,17 @@ class DockerHomeAssistant(DockerInterface): detach=True, stdout=True, stderr=True, - volumes=self.volumes, + volumes={ + str(self.sys_config.path_extern_homeassistant): { + "bind": "/config", + "mode": "rw", + }, + str(self.sys_config.path_extern_ssl): {"bind": "/ssl", "mode": "ro"}, + str(self.sys_config.path_extern_share): { + "bind": "/share", + "mode": "ro", + }, + }, environment={ENV_TIME: self.sys_timezone}, ) diff --git a/supervisor/homeassistant.py b/supervisor/homeassistant.py index d338127fb..fae77c2b1 100644 --- a/supervisor/homeassistant.py +++ b/supervisor/homeassistant.py @@ -8,6 +8,7 @@ import os from pathlib import Path import re import secrets +import shutil import time from typing import Any, AsyncContextManager, Awaitable, Dict, Optional from uuid import UUID @@ -237,12 +238,12 @@ class HomeAssistant(JsonConfig, CoreSysAttributes): @property def path_pulse(self): """Return path to asound config.""" - return Path(self.sys_config.path_tmp, f"homeassistant_pulse") + return Path(self.sys_config.path_tmp, "homeassistant_pulse") @property def path_extern_pulse(self): """Return path to asound config for Docker.""" - return Path(self.sys_config.path_extern_tmp, f"homeassistant_pulse") + return Path(self.sys_config.path_extern_tmp, "homeassistant_pulse") @property def audio_output(self) -> Optional[str]: @@ -644,6 +645,11 @@ class HomeAssistant(JsonConfig, CoreSysAttributes): input_profile=self.audio_input, output_profile=self.audio_output ) + # Cleanup wrong maps + if self.path_pulse.is_dir(): + shutil.rmtree(self.path_pulse, ignore_errors=True) + + # Write pulse config try: with self.path_pulse.open("w") as config_file: config_file.write(pulse_config)