Исправление media path: убрано двойное media, правильный HA API
— Default archive_path: 'media/RTKey' → 'RTKey' (без дублирования /media/media/)
— Fallback: '/media' → hass.config.path('media') (HA API вместо hardcoded)
— Поддержка ключа 'local' в media_dirs (если 'media' отсутствует)
— Обновлены подсказки в переводах en/ru
This commit is contained in:
@@ -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(
|
vol.Optional(CONF_ARCHIVE_COPIES, default=5): selector.NumberSelector(
|
||||||
selector.NumberSelectorConfig(
|
selector.NumberSelectorConfig(
|
||||||
min=0, max=10, step=1,
|
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.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_copies = entry.options.get(CONF_ARCHIVE_COPIES, 5)
|
||||||
self.archive_duration = entry.options.get(CONF_ARCHIVE_DURATION, 30)
|
self.archive_duration = entry.options.get(CONF_ARCHIVE_DURATION, 30)
|
||||||
self.screenshot_copies = entry.options.get(CONF_SCREENSHOT_COPIES, 10)
|
self.screenshot_copies = entry.options.get(CONF_SCREENSHOT_COPIES, 10)
|
||||||
@@ -254,10 +254,20 @@ class RTKeyCamerasApi:
|
|||||||
# === Медиа-пути ===
|
# === Медиа-пути ===
|
||||||
|
|
||||||
def _get_media_base_path(self) -> Path:
|
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
|
media_dirs = self.hass.config.media_dirs
|
||||||
if media_dirs and "media" in media_dirs:
|
if media_dirs:
|
||||||
|
if "media" in media_dirs:
|
||||||
return Path(media_dirs["media"])
|
return Path(media_dirs["media"])
|
||||||
return Path("/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:
|
def _get_archive_dir(self, intercom_id: str) -> Path:
|
||||||
return self._get_media_base_path() / self.archive_path / "archives" / intercom_id
|
return self._get_media_base_path() / self.archive_path / "archives" / intercom_id
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
"data_description": {
|
"data_description": {
|
||||||
"token": "Get token via browser developer tools (F12) on key.rt.ru",
|
"token": "Get token via browser developer tools (F12) on key.rt.ru",
|
||||||
"camera_image_refresh_interval": "0 — disable periodic screenshots",
|
"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_copies": "Maximum number of saved videos per intercom",
|
||||||
"archive_duration": "Duration of archived video fragment per event",
|
"archive_duration": "Duration of archived video fragment per event",
|
||||||
"screenshot_copies": "Maximum number of saved screenshots per intercom"
|
"screenshot_copies": "Maximum number of saved screenshots per intercom"
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
"data_description": {
|
"data_description": {
|
||||||
"token": "Get token via browser developer tools (F12) on key.rt.ru",
|
"token": "Get token via browser developer tools (F12) on key.rt.ru",
|
||||||
"camera_image_refresh_interval": "0 — disable periodic screenshots",
|
"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_copies": "Maximum number of saved videos per intercom",
|
||||||
"archive_duration": "Duration of archived video fragment per event",
|
"archive_duration": "Duration of archived video fragment per event",
|
||||||
"screenshot_copies": "Maximum number of saved screenshots per intercom"
|
"screenshot_copies": "Maximum number of saved screenshots per intercom"
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
"data_description": {
|
"data_description": {
|
||||||
"token": "Получите токен в браузере через инструменты разработчика (F12) на сайте key.rt.ru",
|
"token": "Получите токен в браузере через инструменты разработчика (F12) на сайте key.rt.ru",
|
||||||
"camera_image_refresh_interval": "0 — отключить периодические скриншоты",
|
"camera_image_refresh_interval": "0 — отключить периодические скриншоты",
|
||||||
"archive_path": "Относительно папки /media/ (например: RTKey)",
|
"archive_path": "Имя подпапки внутри медиа-папки HA (например: RTKey)",
|
||||||
"archive_copies": "Максимальное количество сохранённых видео на домофон",
|
"archive_copies": "Максимальное количество сохранённых видео на домофон",
|
||||||
"archive_duration": "Длительность фрагмента видео архива на событие",
|
"archive_duration": "Длительность фрагмента видео архива на событие",
|
||||||
"screenshot_copies": "Максимальное количество сохранённых скриншотов на домофон"
|
"screenshot_copies": "Максимальное количество сохранённых скриншотов на домофон"
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
"data_description": {
|
"data_description": {
|
||||||
"token": "Получите токен в браузере через инструменты разработчика (F12) на сайте key.rt.ru",
|
"token": "Получите токен в браузере через инструменты разработчика (F12) на сайте key.rt.ru",
|
||||||
"camera_image_refresh_interval": "0 — отключить периодические скриншоты",
|
"camera_image_refresh_interval": "0 — отключить периодические скриншоты",
|
||||||
"archive_path": "Относительно папки /media/ (например: RTKey)",
|
"archive_path": "Имя подпапки внутри медиа-папки HA (например: RTKey)",
|
||||||
"archive_copies": "Максимальное количество сохранённых видео на домофон",
|
"archive_copies": "Максимальное количество сохранённых видео на домофон",
|
||||||
"archive_duration": "Длительность фрагмента видео архива на событие",
|
"archive_duration": "Длительность фрагмента видео архива на событие",
|
||||||
"screenshot_copies": "Максимальное количество сохранённых скриншотов на домофон"
|
"screenshot_copies": "Максимальное количество сохранённых скриншотов на домофон"
|
||||||
|
|||||||
Reference in New Issue
Block a user