Scripts del Servidor: diferència entre les revisions
Salta a la navegació
Salta a la cerca
| (3 revisions intermèdies per 2 usuaris que no es mostren) | |||
| Línia 2: | Línia 2: | ||
En aquest cas, només posem pel del Shield II. | 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 | |||
for j in `seq 1 10`; do | INTENSITATMAXIMA=50 | ||
POTENCIAMAXIMA=25000 | |||
FUGA="https://emon.canfugarolas.org/input/post.json" | |||
while true; do | 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; | 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 | |||
: | |||
sleep $ESPERA | |||
=Script per copiar scripts= | =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. | 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.*; | |||
Revisió de 20:21, 27 juny 2016
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.*;