Xtazy
Messages : 10 Date d'inscription : 02/10/2019
| Sujet: Résolu:Plugin Meteo Ven 4 Oct - 13:26 | |
| Salut à tous, j'en profite pour vous dire que c'est un super Forum très instructif, une fois le projet avancé j'en profiterais pour partager mon expérience. je me lance dans un projet domotique pour une maison neuve et je cherchais comment faire fonctionner les Plugins qui ont des erreur comme par exemple météo. Une fois le serveur SARAH lancé et le micro connecté au serveur, j'envoie ma commande vocale et il m’affiche plusieurs erreur lié au script. Il reçoit bien la commande de l'heure et cela fonctionne. Auriez vous quelques pistes sur ces erreurs svp? Voici une copie de la commande de l'heure: - Code:
-
Found:{ cmd 'time', options: { confidence: '0.8865762', client: 'SARAH1', profile: 'Unknow_7380', directory: 'C:\\Users\\..\\sarah\\macros', body: {} }, timeOfDay: 47837.422, dayOfWeek: 5, dayOfMonth: 4, location: 'house', count: 1 } info: Run time: 9ms
et celle de la météo:
error: Caught exception: SyntaxError: Unexpected token < at Object.parse (native) at scrap (C:\Users\..\sarah\plugins\meteo\meteo.js:48:21) at Request._callback (C:\Users\..\sarah\plugins\meteo\meteo.js:21:12) at Request.self.callback (C:\Users\..\sarah\NodeJS\node_modules\npm\node _modules\request\index.js:148:22) at Request.EventEmitter.emit (events.js:98:17) at Request.<anonymous> (C:\Users\..\sarah\NodeJS\node_modules\npm\node_m odules\request\index.js:876:14) at Request.EventEmitter.emit (events.js:117:20) at IncomingMessage.<anonymous> (C:\Users\..\sarah\NodeJS\node_modules\np m\node_modules\request\index.js:827:12) at IncomingMessage.EventEmitter.emit (events.js:117:20) at _stream_readable.js:910:16 Edit: d’après ce que j'ai constater lors des recherches, ce plugin est très dépendant de la source sur laquelle il va chercher les info météo. Du faite que météo France ai complètement réorganisé son site, le lien URL n'est plus le même.. De le meteo.js il faudrait changer l'URL avec le nouveau JSON sauf que comment trouver cette URL??: - Code:
-
var action = function(data, callback, config, SARAH){
// Retrieve config config = config.modules.meteo; if (!config.zip){ console.log("Missing Meteo config"); callback({'tts' : 'Zip code invalide'}); return; } var url = 'http://www.meteo-france.mobi/ws/getDetail/france/'+(data.zip || config.zip)+'.json' var request = require('request'); request({ 'uri' : url }, function (err, response, body){ if (err || response.statusCode != 200) { callback({'tts': "L'action a échoué"}); return; }
last = scrap(body, data.date || config.date); callback(last); }); } exports.action = action;
Il faut aussi remplacer le ZIP code dans le fichier XML et le fichier prop par le nouveau chiffre qui est relativement facile a trouver; Il faut aller sur météo France widget : [Vous devez être inscrit et connecté pour voir ce lien]Pour paris 1er arrondissement c'est le code 751010 dans l'url ci dessus. Si quelqu'un peut m'aider a refaire ce plugin utile.. merci de votre aide
Dernière édition par Xtazy le Sam 19 Oct - 16:16, édité 1 fois | |
|
Invité Invité
| Sujet: Re: Résolu:Plugin Meteo Dim 6 Oct - 11:03 | |
|
Dernière édition par halim le Ven 1 Nov - 14:48, édité 1 fois |
|
Xtazy
Messages : 10 Date d'inscription : 02/10/2019
| Sujet: Re: Résolu:Plugin Meteo Dim 6 Oct - 14:20 | |
| Bonjour, serait il possible de m'aider à scraper le site car le plugin ne marche plus en l’état. - Code:
-
var action = function(data, callback, config, SARAH){
// Retrieve config config = config.modules.meteo; if (!config.zip){ console.log("Missing Meteo config"); callback({'tts' : 'Zip code invalide'}); return; } var url = 'http://www.meteo-france.mobi/ws/getDetail/france/'+(data.zip || config.zip)+'.json' var request = require('request'); request({ 'uri' : url }, function (err, response, body){ if (err || response.statusCode != 200) { callback({'tts': "L'action a échoué"}); return; }
last = scrap(body, data.date || config.date); callback(last); }); } exports.action = action;
// ========================================== // INIT // ==========================================
var last = false; exports.last = function(){ if (!last){ action({}, function(){}, SARAH.ConfigManager.getConfig(), SARAH); } return last; };
var SARAH = false; exports.init = function(bot){ SARAH = bot; }
// ========================================== // SCRAP // ==========================================
var scrap = function(body, date){
var meteo = JSON.parse(body).result; var json = { tts : 'Météo: '}; var prev = getPrevision(meteo, date);
json.place = meteo.ville.nom; json.temp = prev.temperatureMin + '°C'; json.sun = prev.description; json.tts += json.place + ": "; json.tts += day[prev.jour+'_'+prev.moment]+', '; json.tts += json.sun + ', ' if (prev.temperatureMin != prev.temperatureMax){ json.tts += 'température entre ' + prev.temperatureMin + ' et ' + prev.temperatureMax + ' degrés'; } else { json.tts += 'température de ' + prev.temperatureMin + ' degrés'; } return json; }
var getPrevision = function(meteo, date){ var prevision = meteo.previsions; if (date.length > 2){ return prevision[date]; } date = parseInt(date); for (var p in prevision){ if (date-- <= 0) return prevision[p]; } }
var day = { '0_matin': 'ce matin', '0_midi' : 'ce midi', '0_soir' : 'ce soir', '0_nuit' : 'cette nuit', '1_matin': 'demain matin', '1_midi' : 'demain midi', '1_soir' : 'demain soir', '1_nuit' : 'la nuit prochaine', '2_matin': 'après demain matin', '2_midi' : 'après demain midi', '2_soir' : 'après demain soir', '2_nuit' : 'dans 2 nuits' }
ou pointent data.zip et config.zip dans l'url? le site de météo indique ces données comment on les intègres? Merci | |
|
Invité Invité
| Sujet: Re: Résolu:Plugin Meteo Dim 6 Oct - 15:34 | |
|
Dernière édition par halim le Ven 1 Nov - 14:47, édité 1 fois |
|
Xtazy
Messages : 10 Date d'inscription : 02/10/2019
| Sujet: Re: Résolu:Plugin Meteo Mar 8 Oct - 18:06 | |
| Salut j'ai déjà essayé mais sans succès car le lien ne pointe plus vers les données. | |
|
Invité Invité
| Sujet: Re: Résolu:Plugin Meteo Dim 13 Oct - 20:19 | |
|
Dernière édition par halim le Ven 1 Nov - 14:46, édité 1 fois |
|
Invité Invité
| Sujet: Re: Résolu:Plugin Meteo Jeu 17 Oct - 20:00 | |
|
Dernière édition par halim le Ven 1 Nov - 14:46, édité 1 fois |
|
Xtazy
Messages : 10 Date d'inscription : 02/10/2019
| Sujet: Re: Résolu:Plugin Meteo Sam 19 Oct - 14:38 | |
| | |
|
Xtazy
Messages : 10 Date d'inscription : 02/10/2019
| Sujet: Re: Résolu:Plugin Meteo Sam 19 Oct - 16:15 | |
| T'es un Dieu!! J'ai juste eu besoin de changer l'Url, et le fichier paramètre aussi afin de l'adapter a ma ville. Merci beaucoup
Petite question supplémentaire: si je veux scrapper la balise span, comment on fait? car le h3 ça marche bien. j'ai vu que tu avais mis > div.front.multiple > h3.
Edit: finalement j'y suis arrivé en tâtonnant: #quarters > div > div > div > div > div.cellText > span | |
|
CLARA
Messages : 81 Date d'inscription : 18/12/2022
| Sujet: Re: Résolu:Plugin Meteo Lun 13 Mar - 22:59 | |
| | |
|
Contenu sponsorisé
| Sujet: Re: Résolu:Plugin Meteo | |
| |
|