Page 28 sur 31
Re: [PROJET] Gestion de piscine
Publié : 28 mai 2018, 22:13
par aleph0
Oui, mais normalement l'influence se fait dans le sens inverse de celui constaté par chacal : le chlore se trouve sous une forme plus désinfectante lorsque le pH est bas que lorsqu'il est haut. Du coup pH baisse => redox monte et inversement.
Je ne sais pas ce qu'il en est pour les autres désinfectants (brome, ...)
Re: [PROJET] Gestion de piscine
Publié : 13 juin 2018, 15:36
par chacal1985
Bonjour,
Bon je viens animé un peu le sujet car depuis 15 jours plus rien.
J'ai arrêté les mesures car le l'orp, ne donne pas des valeurs cohérentes et le ph n'étant pas concluant au final.
Bref des mesures qui ne me permettent pas de faire une régulation fiable et sans danger.
C'est dommage car j'y ai investi du temps et de l'argent. ( Au pire je vais tester la solution Domogarden car j'ai tout le matos )
Par contre j'ai voulu remettre en route la filtration automatique mais je me retrouve avec des erreurs lorsque je lance le script et je ne comprend pas pourquoi.
L'erreur dans le log est :
Error: EventSystem: in Piscine 7: [string "--[[ Script de gestion de la piscine
..."]:47: attempt to perform arithmetic on local 'num' (a string value)
et aussi
Error: EventSystem: in Piscine 7: [string "--[[ Script de gestion de la piscine
..."]:203: attempt to perform arithmetic on a string value
Voici le code pour la première erreur ( ligne 42 correspond à function round(num, dec)
Code : Tout sélectionner
-- -------------------------------
-- Bibliothèque de fonctions
-- -------------------------------
local CmdIdx=1
local debug=1
function round(num, dec)
if num == 0 then
return 0
else
local mult = 10^(dec or 0)
return math.floor(num * mult + 0.5) / mult
end
end
Pour la seconde : ( ligne 203 correspond à PpeFait=..... )
Code : Tout sélectionner
-- Calcul de la durée de fonctionnement de la pompe aujourd'hui
-- Basé sur le compteur de puissance piscine
today = os.date("%Y-%m-%d")
PpeFait=os.capture('sqlite3 '..dbPath..' "select sum(value3) from multimeter where devicerowid='..otherdevices_idx[dev_cptFl]..' and Date(date)=\''..today..'\'"')*5/cst_PpeFl_W
print("Déjà effectué : "..PpeFait.." minutes sur "..PpeDuree)
C'est bizarre car j'ai rien touché au code depuis l'an dernier (enfin il me semble)
Re: [PROJET] Gestion de piscine
Publié : 13 juin 2018, 15:43
par Jeff
Moi cela m'est aussi arrivé au début de saison, j'ai mis une fausse valeur à l'endroit où on récupère la valeur moyenne de temp de la veille otherdevice_svalues... et qui passe par la fonction round et une fois que tourne une journée, je remets à l'origine.
Je n'ai pas le code sous les yeux.

Re: [PROJET] Gestion de piscine
Publié : 14 juin 2018, 18:42
par chacal1985
Pfff , je comprend pas pourquoi j'ai cette erreur , Jeff ou aleph0, au secours !

Re: [PROJET] Gestion de piscine
Publié : 14 juin 2018, 20:08
par aleph0
Sûrement l'interrogation de SQLite qui se passe mal et qui renvoi un message d'erreur lieu d'une valeur. Essaye de faire afficher le résultat de os.capture dans les logs pour voir ce qui est retourné
Re: [PROJET] Gestion de piscine
Publié : 14 juin 2018, 23:11
par chacal1985
Merci aleph0, alors tu m'aides mais sans m'aider
Car je ne sais pas comment faire pour appliquer ta solution.
Désolé

Re: [PROJET] Gestion de piscine
Publié : 15 juin 2018, 10:23
par aleph0
entre la ligne today=... et PpeFait=... rajoute
Code : Tout sélectionner
print("interrogation sqlite :",os.capture('sqlite3 '..dbPath..' "select sum(value3) from multimeter where devicerowid='..otherdevices_idx[dev_cptFl]..' and Date(date)=\''..today..'\'"'))
et poste le résultat stp
Re: [PROJET] Gestion de piscine
Publié : 15 juin 2018, 11:02
par chacal1985
Salut Aleph0,
Alors dans le log, je n'ai que ça qui remonte :
2018-06-15 11:00:01.257 Status: LUA: Contrôle pression filtre piscine
2018-06-15 11:00:01.265 Status: LUA: Script Piscine : Calcul de la filtration
2018-06-15 11:01:01.265 Status: LUA: Contrôle pression filtre piscine
2018-06-15 11:01:01.273 Status: LUA: Script Piscine : Gestion de la filtration
2018-06-15 11:01:01.273 Status: LUA: 21.1
2018-06-15 11:01:01.284 Status: LUA: interrogation sqlite :
2018-06-15 11:01:01.284 Status: LUA:
et ça en erreurs :
2018-06-15 11:00:01.276 Error: EventSystem: in Piscine 7: [string "--[[ Script de gestion de la piscine
..."]:47: attempt to perform arithmetic on local 'num' (a string value)
2018-06-15 11:01:01.294 Error: EventSystem: in Piscine 7: [string "--[[ Script de gestion de la piscine
..."]:204: attempt to perform arithmetic on a string value
Ligne 47
Ligne 204
Code : Tout sélectionner
PpeFait=os.capture('sqlite3 '..dbPath..' "select sum(value3) from multimeter where devicerowid='..otherdevices_idx[dev_cptFl]..' and Date(date)=\''..today..'\'"')*5/cst_PpeFl_W
Re: [PROJET] Gestion de piscine
Publié : 15 juin 2018, 11:18
par aleph0
Ça confirme que c'est l'interrogation sql pour connaître le temps de filtration déjà effectué qui ne marche pas

Vérifie :
- Que le compteur d'énergie de la pompe de filtration soit bien mis à jour et que tu as des données pour la journée courante
- Qu'il soit bien de type P1 smart-counter
- Qu'il n'ai pas changé de nom par rapport à ce qui est déclaré dans la variable dev_cptFl
Si tout ça est bon, il va falloir s'intéresser à la ligne requête sqlite elle-même. modifie la ligne précédente par :
Code : Tout sélectionner
print("interrogation sqlite :",'sqlite3 '..dbPath..' "select sum(value3) from multimeter where devicerowid='..otherdevices_idx[dev_cptFl]..' and Date(date)=\''..today..'\'"')
et poste nous le résultat
Re: [PROJET] Gestion de piscine
Publié : 15 juin 2018, 11:50
par chacal1985
Alors le compteur est bien mis à jour. ( là la pompe est éteinte donc 0, mais si je mets la pompe en route il m'indique 750 )
C'est bien un P1 smart-counter
C'est bien le même nom que dans le script
Voici le retour du log :
2018-06-15 11:46:01.208 Status: LUA: Script Piscine : Gestion de la filtration
2018-06-15 11:46:01.208 Status: LUA: 21.1
2018-06-15 11:46:01.208 Status: LUA: interrogation sqlite :
2018-06-15 11:46:01.208 Status: LUA: sqlite3 /home/pi/domoticz/domoticz.db "select sum(value3) from multimeter where devicerowid=47 and Date(date)='2018-06-15'"
2018-06-15 11:46:01.219 Error: EventSystem: in Piscine 7: [string "--[[ Script de gestion de la piscine..."]:204: attempt to perform arithmetic on a string value