MeteoValFut

Il meteo da Levico e Valdobbiadene

Foto Nas de Dante

Dati Meteo live, webcam, link utili, info su meteo e metereologia...

Foto Cesen

Stazioni Low-Cost

Aggiornato il

Una stazione meteo con pochi soldi

Quanto costa comprare uan stazione meteo e tutto quello che serve per pubblicare i dati su internet?

Proviamo ad analizzare qualche soluzione low-cost ma comunque interessante sia per la qualità dei dati che per la flessibilità della soluzione.

Attrezzatura necessaria

  • Stazione adeguatamente schermata
  • Pc per scaricare e pubblicare i dati
  • Connessione a Internet
  • Cavi e ferramneta varia per collegare e installare la stazione secondo le Norme OMM

Soluzioni basate su stazione Tecnoline 2350

Prevede l'acquisto di una stazione economica tipo LaCrosse 2350 su internet, di un pc Raspberry, la costruzione di uno schermo solare tipo Ora del Garda e/o SacileMeteo, un po' di ferramenta per l'installazione e qualche ora di lavoro per assemblare il tutto

  • Stazione: su Amazon vendono una stazione Tecnoline 2350 che è un clone della stazione Lacrosse 2350 come si può vedere da questo post; Costo quando è in offerta tra gli 85 e i 90 (attenzione e pazienza: in certi periodi ci sono delle oscillazioni che la portano oltre i 100 euro)
  • Schermo solare: 10 euro di materiale più 10 euro di vernici e qualche ora dilavoro
  • Ferramenta per l'installazione: dipende molto da dove dovete metterla, al minimo una ventina di euro

Soluzione numero 1

Per sentirsi Hacker in bretelle

Pc: Un Raspberry Pi può essere una valida soluzione: fa tutto quello che serve e consuma poco! Necessario: Raspberry Pi(40 euro), case (tra i 5 e i 10 euro), alimentatore (circa 5 euro), Sd da almeno 2Gb (10 euro, ma se ne avete una che vi avanza, usate quella) eventuale dongle wifi (20 euro): totale tra i 50 e 90 euro.

  • Sistema Operativo: Raspbian, una debian ottimizzata per Raspberry Pi
  • Sw per la gestione della stazione: Wview, un sw opensource sviluppato per interfacciarsi con una serie di stazioni meteo tra cui la serie 2350

Pro e contro

Vantaggi: il costo; con pochi solti si ha una stazione funzionante e collegata a Internet
Svantaggi: la precisione dei dati, occasionali errori dovuti a difetti del hw e del sw (ma si trova molta documentazione su come rimediare) e complessità data dall'assemblaggio del tutto (in particolare è necessario lavorare sull'installazione del sw, ma seguendo le guide on-line, qualcuna presente anche su questo sito, si riesce a risolvere tutto).

Soluzione numero 2

La strada facile

Pc: Anemos-meteoplug (se ne trovate ancora qualcuno), oppure Anemos-wds-five: costo? Prezzo della stazione + schermo + prezzo del dispositivo (sembra sui 200 euro), più ferramenta per montare il tutto.

Le specifiche non sono molto chiare (o forse io ho guardato male), ma alla fine sembrerebbe un pc a basso consumo con os e sw per la stazione embedded; il tutto sembra realizzato molto bene e le interfaccie di gestione e con cui vengono pubblicati i dati mi piacciono per la loro pulizia

Pro e contro

Vantaggi: la parte pc è tutta già pronta...basta attaccare la spina.
Svantaggi: la pigrizia (giustamente) si paga (ma neanche tanto a mio avviso)
Dubbi/Scrupolo: non so quanto sia solido e affidabile perché non lo ho mai provato, ma vedo diversi siti che lo usano e quindi confido possa essere una valida soluzione.

Soluzione numero 3

Non riuscite a rinunciare a windows?

Pc: un mini pc tipo EeeBox: con windows preinstallato e i sw ricevuto insieme alal stazione oppure qualche prodotto free tipo Cumulus o lo stesso Wview

