Page 2 sur 4
Re: Script LUA et Dimmer HUE
Publié : 09 janv. 2021, 10:44
par Keros
PoDeZebi a écrit : 09 janv. 2021, 10:24
pour la ligne DimVal = otherdevices_svalues[ Widget ] je pensais qu'en mettant la valeur du dimmer dans une variable, je pourrais plus simplement l'incrémenter par la suite, mais ça ne fonctionne pas du tout.
Cela ne fonctionne pas car tu enregistres la variable dans le premier bloc "If ON". Quand tu es dans les autres blocs, tu n'es pas passer par "If ON" donc tu si tu fais appel à cette variable, tu auras une erreur Nil Value.
PoDeZebi a écrit : 09 janv. 2021, 10:24
- Je fais une pression sur "+" => tu vois bien 95, le slider va directement sur cette valeur, sans s'incrémeter de un !
Pourquoi 15, je croyais que tu essayais de faire une variation de 5 en 5 ??
Sans voir ton code pour la modification du dimer, on ne pourra pas t'aider

Re: Script LUA et Dimmer HUE
Publié : 09 janv. 2021, 11:32
par PoDeZebi
Keros a écrit : 09 janv. 2021, 10:44
Pourquoi 15, je croyais que tu essayais de faire une variation de 5 en 5 ??
Sans voir ton code pour la modification du dimer, on ne pourra pas t'aider
Lol

pour les 15, j'ai pas choisi c'est lui qui fait ça tout seul (bon, ok, j'ai du écrire Nawak...

)
Voila mon code, j'en suis là actuellement :
Code : Tout sélectionner
commandArray = {}
print (' #### DEBUT DU SCRIPT HUE REMOTE ####')
------------------------------
-- Definition des variables --
------------------------------
Widget = 'Hue_Remote'
local DimVal
local DimVal2
if (devicechanged[ Widget ]) then
------------------------------
-- If On --
------------------------------
if otherdevices_svalues[ Widget ] == "On" then
print ('___ Remote sur On ___')
commandArray[ Widget ]='Set Level:80'
--DimVal = otherdevices_svalues[ Widget ]
--print ( '____ Dimmer Apres ON = ' ..DimVal )
--DimVal2 = DimVal
------------------------------
-- If Off --
------------------------------
elseif otherdevices_svalues[ Widget ] == "Off" then
print ('___ Remote sur Off ___')
-------------------------------
-- If nombre --
-------------------------------
elseif otherdevices_svalues[ Widget ] ~= "On" or otherdevices_svalues[ Widget ] ~= "Off" then
print ('____ Remote sur dimmer ___')
DimVal = otherdevices_svalues[ Widget ]
DimVal = DimVal +5
print ('____ Dimmer Update = '.. DimVal ..' ____')
commandArray[ Widget ]='Set Level:'..DimVal
end
end
print (' #### FIN DU SCRIPT HUE REMOTE ####')
return commandArray
Actuellement mon code à l'aire de fonctionner... Si je fais un clic sur la télécommande, il me fait plus 5... Je voudrais bien le faire aller à -5 maintenant.
Je vais aussi rajouter une condition "Si dimmer >=100 alors DimVal = 100... Histoire qu'il m'incrémente pas la variable à l'infinie.
Merci !
Re: Script LUA et Dimmer HUE
Publié : 09 janv. 2021, 11:38
par PoDeZebi
Je test ça :
Code : Tout sélectionner
-------------------------------
-- If nombre --
-------------------------------
elseif otherdevices_svalues[ Widget ] ~= "On" or otherdevices_svalues[ Widget ] ~= "Off" then
print ('____ Remote sur dimmer ___')
if otherdevices_svalues[ Widget ] > DimVal then
DimVal = otherdevices_svalues[ Widget ]
DimVal = DimVal +5
if DimVal >=100 then
DimVal = 100
Print ('Dimmer A fond')
end
print ('____ Dimmer Update = '.. DimVal ..' ____')
commandArray[ Widget ]='Set Level:'..DimVal
else
DimVal = otherdevices_svalues[ Widget ]
DimVal = DimVal -5
if DimVal <=0 then
DimVal = 0
Print ('Dimmer en bas')
end
print ('____ Dimmer Update = '.. DimVal ..' ____')
commandArray[ Widget ]='Set Level:'..DimVal
end
end
end
J'ai un retour :
EventSystem: in HUE Remote: [string "commandArray = {}..."]:37: attempt to compare nil with string
Re: Script LUA et Dimmer HUE
Publié : 09 janv. 2021, 11:40
par Keros
Je traduit ton script :
Si Widget = ON alors
xxxxxxxx
Si non si Widget = OFF alors
xxxxxxxx
Si non si Widget différent de On
ou si Widget différent de Off alors
xxxxxxxx
Fin
La condition a la troisième étape n'est pas correct : reprends ce que je t'ai indiqué
ici.
Edit précision : ce message répond à l'avant-dernier message
Re: Script LUA et Dimmer HUE
Publié : 09 janv. 2021, 12:03
par PoDeZebi
Oui corrigé ! Je m'obstine ... bêtement !
En revanche suite à la modif pour +5/-5, toujours la même erreur
2021-01-09 12:00:19.430 Status: LUA: ____ Remote sur dimmer ___
2021-01-09 12:00:19.430 Error: EventSystem: in HUE Remote: [string "commandArray = {}..."]:38: attempt to concatenate a nil value (local 'DimVal')
Code : Tout sélectionner
commandArray = {}
print (' #### DEBUT DU SCRIPT HUE REMOTE ####')
------------------------------
-- Definition des variables --
------------------------------
Widget = 'Hue_Remote'
local DimVal
local DimVal2
if (devicechanged[ Widget ]) then
------------------------------
-- If On --
------------------------------
if otherdevices_svalues[ Widget ] == "On" then
--print ('___ Remote sur On ___')
commandArray[ Widget ]='Set Level:80'
--DimVal = otherdevices_svalues[ Widget ]
--print ( '____ Dimmer Apres ON = ' ..DimVal )
--DimVal2 = DimVal
------------------------------
-- If Off --
------------------------------
elseif otherdevices_svalues[ Widget ] == "Off" then
--print ('___ Remote sur Off ___')
-------------------------------
-- If nombre --
-------------------------------
else
print ('____ Remote sur dimmer ___')
print ('____ Dimmer ='..DimVal)
if otherdevices_svalues[ Widget ] > DimVal then
DimVal = otherdevices_svalues[ Widget ]
DimVal = DimVal +5
if DimVal >=100 then
DimVal = 100
Print ('Dimmer A fond')
end
print ('____ Dimmer Update = '.. DimVal ..' ____')
commandArray[ Widget ]='Set Level:'..DimVal
else
DimVal = otherdevices_svalues[ Widget ]
DimVal = DimVal -5
if DimVal <=0 then
DimVal = 0
Print ('Dimmer en bas')
end
print ('____ Dimmer Update = '.. DimVal ..' ____')
commandArray[ Widget ]='Set Level:'..DimVal
end
end
end
print (' #### FIN DU SCRIPT HUE REMOTE ####')
return commandArray
Aller, j'y crois !

