Bonjour,
Je rencontre un problème que je n'arrive pas à résoudre étant totalement novice en programmation.
Je cherche à faire un petit script qui allume ou éteint une prise connectée, en fonction d'une température.
Contexte :
Domoticz : 192.168.1.11:8080
SondeTemperatureChauffage : 192.168.1.24
Prise chauffage : 192.168.1.25
Action rechercher :
Si "SondeTemperatureChauffage" >=25
Alors "Prise chauffage" = ON durant 20 secondes puis OFF
Récurrence de la commande : toutes les 15minutes
Je ne sais pas si vous allez pouvoir m'aider à intégrer ça en LUA ( si j'ai bien compris ) pour domoticz mais j'avoue que pour le moment je n'y comprend pas grand chose.. Et le Blockly proposé sur domoticz ne me permets pas de faire tout ça.
Par avance merci !
VB
Switch on off sous condition - LUA
Re: Switch on off sous condition - LUA
Bonjour vb35 et bienvenu sur le forum
Je ne comprends pas pourquoi tu nous donnes les différentes IP. Normalement tu dois avoir tes différentes prise et capteur dans DomoticZ? C'est bien le cas ? Tu vois la valeur du capteur de température et tu peux actionner ta prise depuis Domoticz ?
Concernant la programmation, j'ai écrit des petits guides dans ma présentation (voir lien dans ma signature) dont un concernant les début en programmation.
Dans le principe, un script de type Time s’exécute toutes les minutes. Si tu souhaites faire une récurrence toutes les 15 minutes, il va falloir vérifier l'heure et n'exécuter ton script que quand les minutes sont égales à 00, 15, 30 ou 45.
Ou sinon, tu peux regarder le langage DzVents dans lequel on peut utiliser une fonction every 15 minutes.
Mais cela est pour un second temps, essaye déjà de faire des action sur ta prise en fonction de la température. tu pourras complexifier le programme dans un deuxième temps.

Je ne comprends pas pourquoi tu nous donnes les différentes IP. Normalement tu dois avoir tes différentes prise et capteur dans DomoticZ? C'est bien le cas ? Tu vois la valeur du capteur de température et tu peux actionner ta prise depuis Domoticz ?
Concernant la programmation, j'ai écrit des petits guides dans ma présentation (voir lien dans ma signature) dont un concernant les début en programmation.
Dans le principe, un script de type Time s’exécute toutes les minutes. Si tu souhaites faire une récurrence toutes les 15 minutes, il va falloir vérifier l'heure et n'exécuter ton script que quand les minutes sont égales à 00, 15, 30 ou 45.
Ou sinon, tu peux regarder le langage DzVents dans lequel on peut utiliser une fonction every 15 minutes.
Mais cela est pour un second temps, essaye déjà de faire des action sur ta prise en fonction de la température. tu pourras complexifier le programme dans un deuxième temps.
Mon installation - Ma philosophie sur le forum - Débuter en programmation - Aide au débogage
Mes Tutos : OpenWeatherMap LUA
Mes Tutos : OpenWeatherMap LUA
Re: Switch on off sous condition - LUA
En récupérant un script avec un relevé de température, je suis tombé la dessus, merci Pipiche
, il y a plein d'exemple
A adapter mais comme tu as la fonction time, tu peux comme le dis Keros, faire minutesnow = 0 ou min = 15 ...

A adapter mais comme tu as la fonction time, tu peux comme le dis Keros, faire minutesnow = 0 ou min = 15 ...
Code : Tout sélectionner
commandArray = {}
tempChbr = otherdevices_svalues['Temperature Chambre Parents']
-- get current time
timenow = os.date("*t")
minutesnow = timenow.min + timenow.hour * 60
minutes = timenow.min
hoursnow = timenow.hour
-- at 21:00 let's switch on Ac if not yet done.
if ( otherdevices_svalues['Temperature Chambre Parents'] >= 25 ) and (minutesnow == 0 or minutesnow == 15 ) then
commandArray[#commandArray +1]={['Clim Chambre Power']='On'}
end
return commandArray
Version: 2022.1, Zwave (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Scren
Re: Switch on off sous condition - LUA
Bonjour tous les deux 
Merci pour vos réponses !
Pour répondre à Keros, j'avais mis les IP car.. je pensais que dans le code lua il fallait renseigner l'emplacement de chaque périphérique ciblé par le script.
J'ai en effet déjà mes prises et mon capteur. Et j'ai donc bien renseigné une action en fonction de la température et la durée de l'action.
En revanche ce que je n'arrive pas à mettre en place aujourd'hui c'est mêler la récurrence avec la variable température.
J'aimerais que si la température est supérieur à tel degré, la prise se déclenche et qu' elle s'arrête au bout de 20s ( ça c'est ok ) en revanche j'aimerais que la prise ne puisse pas s'allumer de nouveau durant les 15 minutes après que celle ci ce soit arrêtée. Et c'est là que ça coince, je n'arrive pas à mettre ça en place avec le blockly.
Merci pour Jeff je vais étudier tout ça demain
voir si comprend et si je pourrais adapter à ma situation 
A bientôt

Merci pour vos réponses !
Pour répondre à Keros, j'avais mis les IP car.. je pensais que dans le code lua il fallait renseigner l'emplacement de chaque périphérique ciblé par le script.
J'ai en effet déjà mes prises et mon capteur. Et j'ai donc bien renseigné une action en fonction de la température et la durée de l'action.
En revanche ce que je n'arrive pas à mettre en place aujourd'hui c'est mêler la récurrence avec la variable température.
J'aimerais que si la température est supérieur à tel degré, la prise se déclenche et qu' elle s'arrête au bout de 20s ( ça c'est ok ) en revanche j'aimerais que la prise ne puisse pas s'allumer de nouveau durant les 15 minutes après que celle ci ce soit arrêtée. Et c'est là que ça coince, je n'arrive pas à mettre ça en place avec le blockly.
Merci pour Jeff je vais étudier tout ça demain


A bientôt
Re: Switch on off sous condition - LUA
Ce n'est pas évident de faire une tempo, surtout en Blocky. Une solution consisterait à déclencher un widget virtuel qui aurait un auto Off à 15 minutes. A la fin de ton script, tu déclenches la tempo. Au début du script, tu vérifies l'état de la tempo : si elle est allumée, c'est que ton script l'a allumée il y a moins de 15 minutes. Si elle est éteinte, tu peux faire tes actions et réactiver la tempo.
Sinon, en code (LUA ou DzVents), il est possible de récupérer le lastupdate d'un widget. En comparant avec l'heure actuelle, tu peux savoir depuis combien de temps le widget n'a pas été mis à jour.
Sinon, en code (LUA ou DzVents), il est possible de récupérer le lastupdate d'un widget. En comparant avec l'heure actuelle, tu peux savoir depuis combien de temps le widget n'a pas été mis à jour.
Mon installation - Ma philosophie sur le forum - Débuter en programmation - Aide au débogage
Mes Tutos : OpenWeatherMap LUA
Mes Tutos : OpenWeatherMap LUA