Files
haos-hacs-integration-media…/custom_components/remote_media_player/translations/ru.json
T
alexei.dolgolyov 97c1784ad4 feat(client): v0.3.0 server compat — WS subprotocol auth, 429 retry, HTTPS, X-Request-ID
Aligns the integration with the four wire-level changes shipped in
media-server v0.3.0/0.3.1 without breaking back-compat with older
server versions or pre-existing config entries.

- WebSocket auth via Sec-WebSocket-Protocol: media-server.token.<T>
  (preferred by server v0.3.0+). The ?token= query is still sent so
  older servers and unauthenticated mode both keep working — aiohttp
  completes the handshake even when the server doesn't echo the
  subprotocol back.
- 429 Too Many Requests surfaced as MediaServerRateLimitError with
  Retry-After parsed; execute_script() sleeps min(retry_after, 30)
  and retries once before falling through to the caller.
- Optional HTTPS/WSS (CONF_USE_SSL) + optional certificate verification
  toggle (CONF_VERIFY_SSL) wired through the config flow, client, and
  WebSocket. Defaults preserve http+verified behaviour, so existing
  config entries are unchanged.
- X-Request-ID header (uuid4 hex) on every HTTP call so HA-side issues
  can be cross-referenced with the server's access/audit logs. The
  format matches the server's ^[A-Za-z0-9._-]{1,128}\$ allow-list so
  the id is preserved verbatim instead of being replaced server-side.

Bumps manifest version to 0.3.3.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 11:37:59 +03:00

104 lines
4.9 KiB
JSON

{
"config": {
"step": {
"user": {
"title": "Подключение к Media Server",
"description": "Введите данные для подключения к Media Server.",
"data": {
"host": "Хост",
"port": "Порт",
"token": "API токен",
"use_ssl": "Использовать HTTPS",
"verify_ssl": "Проверять TLS-сертификат",
"name": "Название",
"poll_interval": "Интервал опроса"
},
"data_description": {
"host": "Имя хоста или IP-адрес Media Server",
"port": "Номер порта (по умолчанию: 8765)",
"token": "Токен аутентификации из конфигурации сервера. Оставьте пустым, если сервер работает без аутентификации.",
"use_ssl": "Подключаться к серверу по HTTPS/WSS. Сервер должен быть настроен с параметрами ssl_certfile и ssl_keyfile в config.yaml.",
"verify_ssl": "Проверять цепочку TLS-сертификатов сервера. Отключайте только если сервер использует самоподписанный сертификат в доверенной локальной сети.",
"name": "Отображаемое имя медиаплеера",
"poll_interval": "Частота опроса статуса (в секундах)"
}
}
},
"error": {
"cannot_connect": "Не удалось подключиться к Media Server. Проверьте хост и порт.",
"invalid_auth": "Неверный API токен. Проверьте токен.",
"unknown": "Произошла непредвиденная ошибка."
},
"abort": {
"already_configured": "Этот Media Server уже настроен."
}
},
"options": {
"step": {
"init": {
"title": "Настройки",
"data": {
"poll_interval": "Интервал опроса"
},
"data_description": {
"poll_interval": "Частота опроса статуса (в секундах)"
}
}
}
},
"entity": {
"binary_sensor": {
"primary_display": { "name": "Основной дисплей" },
"power_control_supported": { "name": "Поддержка управления питанием" },
"fullscreen": { "name": "Полноэкранный режим" },
"minimized": { "name": "Свёрнуто" }
},
"sensor": {
"resolution": { "name": "Разрешение" },
"foreground_process": { "name": "Активный процесс" },
"window_title": { "name": "Заголовок окна" },
"pid": { "name": "PID" },
"foreground_monitor": { "name": "Монитор" },
"process_started": { "name": "Запуск процесса" }
},
"number": {
"brightness": { "name": "Яркость" },
"contrast": { "name": "Контрастность" }
},
"switch": {
"power": { "name": "Питание" }
},
"select": {
"input_source": { "name": "Источник сигнала" },
"color_preset": { "name": "Цветовая температура" },
"picture_mode": { "name": "Режим изображения" }
}
},
"services": {
"execute_script": {
"name": "Выполнить скрипт",
"description": "Выполнить предопределённый скрипт на одном или нескольких хабах Remote Media Player. Если цель не выбрана, скрипт выполнится на всех настроенных хабах.",
"fields": {
"script_name": {
"name": "Имя скрипта",
"description": "Имя скрипта для выполнения (из конфигурации сервера)"
},
"params": {
"name": "Параметры",
"description": "Необязательные именованные параметры для скрипта (проверяются по схеме скрипта)"
}
}
},
"play_media_file": {
"name": "Воспроизвести медиафайл",
"description": "Запустить воспроизведение локального медиафайла на одном или нескольких хабах Remote Media Player. Если цель не выбрана, воспроизведение запустится на всех настроенных хабах.",
"fields": {
"file_path": {
"name": "Путь к файлу",
"description": "Абсолютный путь к медиафайлу на целевом хабе"
}
}
}
}
}