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

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
olivier81
Messages : 16
Enregistré le : 16 févr. 2018, 19:13

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

Message 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.

clem2888
Messages : 4
Enregistré le : 24 mars 2020, 10:52

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

Message 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

denis_brasseur
Messages : 476
Enregistré le : 24 déc. 2018, 17:05
Localisation : (26)

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

Message 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
Pi3 + DD PiDrive + RFXtrx433 + AEON Labs ZW090
7 Modules fil pilote ZMNHJD1
2 détecteur fumées CHACON 34131
5 Bresser Capteur thermo/hygro
1 contacteur porte Philio PST02-1A Z
OWL Micro+ CM180
D2L LINKY
FGR-223 "Roller Shutter 3"

olivier81
Messages : 16
Enregistré le : 16 févr. 2018, 19:13

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

Message 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. ;)

clem2888
Messages : 4
Enregistré le : 24 mars 2020, 10:52

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

Message 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 ;)

clem2888
Messages : 4
Enregistré le : 24 mars 2020, 10:52

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

Message 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 :)

lavinch31
Messages : 51
Enregistré le : 03 févr. 2020, 11:16

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

Message 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
Pi3b+ SSD
Zigbee Conbee II + Philips hue +Variateurs +smart buttons
Station meteo Netatmo
Plusieurs ESP8266 sous ESPEASY + DS18B20 + BMP280 +Relais

denis_brasseur
Messages : 476
Enregistré le : 24 déc. 2018, 17:05
Localisation : (26)

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

Message 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
Pi3 + DD PiDrive + RFXtrx433 + AEON Labs ZW090
7 Modules fil pilote ZMNHJD1
2 détecteur fumées CHACON 34131
5 Bresser Capteur thermo/hygro
1 contacteur porte Philio PST02-1A Z
OWL Micro+ CM180
D2L LINKY
FGR-223 "Roller Shutter 3"

lavinch31
Messages : 51
Enregistré le : 03 févr. 2020, 11:16

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

Message 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()
Pi3b+ SSD
Zigbee Conbee II + Philips hue +Variateurs +smart buttons
Station meteo Netatmo
Plusieurs ESP8266 sous ESPEASY + DS18B20 + BMP280 +Relais

lavinch31
Messages : 51
Enregistré le : 03 févr. 2020, 11:16

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

Message 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)
Pi3b+ SSD
Zigbee Conbee II + Philips hue +Variateurs +smart buttons
Station meteo Netatmo
Plusieurs ESP8266 sous ESPEASY + DS18B20 + BMP280 +Relais

Répondre