Script Google permettant la lecture des données météo (température, vent et direction du vent) prévues dans X heures et transfert des données dans la Zibase.
Les données météo sont prélevées sur le site yr.no
/** * ======================================================================================================== * Lit la météo sur le site yr.no et envoi la température et le vent du moment * ======================================================================================================== **/ var ZIBASE = "xxxxxxx"; var TOKEN = "xxxxxxx"; var Z_VARIABLE_TEMP = 9; var Z_VARIABLE_VENT = 8; var Z_VARIABLE_VENT_DIR = 7; var DECALAGE_HEURES = 6; var METEO = "http://www.yr.no/place/France/Rhône-Alpes/Valleiry/forecast_hour_by_hour.xml"; /** * -------------------------------------------------------------------------------------------------------- * Envoi la température ET le vent * -------------------------------------------------------------------------------------------------------- **/ function meteo() { temperature(); vent(); } /** * -------------------------------------------------------------------------------------------------------- * Envoi la température * -------------------------------------------------------------------------------------------------------- **/ function temperature() { var doc = parse(); var temp = doc.weatherdata.forecast.tabular.time[DECALAGE_HEURES].temperature.value; envoi = UrlFetchApp.fetch("https://zibase.net/m/zapi_remote_zibase_set.php?device=" + ZIBASE + "&token="+ TOKEN + "&action=rowzibasecommand¶m1=5¶m2="+ (temp*10) + "¶m3=1¶m4=" + Z_VARIABLE_TEMP); } /** * -------------------------------------------------------------------------------------------------------- * Envoi le vent (force et direction) * -------------------------------------------------------------------------------------------------------- **/ function vent() { var doc = parse(); var vent = doc.weatherdata.forecast.tabular.time[DECALAGE_HEURES].windSpeed.mps; envoi = UrlFetchApp.fetch("https://zibase.net/m/zapi_remote_zibase_set.php?device=" + ZIBASE + "&token="+ TOKEN + "&action=rowzibasecommand¶m1=5¶m2="+ (vent*10) + "¶m3=1¶m4=" + Z_VARIABLE_VENT); var direction = doc.weatherdata.forecast.tabular.time[DECALAGE_HEURES].windDirection.deg; envoi = UrlFetchApp.fetch("https://zibase.net/m/zapi_remote_zibase_set.php?device=" + ZIBASE + "&token="+ TOKEN + "&action=rowzibasecommand¶m1=5¶m2="+ (direction*10) + "¶m3=1¶m4=" + Z_VARIABLE_VENT_DIR); } /** * -------------------------------------------------------------------------------------------------------- * Parse le document XML * -------------------------------------------------------------------------------------------------------- **/ function parse() { var text = UrlFetchApp.fetch(METEO, {method : "post"}).getContentText(); var doc = Xml.parse(text, true); return doc }
Bonjour Steven…..
je viens de copier ton script (et mis mes identifiants avec ma localité).
Que faut-il faire ensuite ?
Faut-il créer un périphérique virtuel ?
Comment ces données apparaissent-elles sur la Zibase ?
Merci.
En exécutant le code tel que fournis, ce dernier va renseigné les variables suivantes :
v9 = température;
v8 = vitesse du vent;
v7 = direction du vent;
Il te suffit comme tu le dis de créer une sonde virtuelle et d’exploiter ces variables.
Pour rappel : Zodianet Sonde virtuelle (tout à la fin).
Toujours au top merci 😉
Tiens c’est bizarre lorsque le script se lance il me coupe le périphérique A1 ????? (météo, temp ou vent)
Sent radio ID (1 burst(s), Protocol=’X10′ ‘Chacon’):A1_OFF
Arg, les URL comme elle apparaissent sur ce site sont fausses.
¶m est devenu &m
UrlFetchApp.fetch(“https://zibase.net/m/zapi_remote_zibase_set.php?device=” + ZIBASE + “&token=”+ TOKEN + “&action=rowzibasecommand&m1=5&m2=”+ (direction*10) + “&m3=1&m4=” + Z_VARIABLE_VENT_DIR);
Il faut remplacer les
&m1 par ¶m1
&m2 par ¶m2
&m3 par ¶m3
&m4 par ¶m4
Je viens de corriger le script si tu souhaites le reprendre