Raspberry UDOiT – Temporizzazione albe e tramonto con cron

Da qualche tempo sto testando il sistema domotico wireless della UDOit, sistema basato sulla rete Aurel RFTide e su un concentratore linux-based Raspberry.

Ho la necessità di accendere e spegnere in maneira temporizzata le luci esterne della mia abitazione, luci comandate dai relè wireless UDOiT. Il primo tentativo è stato quello di inserire il controllo delle luci direttamente in cron, mettendo ora di accensione e spegnimento fisse.

Tutto bene tranne ovviamente il fatto che l’orario di alba e tramonto mutano durante l’anno, ritrovandomi che alla sera le luci si accendevono troppo tardi rispetto al tramonto.

Dopo aver provato varie soluzioni ho trovato quella che sembra fare per me: sunwait


Sunwait è un programma scritto in C che, date le coordinate di un punto, può calcolare vari dati interessanti, tra cui gli orari di crepuscolo. Potremmo usare quindi sunwait come trigger per il controllo delle luci esterne.
Qui qualche appunto sull’installazione e sulla configurazione di questo programma sul sistema domotico UDOiT.

Ovviamente si parte facendo login sul sitema Raspberry come root e poi si passa al download e scompattamento del programma sunwait nella cartella /home/RF

cd /home/RF
wget http://www.risacher.org/sunwait/sunwait-20041208.tar.gz
tar -xzf sunwait-20041208.tar.gz
cd sunwait-20041208

Passiamo poi al compilare il programma e a copiarlo nella cartella appropriata

make
cp sunwait /usr/local/bin/

Ora il programma sunwait è pronto per essere utilizzato. Ma cosa fa in poche parole sunwait?
Sunwait, usando come parametri le coordinate e l’evento che si vuole calcolare, nel nostro case alba e tramonto, crea un processo che aspetterà in background il momento esatto dell’evento per poter eseguire un’azione.

Nel nostro caso inserirò due chiamate a sunwait in cron, una per l’alba e una per il tramonto, che allo scattare dell’evento controlleranno le luci esterne.
Le chiamate a sunwait per mia comodità le inserirò ogni giorno alle ore 14.

Per prima cosa occorre trovare le coordinate della propria posizione, per questo basta sfruttare Google Maps. Si cerca la località interessata, si clicca sulla mappa e maps ci darà latitudine e longitudine in formato WGS84 come servono a noi.
Ad esempio prendiamo il Duomo di Milano, si vede come nell’immagine qui sotto, nella parte in basso siano presenti le coordinate 45.464093 e 9.192871, corrispondenti a latitudine e longitudine di Piazza del Duomo

coordinatemaps

 

Ora è il momento dell’ultimo passaggio, inserire le chiamate a sunwait in cron. Chiamo l’editor per cron

crontab -e

e inserisco in fondo queste righe. Attenzione alle andate a capo, sono sole due righe.
00 14 * * * /usr/local/bin/sunwait civ down 45.464093N 9.192871E; python /home/RF/Script/ExternalLightsControl.py ON
01 14 * * * /usr/local/bin/sunwait civ up 45.464093N 9.192871E; python /home/RF/Script/ExternalLightsControl.py OFF

Due parole di commento a queste entry. Queste richiamano alle 14:00 e 14:01 sunwait, usando rispettivamente come evento di trigger il crepuscolo civile e alba civile, usando come punto di calcolo le coordinate del Duomo di Milano trovate prima e passandogli come azione da eseguire uno script da me scritto per il controllo delle luci.
Di questo script scriverò presto due righe a riguardo e lo metterò disponibile per il download.
Al momento giusto il processo di sunwait verrà eseguito e sarà il trigger per l’accensione, o lo spegnimeno, delle mie luci. Questo sì che è fare domotica 🙂

 

 

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *