Mai 2014
20
20
La gestion de l’heure peut être imprécise sur les boitiers Aviosys, le script ci-dessous permet de déclencher une prise dans le délai souhaité, en s’affranchissant de la possible dérive horaire du boîtier.
#!/usr/local/bin/bash
# Commande temporise d'une des prises electriques d'un IP Power 9258
# Systeme OpenBSD 5.5, firmware Aviosys version 4.02
# Marc Dilasser, Le Net du Kermeur, Avril 2014
###############################################################################
PRISE=4
# Reserver les slots 1A, 2A, 3A et 4A pour l'usage interactif
PON=4B
DELAY=30
ONLY_ONCE=128
ON_OFF=0
DEBUG=0
USER=admin
PASS=motdepasse
HOST=x1.x2.x3.x4
DATE=/bin/date
CURL=/usr/local/bin/curl
# Recupere l'heure du boitier Aviosys
set -- $(${CURL} http://${USER}:${PASS}@${HOST}/Set.cmd?CMD=GetTime | tr '<>-:' ' ')
if [ "x$1" == "xhtml" -a "x$8" == "x/html" ]; then
[ $DEBUG -eq 1 ] && echo $1 an : $2 mo : $3 day : $4 heu : $5 min : $6 sec : $7 $8
# Convertir l'heure obtenue en secondes et rajouter le DELAY
SEC=$(($(${DATE} -j ${2}${3}${4}${5}${6}.${7} "+%s") + ${DELAY}))
if [ $SEC -gt 1270000000 ]; then
set -- $(${DATE} -j -r $SEC "+%Y %m %d %H %M %S")
YEAR=$1
MON=$2
DAY=$3
HEU=$4
MIN=$5
SEC=$6
# Poser la commande dans DELAY secondes
PARAM="Power=${PON}+YY=${YEAR}+MM=${MON}+DD=${DAY}+HH=${HEU}+MM=${MIN}+SS=${SEC}"
PARAM="${PARAM}+PARAM=${ONLY_ONCE}+ONOFF=${ON_OFF}"
[ $DEBUG -eq 1 ] && echo "$PARAM"
# Lancer la commande
${CURL} http://${USER}:${PASS}@${HOST}/Set.cmd?CMD=SetSchedule+${PARAM}
fi
fi
Références :
IP Power 9258 User Manual
Firmware 9258 version 4.02 (Attention : ne pas utiliser avec un 9258 en version 3.0)