Scripts del Servidor
(S'ha redirigit des de: ScriptServidor)
Script per cada Arduino
En aquest cas, només posem pel del Shield II.
#! /bin/bash ### BEGIN INIT INFO # Provides: getdata 192.168.130.2 # Required-Start: # Required-Stop: # Default-Start: S # Default-Stop: # Short-Description: Monitoritzacio # Description: Envia les dades de monitoritzacio que pregunta a l'arduino al propi # servidor de monitoritzacio i a emoncms. Tambe guarda les dades en # un fitxer local. ### END INIT INFO ESPERA=10 VOLTATGEMAXIM=500 INTENSITATMAXIMA=50 POTENCIAMAXIMA=25000 FUGA="https://emon.canfugarolas.org/input/post.json" FUGAKEY="apikey=6db9" EMON="http://emoncms.org/input/post.json" EMONKEY="apikey=ebbd" do_start () { for j in `seq 1 10`; do vector=(`curl -k --silent 192.168.130.2`); sleep 2; done; while true; do vector=(`curl -k -m 3 --silent 192.168.130.2`); v0=`echo ${vector[0]}` while [ -z "$v0" ]; do curl --silent -k "$FUGA?json={Forat:"1"}&node=2&$FUGAKEY"; curl --silent -k "$EMON?json={Forat:"1"}&node=2&$EMONKEY"; Dades=$(date '+%d/%m/%y %H:%M:%S') echo $Dades >> /var/www/emon/Dades/DadesArduino2.res vector=(`curl -k -m 3 --silent 192.168.130.2`); v0=`echo ${vector[0]}` done; v2=`echo ${vector[2]}` v3=`echo ${vector[3]}` v4=`echo ${vector[4]}` v5=`echo ${vector[5]}` v7=`echo ${vector[7]}` v8=`echo ${vector[8]}` v9=`echo ${vector[9]}` v10=`echo ${vector[10]}` v12=`echo ${vector[12]}` v13=`echo ${vector[13]}` v14=`echo ${vector[14]}` v15=`echo ${vector[15]}` #Comprovem si el voltatge es passa en valor absolut de 500V #Comprovem si les intensitats es passen en valor absolut de 50A #Si aquests valors es passen escriurem igualment al fitxer peròamb valors 0 i marcarem el voltatge com valor 3.1416 #Comprovem la potencia maxima amb el v3, v8 i v13 en principi #I el NAN a tots absv0=`echo "$v0" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv2=`echo "$v2" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv3=`echo "$v3" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv4=`echo "$v4" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv5=`echo "$v5" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv7=`echo "$v7" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv8=`echo "$v8" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv9=`echo "$v9" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv10=`echo "$v10" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv12=`echo "$v12" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv13=`echo "$v13" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv14=`echo "$v14" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` absv15=`echo "$v15" | awk '{if($1>=0) { print $1} else {print $1*-1 }}'` if (( $(echo "$absv0 > $VOLTATGEMAXIM" | bc -l) )) || (( $(echo "$absv2 > $INTENSITATMAXIMA" | bc -l) )) || (( $(echo "$absv3 > $POTENCIAMAXIMA" | bc -l) )) || (( $(echo "$absv4 > $POTENCIAMAXIMA" | bc -l) )) || (( $(echo "$absv5 > 1" | bc -l) )) || (( $(echo "$absv7 > $INTENSITATMAXIMA" | bc -l) )) || (( $(echo "$absv8 > $POTENCIAMAXIMA" | bc -l) )) || (( $(echo "$absv9 > $POTENCIAMAXIMA" | bc -l) )) || (( $(echo "$absv10 > 1" | bc -l) )) || (( $(echo "$absv12 > $INTENSITATMAXIMA" | bc -l) )) || (( $(echo "$absv13 > $POTENCIAMAXIMA" | bc -l) )) || (( $(echo "$absv14 > $POTENCIAMAXIMA" | bc -l) )) || (( $(echo "$absv15 > 1" | bc -l) )) then v0="1.31416" v2=0 v2=0 v3=0 v4=0 v5=0 v7=0 v8=0 v9=0 v10=0 v12=0 v13=0 v14=0 v15=0 fi curl -k --silent "$FUGA?json={voltage:"$v0"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={IL1:"$v2"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={PL1:"$v3"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={SL1:"$v4"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={CosPhiL1:"$v5"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={IL2:"$v7"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={PL2:"$v8"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={SL2:"$v9"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={CosPhiL2:"$v10"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={IL3:"$v12"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={PL3:"$v13"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={SL3:"$v14"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={CosPhiL3:"$v15"}&node=2&$FUGAKEY"; curl -k --silent "$FUGA?json={Forat:"0"}&node=2&$FUGAKEY"; #curl --silent "$EMON?json={voltage:"$v0"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={IL1:"$v2"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={PL1:"$v3"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={SL1:"$v4"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={CosPhiL1:"$v5"}1&node=2&$EMONKEY"; #curl --silent "$EMON?json={IL2:"$v7"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={PL2:"$v8"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={SL2:"$v9"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={CosPhiL2:"$v10"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={IL3:"$v12"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={PL3:"$v13"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={SL3:"$v14"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={CosPhiL3:"$v15"}&node=2&$EMONKEY"; #curl --silent "$EMON?json={Forat:"0"}&node=2&$EMONKEY"; Dades=$(date '+%d/%m/%y %H:%M:%S') Dades+=" " for index in 0 2 3 4 5 7 8 9 10 12 13 14 15 ; do aux="v$index" Dades+=${!aux} Dades+=" " done; echo $Dades >> /var/www/emon/Dades/DadesArduino2.res sleep $ESPERA done; } case "$1" in start|"") do_start ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) # No-op ;; *) echo "Usage: getdata.sh start|stop" >&2 exit 3 ;; esac :
Script per copiar scripts
Aquest segon script, ens serveix per copiar el primer amb la configuració dels altres, només modificant les ip's i l'identificador per pujar al programari emoncms.
#!/bin/bash
#########################################################################
# Script que copia el fitxer getdata.2.sh a la restar de getdates de
# 3 a 7. Canvia la ip 192.168.130.2 per la corresponent i canvia el node=2
# per el node corresponent.
#########################################################################
for i in `seq 3 7`;
do cp /etc/init.d/getdata.2.sh /etc/init.d/getdata.$i.sh;
sed -e "s/192.168.130.2/192.168.130.$i/g" /etc/init.d/getdata.$i.sh > /tmp/res.sh;
mv /tmp/res.sh /etc/init.d/getdata.$i.sh
sed -e "s/DadesArduino2/DadesArduino$i/g" /etc/init.d/getdata.$i.sh > /tmp/res.sh;
mv /tmp/res.sh /etc/init.d/getdata.$i.sh
sed -e "s/node=2/node=$i/g" /etc/init.d/getdata.$i.sh > /tmp/res.sh;
mv /tmp/res.sh /etc/init.d/getdata.$i.sh
done;
chmod u+x /etc/init.d/getdata.*;