Soluzione numero 3a

Stesso hw, ma con sistema operativo Linux + Wview.

Stazioni autocostruite (o quasi)

C'è la possibilità di utilizzare una serie di soluzioni per "autocostruirsi" una stazione usando come pc di supporto un Rasberry Pi

Soluzione numero 4

Utilizzo di AirPi, modulo di espansione per Raspberry sviluppato per costruire a basso costo una stazione di monitoraggio di clima e inquinamento
Gli ideatori offrono due opzioni:

  • L'acquisto del modulo completo di di sensori da aggangiare a un Raspberry Pi
  • Gli schemi per l'autocostruzione del modulo da agganciare a un Raspberry Pi
    • Opzione A

      L'acquisto del modulo completo facilità notevolmente le cose; secondo gli ideatori con una spesa di 90 Dollari, si compra una sistema abbastanza facile da assemblare e usare in accoppiata con il proprio Raspberry Pi.
      La stazione è pensata per uso interno, ma guardandola con qualche modifica potrebbe essere tranquillamente usata in esterno: un po' cara alla fine, ma con molti più sensori della Tecnoline, anche se in realtà manca l'anemometro

      Opzione B

      Usando gli schemi, le istruzioni e il sw messo a disposizione e compandosi i vari pezzi elettronici, ci si può assemblare il proprio modulo personalizzato da collegare a un Raspberry Pi, magari con un po' di lavoro collegandoci anche un anemometro, ma solo per chi mastica un po' di elettronica o conosce qualcuno che gli può dare una mano

      Pro e contro

      Vantaggi: se vi piace darvi da fare con pochi(?) soldi vi potete sbizzarire.
      Svantaggi:

      • i sensori saranno qualitativamente validi?
      • bisogna lavorare per avere dei risultati

      Soluzione numero 5

      Utilizzo di una scheda Arduino

      Questa è una soluzione tutta da esplorare: ci sono in rete diversi progetti per fare una stazione basandosi su Arduino, qualcuno sembra valido, qualcuno un po' meno....anche in questo caso comprata la scheda Arduino, vanno aggiunti i sensori e tutto l'occorrente per montare la stazione

      Il principale problema di queste soluzioni?

      Il punto debole di queste soluzioni sono forse le stazioni e la loro affidabilità
      Alternative? passare a una stazione un po' più professionale, con conseguente aumento del prezzo; in questo caso però le prime tre soluzioni sono comunque utilizzabile: sia Rasberry + Wview che Anemos, che Pc tipo EeeBox con Windows o Linux funzionano senza problemi

      Note Importanti

      Lo schermo solare per la stazione tipo LaCrosse può comunque essere comprato tranquillamente su internet, ci sono diversi modelli già omologati e certificati....chiaramente si spende qualcosa in più

      Altre soluzioni

      Raccolta di link su altre soluzioni possibili:

Continua...

Raspberry e Wview

Aggiornato il

Come gestire una stazione tramite un Raspberry Pi

Draft: Versione quasi completa

Istruzioni per installare un Raspberry Pi e collegarlo a una stazione meteo tramite Wview.

Definizioni

  • Raspberry Pi: è un mini pc a basso consumo
  • Raspibian: à è uan distribuzione derivata da Debian e ottimizzata per Raspberry Pi
  • Wview: è una raccolta di demoni che hanno lo scopo di interfacciarsi con una stazione meteo, scaricarne i dati e pubblicarli su Internet

Installare Raspbian "wheezy"

Raspberry: Installazione di Wview su Raspbian "wheezy"

Installazione

Passi di installazione:

  • Scaricare l'immagine di Raspian aggiornata
  • Copiare su una SD da almeno 2 Gb l'iimagine scaricata secondo le indicazioni riferite al vostro sistema opertivo che trovate nella Guide for beginners
  • TODO...

Configurare il wifi

Basandosi su:

