1.0.0 • Published 3 years ago

lumi22mqtt v1.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

Lumi MQTT

MQTT агент для шлюза Xiaomi DGNWG05LM с прошивкой OpenWRT.
Позволяет взаимодействовать со шлюзом через MQTT.

ВзаимодействиеMQTT topic, получениеMQTT topic, управление
Встроенный датчик освещенияlumi/illumination
Подсветкаlumi/lamplumi/lamp/set
Кнопкаlumi/button
Воспроизводимый url, volumelumi/audio/playlumi/audio/play/set
Громкостьlumi/audio/volumelumi/audio/volume/set
Голосовое уведомлениеlumi/say/set
BLE устройстваlumi/{MAC}

{MAC} - адрес bluetooth устройства.

Примеры команд


Вопросы и обсуждение - https://t.me/lumi_mqtt


Замеченные проблемы:

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


Для скачивания и работы необходимы пакеты node.js, git, mpc

Добавляем репозиторий со свежими версиями Node и устанавливаем необходимые пакеты:

wget https://openlumi.github.io/openwrt-packages/public.key -O /tmp/public.key
opkg-key add /tmp/public.key
echo 'src/gz openlumi https://openlumi.github.io/openwrt-packages/packages/19.07/arm_cortex-a9_neon' >> /etc/opkg/customfeeds.conf

opkg update && opkg install node git-http mpc

Скачиваем:

cd /opt
git clone https://github.com/Beetle-II/lumi.git
cd lumi
cp config_example.json config.json

Изменяем конфигурационный файл config.json Указываем адрес своего сервера, логин и пароль

{
  "homeassistant": true,
  "use_ble": false,
  "sensor_debounce_period": 300,
  "sensor_treshhold": 50,
  "mqtt_url": "mqtt://адрес вашего сервера",
  "mqtt_topic": "lumi",
  "use_mac_in_mqtt_topic": false,
  "mqtt_options": {
    "port": 1883,
    "username": "логин сюда",
    "password": "пароль сюда",
    "keepalive": 60,
    "reconnectPeriod": 1000,
    "clean": true,
    "encoding": "utf8"
  }
}
ПараметрОписание
"homeassistant": trueуведомлять MQTT брокер об устройствах шлюза. Помогает добавлять устройства в HomeAssistant
"use_ble": falseвключить сканирование и отправку данных c BLE устройств
"sensor_debounce_period": 300период отправки данных о состоянии устройств (в секундах)
"sensor_treshhold": 50порог изменения состояния датчика, для моментальной отправки данных
"use_mac_in_mqtt_topic": trueдобавить MAC шлюза в MQTT топики

Запускаем:

node /opt/lumi/lumi.js

Проверяем что пошли данные от датчиков и добавляем в автозапуск:

chmod +x lumi
cp lumi /etc/init.d/lumi
/etc/init.d/lumi enable
/etc/init.d/lumi start

Обновить до актуальной версии:

cd /opt/lumi
git pull

Примеры команд:

ТопикЗначениеОписание
lumi/light/set{"color":{"r":50,"g":50,"b":50},"state":"ON"}Включить подсветку
lumi/light/set"OFF"Выключить подсветку
lumi/audio/play/set"http://ep128.hostingradio.ru:8030/ep128"Включить Радио Европа+
lumi/audio/play/set"/tmp/test.mp3"Воспроизвести локальный звуковой файл
lumi/audio/play/set{"url": "https://air.radiorecord.ru:805/rr_320", "volume": 50}Включить Радио рекорд с громкостью 50
lumi/audio/play/set"STOP"Выключить воспроизведение
lumi/audio/volume/set30Именить громкость на 30
lumi/say/set{"text": "Привет", "volume": 80}Произнести 'Привет' с громкостью 80
lumi/say/set"Привет"Произнести 'Привет'