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

Vous avez créé 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.
olivier81
Messages : 17
Inscription : 16 févr. 2018, 19:13

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

Message par olivier81 »

Bonjour,

Désolé, pour cette ligne, j'ai copié collé d'un code existant et ça fonctionnait chez moi je pense car j'ai une sonde Oregon. Je ne suis vraiment pas expert dans les conversions, j'adapte du code.

Je n'ai pas encore remis la filtration en route, j'effectuerai la modification au script et je vérifierai que cela ne pose pas de problème, logiquement non, ta syntaxe me semble plus simple et propre.

Sinon pour répondre à la question initiale, il suffit de mettre n'importe quelle valeur, elle sera de toute manière actualisée à l'heure suivante et 0 minute. Ceci dit ca ne sert à mettre 0 si on sait que la température actuelle du bassin à peut prêt à 15.
lavinch31
Messages : 52
Inscription : 03 févr. 2020, 11:16

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

Message par lavinch31 »

pas de soucis cela ma également permis d'apprendre du .lua ( je suis novice en la matière)

je vais surveiller le comportement du script sur les prochains jour ( filtration sur AUTO avec interrupteur de la pompe domoticz non lié à la pompe elle même)

pour ma part j'ai une sonde DS18B20 et les données transitent vers domoticz via un ESP8266.
Pi3b+ SSD
Zigbee Conbee II + Philips hue +Variateurs +smart buttons
Station meteo Netatmo
Plusieurs ESP8266 sous ESPEASY + DS18B20 + BMP280 +Relais
olivier81
Messages : 17
Inscription : 16 févr. 2018, 19:13

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

Message par olivier81 »

Ok super, c'est la sonde que je monterai quand ma sonde oregon va mourir. Je ne suis pas non plus expert en LUA, j'ai pioché de la syntaxe un peu partout pour en arriver à écrire ce script.

Ton retour m'intéresse en tout cas, tu me diras si pour ton usage le script convient.
clem2888
Messages : 4
Inscription : 24 mars 2020, 10:52

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

Message par clem2888 »

lavinch31 a écrit : 06 avr. 2020, 22:39 pas de soucis cela ma également permis d'apprendre du .lua ( je suis novice en la matière)

je vais surveiller le comportement du script sur les prochains jour ( filtration sur AUTO avec interrupteur de la pompe domoticz non lié à la pompe elle même)

pour ma part j'ai une sonde DS18B20 et les données transitent vers domoticz via un ESP8266.
Salut Lavinch31,

je te remerci pour ton retour j'avais le même problème que toi. Je viens de mettre à jour mon script et je vais surveillé ça.

;)
Tontonpat
Messages : 29
Inscription : 24 févr. 2019, 15:45

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

Message par Tontonpat »

lavinch31 a écrit : 06 avr. 2020, 22:06 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)
Bonjour, je suis en train de tenter de faire marcher ce script sur mon domoticz, mais j’ai presque la même erreur

Code : Tout sélectionner

Error: dzVents: Error: (3.1.8) .../scripts/dzVents/generated_scripts/Z Gestion piscine.lua:188: attempt to index a nil value (global 'otherdevices_svalues')
malgré la modification que tu as fait. Une idée ?
Merci
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

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

Message par Keros »

Grosso modo, ton script plante dés la première ligne exécutée. Tu as bien défini le nom de ton dispositif dans la variable piscine ?

Je vois dans ton erreur qu'il est indiqué DzVents. C'est quoi le type de script que tu as défini dans DomoticZ ?

Il serait bien que tu nous remettes ton code avec les logs associés.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
olivier81
Messages : 17
Inscription : 16 févr. 2018, 19:13

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

Message par olivier81 »

Bonjour Tontonpat,

Effectivement, peux-tu contrôler que tu sois bien en script lua/time ?

Egalement, quel type de sonde utilises-tu pour mesurer la température de ta piscine ?