Creare in /etc/init.d/ il file r8712u.sh con il seguente contenuto:
    
        #!/bin/sh
        #driver sitecom wla 2100
        modprobe r8712u
        echo "0df6 006c" > /sys/bus/usb/drivers/r8712u/new_id
        ifup wlan0
    
Configurare i permessi per poterlo eseguire:
   
    
    chmod a+x /etc/init.d/r8712u.sh
    
Installarlo come servizio:
    
    update-rc.d r8712u.sh defaults
    

Installare wview

Basato su:

STEP 1 - Configurare i repositories

Modificare il file /etc/apt/sources.list inserendo, se non già presenti, i seguenti repository:

  • deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
  • deb-src http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
e aggiornare l'indice dei pacchetti software con "apt-get update"

STEP 2 - Installare Wview

Si possono usare due modalità: quella basato su script e quella manuale.

La modalità basata su script

  • wget http://goo.gl/yiaz0 -O wview-install-raspbian.sh
  • chmod +x wview-install-raspbian.sh ; ./wview-install-raspbian.sh

La modalità basata su una procedura manuale

    
apt-get install --yes build-essential zlib1g-dev libpng12-dev libreadline-dev gawk libsqlite3-dev sqlite3 libgd2-xpm libgd2-xpm-dev libssl-dev sendmail sendemail libcurl4-openssl-dev libusb-1.0-0 libusb-1.0-0-dev apache2 php5 php5-sqlite libapache2-mod-php5 ntp tnftp wget 

apt-get install --yes build-essential zlib1g-dev libpng12-dev libreadline-dev gawk libsqlite3-dev sqlite3 libgd2-xpm libgd2-xpm-dev libssl-dev exim4 sendemail libcurl4-openssl-dev libusb-1.0-0 libusb-1.0-0-dev apache2 php5 php5-sqlite libapache2-mod-php5 ntp tnftp wget

wget http://downloads.sourceforge.net/radlib/radlib-2.12.0.tar.gz

tar zxvf radlib-2.12.0.tar.gz

cd radlib-2.12.0
./configure --enable-sqlite --prefix=/ --bindir=/usr/bin --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib
sudo make install

cd ..
wget http://downloads.sourceforge.net/wview/wview-5.20.2.tar.gz
tar zxvf wview-5.20.2.tar.gz

cd wview-5.20.2
./configure --prefix=/ --bindir=/usr/bin --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib
make install
cd ..

wget http://goo.gl/H13iS -O /etc/init.d/wview
chmod +x /etc/init.d/wview
update-rc.d wview defaults 99
ln -s /var/lib/wview/img/ /var/www/weather
ln -s /var/lib/wviewmgmt/ /var/www/wviewmgmt

In entrambi i casi bisogna inoltre fare alcune ulteriori modifiche:

  • editare il file /etc/init.d/wview ed eliminare il codice html dall'inizio del file fino alla riga prima di #/bin/sh
  • editare il file /etc/init.d/wview e aggiungere dopo "start)" la riga "rm /var/lib/wview/*.pid" (questa modifica assicura che in caso di arresto sporco del servizio eventuali file ".pid" di wview rimasti aperti e bloccati vengano eliminati)
  • cambiare il proprietario della directory /etc/wview e delle sottodirectory settandole con chown -R root:root /etc/wview
  • verificare ed eventualmente correggere i permessi della directory /etc/wview e delle sottodirectory
  • copiare gli eventuali template html italiani e quelli personalizzati in /etc/wview/html ed eventualmente abilitarli editando /etc/wview/html-templates.conf
  • se si usa l'italiano come lingua, modificare il file /etc/wview/images.conf modificandolo opportunamente
  • inserire in nella directory /etc/init.d/alarms i file degli allarmi

