node-lox-mqtt-gateway
Gateway for Loxone™ miniserver to communicate with mqtt broker
For communication with miniserver is used WebSocket api described in Loxone™ API Documentation
Preamble
This is experimental version.
Use it at your own risk.
Quick start
sudo npm install -g node-lox-mqtt-gateway
lox-mqtt-gateway --NODE_CONFIG='{"mqtt":{"host":"mqtt://localhost:1883","options":{"username":"XXX","password":"YYY"}},"miniserver":{"host":"192.168.0.77:80","username":"XXX","password":"YYY"}}'
MQTT Interface
MQTT topic base
mqtt_prefix/category/room/control_name/{state|cmd}
example
lox/light/bedroom/main_light/state
States of Loxone™ miniserver to MQTT
If you tries to get the state of specific control you need to subscribe
topic
(MQTT topic base)/state
message contains data
in JSON format.
TODO: Make documentation for all controls
MQTT to Loxone™ miniserver actions
If you could make some action you must publish message with:
topic
(MQTT topic base)/cmd
data
There is a command string like in Loxone™ API Structure file documentation
example of whole message
Configuration
configuration file has 3 sections
sections
winston (logger)
It contains array of transports with its options.
mqtt
It contains host and options for mqtt.
Detailed explanation of the options.
miniserver
It contains:
- host - miniserver address (hostname:port)
- username - credentials for miniserver
- password
- readonly - if it's set to true then no commands will be send to miniserver - it's for testing and development
- encrypted - use AES-256-CBC encrypted web sockets
- mqtt_prefix - topic prefix for Loxone™ messages
your own config dir
You could use your own config dir
lox-mqtt-gateway --NODE_CONFIG_DIR='/your/config/dir'
example
/your/config/dir/default.json