loxone2mqtt
Gateway for Loxone™ miniserver to communicate with mqtt broker with the https://github.com/mqtt-smarthome topic and payload format.
This is a fork of node-lox-mqtt-gateway (c) 2016 Ladislav Dokulil , heavily modified and rewritten to suite my needs.
Notable changes:
- https://github.com/mqtt-smarthome topic and payload format
- based on xyz2mqtt with yalm for logging and yargs (in progress)
- teduced and simplified code (in progress)
- https://github.com/mqtt-smarthome topic and payload format
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 loxone2mqtt
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/{state|set}/category/room/control_name/
example
lox/state/light/bedroom/main_light
States of Loxone™ miniserver to MQTT
If you tries to get the state of specific control you need to subscribe
topic
mqtt_prefix/{state|set}/category/room/control_name/
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_prefix/set/category/room/control_name/
data
There is a command string like in Loxone™ API Structure file documentation
example of whole message (todo)
Configuration (todo - switch to yargs command line)
configuration file has 2 sections
sections
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