Устройство: Tuya Smart Zigbee датчик (модель: ZY-ZTH02 / TS0201)
Без кнопок. Включение в режим сопряжения — через двойную вставку батарейки.
~/zigbee2mqtt/data/configuration.yamlpermit_join: truecd ~/zigbee2mqtt && npm startDevice '0xa4c1...' joinedpermit_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 минут.
Создана автономная система мониторинга температуры и влажности:
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!