Pour ceux qui ont un Lightberry (Ambilight sur Raspberry) contrôlé par Hyperion, il vous est possible de piloter les led à partir de requêtes http.
Les pré-requis donc :
- Un raspberry avec un lightberry, piloté par Hyperion : voir l'article de Maison et Domotique sur le sujet.
- L'accès autorisé en SSH sur votre raspberry
- le script php suivant en ayant au préalable saisi vos paramètres perso : ip, user/mdp ssh
- et donc la libssh2 de php sur le serveur qui l'héberge
- Code : Tout sélectionner
<?php
function ssh($host, $login, $mdp, $command)
{
if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
if(!($con = ssh2_connect($host, 22))){
echo "échec connexion\n";
} else {
if(!ssh2_auth_password($con, $login, $mdp)) {
echo "échec authentification\n";
} else {
// execute a command
if (!($stream = ssh2_exec($con, $command ))) {
echo "échec de l'exécution de la commande\n";
} else {
// collect returning data from command
stream_set_blocking($stream, true);
$data = "";
while ($buf = fread($stream,4096)) {
$data .= $buf;
}
fclose($stream);
return $data;
}
}
}
}
$ip = "192.168.0.xx";
$login = "root";
$mdp = "openelec";
$command = "sh /storage/hyperion/bin/hyperion-remote.sh -p 50";
$effet = $_GET['effet'];
$duree = $_GET['duree'];
if ($duree > 0) {
$duree = $duree * 1000;
} else {
$duree = 5000;
}
switch($effet)
{
case 'kr':
$param = "-e \"Knight rider\"";
break;
case 'bmb':
$param = "-e \"Blue mood blobs\"";
break;
case 'gmb':
$param = "-e \"Green mood blobs\"";
break;
case 'rmb':
$param = "-e \"Red mood blobs\"";
break;
case 'rm':
$param = "-e \"Rainbow mood\"";
break;
case 'rsf':
$param = "-e \"Rainbow swirl fast\"";
break;
case 'rs':
$param = "-e \"Rainbow swirl\"";
break;
case 'sb':
$param = "-e \"Strobe blue\"";
break;
case 'sw':
$param = "-e \"Strobe white\"";
break;
case 's':
$param = "-e \"Snake\"";
break;
case 'g':
$param = "-c green";
break;
case 'b':
$param = "-c blue";
break;
case 'o':
$param = "-c orange";
break;
case 'r':
$param = "-c red";
break;
case 'W':
$param = "-c white";
break;
default:
$param = "-x";
break;
}
if ($effet == 'stop') {
$param = " -c black";
} else {
$command .= " -d ".$duree." ";
}
$command .= $param;
$ret = ssh($ip, $login, $mdp, $command);
echo '<pre>' . $ret . '</pre>';
?>
Et il ne vous reste qu'à créer un actionneur http sous eedomus qui lance le script.
Vous pouvez créer une valeur par effet, par exemple :
Alarme activée : http://IP/hyperion.php?effet=kr, et votre TV joue le radar rouge de K2000.
Alarme désactivée : http://IP/hyperion.php?effet=gmb
Le portail s'ouvre : http://IP/hyperion.php?effet=sb
Le script exécute via SSH l'applicaton hyperion-remote et envoie l'effet choisi en paramètre. Le Lightberry joue l'effet 5 secondes puis revient à l'état précédent le cas échéant.
Amusez-vous bien.
Edit 1 : j'ai rajouté le paramètre de durée (en seconde) et l'effet Snake.
Pour avoir un serpent rouge qui fait le tour de la TV : http://IP/hyperion.php?effet=s&duree=10
Edit 2 : possibilité d’arrêter le lightberry avant ou pendant un film : hyperion.php?effet=stop, cela positionne les led à black pour une durée illimitée. Pour revenir à la normale, hyperion.php, sans argument, ou n'importe quel effet temporisé.