En fonction de ton retour il faudra adapter la ligne 188 du script, car ma sonde qui est une sonde oregon remonte une valeur humidité en plus de la température (ca ne sert à rien je te l'accorde, mais je n'avais que ça au moment de mon montage)

A+

Olivier.
Tontonpat
Messages : 29
Inscription : 24 févr. 2019, 15:45

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

Message par Tontonpat »

Bonjour, désolé pour ma réponse tardive, je n’ai pas reçu de notification concernant vos réponses.
J’avais résolu le problème en le mettant en script lua time.
La sonde utilisée est un addon sur un shelly.
Encore merci pour vos réponses
Tontonpat
Messages : 29
Inscription : 24 févr. 2019, 15:45

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

Message par Tontonpat »

Bonjour,
J'ai modifié les horaires de filtration en fonction des horaires que je voulais.

Le problème, si domoticz redémarre juste avant 14H, il n'y a pas d'arrêt de pompe:

Code : Tout sélectionner

local function filtration_8H()
  if (Heure >= 8 and Heure < 10 and otherdevices[pompe] == 'Off') then
    commandArray[pompe]='On'
    print("Démarrage pompe filtration 8H: Température de l'eau : " .. Temp_piscine .. " °C")
  elseif (Heure >= 12 and Heure < 14 and otherdevices[pompe] == 'Off') then
    commandArray[pompe]='On'
	print("Démarrage pompe filtration 8H: Température de l'eau : " .. Temp_piscine .. " °C")
  elseif (Heure >= 15 and Heure < 17 and otherdevices[pompe] == 'Off') then
    commandArray[pompe]='On'
    print("Démarrage pompe filtration 8H: Température de l'eau : " .. Temp_piscine .. " °C")
  elseif (Heure >=18 and Heure < 20 and otherdevices[pompe] == 'Off') then
    commandArray[pompe]='On'
    print("Démarrage pompe filtration 8H: Température de l'eau : " .. Temp_piscine .. " °C")
  elseif (((Heure >=10 and Heure <= 11) or Heure == 14 or Heure == 17) and otherdevices[pompe] == 'On') then
    commandArray[pompe]='Off'
	print("Arrêt pompe filtration 8H: Température de l'eau : " .. Temp_piscine .. " °C")
  elseif ((Heure < 8 or Heure >= 20) and otherdevices[pompe] == 'On') then
    commandArray[pompe]='Off'
    print('Fin de programme de filtration 8H')
  end
end
J'ai modifié les horaires de filtration afin de s'assurer qu'entre 7H et 13H la pompe se coupe.
exemple sur mon mode 8H :

Code : Tout sélectionner

local function filtration_8H()
  if (Heure >= 3 and Heure < 7 and otherdevices[pompe] == 'Off') then
    commandArray[pompe]='On'
	print("Démarrage filtration 8H: Température de l'eau : " .. Temp_piscine .. " °C")
  elseif (Heure >= 7 and Heure < 13  and otherdevices[pompe] == 'ON') then
    commandArray[pompe]='OFF'
    print("Pause filtration 8H: Température de l'eau : " .. Temp_piscine .. " °C")
  elseif (Heure >= 13 and Heure < 17 and otherdevices[pompe] == 'Off') then
    commandArray[pompe]='On'
    print("Reprise filtration 8H: Température de l'eau : " .. Temp_piscine .. " °C")
  elseif ((Heure < 3 or Heure >= 17) and otherdevices[pompe] == 'On') then
    commandArray[pompe]='Off'
    print("Fin de filtration 8H Température de l'eau : " .. Temp_piscine .." °C")
  end
end
La pompe démarre bien à 3H mais ne s'arrête pas à 7H.
Le "pompe ON" se fait bien à 13H et se coupe à 17H.
Une idée?
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

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

Message par Keros »

Je pense que le problème vient du ON au lieu de On sur le premier elseif.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Répondre