STAZIONE METEOROLOGICA
GAGGIANO - CENTRO (MI - By IW2NTF)

INSTALLAZIONE DI CUMULUSMX SU RASPBERRY,
PER LA GESTIONE DEI DATI REAL-TIME

Visualizzazione dati su SmartPhone

Risultati immagini per davis logoRisultati immagini per davis vantage

 

Maggiori info nel sito https://cumulus.hosiene.co.uk/

>>> NEW: Cumulus MX v3.28.5 build 3282 - Febbraio 2024 (a volte la scritta può essere obsoleta, ma il contenuto viene aggiornato con costanza)

Quello che scriverò qui è un piccolo supporto per chi vuole gestire la stazione meteo con il famoso "lampone" ossia il Raspberry. Ad un prezzo di circa 50/60 euro potete avere a disposizione un vero e proprio PC che archivia i dati e li manda in rete, anche nei maggiori siti internet. In alcuni siti trovare gli "Starter KIT", con custodia, alimentatore, SD, Raspberry. Può essere utile con la versione Pi3 Installare il dissipatore al processore. Con la versione di Raspberry Pi3 b+ o Pi4 non è necessario il dissipatore.

Vi rendo disponibili le immagini da inserire su scheda SD per:

Script:

Pacchetto di installazione CumulusMX parzialmente pre-configurato per Davis VP2:

Vecchie immagini SD non più aggiornate ma funzionanti:

Queste immagini le potete tranquillamente espandere in una SD da 8 o 16 GB, con il software "Win32DiskImager" creando così una SD avviabile, con già Cumulus pre-configurato, ho attivato anche il backup automatico notturno su SD dell'intera directory di CumulusMX.

A seguito della richiesta di un collega OM della zona IS0 (Sardegna), ho reso disponibile anche la versione Stretch del 13/11/2018 con versione Desktop, in modo da poter gestire il Raspberry anche con altre funzionalità. Prestate attenzione che è attiva in tutte le versioni qui inserire la funzione SSH, per il controllo remoto del Raspberry con PUTTY.

Se invece si ha già il Raspberry operativo, o volete crearvi voi il vostro Raspberry partendo da zero, vi scrivo una breve guida per scaricare Raspbian e poi installare Cumulus, sia in versione per Jessie che Stretch (cambiano solo un paio di script, nulla di più). Considerate che mano mano che le versioni di Raspbian si evolvono, non aggiorno più i vecchi pacchetti di installazione, avrebbe poco senso!

PROCEDURA PASSO-PASSO PER INSTALLAZIONE DI CUMULUSMX PARTENDO DA ZERO!

Prima cosa, scaricate dal sito https://www.raspberrypi.org/ la versione di Raspbian Lite, scrivete l'immagine nella SD, poi nella directory di BOOT inserite dal vostro PC un file di testo vuoto, che abbia il nome "SSH" senza nessuna estensione. Quest'ultima operazione serve a far avviare il server SSH altrimenti non si può lavorare con Putty!

Con Putty accedete al Raspberry: nome utente "pi" password "raspberry" e digitate

sudo raspi-config
-->> aggiornare la password
-->> aggiornare il fuso orario
-->> modificate i dati WIFI, settando Italia, SSID e PWD
-->> effettuare l'update dell'interfaccia raspi-config

Lasciate lingua e regione in inglese, ossia con i settaggi di default.
E' opportuno effettuare anche l'upgrade Firmware del raspberry, con il seguente comando:

sudo rpi-update

Successivamente effettuate alcuni aggiornamenti:

Poi..... INSTALLAZIONE DI MONO 6.12

Se serve aggiornare i certificati di MONO, avendo ad esempio un errore con WINDY.COM andando a verificare nel file LOG posto nella directory "MXdiags" -->>> "Last message: Windy: The SSL connection could not be established, see inner exception." seguite il seguente procedimento

Poi un pò di pulizia....

L'installazione di FTP, serve per effettuare il backup in remoto dei file log, anche se qui non ho inserito come fare.
Ora scarichiamo Cumulus, un pacchetto già parzialmente sistemato.

