Fun with UNDOK

Materiel

UNDOK ? Cékoidon ?

D'après le site de Frontier Smart Technologies, l'application UNDOK ™ de Frontier fournit le contrôleur le plus complet, le plus polyvalent et le plus facile à utiliser pour les systèmes audio connectés de nouvelle génération.

Ça vous aide ? Non ? En fait, il s'agit du logiciel présent sur beaucoup de radios Internet (Roberts, Sangean, Pure, Revo, Hama, Medion...)

Je possède le Robert Revival iStream 3 et voudrais l'interfacer avec ma domotique. C'est évidemment possible et nous allons le voir tout de suite.

pexels-photo-3822728
(c) Pexels – Andrea Piacquadio

Tout d'abord, il est nécessaire de trouver l'IP de la radio. Cela se fait via la recherche SSDP (Simple Service Discovery Protocol) suivante:

gssdp-discover -t urn:schemas-frontier-silicon-com:undok:fsapi:1

L'IP de la radio nous permet déjà d'avoir quelques infos via l'adresse http://<ip>/device

<netRemote>
<friendlyName>Roberts Salon</friendlyName>
<version>ir-mmi-FS2026-0500-0641_V2.14.35c.EX86167-1A39</version>
<webfsapi>http://192.168.1.209:80/fsapi</webfsapi>
</netRemote>

L'affichage de la ressource UPNP contient aussi des informations intéressantes: http://<ip>:8080/dd.xml

Maintenant que nous avons l'adresse IP, nous pouvons installer la librairie fsapi via composer, le gestionnaire de paquet PHP. Dans un nouveau répertoire, tapons la commande suivante (petit patapon):

composer require flammy/fsapi

Il n'y a plus qu'à créer le script: un fichier index.php contenant le code suivant (avec l'ip de la radio)

<?php

require_once("vendor/autoload.php");
require_once("vendor/flammy/fsapi/src/Radio.php");

$host = "192.168.1.209";
$pin = "1234";

$Radio = new Radio($host,$pin);
$Radio->getSet("netRemote.sys.power","1");   // 1: on, 0 :off

On exécute le script via php index.php et la radio s'allume...

Après, si vous voulez vous passer de l'API (ou de php), cette commande suffit:

curl -vs "http://192.168.1.209/fsapi/SET/netRemote.sys.power?value=1&pin=1234"

Le faire via php vous permet d'avoir accès à des fonctions plus parlantes tel que $Radio->volume('up'); ou $Radio->radioFrequency(106.4);.

Article précédent Article suivant

Ajouter un commentaire