Sign inSign up

bedmah/peregovorki

By bedmah

•Updated 4 months ago

Image
0

460

bedmah/peregovorki repository overview

⁠Peregovorki — монитор кнопок Tuya для переговорок

Веб-приложение для мониторинга Tuya / Smart Life кнопок через Tuya Cloud API.

Приложение отслеживает нажатия кнопок переговорных комнат, показывает уведомления в веб-интерфейсе, проигрывает звуковой сигнал и сохраняет историю нажатий.

⁠Возможности

  • Автоматическое обнаружение кнопок Tuya по TUYA_APP_UID
  • Отображение нажатий в веб-интерфейсе
  • Всплывающие уведомления
  • Звуковой сигнал с повтором по таймеру
  • История нажатий в SQLite
  • Логи приложения в отдельной папке
  • Настройки через secret.env
  • Подходит для запуска на ТВ / информационном экране

⁠Быстрый запуск

mkdir -p peregovorki
cd peregovorki
mkdir -p data logs sound
nano secret.env

Пример secret.env:

TUYA_ACCESS_ID=your_access_id
TUYA_ACCESS_SECRET=your_access_secret
TUYA_ENDPOINT=https://openapi.tuyaeu.com

TUYA_APP_UID=your_app_account_uid
TUYA_APP_SCHEMA=

AUTO_DISCOVER_BUTTONS=true
BUTTON_DEVICE_IDS=

BUTTON_STATUS_CODE=sos_state
BUTTON_TRIGGER_VALUE=True

BUTTON_SOUND=sound/1.mp3
SOUND_PLAY_SECONDS=25
ACK_BUTTON_TEXT=ФА

HISTORY_DB_PATH=data/press_history.db

POLL_INTERVAL_SECONDS=0.2
DISCOVERY_PAGE_SIZE=100
ALERT_DEDUP_SECONDS=1.0
SYNC_MISSED_ON_START=true
SYNC_LOOKBACK_HOURS=24

Положите звук уведомления:

cp your_sound.mp3 sound/1.mp3

Запустите контейнер:

docker run -d --name peregovorki --restart unless-stopped -p 8000:8000 --env-file secret.env -v "$(pwd)/data:/app/data" -v "$(pwd)/logs:/app/logs" -v "$(pwd)/sound:/app/sound:ro" bedmah/peregovorki:latest

Откройте:

http://localhost:8000

⁠Команды

Остановить:

docker stop peregovorki

Запустить снова:

docker start peregovorki

Перезапустить:

docker restart peregovorki

Удалить контейнер:

docker rm -f peregovorki

Обновить образ:

docker pull bedmah/peregovorki:latest
docker rm -f peregovorki
docker run -d --name peregovorki --restart unless-stopped -p 8000:8000 --env-file secret.env -v "$(pwd)/data:/app/data" -v "$(pwd)/logs:/app/logs" -v "$(pwd)/sound:/app/sound:ro" bedmah/peregovorki:latest

⁠Настройки

⁠Tuya
ПеременнаяОписание
TUYA_ACCESS_IDAccess ID из Tuya IoT Cloud
TUYA_ACCESS_SECRETAccess Secret из Tuya IoT Cloud
TUYA_ENDPOINTРегиональный endpoint Tuya
TUYA_APP_UIDUID аккаунта Smart Life / Tuya
TUYA_APP_SCHEMAApp Schema, если используется
AUTO_DISCOVER_BUTTONSАвтоматически искать кнопки
BUTTON_DEVICE_IDSСписок Device ID через запятую, если автообнаружение выключено
⁠Кнопки
ПеременнаяОписание
BUTTON_STATUS_CODEКод статуса кнопки, обычно sos_state
BUTTON_TRIGGER_VALUEЗначение нажатия, обычно True
POLL_INTERVAL_SECONDSЧастота опроса Tuya API
ALERT_DEDUP_SECONDSЗащита от дублей нажатий
⁠Звук
ПеременнаяОписание
BUTTON_SOUNDПуть к звуку внутри проекта
SOUND_PLAY_SECONDSСколько секунд проигрывать звук
ACK_BUTTON_TEXTТекст кнопки подтверждения

Если звук короче SOUND_PLAY_SECONDS, он повторяется по кругу до окончания таймера.

⁠История
ПеременнаяОписание
HISTORY_DB_PATHПуть к SQLite-базе истории
SYNC_MISSED_ON_STARTПодгружать пропущенные события после запуска
SYNC_LOOKBACK_HOURSЗа сколько часов искать пропущенные события

⁠Папки

data/
logs/
sound/

data — база истории:

data/press_history.db

logs — логи приложения:

logs/app.log
logs/error.log
logs/access.log

sound — звуки уведомлений:

sound/1.mp3

⁠Логи

Логи контейнера:

docker logs -f peregovorki

Логи приложения:

tail -f logs/app.log
tail -f logs/error.log
tail -f logs/access.log

⁠Проверка

docker ps
curl http://localhost:8000/api/status

⁠Звук в браузере

Современные браузеры блокируют автоматическое воспроизведение звука без действия пользователя.

При открытии страницы нужно нажать кнопку включения уведомлений. После этого звуковые уведомления будут работать.

Для ТВ / kiosk-режима можно запускать браузер с разрешением autoplay:

chromium-browser --kiosk --autoplay-policy=no-user-gesture-required http://localhost:8000

⁠Безопасность

Не публикуйте файл secret.env.

Docker-образ не содержит:

  • secret.env
  • Access ID
  • Access Secret
  • базу данных истории
  • логи приложения

Все секреты передаются только через:

--env-file secret.env

⁠Пример структуры

peregovorki/
├── secret.env
├── data/
│   └── press_history.db
├── logs/
│   ├── app.log
│   ├── error.log
│   └── access.log
└── sound/
    └── 1.mp3

Tag summary

Content type

Image

Digest

sha256:ed8720091…

Size

57 MB

Last updated

4 months ago

docker pull bedmah/peregovorki