/mqtt2atlonamatrix

Primary LanguageJavaScriptMIT LicenseMIT

mqtt2atlonamatrix

Bridge from MQTT to Atlona HDMI matrix switches. Attempts to follow mqtt-smarthome pattern.

NPM Version GitHub license

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.

Getting Started

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

Topics and Payloads

This app is intended to conform to the mqtt-smarthome architecture. These are the topics used by mqtt2atlonamatrix:

Topics Published

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

Topics Subscribed

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

Contributing

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

Release History

  • 1.0.0
    • The first release.

Meta

Zach Bean – zb@forty2.com

Distributed under the MIT license. See LICENSE for more detail.