Page 2 sur 4

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 03 nov. 2019, 13:43
par olivier81
Update de mon script pour l'an prochain.

J'ai constaté cet été beaucoup d'arrêts redémarrages de ma pompe de filtration lié à ma lecture temps réel. J'ai découvert depuis peu qu'on peut actualiser depuis un script LUA les variables personnalisées de Domoticz.

J'ai donc profité de cette aubaine pour adapter mon script et n'actualiser la température que toutes les heures. Ainsi lors de variations de températures rapides je n'aurais je l'espère plus ces effets rebonds.

Mon script est modifié en conséquence. Pour cela, j'ai tout expliqué et actualisé sur le premier post.

J'ai également fait l'acquisition de pompes doseuses Ph et Chlore et pour éviter de balancer du chlore et de l'acide quand il y a du monde dans la piscine, je vais scripter l'injection a des heures ou il n'y a personne dedans.

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 03 avr. 2020, 15:43
par clem2888
Salut Olivier,
je suis vraiment débutant en Script.
Je viens de télécharger ton script et de me poser dessus quelques heures :lol: .
Tu dit dans ton premier post : "Voici la liste qu'il vous faudra personnaliser en fonction de votre usage : "
Peux tu me dire à quel endroit il faut les modifier STP.
Merci d'avance. Clément

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 03 avr. 2020, 17:10
par denis_brasseur
Il te faut modifier ces variables dans le script script_time_gst_piscine.lua, lignes 33 à 39, pour mettre les noms de tes interrupteurs et sonde.
Prends le temps de lire le post dans son intégralité, si tu viens de te poser dessus quelques heures :roll:

Code : Tout sélectionner

-- Variables à personnaliser attention penser également à créer la variable utilisateur (temppiscine) dans domoticz 
-- comme expliqué dans mon topic

local pompe = 'Pompe Piscine'                    -- Nom de l'interrupteur de la pompe de piscine
local piscine = 'Piscine'                        -- Nom de la sonde de température de l'eau de la piscine
local anemometre = 0                             -- Mettre à 1 si vous voulez utiliser la fonction démarrage de filtration en cas de vent élevé.
local vent = 'Vent / Ressenti'                   -- Nom du capteur de vent à personnaliser si vous avez mis anemometre à 1
local vent_vmax = 20    	                 -- Vitesse du vent pour déclencher la filtration
local auto = 'Filtration Automatique'            -- Nom de l'inter virtuel qui permet de passer en mode manuel
local traitement = 'Traitement'                  -- Nom de l'interrupteur des pompes doseuses de traitement (en cours de réflexion : sera intégré sur la V4

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 03 avr. 2020, 18:55
par olivier81
Effectivement, comme l'indique Denis, il faut personnaliser ce qui est indiqué en citation selon les noms des différents éléments de ton Domoticz. ;)

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 03 avr. 2020, 19:42
par clem2888
denis_brasseur a écrit : 03 avr. 2020, 17:10 Il te faut modifier ces variables dans le script script_time_gst_piscine.lua, lignes 33 à 39, pour mettre les noms de tes interrupteurs et sonde.
Prends le temps de lire le post dans son intégralité, si tu viens de te poser dessus quelques heures :roll:

Code : Tout sélectionner

-- Variables à personnaliser attention penser également à créer la variable utilisateur (temppiscine) dans domoticz 
-- comme expliqué dans mon topic

local pompe = 'Pompe Piscine'                    -- Nom de l'interrupteur de la pompe de piscine
local piscine = 'Piscine'                        -- Nom de la sonde de température de l'eau de la piscine
local anemometre = 0                             -- Mettre à 1 si vous voulez utiliser la fonction démarrage de filtration en cas de vent élevé.
local vent = 'Vent / Ressenti'                   -- Nom du capteur de vent à personnaliser si vous avez mis anemometre à 1
local vent_vmax = 20    	                 -- Vitesse du vent pour déclencher la filtration
local auto = 'Filtration Automatique'            -- Nom de l'inter virtuel qui permet de passer en mode manuel
local traitement = 'Traitement'                  -- Nom de l'interrupteur des pompes doseuses de traitement (en cours de réflexion : sera intégré sur la V4
Je te remercie pour ta réponse. J'ai vais essayer ça. Et je te rassure j'ai bien lu post entièrement et plusieurs fois ;)

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 03 avr. 2020, 19:42
par clem2888
olivier81 a écrit : 03 avr. 2020, 18:55 Effectivement, comme l'indique Denis, il faut personnaliser ce qui est indiqué en citation selon les noms des différents éléments de ton Domoticz. ;)
Merci :)

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 05 avr. 2020, 23:32
par lavinch31
Bonsoir @olivier81

