Domotique Piscine

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
Martial
Messages : 125
Enregistré le : 03 mars 2017, 18:58

Re: Domotique Piscine

Message par Martial »

Bonjour,
Regarde dans ton code tous les combien est lancé ChkFiltration().
N'est-ce pas uniquement toutes les 15mn, alors que le calcul se fait à la minute pret.

Exemple:
if (((time.min-1) % 15)== 0) then ChkFiltration() end

CQFD

MAidEN91
Messages : 113
Enregistré le : 01 sept. 2015, 20:50

Re: Domotique Piscine

Message par MAidEN91 »

Ah oui exact bien vu !

J'ai mis 5 min pour que ça soit un peu plus précis du coup merci :)

multinet
Messages : 22
Enregistré le : 09 févr. 2016, 13:07

Re: Domotique Piscine

Message par multinet »

Bonjour

J'utilise le script de gestion de piscine depuis plusieurs années sans aucun souci et cela fonctionne tres bien

J'ai updaté mon domoticz en derniere version lundi 1er Juin et depuis j'ai un comportement différent sur une mise à jour de compteur de minutes de filtration

Auparavant : chaque appel "Updatedev" remplacait la valeur (O minutes puis 5 minutes puis 10 minutes etc);, et depuis la mise à jour de domoticz, alors que je n'ai rien changé au script j'ai l'impression qu'il CUMULE les valeurs à chaque appel (et chaque appel est fait toutes les secondes !)

resultat :
Capture d’écran 2020-06-04 à 11.16.39.png
Capture d’écran 2020-06-04 à 11.16.39.png (180.23 Kio) Vu 539 fois
la fonction lua en question :

Code : Tout sélectionner

function UpdateDev(device,nvalue,svalues)
    --Met à jour un device numérique Domotica
    print("Updatedev")
    print("nvalue:"..tostring(nvalue))
    print("svalues:"..tostring(svalues))
    commandArray[CmdIdx] = {['UpdateDevice'] = otherdevices_idx[device]..'|'..tostring(nvalue)..'|'..tostring(svalues)}
    CmdIdx=CmdIdx+1
end
l'appel de la fonction :

Code : Tout sélectionner

           -- Mise à jour du capteur loggant la durée de filtration, en minutes
            if (val_DebitFl > 0) and (val_PpeFl == "On") then 
                UpdateDev(dev_DureeFl,0,tonumber(PpeFait))
            elseif (val_PpeFl == "On") then
                print("Pompe en mode ON mais pas de débit --> le watchdog doit corriger, pas de mise à jour du compteur")
            end   
            
et enfin un extrait de log sur deux appels:

Code : Tout sélectionner

2020-06-04 11:34:02.195  Status: LUA: Script Piscine : Gestion de la filtration
2020-06-04 11:34:02.199  Status: LUA: ---Temperature de la piscine : 27.0
2020-06-04 11:34:02.527  Status: LUA: Déjà effectué : 680.0 minutes sur 815
2020-06-04 11:34:02.529  Status: LUA: PpeRest (conso piscine) : 135.0
2020-06-04 11:34:02.531  Status: LUA: =PpeDuree (conso piscine) : 815
2020-06-04 11:34:02.532  Status: LUA: -PpeFait (conso piscine) : 680.0
2020-06-04 11:34:02.536  Status: LUA: Temps restant de filtration : 135.0 minutes 
2020-06-04 11:34:02.538  Status: LUA: Updatedev
2020-06-04 11:34:02.540  Status: LUA: nvalue:0
2020-06-04 11:34:02.552  Status: LUA: svalues:680.0
2020-06-04 11:34:02.719  Status: EventSystem: Script event triggered: TIMER-Piscine Filtration

Code : Tout sélectionner

2020-06-04 11:35:04.510  Status: LUA: Script Piscine : Gestion de la filtration
2020-06-04 11:35:04.513  Status: LUA: ---Temperature de la piscine : 27.0
2020-06-04 11:35:04.643  Status: LUA: Déjà effectué : 685.0 minutes sur 815
2020-06-04 11:35:04.647  Status: LUA: PpeRest (conso piscine) : 130.0
2020-06-04 11:35:04.649  Status: LUA: =PpeDuree (conso piscine) : 815
2020-06-04 11:35:04.651  Status: LUA: -PpeFait (conso piscine) : 685.0
2020-06-04 11:35:04.652  Status: LUA: Temps restant de filtration : 130.0 minutes 
2020-06-04 11:35:04.654  Status: LUA: Updatedev
2020-06-04 11:35:04.655  Status: LUA: nvalue:0
2020-06-04 11:35:04.656  Status: LUA: svalues:685.0
2020-06-04 11:35:04.755  Status: EventSystem: Script event triggered: TIMER-Piscine Filtration

Avez vous une idée ?
Merci !
Multinet

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

Re: Domotique Piscine

Message par denis_brasseur »

Ton anomalie a l'air de ressembler à celle ci :
Erreurs Compteurs Incrementiels 2020-1
aleph0 a écrit : 01 avr. 2020, 20:49 J'ai eu le même problème avec une bêta récente. Le comportement des compteurs a été changé :
Avant, compteur normal ou compteur incrémental, il fallait calculer le total par script et envoyer le total via le commandArray
Maintenant, pour le compteur incrémental, il faut n'envoyer que la valeur a ajouter aux compteur, et le compteur l'ajoute lui-même a la valeur précédente. Pour les compteurs non incrémental, ça reste comme avant : on envoi au compteur la valeur totale du compteur
Il te faudrait récupérer la valeur du compteur, et n'y ajouter que la différence avec la nouvelle valeur

Code : Tout sélectionner

--recuperation de la valeur du device
v1,v2 = otherdevices_svalues['nom de ton capteur']:match("([^;]+);([^;]+)")
--on soustrait de la valeur du device (v1) le valeur calculé (svalues) pour n'obtenir que la difference
newvalue = v1 - svalues
commandArray[CmdIdx] = {['UpdateDevice'] = otherdevices_idx[device]..'|'..tostring(nvalue)..'|'..tostring(newvalue)}
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"

Répondre