-
Compteur de contenus
819 -
Inscription
-
Dernière visite
-
Jours gagnés
4
Tout ce qui a été posté par flamalex
-
@Bloug "Perso dans le sud c'est toujours la "Cagne "donc les consignes sont simples : Arrosage tout les jours et Si prévision de pluies : " voila!! tu as tt dit c'est un choix, c'est de l'automatique donc il fait ce qu'il a à faire, je n'ai donc pas adhéré au panel et push pour l'arrosage. A la base, ce qui m’intéressait été le go/nogo, peut importe le volume de pluie, l'objectif de la domotique est que ce soit AUTOMATIQUE , le VD sur lequel j'ai bûcher n'est qu'une supervision PASSE/FUTUR (au delà des prévisions, on contrôle que les prévisions sont devenues réalité), normalement on n'y va jamais. de plus, comme on peut le constater, ce qui m’intéresse c'est de savoir sur les 3 jours (ou 2 ou 1) à venir et passés si il va pleuvoir ou non (donc les minutes, secondes........c'est du détail et ce n'est pas intéressant pour moi mais pour ma scene GEA qui controle et traite en AUTOMATIQUE en "JOUR") GEA qui prend en compte les paramètres de saisons, humidité, température, ensoleillement. néanmoins, pour arriver à fixer une consigne passée puis futur, il faut bien savoir si il pleut, et donc on passe forcement par un volume "précipitations" exemple, "prédiction à 1h" 12x par heure, je viens contrôler si au moins une fois sur 12 il y a 0,1mm de précipitation, si oui alors "pluie dans l'heure" passe à 1 après libre à chacun de cumuler les valeurs, les stocker, traiter etc....... mais globalement, si il a plu 3 jours et qu'il va pleuvoir 3 jours, avons nous réellement besoin du volume?? on a la réponse, l'automate sait qu'il ne doit pas arroser dans cet exemple. idem, si nous sommes en été, il n'a pas plu depuis x tps et pas de précipitations dans y tps alors Arroser. autre situation, il n'a pas plu depuis 3 jours, nous sommes en été ou au printemps, la pluie est annoncée (ce n'est qu'une prévision) 1 jour sur 3, donc très peu d'humidité à venir, on peut alors aménager le code en aval pour traiter ce cas spécifique et lancer l'arrosage, c'est ce sur quoi je bûcherai prochainement. idem avec la mesure du volume d'eau pour l'arrosage et la fréquence cycle d'arrosage.
-
merci à tous dans un futur +/- proche j’ajouterai la quantité de précipitation (passé/futur) pour jauger l’arrosage auto (durée/quantité) pour le moment, en l’etat, ça fonctionne au top
-
Hello, 2 GEA dans le premier GEA: -- Si la filtration est allumé depuis xtemps alors on eteint GEA.add ({{"TurnOn", id["FILTRATION_PISCINE"]},{"Global","Fonction","HorsGel"}, {"Global", "Mode_Piscine", "AUTO"}}, "xtemps", -- 00:15 "Filtration allumée depuis {global,xtemps}, alors on eteint", {"TurnOff", id["FILTRATION_PISCINE"]} ) ça fonctionne bien, pas d'erreur dans le 2eme GEA: -- Si l'arrosage est en marche depuis x minutes alors je l'arrete GEA.add ({{"TurnOn", id["ARROSAGE"]},{"Global","Mode_Arrosage","MANU"}},"DureeAroz", -- "00:20" "arrosage en marche depuis {global,DureeAroz}, alors on arrete", {"TurnOff", id["ARROSAGE"]}) j'ai l'erreur suivante: [DEBUG] 09:46:31: 2020-06-07 09:46:31.400563 [ fatal] Unknown exception: /opt/fibaro/scenes/348.lua:1862: attempt to compare string with number une idée? merci lignes 1860 à 1863 -- entrée inutile, on retourne juste l'id pour référence if (not GEA.auto and d>=0) then return entry.id end if (GEA.auto and d<0) then return entry.id end if (GEA.source["type"] == "other") then return entry.id end
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bonjour, je vous partage 2 scenes et un VD personnalisé je ne suis pas un cador du LUA, vous le verrez dans le code, car on peut l'optimiser, je n'y touche plus car ça fonctionne pas mal et derrière j'ai du GEA qui tourne pour récupérer et traiter!!! en Bref, Il y a quelques temps, en partant du Tuto de @Dragoniacs qui m'a beaucoup aidé ainsi que la communauté Infos Météo avec Weatherbit j'ai souhaité créer un VD de supervision globale sur l’état de la météo et de l'arrosage en pièces jointes, un VD et 2 scènes la scène pluie passé= en réalité je récupère, via jeedom la pluie qui va tombée dans l'heure, mais une fois tombée "c'est du passé" et donc j'enregistre alors pourquoi faire comme cela? j'ai constaté, pour ma localisation, que les prévisions de weatherbit n’étaient vraiment pas fiables (chez moi) alors que la prévision à l'heure de météo France est plutôt pas mal. ainsi j'ai les infos passées, la météo actuelle Temp humidité puis la météo à venir (prévisions) qui donne une tendance. à partir de cela, j'ai des consignes exemple: si il n'a pas plu depuis x temps, qu'il ne pleut pas et humidité < à XX%, soleil couché et/ou avant levé soleil et qu'il ne pleuvra pas avant Y temps alors on envoie la sauce (l'arrosage) scene pluie passée.txt scene pluie futur.txt REPORTING_ARROSAGE (3).vfib
-
hello, à tester en fonction de ton orientation et du VD indicateur Solaire --AZIMUT sur volet porte fenetre bureau GEA.add({{"Global","Saison","Eté"},{"Global+","VDSoleilHauteur",10},{"Global+","VDSoleilAzimut",50},{"Global-","VDSoleilAzimut",129},{"(Value+)",id["VR_BURO_PORTEFENETRE"],95},{"Value",id["CAPTEUR_PORTEFENETRE_BURO"],0},{"Global", "VACANCES", "OFF"}},30,"Trop de soleil dans buro, je ferme le volet à 70%",{"Close",id["VR_BURO_PORTEFENETRE"],70}) GEA.add({{"Global","Saison","Eté"},{"Global+","VDSoleilHauteur",10},{"Global+","VDSoleilAzimut",130},{"Global", "VACANCES", "OFF"},{"(Value-)",id["VR_BURO_PORTEFENETRE"],30}},30,"Le soleil a tourné, j'ouvre le volet buro à 100% si partiellement fermé",{"Open",id["VR_BURO_PORTEFENETRE"]}) source VD indicateur solaire: Script de collecte de quelques indicateurs solaire -- Auteur : Sébastien Joly -- Date : 29 août 2015 -- Eléments de calculs : -- http://www.plevenon-meteo.info/technique/theorie/enso/ensoleillement.html -- http://herve.silve.pagesperso-orange.fr/solaire.htm
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
absence push/ notif depuis 7 jours
flamalex a répondu à un(e) sujet de flamalex dans Applications Smartphones et Tablettes
la 2.28.1 est sortie à voir !!! edit: ça re.....fonctionne -
ce n’est plus la mm erreur c’est autre chose rien à voir avec la précédente. il te faut revoir ce que tu as fait depuis!
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
qu’est ce que ça donne ????
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
tu devais avoir un trigger sur la variable jour/nuit, que tu as supprimé du code, as tu supprimé de l’entete? si oui, save, quittes et reboot la hc2 pour voir.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
je n'avais probablement pas compris ta question , ça ne concernait pas l’insertion du "print" pour suivre l’évolution? pcq la, je ne vois pas ou tu l’intègres mais bon! le principe est que tu t'y retrouves
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Salut @971jmd je suis pire que débutant en LUA , tu ne pouvais pas tomber sur pire la fonction est un bout de code LUA intergrer dans GEA, Steven me l'avait communiqué pour me sortir d'une impasse, je l'ai ensuite adapté à d'autres scéne, toujours dans GEA quelqu'un te viendra en aide par contre je pense qu'il faut que tu ouvres un sujet spécifique "FUNCTION LUA" perso ça m'intéresse car bientôt je vais gérer des valeurs type PH et REDOX dans la fonction, à la place de timecycle, il me faudra alors voir l’évolution du code
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
je me reponds, en fait il faut décliner les " Function" sur la même ligne, ici l'extinction --extinction de la filtration si filtration allumée dans en dehors (des) plage(s) horaire du VD , depuis 1 min GEA.add ({{"Value",id["FILTRATION_PISCINE"],1},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return not timecycleA() end},{"Function", function() return not timecycleB() end}}, 1*60, "" , {"turnOff",id["FILTRATION_PISCINE"]})
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Hello, question Function, Si on appelle plusieurs Function ("Function") doivent elles être déclinées sous différent nom? ci dessous, extrait GEA, j'ai plusieurs cycles, seulement la pompe filtration s'allume bien, puis s’arrête, puis redémarre, exemple en début de cycle1 et après 1 à 2 min elle s’arrête puis 1 à 2 min après redémarre... et fera ça pendant tout le cycle1 --Eté Cycle 1 local PISCINEAUTO = {"Global","Mode_Piscine","AUTO"} -- fonction pour recup les heures de debut cycle et fin cycle du VD function timecycleB() local from = fibaro:getGlobalValue('Etecycle1debut') -- or "4:00" local to = fibaro:getGlobalValue ('Etecycle1fin') -- or "7:00 local now = os.date("%H:%M") local inplagecycleB = false if (to < from) then inplagecycleB = (now >= from) or (now <= to) else inplagecycleB = (now >= from) and (now <= to) end return inplagecycleB end --AUTO-- -- allumage de la filtration si filtration eteinte, fonction Ete et dans la plage horaire du VD , depuis 1 min GEA.add ({{"Value",id["FILTRATION_PISCINE"],0},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return timecycleB() end}}, 1*60, "" , {"turnOn",id["FILTRATION_PISCINE"]}) -- extinction de la filtration si filtration allumée dans en dehors plage horaire du VD , depuis 1 min GEA.add ({{"Value",id["FILTRATION_PISCINE"],1},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return not timecycleB() end}}, 1*60, "" , {"turnOff",id["FILTRATION_PISCINE"]}) ------------------------------------------------------------------------------ --Eté Cycle 2 local PISCINEAUTO = {"Global","Mode_Piscine","AUTO"} -- fonction pour recup les heures de debut cycle et fin cycle du VD function timecycleC() local from = fibaro:getGlobalValue('Etecycle2debut') -- or "11:00" local to = fibaro:getGlobalValue ('Etecycle2fin') -- or "12:00 local now = os.date("%H:%M") local inplagecycleC = false if (to < from) then inplagecycleC = (now >= from) or (now <= to) else inplagecycleC = (now >= from) and (now <= to) end return inplagecycleC end --AUTO-- -- allumage de la filtration si filtration eteinte, fonction Ete et dans la plage horaire du VD , depuis 1 min GEA.add ({{"Value",id["FILTRATION_PISCINE"],0},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return timecycleC() end}}, 1*60, "" , {"turnOn",id["FILTRATION_PISCINE"]}) -- extinction de la filtration si filtration allumée dans en dehors plage horaire du VD , depuis 1 min GEA.add ({{"Value",id["FILTRATION_PISCINE"],1},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return not timecycleC() end}}, 1*60, "" , {"turnOff",id["FILTRATION_PISCINE"]}) ------------------------------------------------------------------------------
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
oui c'est clair et c'est déjà Top REPORTING_ARROSAGE (1).vfib
-
c'est bon, ça fonctionne nikel, j'ai ajouté un label pour visualiser le "OK" "pas OK" pour arrosage du coup le GEA est plus simple -- OK_FOR_ARROZ, variable du VD arrosage qui passe à 1 lorsque la consigne en temps est atteinte GEA.add({{"Global" , "OK_FOR_ARROZ", "1"},{"Global","pluie_dans_lheure","0"},{"Global-" , "HumidExt", "60"},{"Global","Saison","Printemps"},{"Days", "Weekday"},{"Time", "Sunset+1"}},-1 , "cela fait {global, difference_jr}jours qu'il n'a pas plu, humidite {global, HumidExt}%, allumer arrosage")
-
je pourrai alléger, en faisant l'inverse, je vire les locales et je laisse code précedent pcq la c'est une usine
-
j'ai essayé avec tonumber tte à l'heure, mais error, probablement à cause de mon manque d'experience avec les parenthésés
-
ok, truc de fou, maintenant j'ai un probleme sur la 35 fibaro:setGlobalValue('OK_FOR_ARROZ', 0) [ERROR] 19:09:46: line 35: attempt to call method 'setGlobalValue' (a nil value)
-
difference_jr= fibaro:getGlobal("difference_jr"); fibaro:debug(difference_jr) -- ici j'ai mon 0,38 Consigne_Tps_Arros= fibaro:getGlobal("Consigne_Tps_Arros"); fibaro:debug(Consigne_Tps_Arros) -- ici le 2 if tonumber(fibaro:getGlobalValue(difference_jr)) > tonumber(fibaro:getGlobalValue(Consigne_Tps_Arros)) then fibaro:setGlobalValue('OK_FOR_ARROZ', 1) else fibaro:setGlobalValue('OK_FOR_ARROZ', 0) end
-
il me retourne [DEBUG] 19:04:51: 0.38699074074074 [DEBUG] 19:04:51: 2 [ERROR] 19:04:51: line 32: attempt to compare two nil values ligne 32 if tonumber(fibaro:getGlobalValue(difference_jr)) > tonumber(fibaro:getGlobalValue(Consigne_Tps_Arros)) then
-
oui c'est ça
-
oui à l'heure ou ns echangeons, difference_jr est à 0,38 donc peut etre que pour lui c'est nul consigne_tps_arros est à 2
-
et en LUA, si la valeur difference_jr est > consigne_tps_arros alors on passe un variable à 0 j'ai essayé ceci mais lui demander de voir si 0,3 > 2 alors variable à 1, il ne sait pas ça devient une usine à gaz local date_derniere_pluie = tonumber(fibaro:getGlobalValue("time_last_rain")) local ma_date_en_toute_lettre = os.date("%d/%m/%Y - %H:%M:%S",date_derniere_pluie) fibaro:debug(ma_date_en_toute_lettre) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LastRain.value", ma_date_en_toute_lettre) -------------------------- -- on mesure la difference entre 2 dates print ("date derniere pluie") local date_derniere_pluie = tonumber(fibaro:getGlobalValue("time_last_rain")) fibaro:debug(os.date("%d/%m/%Y - %H:%M:%S",date_derniere_pluie)) print ("date actuelle") local date_actuelle = os.time() fibaro:debug(os.date("%d/%m/%Y - %H:%M:%S",date_actuelle)) print ("diff_des_2_dates") local diff_des_2_dates = os.difftime (date_actuelle, date_derniere_pluie) fibaro:debug(diff_des_2_dates/(24*60*60).." jour(s)") local difference_jr = diff_des_2_dates/(24*60*60) fibaro:setGlobal('difference_jr', difference_jr) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lbtpsecoule.value", diff_des_2_dates /(24*60*60).." jour(s)") difference_jr= fibaro:getGlobal("difference_jr"); fibaro:debug(difference_jr) Consigne_Tps_Arros= fibaro:getGlobal("Consigne_Tps_Arros"); fibaro:debug(Consigne_Tps_Arros) if ((fibaro:getValue(difference_jr, "value")) > (fibaro:getValue(Consigne_Tps_Arros, "value")) ) then fibaro:setGlobal('OK_FOR_ARROZ', 1) else fibaro:setGlobal('OK_FOR_ARROZ', 0) end
-
la comparaison fonctionne, tt est ok maintenant, j'ai 2 variables dans lesquelles j'importe "difference_jr" une valeure qui va varier de 0 à 3 dans cette exemple, en passant par des 0,3 _ 1,2 _ 2,4 ....... jusqu'a 3 puis "consigne_Tps_arros" qui contient une valeur de 0 à 3, de nombres entiers 1, 2 ou 3 donc sans parler de date, d'heure, ça c'est bon, en GEA comment comparer ces 2 valeurs contenues dans ces 2 variables {"Global+", 0,23 , 3} en temps normal, on compare la variable à une valeur exemple: {"Global+, "variable", 60} = si la valeur de la variable est supérieur à 60 alors ...... moi ici, j'ai essayé ceci, mais j'ai une erreur (debug plus haut) {"Global+" , "difference_jr", "Consigne_Tps_Arros"}
-
si si, ils y sont ils sont dans les BP + et - du VD, ça c'est bon mais dans GEA je compare bien mes 3 jrs de consigne (qui ont ete convertis en seconde precedement, sauf qu'ici il faut qu'ils soient en jour, donc on a bien 3 jours) avec les secondes de difference que j'ai passé en jour (d'ou les 0,23.....) donc je lui dis, si 0,23 est > à 3jrs alors la condition est OK ...