0.0.17 • Published 5 years ago

homebridge-philipstv-enhanced-bq2 v0.0.17

Weekly downloads
3
License
ISC
Repository
github
Last release
5 years ago

homebridge-philipstv-enhanced

Homebridge module for Philips TV (with JointSpace enabled) with Power on/off, Sound, Ambilight and source input control

Description

This plugin is a fork of homebridge-philipstv-x with additional support for Sound control, Ambilight brightness control and input selection control. It has been modified to work on a 65OLED873/12 TV (2018 model without Android) and may not work on older one. Code may need ajustement for Ambilight to work on other 2018 models

Installation

  1. Install homebridge using: npm install -g homebridge
  2. Install this plugin using: npm install -g homebridge-philipstv-enhanced
  3. Update your configuration file. See the sample below.

Configuration

Example accessory config (needs to be added to the homebridge config.json):

"accessories": [
	{
		"accessory": "PhilipsTV",
		"name": "TV",
		"ip_address": "10.0.1.23",
		"poll_status_interval": "60",
		"model_year": 2018,
		"has_ssl": false,
		"has_ambilight": true,
	}
]

To be able to power on the TV when the TV is in standby mode, you will need the wol_url parameters with the mac address of your TV Added test option for WakeOnWLAN:

"accessories": [
	{
		"accessory": "PhilipsTV",
		"name": "TV",
		"ip_address": "10.0.1.23",
		"poll_status_interval": "60",
		"model_year" : "2018",
		"has_ssl": false,
		"wol_url": "wol://18:8e:d5:a2:8c:66"
	}
]

Credentials for 2016 (and newer?) models with Android TV

As per this project the Android TV 2016 models Philips use an authenticated HTTPS JointSpace API version 6. Every control- or status-call needs digest authentification which contains of a pre generated username and password. You have to do this once for your TV. We reccomend to use the python script philips_android_tv.

Here is an example pairing call for philips_android_tv :

python ./philips.py --host 10.0.1.23 pair

You can then add username and password key in your homebridge config, example:

"accessories": [
  {
  	"accessory": "PhilipsTV",
  	"name": "TV",
  	"ip_address": "10.0.1.23",
  	"poll_status_interval": "60",
  	"model_year": 2016,
  	"has_ambilight": true,
  	"has_ssh": true,
  	"username": "deadbeef0815",
  	"password": "deadbeef0815deadbeef0815deadbeef0815deadbeef0815deadbeef0815",
  }
]

Todo

We should auto detect TV capacity (http/https) and API version by requesting http://tvip:1925/1/system and https://tvip:1926/1/system

a 2018 TV will answer to /1/system and will report the API version is 6.1

For ambilight, we should parse /6/menuitems/settings/structure to instead of relying on static nodeid in the code For audio, we should read /API_VERSION/audio/volume to get the max, and map the 0-100% of HomeKit to 0-TVMax. Currently 25 is assumed as max, so we divide homekit value by 4. 43PUS6753 has a volume max to 60 but 25 is already high

The code need cleanup. Especially it would be nice to use a generic setXStateLoop function, work stated with httpRequest_with_retry

Get function for audio/ambilight/etc. should be modified to attend nothing when the TV is off. When the TV turn on, we should refresh all values

Dev notes about JointSpace URLs

POST to /6/menuitems/settings/current allow to get current Ambilight settings POST to /6/menuitems/settings/update allow to update Ambilight settings GET to /6/menuitems/settings/structure allow to have the details of the menu and options

0.0.17

5 years ago

0.0.16

5 years ago

0.0.15

5 years ago

0.0.14

5 years ago

0.0.13

5 years ago

0.0.12

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago