Aller au contenu

Barelle

Membres confirmés
  • Compteur de contenus

    89
  • Inscription

  • Dernière visite

Réputation sur la communauté

65 Excellent

À propos de Barelle

  • Rang
    Membre interessé

Profile Information

  • Sexe :
    Homme
  • Ville :
    Lauragais
  • Box
    Home Center 2
  • Version
    4.540

Visiteurs récents du profil

525 visualisations du profil
  1. Barelle

    Infos Météo avec Weatherbit

    Bon, je vais essayer de me rattraper en avançant une explication pour le bug mentionné par Did. La scène utilise deux variables globales pour récupérer dans la fonction Update les données de la fonction getResponseData. Ces données sont récupérées de manière asynchrone par getResponseData. Quand la fonction Update lit la valeur des variables globales, celles-ci n'ont peut être pas encore été mise à jour par getResponseData. D'où des annonces erronées... Comment corriger ? 1) en n'utilisant plus de variables globales, le VD n'en ayant plus besoin. 2) en séparant les mises à jour des labels et des notifications relatives aux actuelles tables jsonTable0 et jsonTable1 dans des fonctions distinctes. 3) en appelant ces fonctions depuis la fonction success de getResponseData. Remarque : ces fonctions de mise à jour des labels et des notifications peuvent-être passées en paramètre à la fonction getResponseData (paramètre func), sous réserve de bien lancer func dans le cas (response.status==200). I hope this helps.
  2. Barelle

    Infos Météo avec Weatherbit

    @Dragoniacs, au temps pour moi, il est exact que la table jsonTable1 indique en première position les prévisions du jour. Ma remarque était donc erronée...
  3. Barelle

    Infos Météo avec Weatherbit

    L'annonce du jour est correcte, les données météo sont, elles, décalées d'une journée.
  4. Barelle

    Infos Météo avec Weatherbit

    Je n'utilise pas les notifications, mais à la lecture du code de la scène, il me semble que les lignes : -- Définition des textes audio today_speach = Jours(tonumber(os.date("%w"))) .." : " .. jsonTable1.data[1].weather.description .. ". " .." Température entre ".. round(jsonTable1.data[1].min_temp,0) .." et ".. round(jsonTable1.data[1].max_temp,0) .." degrès. " .." Vent de ".. math.floor(jsonTable1.data[1].wind_spd*3.600) .." kilomètres par heure, en provenance ".. jsonTable1.data[1].wind_cdir_full ..". " .." Précipitations de ".. round(jsonTable1.data[1].precip,0) .. " milimètres. " tomorrow_speach = Jours(tonumber(os.date("%w"))+1) .." : " .. jsonTable1.data[2].weather.description .. ". " .." Température entre ".. round(jsonTable1.data[2].min_temp,0) .." et ".. round(jsonTable1.data[2].max_temp,0) .." degrès. " .." Vent de ".. math.floor(jsonTable1.data[2].wind_spd*3.600) .." kilomètres par heure, en provenance ".. jsonTable1.data[2].wind_cdir_full ..". " .." Précipitations de ".. round(jsonTable1.data[2].precip,0) .. " milimètres. " devraient plutôt être : -- Définition des textes audio today_speach = Jours(tonumber(os.date("%w"))) .." : " .. jsonTable0.data[1].weather.description .. ". " .." Température entre ".. round(jsonTable0.data[1].min_temp,0) .." et ".. round(jsonTable0.data[1].max_temp,0) .." degrès. " .." Vent de ".. math.floor(jsonTable0.data[1].wind_spd*3.600) .." kilomètres par heure, en provenance ".. jsonTable0.data[1].wind_cdir_full ..". " .." Précipitations de ".. round(jsonTable0.data[1].precip,0) .. " milimètres. " tomorrow_speach = Jours(tonumber(os.date("%w"))+1) .." : " .. jsonTable1.data[1].weather.description .. ". " .." Température entre ".. round(jsonTable1.data[1].min_temp,0) .." et ".. round(jsonTable1.data[1].max_temp,0) .." degrès. " .." Vent de ".. math.floor(jsonTable1.data[1].wind_spd*3.600) .." kilomètres par heure, en provenance ".. jsonTable1.data[1].wind_cdir_full ..". " .." Précipitations de ".. round(jsonTable1.data[1].precip,0) .. " milimètres. " En effet, jsonTable0.data[1] contient les prévisions pour aujourd'hui, alors que les prévisions du lendemain sont dans jsonTable1.data[1]...
  5. Barelle

    Infos Météo avec Weatherbit

    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
  6. Barelle

    Infos Météo avec Weatherbit

    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
  7. Barelle

    Notifications Interactive pour lancer une scéne

    Le dimanche, vaste sujet.. Selon le dictionnaire de l'Académie (9e édition) : Donc, ce n'est pas clair, heureusement, la norme ISO 8601 est là pour nous préciser que le dimanche clôt la semaine et a pour code le chiffre 7. Le problème se complexifie dans les langages informatiques selon que l'indice de départ est "zéro" (algol, C, pascal et leur dérivés) ou "un", comme notamment le Lua. Par conséquent, pour le dimanche on peut rencontrer comme code : 0, 1, 6 ou encore 7 ! En pratique, il est prudent de vérifier au cas par cas...
  8. Barelle

    Infos Météo avec Weatherbit

    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...
  9. Barelle

    Notifications Interactive pour lancer une scéne

    Même si je ne l'ai pas testé, le code ci-après devrait faire la même chose : --[[ %% autostart --]] function tempFunc() local currentDate = os.date("*t"); if (currentDate.hour == 18 and currentDate.min == 30) then fibaro:debug("ok envoi à venir"); api.post('/mobile/push', { ["mobileDevices"]={154}, -- ID du telephone : 154= S7 EDGE JJ ["message"]='Veux-tu prévenir la maison ?', -- La question que l'on veut posser ["title"]='Départ Travail', -- titre de la question ["category"]='YES_NO', -- 'YES_NO' ou 'RUN_CANCEL' ["data"]={["sceneId"]=66} -- ID de la scéne que l'on veut lancer } ); end setTimeout(tempFunc, 60*1000); end local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then tempFunc(); end Quelques explications : - currentDate.wday ne peut prendre que les valeurs 0, 1, 2, 3, 4, 5, 6, ce test est donc inutile ; - pourquoi convertir les heures et minutes en chaîne de caractères avant de faire la comparaison ? - on a : local sourceTrigger = fibaro:getSourceTrigger(); ... local startSource = fibaro:getSourceTrigger(); if (startSource["type"] == "other") then if (sourceTrigger["type"] == "autostart") then -- code jamais executé Donc, on enlève, la bonne vieille technique du rasoir d'Ockham...
  10. Barelle

    GCE Electronics Ecodevices RT2

    Je suis surpris, dans la mesure où les trames EDF, décodées par l'Ecodevice, n'ont pas changé, il n'y a aucune raison pour une quelconque incompatibilité technique avec le compteur Linky. Aussi, avec le RT2 cela ne devrait également pas fonctionner. Le problème provient probablement du paramétrage du compteur qui ne laisse pas passer les trames. Après une rapide recherche il semblerait nécessaire de paramétrer le compteur avec les "Trames de télé-information du mode historique"...
  11. Si tout le monde met en oeuvre cette politique, personne n'aura le loisir et le plaisir de trouver les anomalies qui nous permettent d'autant échanger sur ce forum. En synthèse, le bug c'est ce qui rapproche aussi bien les geeks que les geekettes...
  12. Ben, moi aussi, elle tourne depuis maintenant plus de 3 heures, je ne trouve rien à en dire. Selon le forum Fibaro : https://forum.fibaro.com/topic/42880-4540-temporarily-unavailable-i-managed-to-update/ Traduction :
  13. Barelle

    HC2 & HCL - 4.532 - BETA - 28/02/2019

    Problème rencontré lors de l'écriture d'un VD comportant plusieurs étiquettes : Le changement de l'ID de l'étiquette n'est pas pris en compte s'in comporte le caractère underscore , par exemple si le nouvel ID est "lblEV_1_8", il est systématiquement remplacé par : - "label_0_0" pour une étiquette en première position, - "label_1_0" pour une étiquette en deuxième position, - "label_x_0"pour une étiquette en position x. Cette capacité à casser ce qui fonctionne est assez remarquable chez Fibaro...
  14. Barelle

    aide gsub Lua String

    Oui, "%d+" retourne le premier nombre, "%d" retourne le premier chiffre rencontré de la gauche vers la droite, le + indiquant qu'il faut prendre aussi les suivants. Non, "%s" indique toutes les espaces (et oui, féminin en typographie...), ainsi : s=string.gsub("Nuit claire étoilée", "%s", "%%20"); print(s); -- retourne Nuit%20claire%20étoilée Pour ne remplacer que la première espace il eut fallu faire : s=string.gsub("Nuit claire étoilée", "%s", "%%20", 1); print(s); -- retourne Nuit%20claire étoilée -- ou encore : s=string.gsub("Nuit claire étoilée", " ", "%%20", 1); print(s); -- retourne Nuit%20claire étoilée Remarque : le signe "%" a un sens réservé dans les patterns, aussi est-il nécessaire de le doubler dans '%%20".
  15. Barelle

    aide gsub Lua String

    Pour remplacer tous les espaces par "%20", il faudrait plutôt faire : weather = string.gsub(weather, "%s", "%%20");
×