Se tutto è andato a buon fine, configurare wview com indicato nel manuale del software ricordandosi di modificare i seguenti parametri:

  • Attraverso l'interfaccia web di wviewmgmt nella tab "File Generation" modificare il parametro "Generation Target Path" impostandolo come "/var/lib/wview/img"
  • Attraverso l'interfaccia web di wviewmgmt nella tab "File Generation" modificare il parametro "Template Source Path" impostandolo come "/etc/wview/html"/
  • Creare un link in www alla directory dove si trovano le immagini generate da wview "ln -s /var/lib/wview/img /var/www/wview"
e lanciare wview

Step 3 - Configurare il file di Log

Aggiungere il file di configurazione per rsyslog in modo da avere un file di log dedicato per wview:

    
        sudo cp wview-x.y.z/examples/rsyslog/99-wview.conf /etc/rsyslog.d
    
Riavviare rsyslog:
    
        sudo /etc/init.d/rsyslog restart
    
Il file viene creato, ma rimane vuoto; perché wview inizi ad usarlo occore riavviare wview:
    
        sudo /etc/init.d/wview restart
    

STEP 4 - Pulizia

  • rm -r radlib* ; sudo rm -r wview*
  • apt-get clean

STEP 5 - Messa a punto (opzionale)

Se si vuole poter avviare e fermare wview dall'interfaccia web di gestione di wview aggiungere l'utente http al gruppo sudo:

  • adduser www-data sudo
  • Aggiornare /etc/sudoers per permettere l'esecuzione del controllo di start/stop lanciando visudo e aggiungendo le seguenti righe alla fine del file:
    • Cmnd_Alias WVIEW = /etc/init.d/wview
    • www-data ALL= NOPASSWD: WVIEW
A mio parere comunque è preferibile per motivi di sicurezza non eseguire lo STEP 4 e continuare a gestire l'avvio del servizio di wview solo da shell con i "tradizionali" utenti sudo attivati sulla macchina.

Se si vuole personalizzare l'icona di Wview usando quella di Raspberry:

  • wget https://dl.dropbox.com/u/2427470/raspberry/wview/wview-100x100.png -O /var/lib/wviewmgmt/wview-100x100.png

Ridurre le dimensioni di Raspbian "wheezy"

La distribuzione Raspbian "wheezy" è pensata per un uso multimediale o comunque tramite interfaccia grafica ed è relativamente pesante in termini di spazio occupato; l'ideale sarebbe avere a disposizione na versione "Minimal", ma non esiste di default questo tipo di versione.

Basandomi su questi due articoli rintracciati tramite il forum di Raspberry:

ho assemblato questo script che sembra funzionare discretamente.

Per ridurre lo spazio occupato da Raspian è necessario procedere alla rimozione dei pacchetti che non servono alla distribuzione per funzionare, tipicamente i giochi, l'interfaccia grafica basata su xorg, i pacchetti di sviluppo non necessari e i pacchetti dei compilatori che non vengono usati.

Conviene procedere con questo script dopo aver installato Wview, perché in questo modo si hanno già buona parte delle dipendenze richieste già soddisfatte.

