LINUX Raspberry:modules on after a power outage

Moderator: Telldus

Post Reply
Jean-Julien
Posts: 34
Joined: Fri Mar 17, 2023 9:45 am

LINUX Raspberry:modules on after a power outage

Post by Jean-Julien »

LINUX Raspberry: Remise en fonction des modules après une coupure de courant. (Awarded on the basis of the modules after a power outage.)

Si les modules a commander sont dans une base de données, il est possible de les remettre à on automatiquement. (If modules order are in a database, it is possible to give them to you automatically)

Il faut au moins un module qui commande la mise en marche d'un équipement avec une adresse IP (caméra IP par exemple). (It requires at least a module which controls the marketing of equipment with an IP (IP camera for example).)

Creer un fichier (Create file) test-ping.sh dans /home/pi
Le copier dans (Copy it to) usr/local/bin et le rendre exécutable. (and make it executable)

Créer le fichier (Create file) relance.php dans le dossier (in the folder) www

Editer crontab et ajouter la ligne (Edit crontab and add the line):

*/15 * * * * /usr/local/bin/test-ping.sh; date >> /home/pi/test-ping

Toutes les 15 mn le fichier (Every 15 minutes the file) test-ping.sh est lancé et si le ping ne répond pas, le fichier (is launched and if the ping fails, the file) relance.php est exécuté. (is executed.)

Le fichier (The file) /home/pi/test-ping contient les différentes actions réalisées. (contains the different action carried out)
test-ping.sh

Code: Select all

#! /bin/bash
### BEGIN INIT INFO
# Provides:          pi    
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: test ping   
# Description:       test ping fonctionnement chacon
#
### END INIT INFO

ping -c 3  192.168.x.xxx >> /home/pi/test-ping # ip test
     if [ $? -eq 0 ]
     then echo en ligne - on line >> /home/pi/test-ping
          date >> /home/pi/test-ping
     else sudo /usr/bin/php5 /var/www/relance.php >> /home/pi/test-ping 
     fi
     
# modifier les chemins si nécessaire (change paths if necessary)
relance.php

Code: Select all

<?php
// relance des modules
include 'bd.php'; // connexion à la table ( connection to the table) modules 
// chercher les modules à (search for modules to) on
// champs de la table (fields in the table) modules
// num_module : numero du module
// etat_module : on ou off
// nom_module : nom du module
// nb_actions : nombre d'envois du code au (number of consignments of the code to the) module
$requete = mysqli_query($cnx, "SELECT num_module, etat_module, nom_module , nb_actions FROM `modules` WHERE etat_module = 'on' ORDER BY `num_module` ASC");

while( $result = mysqli_fetch_object( $requete ) )
{ 
    $num_module  = trim($result->num_module);
    $etat_module = trim($result->etat_module);
    $nom_module =  trim($result->nom_module);
    $action = trim($result->nb_actions);
    for($a=1; $a<=$action; $a++){
    $relance = exec("tdtool --".$etat_module." ".$num_module);
    sleep(1);
    }
    echo "Le module ".$nom_module." Num: ".$num_module." a ete remis a ".$etat_module."\n";
    //$a++;
}
mysqli_free_result($requete);
?>
Post Reply