-
Compteur de contenus
1 511 -
Inscription
-
Dernière visite
-
Jours gagnés
69
Messages posté(e)s par couillerot
-
-
en effet, prometteur... donc soyons prudent !
Stef
-
modif effectuée
Stef
-
pas de soucis Lazer
et je suis tout à fait d'accord avec toi sur la petitesse des icons sur HC3 mais j'espère que cela évoluera avec les futures MAJ (le petit papa noël existe... si si je vous assure)
Stef
-
le début d'une nouvelle série...
Stef
-
3
-
-
J-1 correspond bien à la valeur obtenue la veille (donc J) et ainsi de suite... le QA crée lui-même un mini historique sur 2 jours, que ce soit avec WB ou avec un capteur de pluie.
Stef
-
Nouvelle MAJ - version 1.2
il désormais possible de récupérer les données de précipitations du jour soit via un capteur de pluie, soit en passant par WeatherBit.
Stef
-
1
-
-
Difficile de répondre...
Nativement, le QA récupère la prévision de J+1 de Weatherbit et l'affiche dans "Précipitations ce jour" > "prévues : ... mm" (en guise d'information). Après je pourrais très bien récupérer les précipitations du jour J via Weatrherbit, c'est tout à fait possible mais la solution ne me paraissait peu pertinente.
Après, je pourrais modifier le code pour donner le choix... pourquoi pas ?
- soit les données Weatherbit : précipitations du joiur
- soit les données d'un pluviomètre
Stef
-
tu peux mettre ce que tu veux, la variable se mettra à jour par la suite automatiquement
Stef
-
1
-
-
sorry, en effet il faut ajouter une variable "prevision" dans le tableau.
Stef
-
* version 1.1
- prise en compte de 2 cas particuliers (si J-2 > Consigne + 4 jours suivant sont à 0 mm et J+2 > Consigne + 4 jours précédent sont à 0)
- affichage jour J de la prévision annoncée précédemment à titre de comparaison / information
Stef
-
2
-
-
c'est fait
QA mis à jour le 03.06.2021
Stef
-
2
-
-
- Correction d'un léger bug
-
je ne le conseille pas car WeatherBit fournit des données de précipitations en mm/h et non en cumul sur 24h comme le pluvio Netatmo.
Stef
-
merci CatTrack
il est vrai que je n'avais pas considéré ce cas de figure
Stef
-
merci Dragoniacs
je vais tâcher de l'essayer également avec le mien
Stef
-
Il ne s'agit pas à proprement parlé d'un QA sur l'arrosage automatique mais simplement du déclencheur, à l'aide d'une variable globale "Arrosage" > OUI ou NON (récupérable donc dans une scène ou un autre QA pour lancer l'arrosage).
Ce QA fonctionne de la sorte :
- il récupère les prévisions de précipitations J+1 et J+2 (via le site WeatherBit)
- il met à jour régulièrement le cumul des précipitations du jour via un pluviomètre (type "capteur de pluie") ou soit les données de précipitations du jour via Weatherbit (indication de la source dans le QA)
- il stock les données de précipitations à J-1 et J-2
- il compare la consigne de déclenchement et les précipitations passées, actuelles et prévues pour conseiller un arrosage, ou pas.
si vous avez des conseils pour optimiser le code (surement) ou même des choses à améliorer (certainement), n'hésitez pas !
Installation :- Créer une variable globale globable énumérée : "Arrosage" > valeurs : "OUI" / "NON"
- Dans le tableau des variables : renseignez la key_id WeatherBit (en s'inscrivant gratuitement sur weatherbit.io) et
- indiquez l'id de votre pluviomètre (précipitations 24h) > "id_pluviometre" ou l'id de n'importe quel autre module existant pour obtenir les données de Weatherbit.
function QuickApp:onInit() self:updateProperty("deviceIcon", 1044) -- mettre ici l'id de votre icon self:loop() end function QuickApp:loop() lat = api.get("/settings/location").latitude lati = tostring(string.format("%.2f", lat)) lon = api.get("/settings/location").longitude long = tostring(string.format("%.2f", lon)) key_id = self:getVariable("key_id") local http = net.HTTPClient() http:request("https://api.weatherbit.io/v2.0/forecast/daily?lat="..lati.."&lon="..long.."&days=5&lang=fr&key="..key_id, { options = { method = 'GET' }, success = function(response) if response.status == 200 then if response.data and response.data ~= "" then local jsonTable = json.decode(response.data) precipday1 = jsonTable.data[2].precip precipday2 = jsonTable.data[3].precip precipday0 = jsonTable.data[1].precip id_pluie = self:getVariable("id_pluviometre") precip1 = self:getVariable("precip_jour_1") precip2 = self:getVariable("precip_jour_2") Consigne_mm, _ = self:getVariable("Consigne") Consigne_mm = tonumber(Consigne_mm) if tostring(id_pluie) > tostring("0") and fibaro.getType(tonumber(id_pluie)) == tostring("com.fibaro.rainSensor") then pluie = fibaro.getValue(tonumber(id_pluie), "value") source = fibaro.getName(tonumber(id_pluie)) else pluie = precipday0 source = tostring("WeatherBit") end name = fibaro.getName(tonumber(id_pluie)) arrosage = string.format("%.2f", precipday1 + precipday2 + pluie + precip1 + precip2) arrosage, _= tonumber(arrosage) arrosage_jardin = fibaro.getGlobalVariable("Arrosage") self:setVariable("pluie", pluie) ---------------------------------------- ---------- ARROSAGE OUI / NON ---------- ---------------------------------------- if tonumber(arrosage) > tonumber(Consigne_mm) then fibaro.setGlobalVariable("Arrosage", "NON") else if (tonumber(precip2) > tonumber(Consigne_mm)) and (tonumber(precipday2 + precipday1 + pluie + precip1) == 0) then fibaro.setGlobalVariable("Arrosage", "OUI") else if (tonumber(precipday2) > tonumber(Consigne_mm)) and (tonumber(precipday1 + pluie + precip1 + precip2) == 0) then fibaro.setGlobalVariable("Arrosage", "OUI") else fibaro.setGlobalVariable("Arrosage", "OUI") end end end ------------------------------------------------------------------------------ --------------------------- CONSTRUCTION DES LABELS -------------------------- ------------------------------------------------------------------------------ Arro = fibaro.getGlobalVariable("Arrosage") self:updateProperty("log", ""..arrosage.." mm") self:updateView("labeldate", "text", "INFOS ARROSAGE DU "..os.date("%d.%m.%Y\r\rdonnées mises à jour à %Hh%M")) self:updateView("labelconsigne", "text", "\nConsigne de report : + "..tostring(Consigne_mm).." mm de pluie / 5 jours") self:updateView("labelprecip", "text", "\rPrécipitations J-2 : "..string.format("%.1f", precip2).." mm\r\rPrécipitations J-1 : "..string.format("%.1f", precip1).." mm\r\rPrécipitations ce jour : " ..string.format("%.1f", pluie).." mm (source : "..source..")\r\rPrécipitations prévues J+1 : "..string.format("%.1f", precipday1).." mm\r\rPrécipitations prévues J+2 : "..string.format("%.1f", precipday2).." mm") self:updateView("labelconseil", "text", "Arrosage conseillé : "..Arro) else self:debug("Error : empty response data") end else self:debug("Error : status=" .. tostring(response.status)) end end, error = function(err) self:debug("Error : " .. err) end }) self:stockprecipitations() fibaro.setTimeout(1000 * 60 * 3, function() self:loop() end) end function QuickApp:uiMoinsOnR() local Consigne_mm, _ = self:getVariable("Consigne") Consigne_mm = tonumber(Consigne_mm) - 1 self:setVariable("Consigne", tostring(Consigne_mm)) self:loop() end function QuickApp:uiPlusOnR() local Consigne_mm, _ = self:getVariable("Consigne") Consigne_mm = tonumber(Consigne_mm) + 1 self:setVariable("Consigne", tostring(Consigne_mm)) self:loop() end function QuickApp:stockprecipitations() local Heure = tonumber(os.date("%H", os.time())) local Minute = tonumber(os.date("%M", os.time())) ----------------------------------------------------------------- ---------- MISE A JOUR DES VARIABLES POUR L'HISTORIQUE ---------- ----------------------------------------------------------------- if (Heure == tonumber("23") and Minute > tonumber("45")) and (Heure == tonumber("23") and Minute < tonumber("50")) then actus = self:getVariable("precip_jour_1") self:setVariable("precip_jour_2", tostring(actus)) end if (Heure == tonumber("23") and Minute > tonumber("50")) and (Heure == tonumber("23") and Minute < tonumber("55")) then actu = self:getVariable("pluie") self:setVariable("precip_jour_1", tostring(actu)) end fibaro.setTimeout(1000 * 60 * 2, function() self:stockprecipitations() end) end
version 1.2
- choix du type de source de données de précipitations (capteur de pluie ou WeatherBit)
version 1.3 (20.06.2021)
- correction d'un bug historique précipitations
- affichage dans le log du total des précipitations sur 5 jours.
bonne installation !
Stef
-
5
-
-
le pluvio netatmo aura en effet toute sa place dans le QA !
Stef
-
idem, inexploitable ce panneau arrosage
Stef
-
-
je vais faire un QA spécial Arrosage qui servira de déclencheur pour un arrosage auto ; c'est dans les tuyaux car je vais en avoir besoin cet été
par exemple :
- historique des précipitations sur 2 jours (quantifiées par un pluviomètre netatmo) -> J-1 et J-2
- précipitations du jour (via pluviomètre Netatmo) -> jour J (jour arrosage : OUI ou NON)
- prévisions des précipitations sur les 2 jours suivant -> J+1 et J+2
Stef
NB : après tu peux très bien utilisé les QA "météo" et "prévisions Météo" pour l'arrosage auto via le passage aux variables globales (besoin de faire quelques lignes de code)
Stef
-
A priori, il faut :
- aller dans dispositifs / autre
- ajouter un appareil
- dans la rubrique Climat, choisir "arroseurs"
- ...
Stef
-
v1.2
- Récupération auto des coordonnées de latitude et longitude de votre localité.
- Vérification que les id des modules de température et/ou Humidité appartiennent bien aux types appropriés ; si ce n'est pas le cas ce seront les données WeatherBit qui seront remontées.
Stef
-
2
-
-
c'est exactement ce que je cherchais !
merci encore pour ton aide précieuse
Stef
-
v1.1 mise à jour effectuée
- pour la température et l'humidité, ce sont soient les données de Weatherbit soient les valeurs de vos propres modules.
- changement de l'icon selon les conditions météo.
- indication de la source de la temp et de l'humidité ("nom de la pièce" ou WeatherBit)
Stef
-> peut être encore amélioré si capteur de pluie présent.
Banque Icones Hcl, HC2 et HC3
dans Le bistrot
Posté(e)
la suite...
Stef