| @eaDir | ||
| assets | ||
| config | ||
| custom_components/wall_panel | ||
| lib | ||
| storage | ||
| wall_panel | ||
| .dockerignore | ||
| .gitignore | ||
| api.php | ||
| Dockerfile | ||
| favicon.ico | ||
| index.php | ||
| README.md | ||
| repository.yaml | ||
| run.sh | ||
| wallpanell.code-workspace | ||
Wall Panel
Таблет-ориентированная панель для Home Assistant на PHP + HTML + JS.
Основной HA-способ запуска теперь Home Assistant Add-on с ingress и отдельным портом.
Запуск
php -S 0.0.0.0:8080
Откройте http://localhost:8080.
Конфиг
Основной файл:
В него кладутся:
home_assistant.base_urlhome_assistant.tokencamera.rtsp_urlcamera.stream_urlcamera.poster_urlrooms
Если base_url и token пустые, панель работает в demo mode с тестовыми карточками.
Home Assistant Add-on
Для HA теперь рекомендован add-on-режим:
- запускает тот же PHP-интерфейс внутри Supervisor;
- открывается через ingress;
- доступен через отдельный порт;
- хранит конфиг в add-on volume;
- не зависит от
custom_components.
Файлы add-on лежат в папке:
Как использовать
- Добавьте Git URL репозитория в Home Assistant как add-on repository.
- Установите add-on.
- Запустите его.
- Откройте панель через ingress или через проброшенный порт
8099/tcp.
Конфигурация
Add-on использует persistent config file:
/homeassistant/wall_panel/wall_panel_config.jsonвнутри контейнера- на хосте Home Assistant это будет
/config/wall_panel/wall_panel_config.json
Этот файл является runtime source of truth для панели в HA-режиме и переживает рестарт add-on.
Настройки, внесённые через add-on UI Home Assistant, используются только как bootstrap при первом создании файла. Дальше редактируйте именно этот файл.
Частые настройки можно менять прямо из UI add-on в Home Assistant:
app.titleapp.poll_interval_msapp.main_room_nameapp.main_room_iconapp.edit_modeapp.battery_history_hourshome_assistant.base_urlhome_assistant.tokenhome_assistant.verify_sslhome_assistant.weather_entity_idcamera.rtsp_urlcamera.stream_urlcamera.stream_modecamera.poster_urlcamera.popup_timeout_minutes
Сложные структуры, вроде rooms, по-прежнему удобнее держать в JSON.
Внутренний runtime cache add-on хранит в /data/wall_panel.
Если Home Assistant открыт по https://, custom component ждёт ingress URL add-on и встраивает его только после того, как add-on сам его зарегистрирует. Это убирает mixed content и не требует внешнего http://-доступа.
Старый embed-режим
Отдельный PHP-доступ по-прежнему работает:
http://YOUR_PANEL_HOST/index.php?embed=1
Это полезно, если вы запускаете панель вне HA или хотите iframe-карточку вручную.
Popup камеры
Для браузера нужен не прямой rtsp://, а bridge, который отдаёт HLS или WebRTC.
Popup открывается через endpoint:
POST /api.php?action=popup
{
"sensor_entity_id": "binary_sensor.doorbell_all_occupancy",
"state": "on"
}
Закрытие:
POST /api.php?action=popup
{
"sensor_entity_id": "binary_sensor.doorbell_all_occupancy",
"state": "off"
}
Room overrides
Для комнаты можно сохранять overrides через:
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-раскладки можно создавать пустые слоты:
POST /api.php?action=create-room-layout-item
{
"room_id": "living_room"
}
Перемещение:
POST /api.php?action=save-room-layout-item
{
"room_id": "living_room",
"layout_item_id": "slot_xxx",
"order": 120
}
Удаление:
POST /api.php?action=delete-room-layout-item
{
"room_id": "living_room",
"layout_item_id": "slot_xxx"
}