Module météo/forecast: utilisation

logs

#1

Bonjour,

J’ai installé les modules météo et forecast sur Gladys. Ca fonctionne puisque dans ma box sur la page d’accueil j’ai bien la météo du jour et à venir.

D’après ce que j’ai pu lire à droite et à gauche, ce module affiche la météo du device sur lequel est affiché la page : si je le fais depuis mon téléphone en Belgique : j’aurai la météo géolocalisée.

Est-il possible de forcer le module à n’afficher que la météo de la maison? Si oui comment? Car sur la page du module on peut voir comment l’utiliser grâce à

var options = {
latitude: 45,
longitude: 45,
offset: 2
};

mais le truc c’est que je ne vois pas bien où mettre ça (tout en changeant les valeurs 45 et 2 bien évidement). Une idée ?

Autre question : est-il possible d’avoir plusieurs box météo mais pour des villes différentes ?

Autre sujet : est-il possible d’utiliser les données du module forecast dans le passé pour faire des actions spécifiques. L’idée par exemple serait de créer un module pour la gestion d’un arrosage automatique du genre : s’il n’a pas plus au moins 1 fois dans la journée alors lancer l’arrosage


#2

Très très bonne idée d’utilisation du module (bien que j’ai peu confiance avec les API de sites de météo, rien ne vaut une station météo sur place pour être sûr qu’il ait plu ou pas)


#3

Entièrement d’accord avec toi, la fiabilité n’est pas optimale.
Maintenant, pour du gazon, ça doit pouvoir suffire.


#4

Perso je ne me fierai pas au donnée de l’api météo, pourquoi ne pas prendre un xiaomi temperature humidity et faire une condition sur l’humidité, logiquement si il pleut, l’humidité devrait très largement augmenter :wink: et du coup tu pourrais faire si humidité est plus petit que X% alors lancer l’arrosage.


#5

Merci pour toutes ces remarques qui sont très justes mais ça ne répond pas tout à fait à mes 2/3 questions :slight_smile: D’autres réponses ?


#6

Une autre façon de faire sans investir : utiliser les données de Météo France, avec l’alerte de pluie dans l’heure.
Il existe une API pour ça, à partir du code Insee de la commune :
1- Récupérer son code Insee à l’aide du code postal ici
2- remplacer dans l’adresse suivante les XXXXXX par votre code (en complétant par des zéros si nécessaire) :
http://www.meteofrance.com/mf3-rpc-portlet/rest/pluie/XXXXXX
En retour, on obtient un JSON.
PS :
En remplaçant les XXXXX par votre code postal dans ce lien, vous aurez un JSON avec plein d’info sur ladite commune :slight_smile: :
http://www.meteofrance.com/mf3-rpc-portlet/rest/pluie/XXXXXX


#7

Hello Hello :slight_smile:

Je viens de faire un petit truc niveau météo que j’ai trouver sur un autre topic :
L’idée est de faire dire à Gladys la météo, un peu comme ce qu’elle fait dans le chat.

J’ai trouver ce bout de code, par contre, il donne le temps en anglais. Vu que le chat le donne en français, je pense que ça devrait être possible, mais la comme ça je ne vois pas :slight_smile:

var options = {
latitude: LAT,
longitude: LONG,
};
var userId = 1;

gladys.weather.get(options)
.then((result) => {
gladys.modules.speak.say({language: 'fr',text: 'Bonjour ! Il fait actuellement ' + result.temperature + ' °C, avec un temps ' + result.weather + ' et une humidité à ' + (result.humidity ) + '%.'},{id: userId})
.catch(err => console.log('Impossible d\'envoyer la météo à l\'utilisateur (id = ' + userId + ') via Speak'))})
.catch(console.log);

Quelqu’un aurait une petite idée ? :slight_smile:


#8

Salut,

Essai avec language: ‘fr-FR’
Je pense que ça vient de là


#9

@C3DR1K

En fait j’ai trouvé par la suite avec un autre bout de script par la suite :

var options = {
latitude: XX,
longitude: XX,
};
var userId = 1;

gladys.weather.get(options)
.then((result) => {

var temp = result.temperature;
var wea = result.weather;
var humi = 100 * result.humidity;
var wind = result.windSpeed;

switch (wea){
    case "snow":
        wea = "Il neige.";
        break;
    case "rain":
        wea = "Il pleut.";
        break;
    case "clear":
        wea = "Le ciel est dégagé.";
        break;
    case "cloud":
        wea = "Le ciel est couvert.";
        break;
    case "fog":
        wea = "Il y a du brouillard";
        break;
    case "sleet":
        wea = "Il grêle.";
        break;
    case "wind":
        wea = "Le mistral est de sortie.";
        break;
    default:
        wea = 'Le ciel est :'+ wea+'.';
    }

gladys.modules.speak.say({language: 'fr',text: 'Bonjour ! ' + wea + ' avec une température de ' + result.temperature + ' °C. Vent à  ' + wind + 'kilomètre heures' },{id: userId})
.catch(err => console.log('Impossible d\'envoyer la météo à l\'utilisateur (id = ' + userId + ') via Speak'))})
.catch(console.log);