Per fare questo selezionare il codice scritto qua sotto e salvarlo in un file nella home dell'utente, cambiare i permessi di esecuzione "HOMEUTENTE/pulizia.sh" ed eseguirlo o da root o con un sudo.
Nota: Lo step3 serve per ripristinare la libreria libgd2 cancellata erroneamente da una delle operazioni eseguite in precedenza.

    
        #!/bin/bash
        # Based on: www.cnx-software.com/2012/07/31/84-mb-minimal-raspbian-armhf-image-for-raspberry-pi/
        echo "Step 1"    
        echo "Step 1-01"
        rm -rf python_games
        echo "Step 1-02"
        sudo apt-get purge x11-common midori lxde python3 python3-minimal -y
        echo "Step 1-03"
        sudo rm -rf opt
        echo "Step 1-04"
        sudo apt-get purge `sudo dpkg --get-selections | grep "\-dev" | sed s/install//` -y
        echo "Step 1-05"
        sudo apt-get purge `sudo dpkg --get-selections | grep -v "deinstall" | grep python | sed s/install//` -y
        echo "Step 1-06"
        sudo apt-get purge lxde-common lxde-icon-theme omxplayer raspi-config -y
        echo "Step 1-07"
        sudo apt-get purge `sudo dpkg --get-selections | grep -v "deinstall" | grep x11 | sed s/install//` -y
        echo "Step 1-08"
        sudo apt-get purge `sudo dpkg --get-selections | grep -v "deinstall" | grep sound | sed s/install//` -y
        echo "Step 1-09"
        sudo apt-get purge gcc-4.4-base:armhf gcc-4.5-base:armhf gcc-4.6-base:armhf -y
        echo "Step 1-00"
        sudo apt-get purge ca-certificates libraspberrypi-doc xkb-data fonts-freefont-ttf locales manpages -y
        echo "Step 1-01"
        sudo apt-get autoremove -y
        echo "Step 1-02"
        sudo apt-get clean
        echo "--------------------"
        # Based on: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=29&t=20346
        echo "Step 2"
        echo "Step 2-01"
        # Aggiorna l'indice dei pacchetti
        apt-get update
        echo "Step 2-02"
        # Remove libx11-6 to purge x11 and all dependent packages (anything GUI related, basically)
        apt-get purge libx11-6 libgtk-3-common xkb-data lxde-icon-theme raspberrypi-artwork penguinspuzzle -y
        echo "Step 2-03"
        # Clean up redundant packages
        apt-get autoremove -y
        echo "Step 2-04"
        # Purge config files for removed packages
        dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge
        echo "--------------------"
        # Ripristino di sw cancellati, ma necessari per il funzionamento di wview
        echo "Step 3"
        echo "Step 3-01"
        # Reinstalla le librerie libgd2
        apt-get install libgd2-xpm
    

Salvare l'immagine

Una volta terminato il lavoro di configurazione può essere utile salvare il contenuto della SD in un file immagine in modo da averla pronta per future installazioni

La procedura su mac è la seguente:

  • dd if=/dev/rdiskx of=/path/to/image bs=1m
Per Linux è abbastanza simile, per Windows bisogna ovviamente scaricare qualche tool

In caso consiglio di leggere questi due articoli:

Via alternativa

Essendo abbastanza nuovo del mondo Raspberry e Raspibian ho scoperto solo in questi giorni una distro Debian/Raspbian based minimal che si chiama "MINIBIAN - raspberry pi" su cui sto cominciando a lavorare.

Continua...

Presentazione del sw Wview

Aggiornato il

Descrizione di Wview

Draft

Wview è un software GPL multipiattaforma creato con lo scopo di interfacciarsi con una stazione metereologica al fine di scaricare ed eventualmente pubblicare su web i dati; la pubblicazione può essere fatta o attraverso un sito personale oppure attraverso reti quali CWOP, Wuderground, Rete stazioni Meteonetwork o altre.
Wview può interfacciarsi in maniera abbastanza semplice con diversi tipi di stazioni meteo.
Il processo di funzionamento è il seguente:

  1. I dati vengono scaricati dalla stazione e salvati in un database (di default un db Sqlite3, ma si possono salvare anche in Mysql o simili)
  2. Una serie di demoni generano, a seconda delle impostazioni pagine HTML, XML, Allarmi, Reportistiche in formati standard (es. NOOA) ed eventualmente li pubblicano in spazi web o li inviano a servizi di pubblicazione di reti di stazioni.

File e Directory importanti in Wview

I file di configurazione si trovano tipicamente in /etc/wview; in questa directory gli elementi più importanti sono:

  • Directory html: contiene i template che andranno a generare le pagine HTML del sito web della stazione
  • File html-templates.conf: serve per abilitare o disabilitare i template da generare come pagine HTML del sito della stazione; se un template è presente nella directory html ma non è abilitato in questo file verrà ignorato dal demone di wview che genera le pagine HTML
  • Directory alarms: contiene gli script dei vari allarmi disponibili

