'ON FOR' ne vas pas fort !

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
freulon9292
Messages : 45
Inscription : 03 nov. 2018, 22:53

'ON FOR' ne vas pas fort !

Message par freulon9292 »

Bonjour,

j'ai un deux scripts qui lancent mon poele à bois via un relais sous tasmota. J'ai un soucis sur la durée de fonctionnement.
Que ce soit le lancement automatique via contrôle de la température, ou le lancement manuel via le déclenchement d'un pushbutton, le poele se lance, mais ne s'arrête jamais.

Pourtant, la fonction ON FOR devrait fonctionner.
Qu'est-ce que je rate ?


Code : Tout sélectionner

-- Declenchement manuel poele RIKA

local dureetimer = 30
local Rikadeclencheur = 'Tasmota 3 Rika'
local Rikaswitch = 'Tasmota 1a Rika'
local log = '*-*-* RIKA *-*-* '
local cmd = "tail -n 1000 /tmp/domoticz.txt |grep \'RIKA\'|sed 's/$/<BR>/'"

tc=next(devicechanged)
device=tostring(tc)


commandArray = {}

-- déclenchement manuel


if (device == Rikadeclencheur) then

print (log..'Poele Rika lancé manuellement pour une durée de '..dureetimer)
commandArray[Rikaswitch]='On FOR ' ..dureetimer

                                -- Envoi log par mail
                                local f = assert(io.popen(cmd,'r'))
                                local retourf = assert(f:read('*a'))
                                commandArray ['SendEmail'] = log..'#RIKA <BR>'..retourf..'#xxx@xxx'
end


return commandArray


Code : Tout sélectionner

-- Declenchement automatique poele RIKA

local log = 'oo Presence oo ->   '
local presence = 'Niveau_Presence_counter'
local time = os.time()
local tminutes=tonumber(os.date('%M',time))
local dureetimer = 90
local Rikaswitch = 'Tasmota 1a Rika'
local log = '*-*-* RIKA *-*-* '
local cmd = "tail -n 1000 /tmp/domoticz.txt |grep \'RIKA\'|sed 's/$/<BR>/'"
local temp = 'Moyenne Sejour'
local templevel = 21    -- temperature demandée

commandArray = {}

-- déclenchement toutes les 10mn
if (string.sub(tminutes,2,2) == "2" ) then

-- verif si poele On ou Off
if otherdevices[Rikaswitch] == "Off" then

-- verif jour et présence
if (timeofday['Daytime']) and (uservariables[presence] == 1) then
print (log..'il fait jour et il y a du monde')

-- il fait jour ET il y a du monde : on teste la temperature
                if tonumber(otherdevices[temp]) > templevel then
                print (log..'temperature chaude : '..tonumber(otherdevices[temp]))
                else
                print (log..'temperature froide : '..tonumber(otherdevices[temp]))
                print (log..'Poele lancé de '..dureetimer..' mn')
                commandArray[Rikaswitch]='On FOR ' ..dureetimer
                                -- Envoi log par mail
                                local f = assert(io.popen(cmd,'r'))
                                local retourf = assert(f:read('*a'))
                                commandArray ['SendEmail'] = log..'#RIKA <BR>'..retourf..'#xxx@xxx'
                end
else
-- il n'y a personne OU c'est la nuit, on eteint le poele
                               print (log..'il n\'y a personne ou c\'est la nuit')
                               print (log..'compteur Rika ramené à 0')
                               print (log..'Rika basculé à Off')
                               commandArray[Rikaswitch]='Off'
end
else
end
end


return commandArray
Merci de votre aide.
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: 'ON FOR' ne vas pas fort !

Message par denis_brasseur »

Effectivement, ON FOR n'est pas très "performant".
Utilise plutôt le On, suivi d'un Off AFTER xx, la durée étant exprimé en secondes.

Code : Tout sélectionner

	commandArray[#commandArray + 1]={[Rikaswitch] = 'On'}
	commandArray[#commandArray + 1]={[Rikaswitch] = 'Off AFTER '..dureetimer}
Et utilise bien la syntaxe commandArray[#commandArray + 1],dans le cas contraire, seul le Off AFTER xx serait exécuté.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
freulon9292
Messages : 45
Inscription : 03 nov. 2018, 22:53

[Resolu : 'ON FOR' ne vas pas fort !

Message par freulon9292 »

heeyyyyyy...


ça à l'air de le faire.

Merci !!!
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: 'ON FOR' ne vas pas fort !

Message par Wolfen38 »

J'avais le même style de soucis.

Je demandais à la lumière de s'allumer pour 2 min, et ca fonctionnait pas terrible.

Maintenant je demande a éteindre après 2min, et c'est nickel.
Répondre