Skip to content

Latest commit

 

History

History
101 lines (73 loc) · 4.52 KB

README.md

File metadata and controls

101 lines (73 loc) · 4.52 KB

bravia2mqtt

A bridge between Sony Bravia Smart TVs and MQTT.

NPM Version GitHub license

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 get
set
toggle
boolean bravia:<id>/status/isOn
bravia:<id>/<cmd>/volume get
set
integer bravia:<id>/status/volume
bravia:<id>/<cmd>/isMuted get
set
boolean bravia:<id>/status/isMuted
bravia:<id>/<cmd>/channel get
set
string: <channel>.<subchannel> bravia:<id>/status/channel
bravia:<id>/<cmd>/tripletChannel get
set
string: <x>.<y>.<z> bravia:<id>/status/tripletChannel
bravia:<id>/<cmd>/inputSource get
set
string: cable, antenna, etc. bravia:<id>/status/inputSource
bravia:<id>/<cmd>/input get
set
string: hdmi3, component1, etc. bravia:<id>/status/input
bravia:<id>/<cmd>/isPictureMuted get
set
toggle
boolean bravia:<id>/status/isPictureMuted
bravia:<id>/<cmd>/isPipEnabled get
set
toggle
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 get
set
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 – zb@forty2.com

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