wallpanell/README.md
2026-03-25 14:00:06 +03:00

168 lines
4.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:
- `/homeassistant/wall_panel/config.json` внутри контейнера
- на хосте Home Assistant это будет `/config/wall_panel/config.json`
Этот файл является runtime source of truth для панели в HA-режиме и переживает рестарт add-on.
Настройки, внесённые через add-on UI Home Assistant, используются только как bootstrap при первом создании файла. Дальше редактируйте именно этот файл.
Частые настройки можно менять прямо из UI add-on в Home Assistant:
- `app.title`
- `app.poll_interval_ms`
- `app.main_room_name`
- `app.main_room_icon`
- `app.edit_mode`
- `app.battery_history_hours`
- `home_assistant.base_url`
- `home_assistant.token`
- `home_assistant.verify_ssl`
- `home_assistant.weather_entity_id`
- `camera.rtsp_url`
- `camera.stream_url`
- `camera.stream_mode`
- `camera.poster_url`
- `camera.popup_timeout_minutes`
Сложные структуры, вроде `rooms`, по-прежнему удобнее держать в JSON.
Внутренний runtime cache add-on хранит в `/data/wall_panel`.
### Старый 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"
}
```