sudo wget https://www.fracassi.net/raspy/CumulusMX_INST_RASP_9.zip
sudo unzip CumulusMX_INST_RASP_9.zip
sudo rm CumulusMX_INST_RASP_9.zip

Impostiamo poi i privilegi vari per l'esecuzione delle applicazioni
cd CumulusMX
sudo chown -R pi:pi /home/pi/CumulusMX
sudo chmod +x /home/pi/CumulusMX/cumulusmx.sh
sudo chmod +x /home/pi/CumulusMX/cumulusnow.sh
sudo chmod +x /home/pi/CumulusMX/riavvio_notturno.sh
sudo chmod +x /home/pi/CumulusMX/azzera.sh
sudo chmod +x /home/pi/CumulusMX/riavvio_wifi.sh   
 (comando opzionale)

Attiviamo l'avvio automatico di Cumulus (metodo 1)
cd CumulusMX (se non siete già in questa directory!)
sudo cp cumulusmx /etc/init.d/cumulusmx
sudo chmod +x /etc/init.d/cumulusmx
sudo update-rc.d cumulusmx defaults

NOTA: Per disabilitare questo particolare avvio: sudo update-rc.d -f cumulusmx remove

Attiviamo l'avvio automatico di Cumulus (metodo 2): aggiungiamo a Crontab una riga di esecuzione automatica all'avvio, questo è il metodo più comodo!!!
sudo crontab -e
Copiare in Crontab quanto scritto sotto:
@reboot sudo /home/pi/CumulusMX/cumulusmx.sh > /dev/null 2>&1

NOTA 1: per avviarsi, il file cumulus.ini deve essere presente, e nel pacchetto che avete scaricato, è già presente.

NOTA 2: CumulusMX per avviarsi correttamente necessita che la stazione sia collegata.

NOTA 3: il file batch AZZERA.SH consente di ripulire tutte le directory di CumulusMX come se si partisse con i dati da ZERO. Attenzione al suo utilizzo, vi cancella tutti i dati! Questa utilità mi è stata richiesta da un utente.

NOTA 4: IMPORTANTE errore di avvio con la dicitura "Maybe CumulusMX has not finnished to start yet or running on a different TCP Port then 8998. Please wait additional 30 seconds and try again, If it still fail, restart CumulusMX to clearly start on TCP Port 8998".
LEGGI LE INFO SOTTO

NOTA 5: può capitare che la rete WIFI non sia eccellente, e capita si possa sganciare. Abbiamo inserito un comando di PING ed un riavvio automatico dell'interfaccia WIFI del raspberry. Il file che riavvierà l'interfaccia si chiama riavvio_wifi.sh.

Questo il suo contenuto:

#!/bin/bash
# The IP for the server you wish to ping (8.8.8.8 is a public Google DNS server)
SERVER=8.8.8.8
# Only send two pings, sending output to /dev/null
ping -c2 ${SERVER} > /dev/null
# If the return code from ping ($?) is not 0 (meaning there was an error)
if [ $? != 0 ]
then
# Restart the wireless interface
    sudo ifconfig wlan0 down
    sleep 10
    sudo ifconfig wlan0 up
fi

-------------------------------------------

Impostiamo ora alcune funzioni automatiche con "CRONTAB"

sudo crontab -e

Copiare in crontab quanto scritto sotto:

10 01 * * * sudo /home/pi/CumulusMX/riavvio_notturno.sh
10 00 * * * sudo /home/pi/CumulusMX/cumulusmx.sh -b -z
*/50 * * * * sudo /sbin/sysctl -w vm.drop_caches=3 > /dev/null
*/20 * * * * sudo /home/pi/CumulusMX/cumulusmx.sh -w
*/5 * * * * sudo /home/pi/CumulusMX/riavvio_wifi.sh  
 (opzionale, anche il numero di minuti)
@reboot sudo iwconfig wlan0 power off

Nell'ordine abbiamo impostato: riavvio automatico all'una e dieci di ogni notte, backup automatico in una directory della SD alle ore 0.10, pulizia della caches ogni 50 minuti, monitoriamo ogni 20 minuti che cumulus sia operativo, funzione whatchdog,  effettuiamo il test della rete wifi e nel caso si riavvia l'interfaccia WIFI, da ultimo evitiamo che la schedina WiFi possa andare in stand by creando problemi di connessione. Il terzo comando si può anche eliminare. Ma se vi piace constatare quanta poca ram consumi il raspy allora è da lasciare operativo.

