bravia2mqtt
v1.0.0
Published
Control your Sony Bravia TV with MQTT.
Readme
bravia2mqtt
A bridge between Sony Bravia Smart TVs and MQTT.
bravia2mqtt is a Node.js application that links Sony Bravia smart TVs to an MQTT broker. It is designed to be used to integrate these devices into a home automation system.
Getting Started
bravia2mqtt is distributed through NPM:
npm install -g bravia2mqtt
# or, if you prefer:
yarn global add bravia2mqttRunning it is likewise easy:
bravia2mqtt # if your MQTT broker is running on localhost
bravia2mqtt -b mqtt://<hostname> # if your broker is running elsewhere
bravia2mqtt --help # to see the full usage documentationTopics and Payloads
This app is intended to conform to the mqtt-smarthome architecture. Below is a description of the topics used.
Status updates
These topics are published as update notifications are received from the TV.
| Topic | Value |
|-------------------------------------|----------------------------------------------------------------------------------|
| bravia:<id>/status/isOn | The current power status as a boolean
| bravia:<id>/status/volume | The current volume level as an integer
| bravia:<id>/status/isMuted | The current audio mute status as a boolean
| bravia:<id>/status/channel | The current channel as a string of the form <channel>.<subchannel>
| bravia:<id>/status/input | The currently selected input as a string (eg. component1, hdmi3)
| bravia:<id>/status/isPictureMuted | The current video mute status as a boolean
| bravia:<id>/status/isPipEnabled | The current state of the PIP display as a boolean
Control
These topics can be used to control various features of the TV.
| Topic Template | Command | Value Type | Results on |
|--------------------------|---------|------------|--------------------------------------------------------------------------|
| bravia:<id>/sendIrCode | Send an IR code to the TV. See here for a full list of codes
| bravia:<id>/<cmd>/isOn | getsettoggle | boolean | bravia:<id>/status/isOn
| bravia:<id>/<cmd>/volume | getset | integer | bravia:<id>/status/volume
| bravia:<id>/<cmd>/isMuted | getset | boolean | bravia:<id>/status/isMuted
| bravia:<id>/<cmd>/channel | getset | string: <channel>.<subchannel> | bravia:<id>/status/channel
| bravia:<id>/<cmd>/tripletChannel | getset | string: <x>.<y>.<z> | bravia:<id>/status/tripletChannel
| bravia:<id>/<cmd>/inputSource | getset | string: cable, antenna, etc. | bravia:<id>/status/inputSource
| bravia:<id>/<cmd>/input | getset | string: hdmi3, component1, etc. | bravia:<id>/status/input
| bravia:<id>/<cmd>/isPictureMuted | getsettoggle | boolean | bravia:<id>/status/isPictureMuted
| bravia:<id>/<cmd>/isPipEnabled | getsettoggle | boolean | bravia:<id>/status/isPipEnabled
| bravia:<id>/<cmd>/pipPosition | toggle | |
| bravia:<id>/<cmd>/broadcastAddress | get | string | bravia:<id>/status/broadcastAddress
| bravia:<id>/<cmd>/macAddress | get | string | bravia:<id>/status/macAddress
| bravia:<id>/<cmd>/sceneSetting | getset | string: auto, auto24pSync, general | bravia:<id>/status/sceneSetting
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 bravia2mqtt
yarnAnd 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 cleanRelease History
- 1.0.0
- The first release.
Meta
Zach Bean – [email protected]
Distributed under the MIT license. See LICENSE for more detail.
