1.8.13 • Public • Published

    Xbox and controller

    Homebridge Xbox TV

    verified-by-homebridge npm npm GitHub pull requests GitHub issues

    Homebridge plugin for Microsoft game Consoles. Tested with Xbox One X/S and Xbox Series X.

    Package Requirements

    Package Installation Role Required
    Homebridge Homebridge Wiki HomeKit Bridge Required
    Config UI X Config UI X Wiki Web User Interface Recommended
    Xbox TV npm install -g homebridge-xbox-tv Plug-In Required


    • For homebridge-xbox-tv versions 1.4.0 and above the minimum required version of Homebridge is v1.3.x.
    • Authorization Manager still in Test Phase.

    Know Issues

    • If used with Hoobs, there is a possible configuration incompatibilty.

    Features and How To Use Them

    • Power ON/OFF short press tile in HomeKit app.
    • Reboot Console with additional button.
    • RC/Media control is possible after you go to the RC app on iPhone/iPad.
    • Speaker control is possible after you go to RC app on iPhone/iPad Speaker Service.
    • Legacy Volume and Mute control is possible throught extra lightbulb/fan.
    • Apps, Inputs, Games can be switched if webApiControl and console is authorized.
    • Record Game DVR with additional button.
    • Siri can be used to control Power, Legacy Volume, Mute and switch Games, Apps with created Buttons.
    • Home automations and shortcuts can be used for all functions.

    Accessory tile in the HomeKit app Changing the accessory input Arrow pointing to the remote control icon in the control center Remote control interface

    Configuration Console

    • Device must have Instant-on power mode enabled
      • Profile & System > Settings > General > Power mode & startup
    • Console need to allow connect from any 3rd app. Allow Connections from any device should be enabled.
      • Profile & System > Settings > Devices & Connections > Remote features > Xbox app preferences.

    Authorization Manager

    • First of all please use built in Authorization Manager, if this fail use Authorization Manual.

    Authentication Manager

    Authorization Manual

    • After enable webApiControl option, restart the plugin and go to Homebridge console log.
    • Open the authorization URI and login to Your Xbox Live account, next accept permission for this app.
    • After accept permission copy the part after ?code= from the response URI and paste it in to the xboxWebApiToken.
    • Next save and restart the plugin again, done.


    Install and use Homebridge Config UI X plugin to configure this plugin (Highly Recommended). The sample configuration can be edited and used manually as an alternative. See the sample-config.json file in this repository for an example or copy the example below into your config.json file, making the apporpriate changes before saving it. Be sure to always make a backup copy of your config.json file before making any changes to it.

    Key Description
    name Here set the accessory Name to be displayed in Homebridge/HomeKit.
    host Here set the Hsostname or Address IP of Console.
    xboxliveid On your console select Profile > Settings > System > Console info, listed as Xbox network device ID. You can only find the Xbox network device ID in Settings on your console, this is different from your console serial number.
    clientID If You create app on Azure AD then You can use own ClientID.
    clientSecret If You create app on Azure AD then You can use own ClientSecret.
    userToken Alternate authorization method.
    uhs Alternate authorization method.
    webApiControl If enabled, the console can be controlled using Web Api and additional functions are available in Advanced Settings section.
    xboxWebApiToken Required if webApiControl enabled.
    refreshInterval Set the data refresh time in seconds, default is 5 seconds.
    disableLogInfo If enabled, disable log info, all values and state will not be displayed in Homebridge log console.
    volumeControl Here choice what a additional volume control mode You want to use (None, Slider, Fan).
    switchInfoMenu If enabled, I button change its behaviour in RC app between Menu and INFO.
    getInputsFromDevice If enabled, apps will be loaded from device, only available if webApiControl enabled.
    filterGames If enabled, Games will be hidden and not displayed in the inputs list, only available if webApiControl enabled.
    filterApps If enabled, Apps will be hidden and not displayed in the inputs list, only available if webApiControl enabled.
    filterSystemApps If enabled, System Apps (Accessory, TV) will be hidden and not displayed in the inputs list, only available if webApiControl enabled.
    filterDlc If enabled, Dlc will be hidden and not displayed in the inputs list, only available if webApiControl enabled.
    rebootControl If enabled, reboot Console will be possible with extra button, only available if webApiControl enabled.
    recordGameDvr If enabled, record Game DVR will be possible with extra button.
    inputs.name Here set Input Name which You want expose to the Homebridge/HomeKit, Television, Dashboard, Accessory, Settings inputs are created by default.
    inputs.reference Required to identify current running app.
    inputs.oneStoreProductId Required to switch apps.
    inputs.type Choice from available options.
    buttons.name Here set Button Name which You want expose to the Homebridge/HomeKit.
    buttons.oneStoreProductId Here set Input oneStoreProductId.
    manufacturer, modelName, serialNumber, firmwareRevision Free-form informational data that will be displayed in the Home.app.
    reference, oneStoreProductId If web Api enabled then all available in /var/lib/homebridge/xboxTv/inputs_xxxxxx file.
    	"platform": "XboxTv",
    	"devices": [
    			"name": "Xbox One",
    			"host": "",
    			"xboxliveid": "FD0000000000",
    			"clientID": "",
    			"clientSecret": "",
    			"userToken": "",
    			"uhs": "",
    			"xboxWebApiToken": "",
    			"refreshInterval": 5,
    			"webApiControl": false,
    			"disableLogInfo": false,
    			"volumeControl": 0,
    			"switchInfoMenu": false,
    			"getInputsFromDevice": false,
    			"filterGames": false,
    			"filterApps": false,
    			"filterSystemApps": false,
    			"filterDlc": false,
    			"rebootControl": false,
    			"recordGameDvr": false,
    			"inputs": [
    							"name": "A Way Out",
    							"reference": "AWayOut_zwks512sysnyr!AppAWayOut",
    							"oneStoreProductId": "",
    							"type": "APPLICATION"
    							"name": "Apple TV",
    							"reference": "AppleInc.AppleTV_nzyj5cx40ttqa!App",
    							"oneStoreProductId": "",
    							"type": "APPLICATION"
    							"name": "Battlefield 4",
    							"reference": "BFX_8s70symrha4j2!BF.App",
    							"oneStoreProductId": "",
    							"type": "APPLICATION"
    							"name": "Cities: Skylines",
    							"reference": "ColossalOrder.CitiesSkylines_9dej7x9zwzxzc!App",
    							"oneStoreProductId": "C4GH8N6ZXG5L",
    							"type": "APPLICATION"
    					"buttons": [
    							"name": "Don't Starve Together",
    							"oneStoreProductId": ""
    							"name": "EA Play Hub",
    							"oneStoreProductId": ""
    							"name": "AirServer Xbox Edition",
    							"oneStoreProductId": ""
    							"name": "Gears of War 4",
    							"oneStoreProductId": ""
    			"manufacturer": "Microsoft Corporation",
    			"modelName": "Model",
    			"serialNumber": "Serial Number",
    			"firmwareRevision": "Firmware Revision"

    Adding to HomeKit

    Each accessory needs to be manually paired.

    1. Open the Home app on your device.
    2. Tap the .
    3. Tap Add Accessory, and select I Don't Have a Code or Cannot Scan or More Options.
    4. Select Your accessory.
    5. Enter the Homebridge PIN or scan the QR code, this can be found in Homebridge UI or Homebridge logs.
    6. Complete the accessory setup.


    • That maximum Services for 1 accessory is 100. If Services > 100, accessory stop responding.
    • The Services in this accessory are:
      • Information.
      • Speaker.
      • Lightbulb.
      • Fan.
      • Television.
      • Inputs, which may range from 6 to 100 as each input is 1 service.
      • Buttons, which may range from 6 to 100 as each input is 1 service.

    What's New


    • Pull request and help in development highly appreciated.


    npm i homebridge-xbox-tv

    DownloadsWeekly Downloads






    Unpacked Size

    518 kB

    Total Files


    Last publish


    • grzegorz914