I database di default si trovano in /var/lib/wview/archive/.
I files presenti sono:

  • File wview-archive.sdb: File dove vengono salvati i dati della stazione medi della stazione. Questo file deve essere backuppato. I dati vengono salvati con il sistema metrico Imperiale
  • File wview-hilow.sdb: File dove vengono salvati i dati "granulari" della stazione. Questo file deve essere backuppato; il file viene eventualmente ricreato in automatico basandosi sui dati di wview-archive.sdb, ma in questo caso si perde la granularità dei dati.
  • File wview-history.sdb: Questo file viene generato da Wview basandosi su wview-archive.sdb e non occorre avere il backup
  • File wview-noaa.sdb: Questo file viene generato da Wview basandosi su wview-archive.sdb e non occorre avere il backup

I file generati da Wview (html e altri) si trovano in /var/lib/wview/img

Help e F.A.Q.

Risorse on-line

Continua...

Esempi di Codice

Aggiornato il

Esempi di codice per la gestione delle stazioni e del sito

Utilità e spunti vari per personalizzare sito e sw della stazione meteo.

Nello scrivere il codice presente qua sotto ho usato abbondantemente Google per reperire le informazioni necessarie e ho cercato di usare codice pubblico e non coperto da copyright; nel caso in cui sia venuto meno a questo intento, lo ho fatto in buona fede usando involontariamente codice che qualcun'altro aveva a sua volta usato in maniera scorretta e invito fin da ora eventuali soggetti che si ritenenssero danneggiati a contattarmi per una pronta rimozione del codice in questione.

Ci invece ritensse utile questo codice, può tranquillamente usarlo ed eventualmente segnalarne l'origine

Commenti, segnalazioni e/o suggerimenti per migliorarlo sono sempre apprezzati

Linguaggi utilizzati

  • PHP
  • Bash/Shell

PHP

Porzioni di codice Php.

Inviare dati via POST

Sviluppato nell'Agosto 2013

Lo scopo di queste porzioni di codice è di inviare dati via post usando un link HTML.

Il codice è composto da due parti:
  • Una funzione Php per generare il link
  •     
    function post_link ($indirizzo_link,$nome_link)  {
    //generalizzazione per l'uso nel sommario
    if (empty($nome_link)) { $nome_link="Continua..."; }
    //generazione di un id random da usare nella funzione javascript
    $id_form=rand(0, 1000);
    // codice html + javascript per generare il link da associare al post
    echo "<form method=\"post\" action=\"index.php\" id=\"$id_form\">
        <input type=\"hidden\" name=\"VARIABILE\" value=\"$indirizzo_link\" />
        <a href=\"javascript:document.getElementById('$id_form').submit()\">$nome_link</a>
    </form>";
    }
        
    
  • il codice Php da inserire nella pagine per indicare la variabile da passare e il nome da dare al link
  • 
    post_link("VALOREVARIABILE","NOMEDELLINK");
        
    

Data di aggiornamento di un file

Sviluppato probabilmente nel Settembre/Ottobre 2012.

Funzione che permette di aggiornare automaticamente la data di Pubblicazione/Aggiornamento di un file HTML/Php o altro del proprio sito web.

    
function data_aggiornamento($filename)
{
if (file_exists($filename)) {
echo "<p>Aggiornato il <time datetime=\"".date ("d m Y H:i:s", filemtime($filename))."\">".date ("d/m/Y H:i:s", filemtime($filename))."</p>";
}
}
    

Bash

Porzioni di codice per la shell Linux per eseguire operazioni di manutenzione/aggiornamento del server e del sito.

Check dello stato della rete

Lo scopo di questo codice è di verificare se la rete funziona e in caso negativo tentare di riavviala, verificare l'effetto e se la rete ancora non funziona riavviare il server.

N.b. Viene riavviato anche il servizio no-ip: se non lo avete installato, disablitate questa funzionalità

Lo script va ovviamente aggiunto a Crontab

