Веб-приложение для мониторинга Tuya / Smart Life кнопок через Tuya Cloud API.
Приложение отслеживает нажатия кнопок переговорных комнат, показывает уведомления в веб-интерфейсе, проигрывает звуковой сигнал и сохраняет историю нажатий.
TUYA_APP_UIDsecret.envmkdir -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_ACCESS_ID | Access ID из Tuya IoT Cloud |
TUYA_ACCESS_SECRET | Access Secret из Tuya IoT Cloud |
TUYA_ENDPOINT | Региональный endpoint Tuya |
TUYA_APP_UID | UID аккаунта Smart Life / Tuya |
TUYA_APP_SCHEMA | App 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Все секреты передаются только через:
--env-file secret.env
peregovorki/
├── secret.env
├── data/
│ └── press_history.db
├── logs/
│ ├── app.log
│ ├── error.log
│ └── access.log
└── sound/
└── 1.mp3
Content type
Image
Digest
sha256:ed8720091…
Size
57 MB
Last updated
4 months ago
docker pull bedmah/peregovorki