Con altri comandi è possibile gestire altre cose, tra cui backup automatici in rete, ecc... se avete impostato l'avvio automatico di Cumulus con Crontab allora ci sarà anche la riga indicata sopra......


ram utilizzata.... molto poca!

Ecco il risultato dell'installazione che si ha con il comando:

sudo /home/pi/CumulusMX/cumulusmx.sh -s

ecco la versione Buster di Raspbian

Cumulus si gestisce completamente da interfaccia web, pertanto occorre digitare l'indirizzo IP del Raspberry (consiglio di renderlo fisso bloccandolo dal router) digitando esempio: 192.198.100.35:8998.

Ecco come si presenta:


Notare che alcune voci sono in italiano, avendo provveduto alla loro traduzione.

Backup Automatici nel proprio spazio FTP

Con Crontab, è possibile gestire in modo abbastanza semplice anche dei backup automatici, sia dei file LOG creati da Cumulus, che dell'intera directory CumulusMX. In considerazione dei file che per un upload possono essere di una dimensione consistente, nel caso di una normale ADSL, consiglio di utilizzare un applicativo che ha la possibilità di evitare un utilizzo completo della banda di upload, si chiama CURL.

Creiamo quindi un file nella directory CumulusMX/data/ del nostro raspberry, dal nome che volete, ad esempio backup_siti.sh

Questa la linea da inserire nel file backup_siti.sh:

sudo curl --limit-rate 50K -T /home/pi/CumulusMX/data/"$(date +%b%y)"log.txt -u utente@aruba.it:password ftp://ftp.miosito.net/miosito.net/backupmeteo/

In questo modo, viene fatto il backup dell'ultimo file log relativo al mese in corso. Prestate molta attenzione al link del sito che inserirete, se fallisce, verificate in modo preciso magari collegandovi con un semplice browser il percorso FTP corretto, non sempre si inserisce quello giusto! Togliendo --limit-rate 50K la velocità di upload sarà libera. Avendo io però una ADSL con upload di soli 120K, ho preferito calmierare la velocità.

Fatto ciò, dobbiamo rendere eseguibile il file con il seguente comando:

sudo chmod +x /home/pi/CumulusMX/data/backup_siti.sh

Ora inseriamo in crontab la riga di comando, consiglio di fare il backup giornaliero, tutte le notti, in questo caso il backup viene eseguito alle ore 0:25. Prestare attenzione al fatto che se come me il log viene aggiornato ogni minuto, i file a fine mese saranno da circa 5 mb, quindi l'invio non è rapidissimo.

25 00 * * * sudo /home/pi/CumulusMX/data/backup_siti.sh

Bene, fatto ciò, consiglio anche di effettuare un backup settimanale della vostra directory di CumulusMX in rete. Già nelle versioni di Cumulus con Debian Stretch e Buster qui insetite, ho attivato un backup all'interno della schedina SD, tuttavia se questa dovesse irrimediabilmente danneggiarsi, non vi resta nulla. In questo modo avrete sempre on-line una copia (anzi più copie) del vostro CumulusMX. Anche qui è molto semplice: questo comando che vi ho fatto inserire prima in Crontab

10 00 * * * sudo /home/pi/CumulusMX/cumulusmx.sh -b -z

effettua tutte le notti alle ore 0.10 un backup nella vostra SD nella directory /home/pi/Backup_CumulusMX/ quello che dobbiamo fare è copiare l'ultimo file in una nostra directory remota, vediamo come:

Il nome file che viene creato da CumulusMX ogni notte è tipo questo: 2019-07-06_0010_CumulusMX.zip

Creiamo un file dal nome backup_settimanale.sh e rendiamolo eseguibile sudo chmod +x /home/pi/CumulusMX/data/backup_settimanale.sh

Quindi dobbiamo inserire alcune variabili nella stringa di comando per l'invio del nostro file, utilizziamo sempre il comando CURL.

