Page 29 sur 35
Re: Domotique Piscine
Publié : 18 avr. 2020, 11:42
par MAidEN91
Effectivement le 0 ne sert à rien,
par contre avec ta modif de fonction ca ne marche pas.
Avec la fonction math.floor j'obtiens :
2020-04-18 11:38:00 162 min
Sachant qu'avant le résultat après la virgule était toujours 0 je ne pense pas qu'il y ai un arrondi du coup qui soit fait.
Re: Domotique Piscine
Publié : 19 avr. 2020, 09:32
par samourai47
Hello
Une question un peu a part de sript de gestion mais en rapport avec la piscine
Quelqu'un a t'il domotiser son volet roulant de piscine? Si oui comment?
Merci
Re: Domotique Piscine
Publié : 19 avr. 2020, 09:58
par MAidEN91
Bonjour,
En soit qu'est ce qui diffère ton volet piscine d'un volet traditionnel?
Tu peux le commander via un contact sec, contact sans fil type chacon RF433, ou autre en fonction de ton installation.
Après pour l'ouverture, soit tu le programmes en fonction de la saison et des heures de lever/coucher du soleil par exemple, soit tu le gères manuellement à ta guise selon tes baignades et de faire chauffer ton eau avec le soleil

Re: Domotique Piscine
Publié : 19 avr. 2020, 11:01
par samourai47
Merci
Au passage j'ai mis des math.floor dans chaque zone de calcul et effectivement les .0 ont disparu. Plus propre... Lol
Pour le volet j'ai un peu lu a droite et a gauche des retours sur un fibaro fgs 222 ou autre. ca n'a pas forcement l'air tres simple du fait des 24v, des tension inversées et autres trucs compliqués. Mais je continu a chercher
Merci
Re: Domotique Piscine
Publié : 19 avr. 2020, 15:26
par MAidEN91
Petite question est ce que tu as aussi appliqué le math.floor concernant le temps de filtration restant? Si oui comment?
Car moi je n'ai pas réussi.
De base on a ça : PpeRest=PpeDuree-PpeFait
J'ai essayé un PpeRest=math.floor(PpeDuree-PpeFait) mais cela ne fonctionne pas

Re: Domotique Piscine
Publié : 19 avr. 2020, 19:51
par samourai47
alors ce que j'ai fait....
Code : Tout sélectionner
PpeFait=math.floor(os.capture('sqlite3 '..dbPath..' "select sum(value3) from multimeter where devicerowid='..otherdevices_idx[dev_cptFl]..' and Date(date)=\''..today..'\'"')*5/cst_PpeFl_W)
Je crois que c'est tout
Du coup le PpeRest s'affiche sans les .0
Re: Domotique Piscine
Publié : 19 avr. 2020, 19:59
par MAidEN91
Ah yes bien vu super merci !
Re: Domotique Piscine
Publié : 19 avr. 2020, 20:01
par MAidEN91
Re: Domotique Piscine
Publié : 22 avr. 2020, 00:00
par lavinch31
Bonsoir,
Pour des raisons techniques (Électrolyseur un peu fatigué) je souhaiterai pouvoir effectuer un temporisation sur le device ( dev_PpeFl)
l’idée serait de mettre la pompe sur OFF pendant 30 min toutes les 4 heures.
Sachant que pour maintenir sur OFF la pompe , il faut aussi que l'interrupteur selector "dev_ModeFl" soit mis sur "Manu" ( sinon la fonction ChkFiltration() qui s'execute toutes les 15 min risque de rebasculer le switch dev_PpeFl sur "On" si la durée de filtration n'est pas atteinte.
Pour faire "plus simple" , voici la sequence que j'aimerai réaliser:
Si dev_PpeFl 'On' >= 4heures et dev_ModeFl ~= "Manu"
mettre dev_ModeFl sur "Manu"
puis mettre dev_PpeFl sur "OFF" pendant 30 min
puis à l'issue de cette tempo , remettre le selector dev_ModeFl sur son état initial ( la fonction ChkFiltration() se chargera ensuite de rebasculer la pompe sur On si besoin est)
Note:
- Je peux gérer cette sequence dans un script à part pour simplifier la chose.
- Je ne suis pas contre le fait de pouvoir activer ce script additionnel via un device ' Tempo Electrolyseur' de type ON/OFF switch.
Cela fait quelques jours que je tourne en rond pour répondre à ce besoin , mais là tout se melange dans ma tête , je ne sais plus par où commencer

... cela reste positif car ça me fait progresser dans la comprehension des scripts mais la saison approche et j'aimerai pouvoir exploiter ce script a temps ( et vue comment j'avance

.....)
Merci d'avance a ceux qui se pencheront sur mon besoin.
Re: Domotique Piscine
Publié : 22 avr. 2020, 07:32
par denis_brasseur
Tu dois pouvoir partir d'une base comme celle ci pour commencer :
Code : Tout sélectionner
-- retourne le temps en seconde depuis la dernière maj du péréphérique
function lastSeen(device)
timestamp = otherdevices_lastupdate[device] or device
y, m, d, H, M, S = timestamp:match("(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)")
difference = os.difftime(os.time(), os.time{year=y, month=m, day=d, hour=H, min=M, sec=S})
return difference
end
if dev_PpeFl == 'On' and lastSeen(dev_PpeFl) >= 14400 and dev_ModeFl ~= 'Manu' then
commandArray[#commandArray + 1]={[dev_ModeFl] = 'Set Level 20'}--level à personnaliser du niveau
commandArray[#commandArray + 1]={[dev_ModeFl] = 'Set Level 10 AFTER 1800'}--level à personnaliser du niveau
commandArray[#commandArray + 1]={[dev_PpeFl] = 'Off'} --passage de dev_PpeFl à Off
commandArray[#commandArray + 1]={[dev_PpeFl] = 'On AFTER 1800'} --passage de dev_PpeFl à On après 1800 s
end