Awesome
unifi2mqtt
Connect Ubiquiti UniFi controller to MQTT 📡
Install
$ sudo npm install -g unifi2mqtt
I suggest to use pm2 to manage the unifi2mqtt process (start on system boot, manage log files, ...)
Usage
Usage: unifi2mqtt [options]
Options:
-a, --unifi-host unifi hostname or address [default: "127.0.0.1"]
-p, --unifi-port unifi port [default: 8443]
-c, --unifi-user unifi user [default: "admin"]
-s, --unifi-password unifi password [required]
-w, --unifi-site unifi site [default: "default"]
-k, --insecure allow ssl connections without valid certificate
-v, --verbosity possible values: "error", "warn", "info", "debug"
[default: "info"]
-n, --name instance name. used as topic prefix [default: "unifi"]
-u, --url mqtt broker url [default: "mqtt://127.0.0.1"]
-h, --help Show help [boolean]
--version Show version number [boolean]
Topics and Payloads
Topics and Payloads follow mqtt-smarthome architectural proposal.
Topics published by unifi2mqtt
<name>/status/wifi/<ssid>/client/<hostname>
-{"val":true}
if client is connected to the wifi network,{"val":false}
otherwise. Object also contains the propertiesmac
andts
. Retained.<name>/status/wifi/<ssid>/event/connected
- Client connect event. Payload as above. Not retained.<name>/status/wifi/<ssid>/event/disconnected
- Client disconnect event. Payload as above. Not retained.<name>/status/wifi/<ssid>/clientCount
- number of clients in specific wifi network, e.g.{"val":5}
. Retained.<name>/status/wifi/<ssid>/enabled
- wifi enabled status, e.g.{"val":true}
. Retained.<name>/status/clientCount
- number of clients in all wifi networks, e.g.{"val":12}
. Retained.<name>/status/device/<device>/led
- status of a device led, e.g.{"val":"on"}
Retained.<name>/connected
-1
if connected to mqtt broker,2
if connected to UniFi Controller,0
on last will. Retained.
Topics subscribed by unifi2mqtt
<name>/set/device/<device>/led
- switch device led on or off. Payloadon
,off
ordefault
(default uses site-wide led setting).<name>/set/wifi/<ssid>/enabled
- enable/disable wireless network. Payloadtrue
orfalse
.
License
MIT © Sebastian Raff