sudo curl --limit-rate 50K -T /home/pi/Backup_CumulusMX/"$(date +%Y-%m-%d)"_****_CumulusMX.zip -u utente@aruba.it:password ftp://ftp.miosito.net/miosito.net/backupSDmeteo/

Nei file script, io ho impostato che restino 10 backup, non costa nulla averne in più! Quindi nella nostra SD troveremo n. 10 backup, CURL effettuerà l'upload solo del file più recente.

Inseriamo in Crontab il comando di esecuzione del backup. Prestiamo attenzione al fatto che:

50 00 * * 0 sudo /home/pi/CumulusMX/data/backup_settimanale.sh

Inserendo tale comando, il trasferimento del file zip viene effettuato alle ore 0:50 della sola domenica (indicato dallo 0).

Ecco il risultato del trasferimento dei file di LOG in due distinti siti. Badate bene che CURL in questo caso ci ha restituito un errore di mancato allineamento, non spaventiamoci, è solo il file LOG cambiato. Quindi per CURL l'origine non è più uguale a quello che ha uploadato, nessun problema.

Nel caso abbiate come connessione una Fibra od una ADSL con Upload sufficientemente rapido, potete tralasciare il comando --limit-rate, e lasciare la connessione sia piena.

GESTIONE DI CUMULUS CON STAZIONI TIPO PCE-FWS20

In alcuni siti ho letto che le stazioni meteo tipo PCE-FWS20, WX-2013, ecc... hanno qualche problema a dialogare con CumulusMX. Mi sono quindi fatto prestare una Consolle WX-2013 per effettuare dei test, ma pare che funzioni regolarmente ed i dati vengano correttamente letti. Come vedete dalle schermate sono visibili solo ed esclusivamente i dati di temperatura interna, pressione ed umidità. Non ho disponibile il gruppo sensori della stazione WX-2013.

Tale sintomo da alcuni segnalato, sarebbe una incompatibilità con la versione di MONO installata. Io sto facendo il test con un Raspberry Pi3 B+, Raspbian "Buster" e Mono JIT compiler version 5.18.0.240 (Debian 5.18.0.240+dfsg-3 Sat Apr 20 05:16:08 UTC 2019).

Prestate attenzione anche al fatto che nel menu "Station Setting" devono essere selezionate le voci Tipo di Stazione "Fine Offset" o "EasyWeather" e successivamente anche "Synchronise Fine Offset reads".

Per verificare la vostra versione di Mono installata nel Raspy digitate in Putty: sudo mono -V

Come vedete, i dati riportati da CumulusMX e la stazione sono i medesimi.

Nel caso in cui trovaste comunque dei problemi di dialogo con CumulusMX e questa tipologia di stazioni, consiglio allora di disinstallare la versione di Mono con il seguente comando:

sudo apt remove --purge --auto-remove mono-runtime

Riavviate il raspberry, poi installate la versione 3.10 che vi rendo disponibile per il download nel vostro raspberry. Questa la versione che vi rendo disponibile: Mono JIT compiler version 3.10.0 (mono-3.10.0-branch/ce003f4 Tue Nov 25 20:18:29 UTC 2014).

sudo wget https://www.fracassi.net/raspy/mono_3.10.deb.zip
sudo mv mono_3.10.deb.zip mono_3.10.deb
sudo dpkg -i mono_3.10.deb
sudo rm mono_3.10.deb

Se volete disinstallare invece questa versione 3.10 e passare ad altre per fare dei test digitate:

sudo dpkg --remove mono

Consiglio di fare un bel sudo reboot

Aggiornamento del 13/11/2020

Sto effettuando test da qualche giorno da remoto con la versione 3.9.1 build 3096 di Cumulus Raspbian Buster e Mono 5.18, la stazione PCE funziona regolarmente.


Aggiornamento del 03/01/2021

Se scaricate la mia versione, la stazione è già pre-configurata come DAVIS VantagePRO2/VUE, tuttavia se ad esempio nessuna stazione è collegata, viene restituito il seguente errore, e non si può accedere alla pagina WEB di setup.

Facciamo la verifica di stato di CumulusMX

