chacal1985 a écrit :Salut,
Avec le script de gestion de filtration de la piscine, est ce que ton script va fonctionner correctement ?
Il me semble que lorsque la filtration est en auto, pompe en marche, si on arrête la pompe manuellement avec domoticz, sans passé en mode manu, la pompe ce remet en marche automatiquement.
Exact ! Avec le script de filtration, il faut faire 2 choses pour mettre la pompe en sécurité :
- Passer la filtration en manuel
- Arrêter la pompe
Modif du script sécurisation :
Code : Tout sélectionner
[...]
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local PpFilt = 'Pompe piscine' -- nom de la pompe de filtration
-- ** ligne à rajouter
ModeFilt='Mode filtration piscine' -- nom du selecteur de mode de filtration
-- ** fin ajout 1
[...]
if (otherdevices[PpFilt] == 'On' and (val_Pfiltre < val_Pmini)) then
-- ** ligne à rajouter
commandArray[ModeFilt]='Set Level 10'
-- ** fin ajout 2
commandArray[PpFilt]='Off'
commandArray[defautpis]='On'
commandArray['SendNotification']='Piscine#Défaut filtration !'
print ("Défaut filtration piscine !")
[...]
Ou, autre méthode : Modifier le script filtration pour qu'il teste la valeur du dummy 'defaut piscine' pour ne pas rallumer la pompe dans ce cas :
Modif du scrip filtration
Code : Tout sélectionner
local dev_PpeFl = "Filtration piscine" -- Interrupteur de commande de la pompe
local dev_ModeFl = "Mode filtration piscine" -- Selecteur du mode de la pompe (Manu/Auto HC/AutoHP)
-- ** ligne à rajouter
dev_DftFt='Defaut Piscine' -- Nom du dummy de défaut filtration piscine
-- ** fin ajout 1
et remplacer la fonction ChkFiltration par celle-ci :
Code : Tout sélectionner
function ChkFiltration()
--[[Gestion de la filtration
Start / Stop de la pompe
Demandes de chloration automaique --]]
-- Mode de la filtration :
-- Manu / Auto HC / Auto HP
local PpeDuree, val_TEau, val_PpeFl, MinDuJour, PpeStart, today, PpeFait
print("Script Piscine : Gestion de la filtration")
PpeDuree=tonumber(uservariables[var_PPDuree])
if otherdevices[dev_DftFl]=="Off" and otherdevices[dev_ModeFl] ~= "Manu" then
val_TEau = tonumber(string.match(otherdevices_svalues[dev_TEau],"(%d+.%d*);.*"))
val_PpeFl=otherdevices[dev_PpeFl]
if (val_TEau >= 12) then
-- La témpérature d'eau est >=12°C : on utilise la temporisation
MinDuJour=60*time.hour+time.min
PpeStart=tonumber(string.sub(uservariables[var_PPStart],1,2))*60+tonumber(string.sub(uservariables[var_PPStart],4,5))
-- 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)
if (MinDuJour >= PpeStart and PpeFait < PpeDuree and val_PpeFl == "Off") then
print("Filtration piscine : Démarrage par timer")
UpdateSw(dev_PpeFl,'On')
elseif (PpeFait >= PpeDuree and val_PpeFl == "On") then
print("Filtration piscine : Arrêt par timer")
UpdateSw(dev_PpeFl,'Off')
end
else
if gst_HorsGel then
--[[ La température de l'eau est <12°C : on utilise la température
Démarrage si température d'air <= 1
Arrêt si température d'air >= 1.5 et température eau >= 0.5
--]]
val_Tair = tonumber(otherdevices_svalues[dev_TAir])
if (val_Tair <= 1) and val_PpeFl == "Off" then
print("Filtration piscine : Démarrage par température")
UpdateSw(dev_PpeFl,'On')
elseif (val_Tair >= 1.5) and (val_TEau>=0.5) and val_PpeFl == "On" then
print("Filtration piscine : Arrêt par température")
UpdateSw(dev_PpeFl,'Off')
end
end
end -- filtration timer/temperature
elseif otherdevices[dev_DftFl]=="Off"
print("Mode manu, pas de changement")
else
print("Filtration en défaut, pas de changement")
end -- end mode auto/manu
end