Re: Script LUA et Dimmer HUE
Publié : 09 janv. 2021, 12:17
par Keros
Tu vas y arriver pas à pas
[string "commandArray = {}..."]:38: attempt to concatenate a nil value (local 'DimVal')
Cela indique que tu essayes d'utiliser la variable DimVal à la ligne 38 mais elle n'est pas définie (nil value).
En fait, c'est ta condition qui n'est pas bonne. Regarde pour savoir si tu demandes du + ou du - et en fonction tu calcules la nouvelle valeur que tu dois donner au device.
Tu pourrais faire :
Code : Tout sélectionner
Si télécommande bouton + alors
valeur = valeur_actuelle + 5
Sinon Si télécommande bouton - alors
valeur = valeur_actuelle - 5
fin
si valeur > 100 alors
valeur = 100
sinon si valeur < 0 alors
valeur = 0
fin
envoi de la valeur dans le device
Re: Script LUA et Dimmer HUE
Publié : 09 janv. 2021, 12:33
par PoDeZebi
C'est exactement ce que je veux faire !
Le seul soucis, c'est que le "Si télécommande bouton +" ou "Si télécommande bouton -" n'existe pas !
les seuls commandes que j'ai à ma disposition sont :
otherdevices_idx[ Widget ] (pas besoin du coup ! )
ou
otherdevices_svalues !
Voila pourquoi je cherche a faire un truc du genre :
fixer la valeur courante du dimmer dans DimVal
Si valeur suivante > Dimval Alors Dimval + 5
Si valeur suivante < DimVal Alors DimVal - 5
Je sais pas si je suis vraiment claire !
mais tu mets le doigts sur le probleme que j'ai depuis le debut !
Par exemple, j'ai une telecommande Tradfri, qui a chaque pression d'un bouton me retourne un état dans le Widget... donc facil de dire "si tel etat, alors fait ca"... mais la, sur cette télécommande philips, je n'ai rien !: Juste on/off/et le slider
Merci encore !!!
Re: Script LUA et Dimmer HUE
Publié : 09 janv. 2021, 13:53
par Keros
Désolé, je ne connais pas cette télécommande.
Tu as quoi comme bouton sur la télécommande ? (comment tu fais pour demander + ou -)
Cela se traduit comment sur DomoticZ ? (si tu peux faire une image du widget, ce serait top).
Re: Script LUA et Dimmer HUE
Publié : 10 janv. 2021, 01:19
par pierre78@dom
Bonsoir,
Si cela peut aider j'ai un script pour cela qui fonctionne de mon coté.
Code : Tout sélectionner
if (devicechanged['CDESALON'] == 'up-press') then
if otherdevices['LED SALON'] == 'Off' then -- turn on led salon
commandArray['LED SALON']='On'
end
Bulbvalue = otherdevices_svalues['LED SALON']; -- On récupère la valeur actuelle de luminosité de l'ampoule à piloter
CalcValue = (Bulbvalue + 10) --CalcValue va être notre valeur finale à appliquer à l'ampoule (valeur actuelle de l ampoule +10)
if CalcValue > 100 then
CalcValue = 100 --valeur maximale à 100%
end
print('new light level '..CalcValue)
commandArray['LED SALON']='Set Level '..CalcValue..''
end
if (devicechanged['CDESALON'] == 'down-press') then
Bulbvalue = otherdevices_svalues['LED SALON']; -- On récupère la valeur actuelle de luminosité de l'ampoule à piloter
CalcValue = (Bulbvalue - 10) --CalcValue va être notre valeur finale à appliquer à l'ampoule (valeur actuelle de l ampoule -10)
if CalcValue < 0 then
CalcValue = 0 --valeur minimale à 0%
end
print('new light level '..CalcValue)
commandArray['LED SALON']='Set Level '..CalcValue..''
end
Re: Script LUA et Dimmer HUE
Publié : 10 janv. 2021, 09:01
par Keros
Merci pour ce script mais il nécessite d'avoir les infos bouton + et bouton - ce qui semble ne pas être le cas
