GitHub - https://github.com/Bedmah/PereHomeLab
691
Веб-мониторинг кнопок переговорок через Home Assistant.
PereHomeLab подключается к Home Assistant, отслеживает кнопки переговорок, показывает нажатия в веб-интерфейсе, проигрывает звуковые уведомления, сохраняет историю, отображает заряд батарей и позволяет управлять регионами через админку.
/spb, /mskСоздайте папку проекта:
mkdir -p /docker/perehomelab
cd /docker/perehomelab
mkdir -p data logs sound app
Создайте файл secret.env:
HA_URL=http://host.docker.internal:8123
HA_TOKEN=your_home_assistant_long_lived_token
HA_AUTO_DISCOVER=true
HA_ENTITY_IDS=
HA_ENTITY_DOMAIN=binary_sensor
HA_DEVICE_CLASS=safety
HA_ENTITY_ID_SUFFIX=
HA_TRIGGER_FROM=
HA_TRIGGER_TO=on
HA_RECONNECT_SECONDS=5
HA_REFRESH_ENTITIES_ON_RECONNECT=false
HA_SYNC_HISTORY_HOURS=24
BUTTON_SOUND=sound/1.mp3
SOUND_PLAY_SECONDS=25
ACK_BUTTON_TEXT=ФА
HISTORY_DB_PATH=data/press_history.db
HISTORY_DEDUP_SECONDS=3
ADMIN_USERNAME=admin
ADMIN_PASSWORD=change_me
APP_DOWNLOAD_DIR=/download-app
APP_DOWNLOAD_FILENAME=PereHomeLabKiosk.exe
Положите звук уведомления в папку:
sound/
Если нужно, положите Windows kiosk-приложение для скачивания в папку:
app/PereHomeLabKiosk.exe
Запустите контейнер:
docker run -d \
--name perehomelab \
--restart unless-stopped \
-p 80:8000 \
--env-file secret.env \
--add-host host.docker.internal:host-gateway \
-v "$(pwd)/data:/app/data" \
-v "$(pwd)/logs:/app/logs" \
-v "$(pwd)/app:/download-app" \
-v "$(pwd)/sound:/app/sound" \
bedmah/perehomelab:0.0.9
Откройте веб-интерфейс:
http://SERVER_IP/
Админка:
http://SERVER_IP/admin
Адрес Home Assistant указывается в HA_URL.
Если Home Assistant на этом же сервере, но в другом контейнере:
HA_URL=http://host.docker.internal:8123
Если Home Assistant на другой машине:
HA_URL=http://192.168.1.50:8123
Если Home Assistant в одной Docker-сети с этим контейнером:
HA_URL=http://homeassistant:8123
Токен:
HA_TOKEN=your_home_assistant_long_lived_token
Нужен долгоживущий токен Home Assistant.
Автоматический поиск кнопок:
HA_AUTO_DISCOVER=true
HA_ENTITY_DOMAIN=binary_sensor
HA_DEVICE_CLASS=safety
Сервис ищет сущности Home Assistant типа binary_sensor с device_class: safety.
Если нужно указать кнопки вручную:
HA_AUTO_DISCOVER=false
HA_ENTITY_IDS=binary_sensor.button_1_safety,binary_sensor.button_2_safety
Регионы настраиваются в админке.
Для каждого региона можно указать:
/spbНа странице "Все" отображаются нажатия из всех регионов, а в уведомлениях видно, из какого региона пришёл вызов.
Звуки хранятся в папке:
sound/
Папка подключается в контейнер как volume, поэтому загруженные через админку звуки сохраняются после пересоздания контейнера.
Громкость регулируется в веб-интерфейсе. По умолчанию 100%, после изменения сохраняется в браузере.
История хранится в SQLite:
HISTORY_DB_PATH=data/press_history.db
Папка data/ подключается как volume, поэтому история сохраняется после пересоздания контейнера.
Защита от дублей:
HISTORY_DEDUP_SECONDS=3
Синхронизация истории при запуске:
HA_SYNC_HISTORY_HOURS=24
Также историю можно подтянуть вручную из админки по конкретному региону.
Веб-интерфейс может отдавать Windows-приложение для открытия мониторинга в отдельном kiosk-окне.
Положите файл сюда:
app/PereHomeLabKiosk.exe
В secret.env укажите:
APP_DOWNLOAD_DIR=/download-app
APP_DOWNLOAD_FILENAME=PereHomeLabKiosk.exe
Скачать приложение можно из веб-интерфейса по кнопке или напрямую:
http://SERVER_IP/download-app
docker stop perehomelab
docker rm perehomelab
docker pull bedmah/perehomelab:0.0.9
Затем снова выполните команду docker run.
Данные сохраняются в папках:
data/
logs/
sound/
app/
Статус:
curl http://localhost/api/status
Диагностика:
curl http://localhost/api/diagnostics
Батареи:
curl http://localhost/api/batteries
История:
curl http://localhost/api/history
data, logs, sound, app лучше всегда подключать как volume.sound должна быть подключена без :ro.Content type
Image
Digest
sha256:363958f68…
Size
54.2 MB
Last updated
about 2 months ago
docker pull bedmah/perehomelab