sudo /home/pi/CumulusMX/cumulusmx.sh -s

L'errore è quello evidenziato in giallo:

"Maybe CumulusMX has not finnished to start yet or running on a different TCP Port then 8998. Please wait additional 30 seconds and try again, If it still fail, restart CumulusMX to clearly start on TCP Port 8998"

Per ovviare a questo problema, se non si ha collegato nessuna stazione meteo, occorre modificare il file Cumulusmx.ini di configurazione, digitiamo

sudo /home/pi/CumulusMX/cumulusmx.sh -q
sudo nano /home/pi/CumulusMX/Cumulus.ini

ed avviamo l'editor di testo

  

Modifichiamo Type=1  in  Type=-1

riavviamo CumulusMX

sudo /home/pi/CumulusMX/cumulusmx.sh

In questo modo abbiamo modificato la stazione come "UNDEFINED", riavviato CumulusMX vediamo in Setting della stazione che la stazione è stata 

Verifichiamo nuovamente lo stato di CumulusMX

sudo /home/pi/CumulusMX/cumulusmx.sh -s


CONSIGLI

Circa i consumi, utilizzando un semplice riduttore di tensione da 12-13.8V a 5V, il consumo a 12V è di circa 110/120 mA con picchi di 200 mA quindi molto contenuto. Ripeto, un alimentatorino tipo quello qui in foto è più che sufficiente a gestire il vostro raspberry, con una opportuna batteria al piombo da 7A 12V in tampone è il top per evitare brutti disguidi. Prestare attenzione che la versione Raspberry Pi3 B+ consuma un po' di più, circa 180 mA, quindi se avete necessità di consumi ridotti, meglio il normale Pi3 B che consuma circa 115 mA a 12V.

Un doveroso ringraziamento va a Raffaele Fino, il quale nel giugno del 2017 mi ha fornito la prima immagine per il raspberry. Non sapevo assolutamente da dove partire. Non conoscendo linux ero perso. Poi ho iniziato a leggere qua e la, ed alla fine ho imparato a gestire sufficientemente i raspberry, quanto basta per essere autosufficiente. Ma senza Raffaele e gli amici di Meteopassione, la mia Davis sarebbe ancora OFF-LINE!

Buon lavoro, 73 iw2ntf


Aggiornamento Consumi del 24/11/2019

Ciao a tutti, a seguito dell'acquisto di un raspberry Pi0W ed un Pi3A+ ho voluto confrontare i consumi. Sistema operativo Raspbian Buster, Versione di Settembre 2019.

I consumi sono misurati lato 12V, tensione alimentatore misurata: 13,8V. Il riduttore di tensione ha un consumo di circa 18,5.

Il Raspberry Pi0W con sistema operativo a regime ha un consumo oscillante tra 60 e 80 mA, una media di 70 mA (compreso riduttore di tensione), quindi decurtando i 18,5 mA il consumo netto è di circa 50 mA.

Il Pi3A+ in considerazione delle superiori caratteristiche di calcolo, ha un consumo di circa 91 mA con cumulusMX operativo, quindi un consumo netto di circa 70mA.

Traduciamo a livello economico, considerando anche il riduttore di tensione ed un consumo annuale.

Pi0W: circa 69 mA a 13,8V = 0,95 W ->> in un anno: 8,0 KW pari a circa 2,0 Euro (1GHz, single-core CPU)

Pi3A+: circa 91 mA a 13,8V = 1,25 W -->> in un anno: 11 KW pari a circa 2,5 Euro (Quad Core Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz)

Pi3B: circa 115 mA a 13,8V = 1,6 W -->> in un anno: 14 KW pari a circa 3,5 Euro (Quad Core 1.2GHz Broadcom BCM2837 64bit CPU)

Pi3B+: circa 180 mA a 13,8V = 2,5W -->> in un anno: 21,9 KW pari a circa 5,5 Euro (Quad Core Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz)


Visualizzazione dei dati su SmartPhone: Weather Station for Cumulus 4.6 per Android
Questa APP non è attualmente disponibile in Google Play. Non chiedetemi il motivo, ma potete scaricare comodamente da qui il file APK ed iniziare a fare tutte le prove del caso, per poi pubblicizzare l'opportunità di visualizzazione nel vostro sito meteo.

