[GUIDA] Virtual Device per previsioni meteo
  • 15 voti - 3.2 media
#1
Il presente post per condividere il codice LUA creato (mettendo assieme vari spunti presi da Intenet) al fine di comporre una stringa contenente le previsioni meteo (sia lo stato attuale che previsioni) per una determinata zona.

Tale stringa è utilizzabile per rappresentare a video le informazioni o passarle a soluzioni  Text To Speech (TTS) per riprodurle su delle casse Sonos (ad esempio). Personalmente lo utilizzavo con successo prima che il servizio TTS di Google fosse bloccato, ora ho visto che ci sono altre soluzioni TTS, appena posso vedrò di metterci le mani.

Il servizio utilizzato è quello offerto dalle API di Weather Underground, un sito di meteorologia che rileva in tempo reale le condizioni atmosferiche e ne trae delle previsioni.

Ovviamente per utilizzare il servizio è necessaria una registrazione gratuita che serve per ricevere l'API_KEY, ovvero la chiave da mettere nella richiesta GET dell' API.
Rimando al presente sito (LINK) con istruzioni in italiano (oppure direttamente a quello del fornitore):

Una volta ottenuta l'API_KEY e composta la stringa di chiamata all'api comprensiva della lingua, della zona di interesse e se si sta chidendo la previsione o situazione attuale, seguire i seguenti passi:
  1. creare una variabile di ambiente chiamata PushMsgTTSWeather (che sarà aggiornata con la previsione e/o situazione attuale)
  2. creare un Virtual Device con tre pulsanti: Attuale+Previsione, Attuale e Previsione
  3. copiare ed incollare le righe di codice più sotto nei rispettivi pulsanti avendo cura di sostituire TUA_API_KEY_ATTUALE e TUA_API_KEY_PREVISIONE  con la stringa di chiamata all'API contenente la vostra API KEY
In allegato il risultato del virtual device come dovrebbe risultare...
   

****************************************************************** 
PULSANTE ATTUALE+PREVISIONE:
******************************************************************
Questo codice è solo per gli utenti registrati

****************************************************************** 
PULSANTE ATTUALE:
******************************************************************
Questo codice è solo per gli utenti registrati
******************************************************************
PULSANTE PREVISIONE:
******************************************************************
Questo codice è solo per gli utenti registrati
01 x Fibaro HC2 V4.070
07 x Fibaro Switch ON/OFF 2x1,5kW EU - V1.9
08 x Fibaro Door/Window Sensor + temp sens. - V2.1
01 x Fibaro Smoke Sensor EU - v2.1
05 x Fibaro Motion Sensor EU - v2.6 (1) V2.7 (4)
02 x Danfoss Living Connect Z - Fw 2.51
01 x Aeon Labs ON/OFF Smart Switch V1.43
01 x Sonos Playbar
02 x Samsung Smart TV
Questo messaggio è stato modificato l'ultima volta il: 03-03-2016, 01:41 PM da kead.
#2
Spettacolo!!!!
Sto usando qualcosa di simile preso da un sito straniero ma troppo complesso e poco immediato.
Questa soluzione invece è veramente pratica e sopratutto già pronta al TTS (per il mio coniglietto è una bellezza).
Ti ringrazio per la condivisione.
Unica cosa: modifico il post inserendo il codice con la relativa Tag per evitare problemi di copia ed incolla causa errori sui caratteri.
Fibaro HC2 + HClite+ Satel Integra 32 + Nas Synology 415plus + Nabaztag V2
#3
Figurati...

Si, si fai pure... per la prossima volta, il codice lo dovei inserire premendo l'icona avente una pagina con i simboli <>?
01 x Fibaro HC2 V4.070
07 x Fibaro Switch ON/OFF 2x1,5kW EU - V1.9
08 x Fibaro Door/Window Sensor + temp sens. - V2.1
01 x Fibaro Smoke Sensor EU - v2.1
05 x Fibaro Motion Sensor EU - v2.6 (1) V2.7 (4)
02 x Danfoss Living Connect Z - Fw 2.51
01 x Aeon Labs ON/OFF Smart Switch V1.43
01 x Sonos Playbar
02 x Samsung Smart TV
#4
Esatto... cosi si evitano errori dovuti alla formattazione del testo e si contengono le lunghezze dei post.

