API Philips TV e Ambilight – JointSpace

Eccoci qui in un nuovo articolo, oggi voglio parlarvi del protocollo JoinySpace basato su chiamate REST e JSON, usato dalle app Philips per comunicare con le TV Smart.
In rete non si trova molto, specialmente in italiano, su come poter comunicare con questi TV Smart magari con il nostro Raspberry per poter creare qualche effetto carino con le luci sfruttando il sistema Ambilight della Philips.

Per chi non conoscesse il sistema Ambilight della Philips, tale sistema permette di creare effetti di luce dietro il televisore in funzione dell’immagine che si sta guardando come quello nella figura seguente.

Philips Ambilight

Mentre cercavo in rete se fosse possibile leggere i valori dei led RGB dai TV Philips, ho scoperto dell’esistenza di questo protocollo JoinySpace che fortunatamente qualcuno ha documentato illustrando le varie API messe a disposizione dalla TV non solo per leggere i dati del sistema Ambilight ma anche per i vari tasti del telecomando (Documentazione JointSpace API).

Giusto per farvi capire come poter utilizzare questa API simulo una chiamata REST con il POSTMAN in modo da poter osservare la risposta JSON fornita dal TV Philips in merito al sistema Ambilight.

La chiamata è la seguente:

  • GET ambilight/processed: questa chiamata ritorna il valore dei vari led posti sul retro della TV Philips dopo che il sistema Ambilight ha processato l’immagine.

Per eseguire la chiamata bisogna impostare il metodo GET e comporre l’URL nel modo seguente sostituendo IP_Philips_TV con quello della vostra TV Philips connessa ovviamente alla rete

  • http://<IP_Philips_TV>:1925/1/ambilight/processed

ambilight_philips_postman

Premendo su Send la risposta è la seguente:

{
    "layer1": {
        "left": {
            "0": {
                "r": 14,
                "g": 26,
                "b": 26
            },
            "1": {
                "r": 6,
                "g": 6,
                "b": 5
            }
        },
        "top": {},
        "right": {
            "0": {
                "r": 192,
                "g": 127,
                "b": 94
            },
            "1": {
                "r": 89,
                "g": 76,
                "b": 65
            }
        },
        "bottom": {}
    }
}

Nel mio caso si possono osservare principalmente un layer con due lati (left e right) in ognuno dei quali è possibile vedere la tripletta RGB dei vari led posti sul retro dell TV Philips.
Per una documentazione più dettagliata di questo e di altre chiamate vi rimando alla documentazione.

Spero che questo articolo vi possa essere utile per realizzare qualche progetto personale per comandare la vostra TV, comandare strip led poste sul soffitto in base all’immagine che state vedendo in TV oppure qualsiasi idea vi venga in mente.