Domotica e meteo: come personalizzare la tua casa in base alle previsioni del meteo
Fare colazione fra i colori del meteo
Una buona abitudine per iniziare la giornata con il piede giusto è quella di alzarsi dal letto ed avere una luce soffusa in giro per casa. Con una lampada RGB o con una striscia led colorata è possibile scegliere il colore con cui illuminare la stanza con le previsioni del tempo, per unire l’effetto di una bella luce colorata soffusa e dinamica con quello che sarà il mood della giornata.
Prerequisiti e ingredienti
- Una lampada colorata o una striscia rgb comandabile da un server domotico (nel mio caso utilizzo delle striscie rgb connesse ad un ottimo Shelly RGBW2)
- un server domotico dove inserire la logica di conversione dei colori, nel mio caso impiego Openhab (dai un occhiata al mio post su Openhab)
- il plugin sul server domotico per consentire l’esecuzione degli script Javascript (JSScripting)
- una registrazione gratuita sul provider meteo per la relativa ApiKey.
- un plugin o un provider per i dati meteo, nel mio caso uso il plugin gratuito di Openhab chiamato OpenWeatherMap Binding. Il plugin deve essere configurato con l’ApiKey del provider e dovranno essere creati gli elementi “Item” connessi alle variabili “Cloudiness”, “Rain”, “Snow”.
Abbiniamo i colori
Per iniziare abbiniamo i colori alle previsioni del tempo, così per avere subito un’idea chiara e intuitiva delle condizioni meterologiche con un solo sguardo al colore. Questa è solo una delle possibili combinazioni che si possono realizzare, se hai qualche suggerimento scrivilo nei commenti!
- Per la pioggia, ovviamente l’idea è quella di andare da un azzurro, ad un blu pieno per la piogga pesante, fino ad un viola in caso di temporale con delle saette in tema.
- Nel caso di una giornata limpida partiamo sicuramente con un bel giallo.
- Man mano che la nuvolosità aumenta questo colore potrebbe virare verso un grigio.
Le coordinate HSV
Trascrivere questa logica lavorando con le coordinate RGB potrebbe essere complicato, in quanto per abbinare la percentuale di nuvolosità o la quantità di pioggia alle scale di colore desiderate dovremmo trovare delle funzioni matematiche non intuitive. Come ci insegna l’ingegneria, quando il problema si fa duro è necessario un cambio di coordinate! Per identificare i colori non esiste solo la codifica RGB, in cui ogni dimensione è uno dei tre colori primari rosso, verde e blu. Un’altra codifica che torna molto utile in questo caso è HSV o HSB, il cui spazio di valori possiamo rappresentare come un cilindro, avente sulla circonferenza superiore le varie tinte (identificati con i gradi a 0 a 360) che sfumano verso il centro della base superiore diminuendo la saturazione (in percentuale). Alla base inferiore c’è il nero, e longitudinalmente possiamo misurare la brillantezza (in percentuale).
I colori risultanti
meteo | % neve | % pioggia | % nuvole | colore scelto |
---|---|---|---|---|
soleggiato | 0 | 0 | 0 | hsv(40,100,100) |
nuvoloso | 0 | 0 | 5 | hsv(95,95,100) |
molto nuvoloso | 0 | 0 | 95 | hsv(95,45,100) |
pioggia leggera | 0 | 10 | - | hsv(180,100,100) |
pioggia pesante | 0 | 70 | - | hsv(240,100,100) |
temporale | 0 | 100 | - | hsv(280,100,100) |
neve | 30 | - | - | hsv(10,100,100) |
Lo script
Questa logica la dobbiamo portare sul nostro server di domotica. Nel mio caso ho scelto uno script Javascript (ECMA 262 Edition 11). Gli item a cui faccio riferimento nel codice e che devono essere già presenti sono:
- quelli relativi al meteo, nel mio caso ho scelto le previsioni a 6 ore: LocalWeatherandForecast_ForecastedWeatherCondition6H, LocalWeatherandForecast_ForecastedCloudiness, LocalWeatherandForecast_ForecastedRain, LocalWeatherandForecast_ForecastedSnow
- L’item relativo al colore della nostra lampada LuceRgbSoggiorno_Color
Ecco lo script:
|
|
Utilizzo
Una volta testato lo script non resta che invocarlo o abbinarlo agli scenari di casa.
- è possibile invocare lo script a seguito della pressione di un tasto fisico di scenario, così la mattina cliccando sullo scenario “giorno” si potrebbe invocare la logica illuminando delicatamente la casa (ne ho già parlato qui)
- si può utilizzare il timing di Openhab, per attivarlo in orari predeterminati del giorno, come l’alba
- si può azionare a seguito di un altro evento, come l’accensione di una lampada o di un apparecchio
- si può attivare lo scenario dagli assistenti vocali Google Home o Amazon Alexa, creando un item in Openhab pubblicato sulle piattaforme cloud (se ti interessa l’argomento potrei scrivere un articolo, fammelo sapere nei commenti)