Rebooter un raspberry via un IPX800

Il n’y a rien de plus énervant de voir son Raspberry qui gère la domotique planté à distance et ne pas pouvoir le rebooter physiquement. Mais si vous avez un IPX800 (v4 dans mon cas), il est alors très facile de gérer le reboot, et si on l’accompagne d’un script PHP qui tourne toutes les 5 min, on a un système 100% automatique !

Le cablage

Mon cœur domotique est basé sur un Raspberry Pi Modèle B+ v1.2 avec la solution Domoticz. Pour pouvoir gérer le reboot, le raspberry dispose de 2 pin que l’on raccordera à l’IPX800 qui pourra fermer le contact 2 sec afin d’initier un reboot du serveur.

rpi1

Il faut souder 2 pin à l’endroit entouré du schéma puis raccorder 2 fils sur l’IPX800 (je les ai relié pour ma part sur le relais n°6).

rpi

IPX800

Configuration

Sur l’IPX800, nous allons aller paramétrer le paramètre Tb du relais n°6 à 2 sec, c’est à dire que le contact sera fait pendant 2 sec pour le relais se ré-ouvrira. Cette action provoquera un reboot immédiat du raspberry. Vous pouvez tester le reboot depuis la page d’accueil de l’IPX800,

ipx800

Ok, mais ensuite, comment automatiser le reboot ?

Dans mon cas, je vais checker que le port 8080 de domoticz répond. Quand il ne répond plus, c’est que l’appli est plantée. Et dans ce cas, seul un reboot du raspberry est le plus efficace.

J’utilise ma fonction startIPX800Relay que nous avions vu ici,  et une nouvelle fonction qui va checker le port. Le code php que j’utilise et que j’ai mis en cron toutes les 5 min est le suivant :

$ID_RASPBERRY = 6; //n° du relais
$APIKEY = 'XXXXXX'; //APIKEY de l'IPX800
$IPX800 = '192.168.1.100'; //adresse ip de l'IPX800

function checkServerOnline($server, $port) {
    $check = @fsockopen($server, $port);
    if ($check) {
        @fclose($check);
        return true;
    } else {
        return false;
    }
}
$check = checkServerOnline('192.168.1.101',8080);
if ($check == true) echo 'online';
if ($check == false) {
	echo 'offline';
	startIPX800Relay($IPX800,$APIKEY,$ID_RASPBERRY);
}

Si le script détecte que Domoticz ne répond pas, c’est le reboot assuré !

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.