Bridge from MQTT to Atlona HDMI matrix switches. Attempts to follow mqtt-smarthome pattern.
mqtt2atlonamatrix
is a Node.js application that links Atlona HDMI matrix switches to an MQTT broker. It is designed to be used to integrate these devices into a home automation system à la mqtt-smarthome.
mqtt2atlonamatrix
is distributed through NPM:
npm install -g mqtt2atlonamatrix
# or, if you prefer:
yarn global add mqtt2atlonamatrix
Running it is likewise easy:
mqtt2atlonamatrix # if your MQTT broker is running on localhost
mqtt2atlonamatrix -b mqtt://<hostname> # if your broker is running elsewhere
mqtt2atlonamatrix --help # to see the full usage documentation
This app is intended to conform to the mqtt-smarthome architecture. These are the topics used by mqtt2atlonamatrix
:
Topic | Purpose |
---|---|
atlonamatrix/connected |
0 = not connected to anything 1 = connected to MQTT but not DVR 2 = connected to both. |
atlonamatrix/status/isOn |
Power state of the switch as a boolean |
atlonamatrix/status/hardwareInfo |
JSON-encoded hardware info; format: { "type": "", "version": "" } |
atlonamatrix/status/outputStatus |
The current status of each output as a lis |
For performance reasons, no argument checking is done: commands are passed diectly to the switch.
Topic | Purpose |
---|---|
atlonamatrix/get/isOn |
Force a refresh of the current power state |
atlonamatrix/get/hardwareInfo |
Force a refresh of the hardware info |
atlonamatrix/get/outputStatus |
Force a refresh of the current output status |
atlonamatrix/set/isOn |
Set the system to Off. |
atlonamatrix/set/output/{n}/input/{m} |
Set output n to display input m |
atlonamatrix/set/output/{n}/off |
Turn off output n |
atlonamatrix/set/safeOff |
Turn off the switch if all outputs are off |
Contributions are of course always welcome. If you find problems, please report them in the Issue Tracker. If you've made an improvement, open a pull request.
Getting set up for development is very easy:
git clone <your fork>
cd mqtt2atlonamatrix
yarn
And the development workflow is likewise straightforward:
# make a change to the src/ file, then...
yarn build
node dist/index.js
# or if you want to clean up all the leftover build products:
yarn run clean
- 1.0.0
- The first release.
Zach Bean – zb@forty2.com
Distributed under the MIT license. See LICENSE for more detail.