Tout d'abord merci pour ton scrypt , il correspond exactement à ce que je recherchai :D

Ayant un chlorinateur un peu fatigué ( il a bientôt 20 ans :lol: ) , je dois lui faire faire des pauses de 30 min toutes les 4h ... j'ai donc ré-adapté les cycles de filtration en conséquence)

Concernant la creation de la variable utilisateur " temppiscine" , étant totalement novice sur le sujet , peux tu me dire ce que je dois mettre dans le champs "Valeur de la variable" au moment de la création de cette variable ?

Encore merci pour ton super boulot

Olivier

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 06 avr. 2020, 12:03
par denis_brasseur
lavinch31 a écrit : 05 avr. 2020, 23:32
Concernant la creation de la variable utilisateur " temppiscine" , étant totalement novice sur le sujet , peux tu me dire ce que je dois mettre dans le champs "Valeur de la variable" au moment de la création de cette variable ?

Olivier
Tu indique une valeur approchée de la température de ta piscine, 10 ou 15, la variable sera réactualisée avec le script

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 06 avr. 2020, 12:27
par lavinch31
Ok merci @denis_brasseur

maintenant quand je regarde les log j'obtiens l'erreur suivante :

Code : Tout sélectionner

attempt to concatenate a nil value (global 'Temp_piscine')
cela correspond à cette ligne :

Code : Tout sélectionner

print("Démarrage pompe : Température de l'eau : " .. Temp_piscine .. " °C") 
voici mes variables dans le script :

local pompe = 'Pompe Piscine'
local piscine = 'Piscine'
local anemometre = 0
local vent = 'Vent / Ressenti'
local vent_vmax = 20
local auto = 'Filtration Piscine Automatique'
local traitement = 'Traitement'

je n'ai pas touché au code sur la partie variable utilisateur (hormis la filtration forcée que j'ai commenté à cause de la santé de mon chlorinateur)

Code : Tout sélectionner

-- Toutes les heures on actualise la variable utilisateur (temppiscine)

if minute==00 then 
  commandArray['Variable:temppiscine'] = Temp_piscine
end

-- Conversion température piscine depuis la variable en nombre

Temp_piscine_H = tonumber(uservariables['temppiscine'])

-- Conversion températeure piscine temps réel en nombre

Temp_piscine = tonumber(Temp_piscine) 

-- Conditions d'appel aux fonctions de filtration

if (Temp_piscine_H >=0 and Temp_piscine_H <= 10) then
  filtration_2H()
elseif (Temp_piscine_H > 10 and Temp_piscine_H <= 12) then
  filtration_4H()
elseif (Temp_piscine_H > 12 and Temp_piscine_H <= 16) then
  filtration_6H()
elseif (Temp_piscine_H > 16 and Temp_piscine_H < 24) then
  filtration_8H()
elseif (Temp_piscine_H >= 24 and Temp_piscine_H < 27) then
  filtration_12H()
elseif (Temp_piscine_H >= 27) then
  filtration_20H()
--else
  --filtration_force()

Re: [Script] Gestion du temps de filtration d'une piscine

Publié : 06 avr. 2020, 22:06
par lavinch31
Après avoir passé l'après-midi sur le code , je pense avoir un élément de réponse ...

le soucis viendrait de la ligne ( 188)

Code : Tout sélectionner

Temp_piscine, Humidite_piscine = otherdevices_svalues[piscine]:match("([^;]+);([^;]+)")
Pour tester j'ai modifié comme suit ( j'ai aussi viré l'humidité car pas de capteur présent):

Code : Tout sélectionner

Temp_piscine = otherdevices_svalues[piscine]
Avec cette modification j'ai bien la variable utilisateur temppiscine qui se met à jour ( if minute == 00)