Skip to content
Rest api for hdmi-cec control of a device. Great for turning a raspberry pi into tv remote.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
hdmiControl Added error handling Jul 5, 2016
webservice Fixed power state return Aug 3, 2016
.gitignore
LICENSE Initial commit Jul 3, 2016
README.md Remove make file and raspberry script Jul 10, 2016
main.go Added volume and device endpoints Jul 5, 2016

README.md

HDMI CEC Rest API

Rest api to interact with the consumer electronics control of a hdmi device. Great for turning a raspberry pi into a tv remote.

API Reference

/device

Get list of all active devices

GET

  • Request
curl http://localhost:5000/device
  • Response
{
  "TV": {
    "PowerStatus": "standby",
    "PhysicalAddress": "0.0.0.0",
    "ActiveSource": false,
    "OSDName": "TV",
    "Vendor": "Samsung",
    "LogicalAddress": 0
  },
  "Playback": {
    "PowerStatus": "on",
    "PhysicalAddress": "1.0.0.0",
    "ActiveSource": false,
    "OSDName": "Roku 3",
    "Vendor": "",
    "LogicalAddress": 4
  },
  "Recording": {
    "PowerStatus": "on",
    "PhysicalAddress": "2.0.0.0",
    "ActiveSource": false,
    "OSDName": "cec.go",
    "Vendor": "Pulse Eight",
    "LogicalAddress": 1
  }
}

/device/[logical_address]

Get details for single device by its physical address

GET

  • Request
curl http://localhost:5000/device/0
  • Response
{
  "PowerStatus": "standby",
  "PhysicalAddress": "0.0.0.0",
  "ActiveSource": false,
  "OSDName": "TV",
  "Vendor": "Samsung",
  "LogicalAddress": 0
}

/device/[logical_address]/power

Get or set the power status for a device

GET

  • Request
curl http://localhost:5000/device/0/power
  • Response
{
    "status": "success",
    "message": "standby"
}

POST

  • Request
# state can be "on" or "off"
curl -X POST -d '{"state": "on"}' http://localhost:5000/device/0/power

/device/[logical_address]/volume

Set the volume for a amplifier device

This will only work if the device is type Amplifier

POST

  • Request
# state can be "up", "down", or "mute"
curl -X POST -d '{"state": "up"}' http://localhost:5000/device/0/volume

Installation

This assumes golang has been installed and $GOPATH set

  • Install Dependencies
    • Ubuntu/Debian
apt-get install libcec-dev cec-utils make
  • Get Go Dependencies
go get
  • Compile Binary
go build
You can’t perform that action at this time.