Un dettaglio: ma la API key non è unica? perche fai distinzione tra API per "attuale" e quella per "previsione"??
Fibaro HC2 + HClite+ Satel Integra 32 + Nas Synology 415plus + Nabaztag V2
#5
OK, si, così è molto più ordinato...

Si, l'API_KEY è la stessa ma le distinguo poiché la chiamata ha il parametro conditions o forecast che le differenzia, per esempio:

strAPIKeyConditions = "/api/xxx/conditions/lang:IT/q/yyy.json"

strAPIKeyForecast = "/api/xxx/forecast/lang:IT/q/yyy.json"

dove xxx è la mia chiave e yyy la località.
01 x Fibaro HC2 V4.070
07 x Fibaro Switch ON/OFF 2x1,5kW EU - V1.9
08 x Fibaro Door/Window Sensor + temp sens. - V2.1
01 x Fibaro Smoke Sensor EU - v2.1
05 x Fibaro Motion Sensor EU - v2.6 (1) V2.7 (4)
02 x Danfoss Living Connect Z - Fw 2.51
01 x Aeon Labs ON/OFF Smart Switch V1.43
01 x Sonos Playbar
02 x Samsung Smart TV
Questo messaggio è stato modificato l'ultima volta il: 03-03-2016, 04:22 PM da berga_s.
#6
Ciao berga_s,

ti ringrazio della tua guida!!

Solo una cosa, riesco a visualizzare le informazioni meteo solo ed esclusivamente quando eseguo il debug del pulsante, mentre non succede niente quando clicco sul/i pulsante/i!!!
Puoi darmi gentilmente un aiuto a capire cosa ho sbagliato?

Grazie
Yuri
#7
Interessante.. Allega anche il vd così da evitare errori di trascrizione se ti va...
#8
In allegato il VD da importare...

NOTA BENE:
nel VD ho sostituito le mie stringe di situazione attuale e previsioni (contenenti la mia chiave) con "INSERIRE QUI".
Pertanto è necessario che in tutti e trei i pulsanti andiate a modificare la stringa con i vostri paramenti (chiave e località).

L'esempio di strighe è quello che ho riportato su un post precedente ma che per semplicità ricopio:
  • strAPIKeyConditions = "/api/xxx/conditions/lang:IT/q/yyy.json"
  • strAPIKeyForecast = "/api/xxx/forecast/lang:IT/q/yyy.json"
dove xxx è la mia chiave e yyy la località, la prima per la situazione attuale e la seconda per la previsione.


@Yuri: prova ad eliminare il VD che hai creato ed importare questo con le modifiche che ho descritto sopra... se non dovesse funzionare non ti saprei dire da cosa dipende (al momento io ho la 4.070, ma questo VD mi funziona sin dalla 3.x).

Allegati
.zip
File size: 1.58 KB
Download: 18

01 x Fibaro HC2 V4.070
07 x Fibaro Switch ON/OFF 2x1,5kW EU - V1.9
08 x Fibaro Door/Window Sensor + temp sens. - V2.1
01 x Fibaro Smoke Sensor EU - v2.1
05 x Fibaro Motion Sensor EU - v2.6 (1) V2.7 (4)
02 x Danfoss Living Connect Z - Fw 2.51
01 x Aeon Labs ON/OFF Smart Switch V1.43
01 x Sonos Playbar
02 x Samsung Smart TV
#9
figo funziona, da modificare la sintassi però come sotto..
strAPIKeyForecast = "/api/xxx/forecast/lang:IT/q/Italy/Milan.json"


se il paese ha uno spazio nel nome, sostituirlo con _
#10
OK, bene!
Ho aggiunto anche io nelle mie stringhe "/Italy/" che prima non avevo (ma funzionava).
01 x Fibaro HC2 V4.070
07 x Fibaro Switch ON/OFF 2x1,5kW EU - V1.9
08 x Fibaro Door/Window Sensor + temp sens. - V2.1
01 x Fibaro Smoke Sensor EU - v2.1
05 x Fibaro Motion Sensor EU - v2.6 (1) V2.7 (4)
02 x Danfoss Living Connect Z - Fw 2.51
01 x Aeon Labs ON/OFF Smart Switch V1.43
01 x Sonos Playbar
02 x Samsung Smart TV


Utente(i) che stanno guardando questa discussione:
1 Ospite(i)