From c121261f3d40c1bb74a6472867f8a388a5036dfc Mon Sep 17 00:00:00 2001 From: sirmrak Date: Sun, 28 Jun 2026 17:31:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20media=20path:=20=D1=83=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=20=D0=B4=D0=B2=D0=BE=D0=B9=D0=BD=D0=BE=D0=B5?= =?UTF-8?q?=20media,=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20HA=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit — Default archive_path: 'media/RTKey' → 'RTKey' (без дублирования /media/media/) — Fallback: '/media' → hass.config.path('media') (HA API вместо hardcoded) — Поддержка ключа 'local' в media_dirs (если 'media' отсутствует) — Обновлены подсказки в переводах en/ru --- custom_components/rtkey/__init__.py | 20 +++++++++++++++----- custom_components/rtkey/translations/en.json | 4 ++-- custom_components/rtkey/translations/ru.json | 4 ++-- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/custom_components/rtkey/__init__.py b/custom_components/rtkey/__init__.py index 5eaa33a..b9766bd 100644 --- a/custom_components/rtkey/__init__.py +++ b/custom_components/rtkey/__init__.py @@ -112,7 +112,7 @@ OPTIONS_SCHEMA = { ) ), # Настройки локального хранения - vol.Optional(CONF_ARCHIVE_PATH, default="media/RTKey"): str, + vol.Optional(CONF_ARCHIVE_PATH, default="RTKey"): str, vol.Optional(CONF_ARCHIVE_COPIES, default=5): selector.NumberSelector( selector.NumberSelectorConfig( min=0, max=10, step=1, @@ -177,7 +177,7 @@ class RTKeyCamerasApi: self.event_sensor_enabled = entry.options.get(CONF_EVENT_SENSOR_ENABLED, True) # Настройки локального хранения - self.archive_path = entry.options.get(CONF_ARCHIVE_PATH, "media/RTKey") + self.archive_path = entry.options.get(CONF_ARCHIVE_PATH, "RTKey") self.archive_copies = entry.options.get(CONF_ARCHIVE_COPIES, 5) self.archive_duration = entry.options.get(CONF_ARCHIVE_DURATION, 30) self.screenshot_copies = entry.options.get(CONF_SCREENSHOT_COPIES, 10) @@ -254,10 +254,20 @@ class RTKeyCamerasApi: # === Медиа-пути === def _get_media_base_path(self) -> Path: + """Получаем базовый путь для медиафайлов. + + HA default media folder — hass.config.path("media"). + Если user configured media_dirs в configuration.yaml — используем + ключ 'media' (default) или 'local' если 'media' отсутствует. + """ media_dirs = self.hass.config.media_dirs - if media_dirs and "media" in media_dirs: - return Path(media_dirs["media"]) - return Path("/media") + if media_dirs: + if "media" in media_dirs: + return Path(media_dirs["media"]) + if "local" in media_dirs: + return Path(media_dirs["local"]) + + return Path(self.hass.config.path("media")) def _get_archive_dir(self, intercom_id: str) -> Path: return self._get_media_base_path() / self.archive_path / "archives" / intercom_id diff --git a/custom_components/rtkey/translations/en.json b/custom_components/rtkey/translations/en.json index 85fab83..71adc97 100644 --- a/custom_components/rtkey/translations/en.json +++ b/custom_components/rtkey/translations/en.json @@ -24,7 +24,7 @@ "data_description": { "token": "Get token via browser developer tools (F12) on key.rt.ru", "camera_image_refresh_interval": "0 — disable periodic screenshots", - "archive_path": "Relative to /media/ folder (e.g.: RTKey)", + "archive_path": "Subfolder name inside HA media folder (e.g.: RTKey)", "archive_copies": "Maximum number of saved videos per intercom", "archive_duration": "Duration of archived video fragment per event", "screenshot_copies": "Maximum number of saved screenshots per intercom" @@ -57,7 +57,7 @@ "data_description": { "token": "Get token via browser developer tools (F12) on key.rt.ru", "camera_image_refresh_interval": "0 — disable periodic screenshots", - "archive_path": "Relative to /media/ folder (e.g.: RTKey)", + "archive_path": "Subfolder name inside HA media folder (e.g.: RTKey)", "archive_copies": "Maximum number of saved videos per intercom", "archive_duration": "Duration of archived video fragment per event", "screenshot_copies": "Maximum number of saved screenshots per intercom" diff --git a/custom_components/rtkey/translations/ru.json b/custom_components/rtkey/translations/ru.json index 2fb7f62..7b87288 100644 --- a/custom_components/rtkey/translations/ru.json +++ b/custom_components/rtkey/translations/ru.json @@ -24,7 +24,7 @@ "data_description": { "token": "Получите токен в браузере через инструменты разработчика (F12) на сайте key.rt.ru", "camera_image_refresh_interval": "0 — отключить периодические скриншоты", - "archive_path": "Относительно папки /media/ (например: RTKey)", + "archive_path": "Имя подпапки внутри медиа-папки HA (например: RTKey)", "archive_copies": "Максимальное количество сохранённых видео на домофон", "archive_duration": "Длительность фрагмента видео архива на событие", "screenshot_copies": "Максимальное количество сохранённых скриншотов на домофон" @@ -57,7 +57,7 @@ "data_description": { "token": "Получите токен в браузере через инструменты разработчика (F12) на сайте key.rt.ru", "camera_image_refresh_interval": "0 — отключить периодические скриншоты", - "archive_path": "Относительно папки /media/ (например: RTKey)", + "archive_path": "Имя подпапки внутри медиа-папки HA (например: RTKey)", "archive_copies": "Максимальное количество сохранённых видео на домофон", "archive_duration": "Длительность фрагмента видео архива на событие", "screenshot_copies": "Максимальное количество сохранённых скриншотов на домофон"