Page 3 sur 4

Re: Besoin d'aide Script Blockly > Lua

Publié : 10 sept. 2019, 19:47
par denis_brasseur

Re: Besoin d'aide Script Blockly > Lua

Publié : 10 sept. 2019, 20:41
par morninggoal
merci!
Pour illustrer mes difficultés en DZvents, voici un autre exemple de script simple qui fait l'inverse de ce a quoi je m'attendais. (allume la lampe quand le volet remonte et pas quand il descend, je suppose qu'en remplacant le dernier if par "if item.state == on then..." cela marcherait mais du coup je comprends pas bien le if "item.active"....)

Code : Tout sélectionner

return {
	on = {
		devices = {
			['Volet_Salon'] = {'at 19:00-00:00'}
		}
	},
	execute = function(dz, item)
		
		-- quitte tout de suite si l'interrupteur dummy est activé
		if dz.devices('Absence').active then return end
		
		  if item.active then
		      dz.devices('Lampe').switchOn().formin(120).checkFirst()
		  end
	end
}

Re: Besoin d'aide Script Blockly > Lua

Publié : 11 sept. 2019, 01:53
par lmet
@morninggoal
A la piscine tu as le plongeoir (Blockly) puis le 3 mètres (lua) puis le 5 mètres (DzVents).
Ce qu'essaye de dire @denis_brasseur c'est que tu veux passer du plongeoir au 5 mètres.
Le risque est de faire un plat.

Re: Besoin d'aide Script Blockly > Lua

Publié : 11 sept. 2019, 09:10
par morninggoal
Bonjour,
Merci pour cette superbe métaphore mais j'avais déjà compris ce que disait Denis...
Le probleme dans sa proposition de script lua, c'est que les conditions restent juxtaposées moi je souhaitais les imbriquées... Quant à ma derniere question sur le item.active vous avez une idée?

Re: Besoin d'aide Script Blockly > Lua

Publié : 11 sept. 2019, 10:52
par boum
D'après la doc de dzVents :
  • active: Boolean. Is true for some common states like 'On' or 'Open' or 'Motion'. Same as bState.
Du coup, l'état n'est évident que pour les interrupteurs, si tu souhaites rendre le test plus explicite, passe par '.state', par contre, vérifie bien la valeur attendue (avec an log par exemple)

Code : Tout sélectionner

if (item.state == 'Closed') then
    dz.devices('Lampe').switchOn().formin(120).checkFirst()
end

Re: Besoin d'aide Script Blockly > Lua

Publié : 11 sept. 2019, 17:19
par denis_brasseur
morninggoal a écrit : 11 sept. 2019, 09:10 Bonjour,
Merci pour cette superbe métaphore mais j'avais déjà compris ce que disait Denis...
Le probleme dans sa proposition de script lua, c'est que les conditions restent juxtaposées moi je souhaitais les imbriquées... Quant à ma derniere question sur le item.active vous avez une idée?
Je ne comprend pas les notions de conditions juxtaposées ou imbriquées :?:

Re: Besoin d'aide Script Blockly > Lua

Publié : 11 sept. 2019, 18:16
par morninggoal
bah dans les if je voulais faire un premier test if absence = on alors on quitte le script... et dessous un autre if...ect mais c'est bon j'ai reussi

Re: Besoin d'aide Script Blockly > Lua

Publié : 11 sept. 2019, 19:37
par denis_brasseur
Et c'est cela qui t'a arrêté ? :D

Code : Tout sélectionner

if otherdevices['Absence'] == 'Closed' then
	if heure > '06:00' and time < '12:00' then
		if otherdevices['Volet_salon'] == 'Closed' then
			if otherdevices['Mouvement'] == 'Closed' then
				--commandArray[#commandArray+1] = ---------------
			end
		end
	end
end
D’où l’intérêt de faire du LUA avant de faire du DzVents

12/09/2019 : retrait de 2 parenthèses laissées à tord

Re: Besoin d'aide Script Blockly > Lua

Publié : 11 sept. 2019, 19:49
par boum
denis_brasseur a écrit : 11 sept. 2019, 19:37 D’où l’intérêt de faire du LUA avant de faire du DzVents
Personnellement, je trouve que c'est plus une question de goût. Je ne vois pas vraiment de différence de complexité entre ce code et l'équivalent en dzVents.

Re: Besoin d'aide Script Blockly > Lua

Publié : 11 sept. 2019, 20:52
par morninggoal
denis_brasseur a écrit : 11 sept. 2019, 19:37 Et c'est cela qui t'a arrêté ? :D

Code : Tout sélectionner

if (otherdevices['Absence'] == 'Closed' 
	if heure > '06:00' and time < '12:00' then
		if otherdevices['Volet_salon'] == 'Closed' then
			if otherdevices['Mouvement'] == 'Closed') then
				--commandArray[#commandArray+1] = ---------------
			end
		end
	end
end
D’où l’intérêt de faire du LUA avant de faire du DzVents
mais du coup c'est quoi le declencheur dans ton code si le script est de type device?