bravia2mqtt
v1.0.0
Published
Control your Sony Bravia TV with MQTT.
Downloads
7
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 bravia2mqtt
Running 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 documentation
Topics 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
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 – [email protected]
Distributed under the MIT license. See LICENSE for more detail.