wallpanell/README.md
2026-03-25 13:27:13 +03:00

143 lines
3.6 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Wall Panel
Таблет-ориентированная панель для Home Assistant на `PHP + HTML + JS`.
Основной HA-способ запуска теперь `Home Assistant Add-on` с ingress и отдельным портом.
## Запуск
```bash
php -S 0.0.0.0:8080
```
Откройте `http://localhost:8080`.
## Конфиг
Основной файл:
- [`config/config.json`](config/config.json)
В него кладутся:
- `home_assistant.base_url`
- `home_assistant.token`
- `camera.rtsp_url`
- `camera.stream_url`
- `camera.poster_url`
- `rooms`
Если `base_url` и `token` пустые, панель работает в demo mode с тестовыми карточками.
## Home Assistant Add-on
Для HA теперь рекомендован add-on-режим:
- запускает тот же PHP-интерфейс внутри Supervisor;
- открывается через ingress;
- доступен через отдельный порт;
- хранит конфиг в add-on volume;
- не зависит от `custom_components`.
Файлы add-on лежат в папке:
- [`wall_panel/config.yaml`](/Volumes/web/wallpanell/wall_panel/config.yaml)
- [`wall_panel/Dockerfile`](/Volumes/web/wallpanell/wall_panel/Dockerfile)
- [`wall_panel/run.sh`](/Volumes/web/wallpanell/wall_panel/run.sh)
- [`repository.yaml`](/Volumes/web/wallpanell/repository.yaml)
### Как использовать
1. Добавьте Git URL репозитория в Home Assistant как add-on repository.
2. Установите add-on.
3. Запустите его.
4. Откройте панель через ingress или через проброшенный порт `8099/tcp`.
### Конфигурация
Add-on использует persistent config file:
- `/config/config.json` внутри контейнера
Этот файл является runtime source of truth для панели в HA-режиме и переживает рестарт add-on.
### Старый embed-режим
Отдельный PHP-доступ по-прежнему работает:
`http://YOUR_PANEL_HOST/index.php?embed=1`
Это полезно, если вы запускаете панель вне HA или хотите iframe-карточку вручную.
## Popup камеры
Для браузера нужен не прямой `rtsp://`, а bridge, который отдаёт `HLS` или `WebRTC`.
Popup открывается через endpoint:
```bash
POST /api.php?action=popup
{
"sensor_entity_id": "binary_sensor.doorbell_all_occupancy",
"state": "on"
}
```
Закрытие:
```bash
POST /api.php?action=popup
{
"sensor_entity_id": "binary_sensor.doorbell_all_occupancy",
"state": "off"
}
```
## Room overrides
Для комнаты можно сохранять overrides через:
```bash
POST /api.php?action=save-entity-override
{
"room_id": "living_room",
"entity_id": "light.living_room_main",
"visible": true,
"order": 10,
"card_type": "toggle",
"title": "Основной свет",
"icon": "mdi:ceiling-light"
}
```
## Empty room slots
Для desktop-раскладки можно создавать пустые слоты:
```bash
POST /api.php?action=create-room-layout-item
{
"room_id": "living_room"
}
```
Перемещение:
```bash
POST /api.php?action=save-room-layout-item
{
"room_id": "living_room",
"layout_item_id": "slot_xxx",
"order": 120
}
```
Удаление:
```bash
POST /api.php?action=delete-room-layout-item
{
"room_id": "living_room",
"layout_item_id": "slot_xxx"
}
```