Aller au contenu

Infos Météo avec Weatherbit


Dragoniacs

Messages recommandés

Je ne pense pas que cela vienne de l'API, mais plutôt du fait que os.date("%w") retourne une valeur entre 0 et 6, 0 étant le dimanche. Aussi, dans la fonction jour...

function jour(j)
  	if j > 6 then j = 0 end
  	local jourSemaine = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"};
	return jourSemaine[j+1];
end -- jour

 

Modifié par Barelle
Lien vers le commentaire
Partager sur d’autres sites

Moi aussi c'etait 23:30

Exact @Barelle au top. J'avais même pas fait gaffe ;-)

 

Donc pour la V2.3, je continue à penser que pour optimiser Scène + VD, la scène devrait tout gérer y compris les pushs cela te permettrait de maintenir un code à un seul endroit et pas 2.

Et surtout que les "Sleeps" ne sont pas trop aimés par le mainloop des VDs. :60: Les mainLoops sont naturistes..(craquage dominical..)

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Le 22/03/2019 à 11:42, Dragoniacs a dit :

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

Mais on laisse la main loop telle quel ou on supprime le reste pour ne laisser que ça?

WSceneId = 548  -- Id de la scéne pour actualisation de la météo

 

Lien vers le commentaire
Partager sur d’autres sites

@Did j'ai pas mis à jour le tuto... faut tout supprimer et ne laisser que l'ID de la scène, il n'y a plus que ça a paramétrer depuis le VD.
Tous les autres paramètres sont dans la scène.

Envoyé de mon SM-A530F en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

Salut @Did, j'ai installé la v2.3 et dans le main loop il y a bien du code, le voici:

-------------------------------------------------------------------------------
-- 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 2.3
-------------------------------------------------------------------------------

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

VD = fibaro:getSelfId()

-- Déclaration des variables globales
function Declaration_VG(variable,valeur)
	if fibaro:getGlobalValue(variable) == nil then
		local created = false
		local data = {name = variable, value = tostring(valeur)}
		response, status = api.post("/globalVariables", data)
		-- If creation successful, then return created=true
		if (status == 201) then
			fibaro:debug("Global variable " .. variable .. " created")
			created = true
		else
			fibaro:debug("Failed to create global variable " .. variable .. "!");
    	end
	end
end

Declaration_VG("weatherbit_today","{}")
Declaration_VG("weatherbit_tomorrow","{}")
Declaration_VG("wbit_today_sp","")
Declaration_VG("wbit_tomorrow_sp","")

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

 

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Excuse moi, je ne comprend pas bien ta question... le plus simple est de remplacer le code du main loop du VD par celui qui est dans le premier post, à la fin.

Mais il est vrai qu'il n'y a presque plus rien dedans : le lancement de la scène (c'est pour ça que je demande son ID), la création des variables globales... et c'est tout. Si tu ne juges pas ce code nécessaire, tu peux effectivement tout retirer.

 

Envoyé de mon SM-A530F en utilisant Tapatalk

 

Édit : j'ai répondu trop tard@Did

 

 

Lien vers le commentaire
Partager sur d’autres sites

Du moment que la scène "boucle" par l'utilisation des setTimeout, il n'est plus utile de la lancer depuis le VD, d'autant plus quelle est en autostart.

Donc la mainloop du VD peut effectivement être vide, tout étant maintenant réalisé dans la scène

Lien vers le commentaire
Partager sur d’autres sites

Ca tourne impecc chez moi aussi, J'avais juste enlevé le code depuis un certain temps dans le main loop du VD ;-)

 

Tu peux faire une 2.4 @Dragoniacs sans code dans le VD comme le dit @Barelle c'est optimisé comme cela.

AU pire, un Watchdog sur la scene et hop la météo sera à jour

 

UN GRAND MERCI POUR LE BOULOT....que d'autres ont eu la flemme de terminer ou pas le temps ...(je parle de moi bien sûr)..

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

 @pepite,

Tu aurais un exemple de ligne à coller dans le Watchdog pour la scène Weatherbit?

Il n'y a déjà plus grand chose dans la dernière main loop, le VD servirait juste d'affichage?

 

Lien vers le commentaire
Partager sur d’autres sites

@Did J'ai fait très simple pour le Watchdog, on pourrait aller plus loin en mettant du texte du genre "Actualisation des labels"

{type = "Scene", id = 50, match = {text="", interval=0}, no_match = {text=""}, count=1, restart=true, notification = {"push", "email"}}, -- WeatherBit

 

il y a 24 minutes, Did a dit :

VD servirait juste d'affichage

Exactement et si depuis une autre scene un autre VD tu as besoin des infos, tu récupères les valeurs des Labels

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Geekerie ;-)

 

Non j'avoue j'aime bien recevoir la météo par SMS le soir et le matin, histoire de ne pas mettre les enfants en short s'il pleut ;-).

Et un petit TTS le soir.

 

Je ne regarde pas forcement les infos, donc encore moins la météo..

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...