N.b. Attenzione: bisogna abilitare la rotazione del file di log oppure cancellare ogni x giorni il file log_ping.txt pena un possibile riempiment odel volume

    
#!/bin/bash
# script per controllare il correto collegamento alla rete locale
# indirizzo del router e degli eventuali altri dispositivi da controllare
HOSTS="192.168.0.1"
#Numero di ping da eseguire
NUMPING=4
# Data e e ora attuali
NOW=$(date +"%Y-%m-%d %H:%M")
#  dove viene messo il log
LOG=/var/log/stato_rete.log

for myHost in $HOSTS
do
        # esegue i ping e scrive nella variabile $COUNT il numero di ping con successo
        COUNT=$(ping -c $NUMPING $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
        # write in log file the ping received packet number
        echo "$NOW $COUNT " >> $LOG
        # check if the $COUNT value is zero or empty
        if [ $COUNT -eq 0 ] || [ -z $COUNT ]; then
        # network 100% failed
                # restart the network service
                sudo nohup sh -c "/etc/init.d/networking stop; sleep 2; /etc/init.d/networking start; sleep 10; /etc/init.$
                # write in log file the network service restart event 
                echo "restart the network" >> $LOG
                # wait until network restart
                sleep 100
                # restart no-ip service
                sudo nohup sh -c "/etc/init.d/no-ip stop" >> /dev/null
                sudo nohup sh -c "/etc/init.d/no-ip start" >> /dev/null
                # check network again
                COUNTAGAIN=$(ping -c $NUMPING $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
                echo "Ricontrolla rete: $NOW $COUNTAGAIN" >> $LOG
                if [ $COUNTAGAIN -eq 0 ] || [ -z $COUNTAGAIN ]; then
                echo "Ricontrolla rete fallito: riavvia il sistema" >> $LOG
                # if network 100% failed again reatart the sistem
                        sudo nohup sh -c "shutdown -r now"
                fi
        fi
done

    

Per aggiungere la rotazione del log:

    
/var/log/stato_rete.log {
        monthly
        copytruncate
        compress
        rotate 4
} 
    

Aggiuta della rotazione del log di Wview

La rotazione del log di Wview non è automatica e va abilitata a mano: per farlo, secondo le indicazioni di http://www.thegeekstuff.com/2010/07/logrotate-examples/

aggiungere a "/etc/logrotate.conf" il codice qua sotto e eseguire "logrotate --force $CONFIG_FILE" per verificarne il funzionamento
    
# logrotate per wview
/var/log/wview.log {
        monthly
        copytruncate
        compress
}
    

Backup del Db di Wview

Lo scopo di questo codice è eseguire il backup dei DB essenziali al funzionamento di Wview

    
#!/bin/bash
#

# Parametri di configurazione
PATHBACKUP=PATH_DELLA_DIRECTORY_DI_BACKUP
STATION=NOME_VOSTRA_STAZIONE
DATEBACKUP=`date +%Y%m%d%H%M`

function timer()
{
    if [[ $# -eq 0 ]]; then
        echo $(date '+%s')
    else
        local  stime=$1
        etime=$(date '+%s')

        if [[ -z "$stime" ]]; then stime=$etime; fi

        dt=$((etime - stime))
        ds=$((dt % 60))
        dm=$(((dt / 60) % 60))
        dh=$((dt / 3600))
        printf '%d:%02d:%02d' $dh $dm $ds
    fi
}


function backup()
{
    echo "Inizio Backup Db Stazione $STATION"
    sqlite3 /var/lib/wview/archive/wview-archive.sdb .dump > $PATHBACKUP/wview-archive.sdb_${STATION}_${DATEBACKUP}.dump 
    sqlite3 /var/lib/wview/archive/wview-hilow.sdb .dump > $PATHBACKUP/wview-hilow.sdb_${STATION}_${DATEBACKUP}.dump 
    echo "Backup Terminato"
    echo "I file del Backup si trovano in: $PATHBACKUP"
}

    t=$(timer)
    backup
    printf 'Tempo di esecuzione dello Script: %s\n' $(timer $t)

    
Continua...