Plugin Homebridge pour la Philips Hue Sync Box.
La Sync Box peut être exposée comme une ampoule. Les fonctionnalités suivantes sont prises en charge :
Marche/Arrêt
Luminosité
La Sync Box peut être exposée comme un interrupteur. Les fonctionnalités suivantes sont prises en charge :
Marche/Arrêt
Vous pouvez également activer des accessoires TV supplémentaires prenant en charge :
Commutation des entrées HDMI
Modes de commutation
Intensité de commutation
Changer de zone de divertissement
Chacun des accessoires TV supplémentaires prend en charge le widget de télécommande iOS :
Haut/bas : modifier la luminosité
Gauche/droite : changer l'intensité
Sélectionner (bouton central) : basculer entre les modes
Bouton d'information : basculer les entrées HDMI
Lecture/Pause : activer/désactiver
De plus, chaque accessoire TV peut avoir une ampoule intégrée prenant en charge :
Marche/Arrêt
Luminosité
Important : les accessoires TV doivent être ajoutés manuellement à HomeKit, les logs affichent le pin pour les ajouter (doit être le même pin que pour le plugin).
Installez le plugin via npm :
npm installer homebridge-philips-hue-sync-box -g
Vous devez créer de nouvelles informations d'identification pour communiquer avec la Philips Hue Sync Box :
Assurez-vous que la boîte de synchronisation est activée
Assurez-vous que la synchronisation est arrêtée
Faites une requête HTTP POST à https://<SYNC-BOX-IP>/api/v1/registrations
Le corps de la requête doit être JSON : { "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
La première réponse à la requête sera { "code": 16, "message": "Invalid State" }
IMPORTANT : Maintenant, cliquez et maintenez enfoncé le bouton de la Sync Box jusqu'à ce que la LED passe au vert. Relâchez immédiatement le bouton dès que la LED est verte ! Il redeviendra blanc.
Refaites immédiatement la demande
La réponse contient une chaîne accessToken
Conseils :
Une façon de procéder consiste à saisir ce qui suit dans le terminal : curl -H "Content-Type: application/json" -X POST -d '{"appName": "homebridge", "appSecret":"MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge"}' https://<SYNC-BOX-IP>/api/v1/registrations
, en remplacement <SYNC-BOX-IP>
avec l'adresse IP de votre Sync Box. Si un problème survient en raison d'une erreur de certificat, ajoutez le paramètre -k
à la commande cURL.
Une autre façon peut être d'utiliser des outils comme Postman . Définissez la méthode de requête sur POST
et saisissez https://<SYNC-BOX-IP>/api/v1/registrations
comme URL de requête (remplacez <SYNC-BOX-IP>
par l'adresse IP de votre Sync Box). Ensuite, ouvrez l'onglet « Corps », définissez le type sur « brut » et sélectionnez « JSON » comme type de contenu dans la liste déroulante. Ensuite, saisissez { "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
dans la zone de texte du corps. Cliquez sur le bouton "Envoyer" en haut à droite pour envoyer la demande. Si un problème survient en raison d'une erreur de certificat, vous pouvez désactiver la vérification du certificat dans Postman. Accédez aux paramètres globaux, ouvrez l'onglet "Général" et désactivez l'interrupteur à bascule pour "Vérification du certificat SSL".
{"plateformes": [ {"platform": "PhilipsHueSyncBoxPlatform","syncBoxIpAddress": "<SYNC-BOX-IP-ADDRESS>","syncBoxApiAccessToken": "<ACCESS-TOKEN>","defaultOnMode": "video","defaultOffMode": " passthrough","baseAccessory": "lightbulb","tvAccessory": false,"tvAccessoryType": "tv","tvAccessoryLightbulb": false,"modeTvAccessory": false,"modeTvAccessoryType": "tv", "modeTvAccessoryLightbulb": false,"intensityTvAccessory": false,"intensityTvAccessoryType": "tv", "intensityTvAccessoryLightbulb": false,"entertainmentTvAccessory": false,"entertainmentTvAccessoryType": ": "tv","divertissementTvAccessoryLightbulb": false,"isApiEnabled": false,"apiPort": 40220,"apiToken": "<VOTRE-TOKEN>"} ] }
syncBoxIpAddress : L'adresse IP de votre Philips Hue Sync Box.
syncBoxApiAccessToken : Le jeton d'accès que vous obtenez lors de l'inscription.
defaultOnMode (facultatif) : le mode utilisé lors de la mise sous tension de la Sync Box via HomeKit. La valeur par défaut est video
. Les valeurs possibles sont video
, music
, game
ou lastSyncMode
.
defaultOffMode (facultatif) : le mode utilisé lors de la désactivation de la Sync Box via HomeKit. La valeur par défaut est passthrough
. Les valeurs possibles sont powersave
ou passthrough
.
baseAccessory (facultatif) : détermine le type d’accessoire de base pour la Sync Box. La valeur par défaut est lightbulb
. Les valeurs possibles sont lightbulb
, switch
ou none
. Si none
utilisé, aucun accessoire de base n’est exposé.
tvAccessory (facultatif) : permet à un accessoire TV de changer les entrées de la Sync Box. La valeur par défaut est false
.
tvAccessoryType (facultatif) : type d'icône que l'application Apple Home doit afficher. Les valeurs possibles sont tv
, settopbox
, tvstick
ou audioreceiver
. La valeur par défaut est tv
.
tvAccessoryLightbulb (en option) : active une ampoule intégrée pour l'accessoire TV pour commuter les entrées. La valeur par défaut est false
.
modeTvAccessory (facultatif) : permet à un accessoire TV de changer de mode ( video
, music
, game
) de la Sync Box. La valeur par défaut est false
.
modeTvAccessoryType (facultatif) : type d'icône que l'application Apple Home doit afficher. Les valeurs possibles sont tv
, settopbox
, tvstick
ou audioreceiver
. La valeur par défaut est tv
.
modeTvAccessoryLightbulb (facultatif) : active une ampoule intégrée pour l'accessoire TV pour changer de mode. La valeur par défaut est false
.
IntensityTvAccessory (facultatif) : permet à un accessoire TV de changer l'intensité ( subtle
, moderate
, high
, intense
) de la Sync Box. La valeur par défaut est false
.
IntensityTvAccessoryType (facultatif) : type d'icône que l'application Apple Home doit afficher. Les valeurs possibles sont tv
, settopbox
, tvstick
ou audioreceiver
. La valeur par défaut est tv
.
IntensityTvAccessoryLightbulb (facultatif) : permet d'utiliser une ampoule intégrée pour l'accessoire TV pour changer l'intensité. La valeur par défaut est false
.
entertainmentTvAccessory (facultatif) : active un accessoire TV pour changer la zone de divertissement de la Sync Box. La valeur par défaut est false
.
entertainmentTvAccessoryType (facultatif) : type d’icône que l’application Apple Home doit afficher. Les valeurs possibles sont tv
, settopbox
, tvstick
ou audioreceiver
. La valeur par défaut est tv
.
entertainmentTvAccessoryLightbulb (en option) : active une ampoule intégrée pour l'accessoire TV pour changer les zones de divertissement. La valeur par défaut est false
.
isApiEnabled (facultatif) : active une API HTTP pour contrôler la Sync Box. La valeur par défaut est false
. Voir API pour plus d'informations.
apiPort (facultatif) : le port sur lequel l'API (si activée) s'exécute. La valeur par défaut est 40220
, veuillez modifier ce paramètre si le port est déjà utilisé.
apiToken (facultatif) : le jeton qui doit être inclus dans chaque requête de l'API. Est requis si l’API est activée et n’a pas de valeur par défaut.
Ce plugin fournit également une API HTTP pour contrôler certaines fonctionnalités de la Sync Box. Il a été créé pour que vous puissiez automatiser davantage le système avec les raccourcis HomeKit. À partir d'iOS 13, vous pouvez utiliser des raccourcis pour l'automatisation de HomeKit. Les automatisations exécutées sur le coordinateur HomeKit (c'est-à-dire iPad, AppleTV ou HomePod) prennent également en charge les requêtes HTTP, ce qui signifie que vous pouvez automatiser votre Sync Box sans commutateurs ni boutons ennuyeux exposés dans HomeKit.
Si l'API est activée, elle est accessible sur le port spécifié sur l'hôte de ce plugin.
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>
Le jeton doit être spécifié comme valeur de l'en-tête Authorization
sur chaque requête :
Authorization: <YOUR-TOKEN>
Utilisez le point de terminaison state
pour récupérer l'état de la boîte de synchronisation. La méthode HTTP doit être GET
:
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>/state
La réponse est une réponse JSON, les propriétés suivantes sont incluses :
{ groupId: '<group-number>', mode: 'passthrough|powersave|video|game|music', lastSyncMode: 'video|game|music', brightness: 0-100, hdmiSource: 'input1|input2|input3|input4', options: { video: { intensity: 'subtle|moderate|high|intense', backgroundLighting: true|false }, game: { intensity: 'subtle|moderate|high|intense', backgroundLighting: true|false }, music: { intensity: 'subtle|moderate|high|intense' } } }
Utilisez le point de terminaison state
pour définir l'état de la boîte de synchronisation. La méthode HTTP doit être POST
:
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>/state
Le corps de la requête doit être au format JSON et peut contenir une/certaines/toutes les valeurs suivantes :
{ groupId: '<group-number>', mode: 'passthrough|powersave|video|game|music', brightness: 0-100, hdmiSource: 'input1|input2|input3|input4', options: { video: { intensity: 'subtle|moderate|high|intense', backgroundLighting: true|false }, game: { intensity: 'subtle|moderate|high|intense', backgroundLighting: true|false }, music: { intensity: 'subtle|moderate|high|intense' } } }