| Action | Topic | Payload | Expected values |
|---|---|---|---|
| Read light state | lumi/<device_id>/light | {"state": "ON", "brightness": 255, "color": {"r": 255, "g": 0, "b": 0},"effect": "fade", "duration":1} | |
| Switch light | lumi/<device_id>/light/set | ON OFF TOGGLE or {"state": "ON"} |
|
| Set light color | lumi/<device_id>/light/set | {"color": {"r": 255, "g": 0, "b": 0}} | |
| Set light brightness | lumi/<device_id>/light/set | {"brightness": 255} | |
| Set light effect | lumi/<device_id>/light/set | {"effect": "fade", "duration": 2} | |
| Set light | lumi/<device_id>/light/set | {"state": "ON", "brightness": 255, "color": {"r": 255, "g": 0, "b": 0},"effect": "fade", "duration":1} | |
| Read illuminance | lumi/<device_id>/illuminance | 0-1000 lux | |
| Read cpu temperature | lumi/<device_id>/cputemp | <float> °C | |
| Button | lumi/<device_id>/btn | current position 0 or 1 | |
| Volume | lumi/<device_id>/volume | current volume 0-100 | |
| Set volume | lumi/<device_id>/volume/set | 0-100 | |
| Volume Alert channel | lumi/<device_id>/volumealert | current volume 0-100 | |
| Set volume Alert channel | lumi/<device_id>/volumealert/set | 0-100 | |
| Play music file | lumi/<device_id>/sound/set | local path to mp3 file or mp3 url | |
| TTS say text | lumi/<device_id>/tts/set or lumi/<device_id>/tts/say | text or json {"text":"What to say", "cache": 0} or for Yandex.tts {"text":"What to say", "cache": 1, "updatecache": 1, "voice":"alice", "speed": 10, "emotion": "evil"} | |
| TTS yandex set voice | lumi/<device_id>/tts/voice/set | one from list of yandex voices | Default alyss or google |
| TTS yandex set emotion | lumi/<device_id>/tts/emotion/set | one from list of emotions | Default neutral |
| TTS yandex set speed | lumi/<device_id>/tts/speed/set | 1-30 | Default 10 |
| BT scan | lumi/<device_id>/bt | List of bt devices | |
| BLE scan | lumi/<device_id>/ble/<BleMAC> | List of ble devices | |
| BLE presence (only for "ble_list" from config) | lumi/<device_id>/ble/<BleMAC> | {'state': 0} or {'state': 1} |
The configuration file is a JSON with the following content:
{
"mqtt_host": "localhost",
"mqtt_port": 1883,
"mqtt_user": "",
"mqtt_password": "",
"mqtt_retain": true,
"topic_root": "lumi/{device_id}",
//"device_id":"001"
"auto_discovery": true,
"connect_retries": 10,
"log_level": 3,
"readinterval": 1,
"treshold": 30,
}Every line is optional. By default, LumiMQTT will use the connection to localhost with the anonymous login.
device_id if not provided will be automatically replaced by a hex number
representing a MAC address of the first network interface.
auto_discovery set to false to disable creating autodiscovery topics that
are user by Home Assistant to discover entities.
mqtt_retain is option to enable storing last sensor value on the broker
threshold is a threshold to avoid sending data to MQTT on small changes
readinterval value in seconds to send changed data
To use yandex voices for TTS, you need to specify ya_tts_api_key and ya_tts_folder_id from the Yandex cloud console.
ya_tts_voice select voice used by default
cache_tts_path path to save tts cache files
cache_tts_all cache all tts phrases, default - save only with json param "cache": 1
cache_tts_make_index on save new cache file add filename and phrase to text file tts-index.txt
led_effect one of none fade wheel transition
led_duration number of seconds
disable: array, with some values bt ble illuminance or cputemp to disable
ble_list json array with list of ble devices for check presence, MAC format DD-DD-DD-DD-DD-DD
ble_timeout timeout after which the absence is announced
opkg update
opkg install lumimqttdTo upgrade you can just run
opkg update & opkg install lumimqttd