Scripts del Servidor: diferència entre les revisions

De Comissió Energia Can Fugarolas
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
  #! /bin/bash
  ### BEGIN INIT INFO
  ### BEGIN INIT INFO
  # Provides:          getdata 192.168.130.2
  # Provides:          getdata 192.168.130.2
  # Required-Start:     
  # Required-Start:     
  # Required-Stop:
  # Required-Stop:
  # Default-Start:    S
  # Default-Start:    S
  # Default-Stop:
  # Default-Stop:
  # Short-Description: Monitoritzacio
  # Short-Description: Monitoritzacio
  # Description:      Envia les dades de monitoritzacio que pregunta a l'arduino al propi  
  # Description:      Envia les dades de monitoritzacio que pregunta a l'arduino al propi  
  #                    servidor de monitoritzacio i a emoncms. Tambe guarda les dades en  
  #                    servidor de monitoritzacio i a emoncms. Tambe guarda les dades en  
  #                    un fitxer local.
  #                    un fitxer local.
  ### END INIT INFO
  ### END INIT INFO
  ESPERA=10
 
  FUGA="http://emon.canfugarolas.org/input/post.json"
  ESPERA=10
  FUGAKEY="apikey=888888888888888888888888"
 
    do_start () {
  VOLTATGEMAXIM=500
   for j in `seq 1 10`; do  
  INTENSITATMAXIMA=50
      vector=(`curl --silent 192.168.130.2`);
  POTENCIAMAXIMA=25000
      sleep 2;
 
    done;
  FUGA="https://emon.canfugarolas.org/input/post.json"
   while true; do
  FUGAKEY="apikey=6db9"
      vector=(`curl -m 1 --silent 192.168.130.2`);
  EMON="http://emoncms.org/input/post.json"
      v0=`echo ${vector[0]}`
  EMONKEY="apikey=ebbd"
      while [ -z "$v0" ]; do
 
          curl --silent "$FUGA?json={Forat:"1"}&node=2&$FUGAKEY";
  do_start () {
          curl --silent "$EMON?json={Forat:"1"}&node=2&$EMONKEY";
    
          Dades=$(date '+%d/%m/%y %H:%M:%S')
    for j in `seq 1 10`; do  
          echo $Dades >> /home/enric/Monitoritzacio/DadesArduino2.res
        vector=(`curl -k --silent 192.168.130.2`);
          vector=(`curl -m 1 --silent 192.168.130.2`);
        sleep 2;
          v0=`echo ${vector[0]}`
      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;
      v2=`echo ${vector[2]}`
        echo $Dades >> /var/www/emon/Dades/DadesArduino2.res
      v3=`echo ${vector[3]}`
    
      v4=`echo ${vector[4]}`
    sleep $ESPERA  
      v5=`echo ${vector[5]}`
    done;
      v7=`echo ${vector[7]}`
 
      v8=`echo ${vector[8]}`
  }
      v9=`echo ${vector[9]}`
 
      v10=`echo ${vector[10]}`
  case "$1" in
      v12=`echo ${vector[12]}`
    start|"")
      v13=`echo ${vector[13]}`
  do_start
      v14=`echo ${vector[14]}`
  ;;
      v15=`echo ${vector[15]}`
    restart|reload|force-reload)
      curl --silent "$FUGA?json={voltage:"$v0"}&node=2&$FUGAKEY";
  echo "Error: argument '$1' not supported" >&2
      curl --silent "$FUGA?json={IL1:"$v2"}&node=2&$FUGAKEY";
  exit 3
      curl --silent "$FUGA?json={PL1:"$v3"}&node=2&$FUGAKEY";
  ;;
      curl --silent "$FUGA?json={SL1:"$v4"}&node=2&$FUGAKEY";
    stop)
      curl --silent "$FUGA?json={CosPhiL1:"$v5"}&node=2&$FUGAKEY";
  # No-op
      curl --silent "$FUGA?json={IL2:"$v7"}&node=2&$FUGAKEY";
  ;;
      curl --silent "$FUGA?json={PL2:"$v8"}&node=2&$FUGAKEY";
    *)
      curl --silent "$FUGA?json={SL2:"$v9"}&node=2&$FUGAKEY";
  echo "Usage: getdata.sh start|stop" >&2
      curl --silent "$FUGA?json={CosPhiL2:"$v10"}&node=2&$FUGAKEY";
  exit 3
      curl --silent "$FUGA?json={IL3:"$v12"}&node=2&$FUGAKEY";
  ;;
      curl --silent "$FUGA?json={PL3:"$v13"}&node=2&$FUGAKEY";
  esac
      curl --silent "$FUGA?json={SL3:"$v14"}&node=2&$FUGAKEY";
 
      curl --silent "$FUGA?json={CosPhiL3:"$v15"}&node=2&$FUGAKEY";
  :
      curl --silent "$FUGA?json={Forat:"0"}&node=2&$FUGAKEY";
     
      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 >> /home/enric/Monitoritzacio/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=
=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.*;