Mai 2014
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.

9258r


#!/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)

Répondre

*