npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-philips-tv-ambilight-extended

v2.0.1

Published

Enhanced Homebridge platform plugin for Philips Android TV with proper TV icon, Ambilight control, and extended features

Readme

homebridge-philips-tv-ambilight-extended

Enhanced Homebridge platform plugin for Philips Android TV with proper TV icon, Ambilight control, and extended features.

Features

  • Clean TV interface with proper TV icon in HomeKit
  • Full Ambilight control with multiple modes (Follow Video, Follow Audio, Lounge Light)
  • Native TV speaker volume control
  • Launch Netflix, YouTube, and other Android TV apps
  • Switch between TV channels with presets
  • Full remote control functionality
  • Wake on LAN support for powering on TV remotely
  • Multiple TV support from single platform
  • Improved error handling and network timeout management
  • Platform architecture for better stability

Installation

npm install -g homebridge-philips-tv-ambilight-extended

Or search for "philips tv ambilight extended" in Homebridge Config UI X.

TV Pairing

Before using this plugin, pair your TV to get API credentials.

Using pylips (recommended):

pip3 install pylips
python3 -m pylips --host YOUR_TV_IP pair

Using philips_android_tv:

git clone https://github.com/suborb/philips_android_tv
cd philips_android_tv
python ./philips.py --host YOUR_TV_IP pair

The pairing process provides apiUser and apiPass credentials for configuration.

Configuration

Add to your Homebridge config.json:

{
  "platforms": [
    {
      "platform": "PhilipsAndroidTV",
      "debug": false,
      "configVersion": 1,
      "tvs": [
        {
          "name": "Living Room TV",
          "ip": "192.168.1.100",
          "apiUser": "your_api_username",
          "apiPass": "your_api_password",
          "apiVersion": 6,
          "mac": "AA:BB:CC:DD:EE:FF",
          "wakeOnLanRequests": 3,
          "wakeOnLanTimeout": 1000,
          "wakeUntilAPIReadyCounter": 100,
          "alternativePlayPause": false,
          "dedicatedMuteSwitch": false,
          "dedicatedVolumeLightbulb": false,
          "has_ambilight": true,
          "apps": [
            "Netflix",
            "YouTube",
            "Amazon Prime",
            "Disney+"
          ],
          "channels": {
            "useFavorites": false,
            "favoriteListId": "1",
            "includeAll": false,
            "channels": [
              "BBC One",
              "CNN",
              "National Geographic"
            ]
          }
        }
      ]
    }
  ]
}

Configuration Options

Platform Options

| Option | Type | Required | Description | |--------|------|----------|-------------| | platform | string | ✅ | Must be "PhilipsAndroidTV" | | debug | boolean | ❌ | Enable debug logging (default: false) | | configVersion | number | ❌ | Config version for compatibility (default: 1) | | tvs | array | ✅ | Array of TV configurations |

TV Options

| Option | Type | Required | Description | |--------|------|----------|-------------| | name | string | ✅ | Display name for your TV | | ip | string | ✅ | TV's IP address | | apiUser | string | ✅ | API username from pairing | | apiPass | string | ✅ | API password from pairing | | apiVersion | number | ❌ | API version (default: 6) | | mac | string | ❌ | MAC address for Wake on LAN | | wakeOnLanRequests | number | ❌ | Number of WOL requests (default: 3) | | wakeOnLanTimeout | number | ❌ | Timeout between WOL requests in ms (default: 1000) | | wakeUntilAPIReadyCounter | number | ❌ | Connection retry attempts (default: 100) | | alternativePlayPause | boolean | ❌ | Use alternative play/pause (default: false) | | dedicatedMuteSwitch | boolean | ❌ | Create separate mute switch (default: false) | | dedicatedVolumeLightbulb | boolean | ❌ | Create separate volume lightbulb (default: false) | | has_ambilight | boolean | ❌ | Enable ambilight control (default: true) | | apps | array | ❌ | List of app names to show as inputs | | channels | object | ❌ | Channel configuration |

Channel Configuration

| Option | Type | Description | |--------|------|-------------| | useFavorites | boolean | Use TV's favorite channels list | | favoriteListId | string | ID of favorite list to use | | includeAll | boolean | Include all available channels | | channels | array | Manual list of channel names |

Supported Apps

The plugin maps these app names to their package names:

  • Netflix → com.netflix.ninja
  • YouTube → com.google.android.youtube.tv
  • Amazon Prime → com.amazon.avod.thirdpartyclient
  • Disney+ → com.disney.disneyplus
  • Spotify → com.spotify.tv.android
  • Plex → com.plexapp.android
  • Kodi → org.xbmc.kodi
  • VLC → org.videolan.vlc

HomeKit Interface

The plugin creates a TV accessory with:

  • TV icon and power control
  • Native TV speaker volume control
  • Input selection for apps, channels, and Ambilight modes
  • Remote control with navigation and media keys

Remote Control Keys

| HomeKit Button | TV Action | |---------------|-----------| | Play/Pause | PlayPause | | Up/Down/Left/Right | Navigation | | Select | Confirm | | Back | Back | | Exit | Exit | | Info | Info |

Wake on LAN

To enable Wake on LAN:

  1. Enable WOL in TV network settings
  2. Connect TV via Ethernet
  3. Add TV MAC address to mac field in configuration

Multiple TVs

Control multiple TVs by adding them to the tvs array:

{
  "platforms": [
    {
      "platform": "PhilipsAndroidTV",
      "tvs": [
        {
          "name": "Living Room TV",
          "ip": "192.168.1.100",
          "apiUser": "user1",
          "apiPass": "pass1"
        },
        {
          "name": "Bedroom TV", 
          "ip": "192.168.1.101",
          "apiUser": "user2",
          "apiPass": "pass2"
        }
      ]
    }
  ]
}

Troubleshooting

TV not responding:

  • Verify TV is on same network and IP is correct
  • Check API credentials are valid
  • Restart TV if needed
  • Re-pair after TV software updates

Volume control issues:

  • Ensure TV supports volume API
  • Check for external speakers
  • Verify TV is not muted

Ambilight not working:

  • Confirm TV has Ambilight capability
  • Enable Ambilight in TV settings
  • Set has_ambilight: true in configuration

App launch failures:

  • Verify app names match supported apps
  • Check apps are installed on TV
  • Ensure apps support intent launching

API Reference

Uses Philips JointSpace API v6. For advanced usage:

Compatibility

  • TV Models: Philips Android TV 2016+
  • API Version: JointSpace API v6
  • Homebridge: v1.0.0+
  • Node.js: v14+

Changelog

v2.0.0

  • Converted from accessory to platform plugin
  • Multiple TV support
  • Improved stability and error handling
  • Better input source management
  • Fixed Wake on LAN implementation
  • Fixed Ambilight API endpoints
  • Enhanced volume and mute state handling

Migration from v1.x

Update your configuration from accessory to platform format:

Old (v1.x):

{
  "accessories": [{
    "accessory": "PhilipsTV",
    "name": "TV",
    "ip_address": "192.168.1.100",
    "username": "user",
    "password": "pass"
  }]
}

New (v2.x):

{
  "platforms": [{
    "platform": "PhilipsAndroidTV",
    "tvs": [{
      "name": "TV",
      "ip": "192.168.1.100",
      "apiUser": "user",
      "apiPass": "pass"
    }]
  }]
}

Support

GitHub Issues

Credits

Based on work from:

License

Apache-2.0