Page 1 sur 1

Remplacer for par after

Publié : 12 avr. 2020, 10:11
par Wolfen38
Salut,

J'utilisais pas mal le for, mais avec un résultat pas toujours top, et de pire en pire.

Sur plusieurs script, j'ai pu remplacer mon on for par un off after...

Mais la, je n'y arrive pas, j'ai ca, et ca ne fonctionne pas :

Code : Tout sélectionner

if ((devicechanged['Interrupteur Emerik'] == '3 Click' and otherdevices['Virtuel Emerik'] == 'Off')) then 
	commandArray['Sonoff-Emerik']='On'
	commandArray['Sonoff-Emerik']='Off AFTER 120'
	end
Des idées ?

Merci.

Re: Remplacer for par after

Publié : 12 avr. 2020, 10:42
par vil1driver

Re: Remplacer for par after

Publié : 12 avr. 2020, 11:10
par Wolfen38
Merci, mais du coup c'est quelle syntaxe la bonne ?

la 1 :

Code : Tout sélectionner

commandArray[1]= {['Bureau.Prise.3 (Lampadaire)'] = 'On'}
commandArray[2]= {['Bureau.Prise.3 (Lampadaire)'] = 'Off AFTER 60'}
ou la 2

Code : Tout sélectionner

    commandArray[#commandArray + 1] = {['Bureau.Prise.3 (Lampadaire)'] = 'On' }
    commandArray[#commandArray + 1] = {['Bureau.Prise.3 (Lampadaire)'] = 'Off AFTER 60' }

Re: Remplacer for par after

Publié : 12 avr. 2020, 11:29
par boum
La 2 marchera dans tous les cas. La 1ere est sûre uniquement si ce sont les seules commandes passées (tu risques d'écraser des commandes précédentes dans le tableau).

À titre indicatif, dzVents est peut-être plus simple dans ce cas :

Code : Tout sélectionner

return 
{
    on = { devices = { 'Interrupteur Emerik' }},
    
    execute = function(domoticz, item)
        if (item.status == "3 Click") and not domoticz.devices('Virtuel Emerik').active then
            local sonoff = domoticz.devices('Sonoff-Emerik')
            sonoff.cancelQueuedCommands()
            sonoff.switchOn().checkFirst()
            sonoff.switchOff().afterSec(120) -- ou afterMin(2)
        end
    end
}

Re: Remplacer for par after

Publié : 12 avr. 2020, 11:42
par Wolfen38
Merci de ta réponse.

J'ai envie d'essayer le dzvent, mais put---, que ca m'a l'air compliqué a comprendre comme language...

Re: Remplacer for par after

Publié : 12 avr. 2020, 13:07
par Neutrino
C'est juste du lua, mais adapter à Domoticz.
Par contre, il faut quelques notions de programmation orientée objet.