Устройство: Tuya Smart Zigbee датчик (модель: ZY-ZTH02 / TS0201)
Без кнопок. Включение в режим сопряжения — через двойную вставку батарейки.
~/zigbee2mqtt/data/configuration.yaml
permit_join: true
cd ~/zigbee2mqtt && npm start
Device '0xa4c1...' joined
permit_join: false
В веб-интерфейсе (порт 8080) появилось устройство:
Статус "Доступность: Выключен" — норма (датчик на батарейке, спит между отправками).
Выполнить:
mosquitto_sub -h localhost -u iotuser -P 123456 -t "zigbee2mqtt/#" -v
Пример вывода:
zigbee2mqtt/0xa4c138ab3129730c {"temperature":29.82,"humidity":36.82,"battery":100}
Создан скрипт ~/mqtt_to_mysql.py
, который:
zigbee2mqtt/#
sensor_data
Создан systemd-сервис:
sudo nano /etc/systemd/system/zigbee2mqtt.service
Содержимое:
[Unit] Description=Zigbee2MQTT After=network.target [Service] Type=simple User=mazzick WorkingDirectory=/home/user/zigbee2mqtt ExecStart=/usr/local/bin/npm start Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
Активация:
sudo systemctl daemon-reload sudo systemctl enable zigbee2mqtt.service sudo systemctl start zigbee2mqtt.service
Создан сервис:
sudo nano /etc/systemd/system/mqtt-to-mysql.service
Содержимое:
[Unit] Description=MQTT to MySQL Logger After=network.target mysql.service zigbee2mqtt.service Wants=zigbee2mqtt.service Wants=mysql.service [Service] Type=simple User=mazzick WorkingDirectory=/home/user ExecStart=/home/user/mqtt-env/bin/python /home/user/mqtt_to_mysql.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
Активация:
sudo systemctl daemon-reload sudo systemctl enable mqtt-to-mysql.service sudo systemctl start mqtt-to-mysql.service
Чтобы датчик не отправлял данные каждую минуту, установлен интервал 10 минут:
mosquitto_pub -h localhost -u iotuser -P 123456 \ -t "zigbee2mqtt/0xa4c138ab3129730c/set" \ -m '{"reporting": {"temperature": {"minimum_report_interval": 600, "maximum_report_interval": 600}, "humidity": {"minimum_report_interval": 600, "maximum_report_interval": 600}}}'
600 секунд = 10 минут.
Подключение к MySQL:
mysql -u iot_user -p (пароль: 123456)
Запрос:
USE iot_db; SELECT * FROM sensor_data ORDER BY id DESC LIMIT 10;
Результат: данные по температуре и влажности сохраняются раз в 10 минут.
Создана автономная система мониторинга температуры и влажности:
Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах —
вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!