Aller au contenu
Dragoniacs

Infos Météo avec Weatherbit

Recommended Posts

Bonjour à tous,

 

Suite à la disparition de l'API Wunderground, je me suis permise de reprendre en partie le YAMS de @sebcbien, en utilisant également le travail de @Dgille, afin de nous concocter un nouveau VD de gestion météo. Cela surtout pour me permettre de faire de nouveau parler mon lapin :60:

 

Codes sources :

https://www.domotique-fibaro.fr/topic/6446-yams-wu-yet-another-meteo-station-wunderground-version/

https://www.domotique-fibaro.fr/topic/13120-météo-avec-weatherbitio/

 

  • Prérequis

Ouvrir un compte sur le site https://www.weatherbit.io/

Dans vos paramètres de compte, vous devrez récupérer votre clé pour pourvoir utiliser les API

 

  • Installation

Importez le VD -> WeatherBit_V4_3.vfib

Dans le mainloop du VD, il faut préciser le numéro de la scène et la fréquence de mise à jour.

 

Créez une nouvelle scène, et collez le code suivant -> Scene_WeatherBit_V4_5.lua

Il y a des choses à paramétrer dans la scène :

WBApikey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  -- API Key WeatherBit
WBCityid ="" -- Code ville, sinon vide pour latitude longitude de la HC2
WDelai = 30     -- Période d'actualisation en minute (minimum 2, max 45)
WD_VD = 876  -- Préciser l'ID du VD WeatherBit
WPushMatin = "07:00" -- Heure d'envoi des infos le matin, laisser vide si pas de push
WPushSoir = "17:00" -- Heure d'envoie des infos le soir, laisser vide si pas de push
WPushDemain = "21:00" -- Heure d'envoi des infos du lendemain, laisser vide si pas de push
WPush_type = {"SMS","Push","eMail"} -- Préciser le type de notification souhaitée
WPush_Email = 2 -- Préciser le numéro de user qui doit recevoir les email
WPush_Phone = 592 -- Préciser le numéro du téléphone qui doit recevoir les push
WPush_VG = "Pushover" -- Préciser nom de la variable globale utilisée dans le VD de SMS
WPush_VD = "" --Préciser l'ID du VD de SMS, ou laisser vide si pas besoin
WPush_VD_button = "" --Préciser le numéro du bouton d'action du VD de SMS, ou laisser vide si pas besoin
WPush_Prio = "0" --Si vous utiliser le VD Pushover avec gestion des priorités, préciser le niveau de priorité choisi
WRafale = 20 --en km/h. Préciser la vitesse de vent pour les infos de rafales.
WRafale_VG = "Alerte_Vent" --Variable globale pour les alertes de rafales de vent
WRafale_Message = 1 --Anticipation des alertes rafale : 1 = 1 jour avant (max = 2). -1 pour désactiver
WArrosage_J_avant = 3 --Nombre de jours passés sans pluie. Mettre 0 pour désactiver.
WArrosage_J_apres = 2 --Nombre de jours sans pluie à venir (max 2). Mettre 0 pour désactiver
WArrosage_VG = "Arrosage_auto" --Nom de la variable pour l'arrosage automatique, elle passe à "1" s'il faut arroser (laisser vide si non utilisé)

WVolume_Pluie = 5 --en mm, quantité de pluie nécessaire pour ne pas lancer l'arrosage auto

 

 

N'oubliez pas d'inscrire votre clé. Vous pouvez mettre le code de votre ville (à trouver sur le site de WeatherBit), ou laisser le champ vide pour utiliser la positition de la HC2.

Les variables globales son créées par la scène.

 

Et surtout, n'oubliez pas d'utiliser les icônes, gentiment mises à dispo par @Did

Weatherbit.png.858281ab712d038fbb20ed5b4c3c0fe7.png   1318330649_ScneWeatherbit.png.38fb93207ddf40b1d73749f76ea780fa.png

 

Nota : pour ceux qui utilisent le VD SONOS, il faut remplacer la ligne qui était utilisée avec le YAMS Wunderground

local meteo_day = fibaro:getGlobalValue("Meteo_Day_Speech")

par

local meteo_day = fibaro:getGlobalValue("wbit_today_sp")

 

Nota : pour utiliser la fonction d'arrosage auto, je vous conseille d'utiliser le résultat de WeatherBit dans GEA, avec quelque chose comme ceci:

