705616f8b0
One device per scene playlist (model "Scene Playlist"), each with: - a switch (start/stop; the server cycles one playlist at a time, so starting one stops any other) - a "Current Scene" sensor that resolves the active preset name from scene_presets while this playlist is cycling - an "Items" diagnostic sensor (configured scene count; no state_class) The coordinator reads scene_playlists plus the flat playlist_state from the /api/v1/snapshot payload and gains start_playlist()/stop_playlist(); __init__ registers and prunes per-playlist devices and reloads on playlist-id changes; the event listener also refreshes on the playlist_state_changed WS event. Shared device/lookup/running-state plumbing lives in a new LedGrabPlaylistEntity base (entity.py) used by both the switch and the sensors. Adds en/ru translation keys. Note: this also lands the in-progress coordinator migration from the per-request fan-out to the single /api/v1/snapshot poll that was already present in the working tree. Requires the led-grab server /api/v1/snapshot to emit scene_playlists + playlist_state (companion server change, tracked separately).
155 lines
4.1 KiB
JSON
155 lines
4.1 KiB
JSON
{
|
|
"config": {
|
|
"step": {
|
|
"user": {
|
|
"title": "Настройка LED Screen Controller",
|
|
"description": "Введите URL и API-ключ вашего сервера LED Screen Controller.",
|
|
"data": {
|
|
"server_name": "Имя сервера",
|
|
"server_url": "URL сервера",
|
|
"api_key": "API-ключ"
|
|
},
|
|
"data_description": {
|
|
"server_name": "Отображаемое имя сервера в Home Assistant",
|
|
"server_url": "URL сервера LED Screen Controller (например, http://192.168.1.100:8080)",
|
|
"api_key": "API-ключ из конфигурационного файла сервера"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"cannot_connect": "Не удалось подключиться к серверу.",
|
|
"invalid_api_key": "Неверный API-ключ.",
|
|
"unknown": "Произошла непредвиденная ошибка."
|
|
},
|
|
"abort": {
|
|
"already_configured": "Этот сервер уже настроен."
|
|
}
|
|
},
|
|
"entity": {
|
|
"button": {
|
|
"activate_scene": {
|
|
"name": "{scene_name}"
|
|
},
|
|
"sync_clock_reset": {
|
|
"name": "Сброс"
|
|
}
|
|
},
|
|
"light": {
|
|
"api_input_light": {
|
|
"name": "Подсветка"
|
|
}
|
|
},
|
|
"switch": {
|
|
"processing": {
|
|
"name": "Обработка"
|
|
},
|
|
"sync_clock_running": {
|
|
"name": "Активно"
|
|
},
|
|
"playlist_active": {
|
|
"name": "Активно"
|
|
}
|
|
},
|
|
"sensor": {
|
|
"fps": {
|
|
"name": "FPS"
|
|
},
|
|
"status": {
|
|
"name": "Статус",
|
|
"state": {
|
|
"processing": "Обработка",
|
|
"idle": "Ожидание",
|
|
"error": "Ошибка",
|
|
"unavailable": "Недоступен"
|
|
}
|
|
},
|
|
"mapped_lights": {
|
|
"name": "Привязанные светильники"
|
|
},
|
|
"sync_clock_elapsed": {
|
|
"name": "Прошло времени"
|
|
},
|
|
"playlist_current_scene": {
|
|
"name": "Текущая сцена"
|
|
},
|
|
"playlist_items": {
|
|
"name": "Сцены"
|
|
},
|
|
"server_cpu_percent": {
|
|
"name": "Загрузка CPU"
|
|
},
|
|
"server_ram_percent": {
|
|
"name": "Загрузка ОЗУ"
|
|
},
|
|
"server_app_cpu_percent": {
|
|
"name": "CPU приложения"
|
|
},
|
|
"server_app_ram": {
|
|
"name": "Память приложения"
|
|
},
|
|
"server_gpu_utilization": {
|
|
"name": "Загрузка GPU"
|
|
},
|
|
"server_gpu_temp": {
|
|
"name": "Температура GPU"
|
|
},
|
|
"server_cpu_temp": {
|
|
"name": "Температура CPU"
|
|
},
|
|
"server_battery": {
|
|
"name": "Батарея"
|
|
},
|
|
"server_last_restart": {
|
|
"name": "Последний запуск"
|
|
},
|
|
"server_version": {
|
|
"name": "Версия сервера"
|
|
}
|
|
},
|
|
"number": {
|
|
"brightness": {
|
|
"name": "Яркость"
|
|
},
|
|
"ha_light_update_rate": {
|
|
"name": "Частота обновления"
|
|
},
|
|
"ha_light_transition": {
|
|
"name": "Переход"
|
|
},
|
|
"ha_light_min_brightness": {
|
|
"name": "Мин. яркость"
|
|
},
|
|
"ha_light_color_tolerance": {
|
|
"name": "Допуск цвета"
|
|
},
|
|
"api_input_timeout": {
|
|
"name": "Таймаут подмены"
|
|
},
|
|
"sync_clock_speed": {
|
|
"name": "Скорость"
|
|
}
|
|
},
|
|
"select": {
|
|
"color_strip_source": {
|
|
"name": "Источник цветовой полосы"
|
|
},
|
|
"brightness_source": {
|
|
"name": "Источник яркости"
|
|
},
|
|
"api_input_interpolation": {
|
|
"name": "Интерполяция",
|
|
"state": {
|
|
"none": "Нет",
|
|
"linear": "Линейная",
|
|
"nearest": "Ближайший"
|
|
}
|
|
}
|
|
},
|
|
"update": {
|
|
"server_update": {
|
|
"name": "Обновление сервера"
|
|
}
|
|
}
|
|
}
|
|
}
|