Scarica il File APK (link 1) - Scarica il file APK (link 2) - Scarica il File APK zippato

Circa l'installazione dell'APP sul telefono, ho fatto un tutorial in una pagina parallela del sito, QUI.

In questa pagina vedremo invece come installare ed attivare l'APP nel nostro Raspberry, o comunque con Cumulus, sia che usiate la vecchia versione che la versione CumulusMX.

Tempo fa vidi che questa APP era disponibile nel Play Store, la installai nel telefono, poi mancando i file fondamentali da far processare a Cumulus l'APP risultava non utile.

Per il funzionamento dell'APP serve un file XML per i dati dell'app, e n. 2 file per la gestione dei Widget, che risultano essere molto ben fatti. Non so perché lo sviluppatore abbia terminato il lavoro alla versione 4.6 e non sia andato avanti ad ottimizzarla. Solitamente chi crea le APP per telefono continua ad implementarle, in questo caso no.

Bene, per trovare questi file da far processare ho ruspato un pò in rete, trovato file non funzionanti, poi gira e rigira... TAC!

Per il funzionamento della APP vera e propria serve un file dal nome realtime.xml;
Per il funzionamento del widget serve il file realtime.txt generato direttamente da Cumulus ed un file che si chiama sunbird.txt.

A questo LINK trovate: un file "Weather Station for Cumulus_46.xml" che diventerà "realtime.xml" ed il file "sunbird.txt". Questi file saranno da inserire nel vostro Raspberry, nella directory di CumulusMX che si chiamerà  /home/pi/CumulusMX.

Prestate attenzione al fatto che per funzionare correttamente l'APP i tre file: realtime.xml, realtime.txt, sunbird.txt devono risiedere nella medesima directory, e quindi nello stesso URL che fornirete agli utenti per utilizzare l'APP.

Copiato i file "Weather Station for Cumulus_46.xml" e "sunbird.txt" nel Raspy, occorre dire a Cumulus di effettuare l'upload, procedendo a processarli compilando i campi variabili. Generalmente i file realtime vengono copiati con una frequenza molto intensa. Anche magari ogni minuto.

A lato sinistro il nome file in locale che si troverà nella directory /home/pi/CumulusMX mentre al centro trovate la directory remota del vostro spazio FTP, in questo caso vedete il percorso dove vengono salvati i miei file. Oltre a quelli per questa APP ne vengono caricati altri tre, il primo è per i dati del sito di MeteoPassione. Ovviamente questi link possono variare da sito a sito.

Bene, fatto ciò verifichiamo che tutto funzioni, e che quindi nel nostro spazio FTP ci siano realtime.xml e sunbird.txt. Realtime.txt già lo troverete, in quanto generato da CumulusMX. Caso non troviate "realtime.txt", dovete abilitare in Cumulus la sua creazione costante, andando in Setting>>Internet Setting>>Realtime.txt FTP mettendo la necessaria spunta e regolando opportunamente l'intervallo di tempo "Realtime interval".

L'APP ed i suoi widget si presenteranno così:

Come nota: la versione originale dell'APP e dei file XML prevedevano che dove vedete l'icona della casetta venisse fornita la temperatura interna e l'umidità interna. Dati che poco sono utili agli utenti, ho così provveduto a modificare opportunamente il file XML in modo che esca il dato di radiazione solare e l'indice UV. Se volete che escano ancora quei dati, nel file zippato è presente un file con il nome ORI che sta per originale, non modificato, utilizzate quindi quello, o editate il file realtime.

Se vorrete pubblicizzare nel vostro sito questa APP non dovrete fare altro che invitare gli utenti allo scaricamento dell'APP (purtroppo non da Play) e fornire il link XML, tipo il mio: https://www.fracassi.net/meteopassione/realtime.xml

Spero d'esservi stato d'aiuto.

Buon lavoro.

 

 

Ora - Oggi - Ieri - Scheda Stazione
Questo Mese - Tutti i mesi
Anno - Max & Min
Grafici

 

 

 
Pagina realizzata da Fracassi Andrea