GEA.add({{"Time","Sunset+10"},{"Global","Arrosage_auto",1}},30,"Période de sécheresse, allumage de l'arrosage automatique",{{"turnOn",id["ROBINET"]},{"Sleep",2*60*60,{"TurnOff",id["ROBINET"]}}})

 

Publication de la V2.0 :

 - Possibilité d'utiliser des notifications

 - Other minor fixes

 

Publication de la V2.1

- Résolution de divers bugs sur la gestion des variables globales & API

- Allègement du code

 

Publication de la V2.2

- Amélioration des textes audio

- Optimisation de la scène

- Résolution des bugs des précipitations & round

 

Publication de la V2.3

- Correction d'un bug sur les jours (merci Barelle)

- Optimisation du code (tout se fait dans la scène)

 

Publication de la V2.4

- Correction des bugs de mise à jour des labels & pushs

 

Publication de la V3.0

- Ajout dans le VD de 2 modes d'affichage : PC ou mobile; pour pouvoir ajouter les icônes météo

 

Publication de la V4.0

- Correction d'un bug sur les jours à J+2

- Mise à jour du message pour replacer "précipitations de 0mm" par "pas de pluie"

- Ajout d'alertes pour les rafales de vent

- Ajout d'alertes sécheresse

 

Publication de la V4.2

- Ajout d'un niveau de pluie minimum pour que la variable globale d'arrosage passe à 1

- Correction d'un bug des messages de sécheresse dans les notifications

 

Publication de la V4.3

- Prise en charge d'un J+3 pour la pluie à venir

- Prise en compte du volume de pluie défini par l'utilisateur pour reset du compteur des jours "secs"

- Correction des textes pour plus de fluidité & syntaxe

 

Publication de la V4.4 (mise à jour de la scène uniquement)

- Correction d'un bug de création des variables globales

 

Publication de la V4.5 (mise à jour de la scène uniquement)

- Correction de l'information "rafales"

 

 

Si vous avez déjà installé le VD en version V2.0, remplacez simplement le code du main loop par celui ci , ou laissez vide. Ce code n'est pas obligatoire pour assurer le fonctionnement du VD, il ne fait que créer les variables globales et assurer que la scène tourne bien (peut être remplacé par le WATCHDOG en surveillant le message "Mise à jour réussie" toutes les 35 min)

Pour la V3.0, il faut ajouter aussi un slider en bas, ayant pour nom: slideAFF

Pour la V4.2, il faut ajouter un champs Etiquette, avec le nom "lblPluie". Il sert à afficher les messages liés à l'arrosage. Même si vous n'utilisez pas cette fonction.

Pour passer en V4.3, mettez la scène & la boucle du VD à jour

-------------------------------------------------------------------------------
-- VD REALISE PAR DRAGONIACS POUR www.domotique-fibaro.fr
-- UTILISATION LIBRE DE DROITS
-- MERCI A Dgille & Sebcbien POUR LES CODES DONT JE ME SUIS FORTEMENT INSPIREE
-- VERSION 4.3
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
-- PARAMETRAGE UTILISATEUR
-------------------------------------------------------------------------------
local WSceneId = 629  -- Id de la scéne pour actualisation de la météo
-------------------------------------------------------------------------------
-- FIN DU PARAMETRAGE UTILISATEUR
-------------------------------------------------------------------------------

local VD = fibaro:getSelfId()

-- Lance la scene d'actualisation
if fibaro:countScenes(WSceneId) < 1 then 
    fibaro:debug("Lancement de la scène WeatherBit")
    fibaro:startScene(WSceneId)
end

--Changement du mode d'affichage
local position = tonumber(fibaro:getValue(VD,"ui.slideAFF.value"))
if position ~= 1 and position <= 50 then 
    fibaro:call(VD,"setSlider",12,1)
  	fibaro:debug("Ajout des icones....")
    fibaro:killScenes(WSceneId)
    fibaro:startScene(WSceneId)
  else if position ~= 99 and position > 50 then 
    fibaro:call(VD,"setSlider",12,99) 
  	fibaro:debug("Ajout des icones....")
    fibaro:killScenes(WSceneId)
    fibaro:startScene(WSceneId)
    end
end

 

Modifié par Dragoniacs
Publication de la V4.5
  • Like 9
  • Thanks 1
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Super, merci

 

Il ne manque plus que les icones pour le VD et la scène ;-)

 

