Code Monkey home page Code Monkey logo

bravia2mqtt's Introduction

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 โ€“ [email protected]

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

bravia2mqtt's People

Contributors

forty2 avatar kosta-github avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.