C'est donc le VD qui appelle la scène pour le rafraichissement des infos. 

J'avais regardé mais j'ai oublié, sais tu combien d'appels API il est possible de faire par jour ?

Partager ce message


Lien à poster
Partager sur d’autres sites

On a droit à 1000 requêtes par jour, c'est large :rolleyes:

Merci pour ta demande d'icône.

 

Je suis en train de bosser une V2.0 avec des notifications.

  • Like 1
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 Merci @Dragoniacs, :13:

Je te laisse rapatrier les icônes pour les intégrer à ton premier message, à moins qu'il faille refaire une modif, dites-moi.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 Le compte est créée et j'ai mon API Key.

Partager ce message


Lien à poster
Partager sur d’autres sites

 Et où peut-on trouver le "WBCityid", ca n'a rien à voir avec le FRXX que l'on utilisais avant?

PS: Pardon, j'ai trouvé ma réponse plus bas.

 

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

T'embêtes aps @Did, si tu ne mets rien, cela utilise les coordonnées Longitude; latitude de la HC2 ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

 Ça y est, tout s'affiche. :60:

Et quand on n'a pas de lapin, il faut adapter quoi pour faire parler la Sonos?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Lapin ou Sonos, c'est pareil : tu fais lire la variable globale "wbit_today_sp" pour la météo du jour, ou "wbit_tomorrow_sp" pour la météo du lendemain.

Après je ne sais pas comment tu actives la lecture via Sonos: un VD ou GEA ?

Partager ce message


Lien à poster
Partager sur d’autres sites

 @pepite devrait être plus calé que moi pour répondre.

D'après mes estimations :P, ill faudrait remplacer la ligne du VD "TTS":

local meteo_day = fibaro:getGlobalValue("Meteo_Day_Speech")

qui servait pour Wunderground, non?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca m'a l'air d'être ça

Je n'ai pas de SONOS pour tester, mais si tu remplaces l'ancienne variable "speach" par la nouvelle, ça devrait le faire.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@Did Exact tu peux y aller ;-)

tu remplaces "Meteo_Day_Speech" par "wbit_today_sp"

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 Merci à tous les deux, ça roule. :yes::13:

Encore une question pour @pepite, il faut supprimer les trois anciennes variable (Wunderground) dans le panneau mais sans sauvegarder, c'est ça?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai mis un nota dans le 1er post pour tenir compte des SONOSiens :2:

Oui @Did, il faut cliquer sur les poubelles en face de chaque variable, mais sans toucher à la disquette !

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bravo ! Le VD  et la scène fonctionnent bien.

Je crains toutefois que pour les prévisions, la vitesse du vent soit affiché en m/s et non en km/h...

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon j'ai plein d'idées pour améliorer mon VD mais pas eu le temps de bien finaliser tout ça. Il faudra patienter jusque demain pour la V2.0 :)


Envoyé de mon BTV-W09 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

beau boulôt !

Félicitations :60:

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 J'ai remis la ligne du Watchdog (de @Lazer) concernant YAMS Wunderground (de @sebcbien) avec l'Id du VD "Wheather.io (de @Dragoniacs) et le Watchdog vient de m'envoyer plein de notif en me précisant qu'il y avait une erreur en ligne 43.

Ça vous parle? A tout hasard, il faut mettre combien d'instances sur la scène?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

La scène ne se lance qu'a la fréquence de mise à jour que tu as défini. 30min si tu n'as rien changé. Normalement il n'y a qu'une instance à la fois.
Peux tu m'envoyer une photo du debug de la scène ?

EDIT : ne te fatigue pas, j'ai trouvé le bug, je suis dessus.
 

Modifié par Dragoniacs

Partager ce message


Lien à poster
Partager sur d’autres sites

 Voici le debug de la scène:

Capture.PNG.995181450f0920cd3eb1fecbb7ae5fa6.PNG

PS: Je passe en v2.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Super pour la v2 j ai aussi un bug :-)
Peux tu publier le code du main loop si ds la V2 il n y a pas de nouveaux labels ?? Ça évite de reimporter, juste un copier coller a faire :-)
Pepite en mode faineant

Envoyé de mon BND-L21 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

@Did passe à la V2 et tout ira mieux. J'ai raté mon code sur le jour de la semaine, c'est corrigé.

 

@pepite voilà, voilà, c'est dispo dans le 1er post ^_^

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×