Page 1 sur 1
HUE Philips variation aleatoire de couleur [LUA]
Publié : 02 févr. 2017, 19:30
par MisterT
Salut a tous
J'ai recement fait l'acqusition d'une lampe Philips HUE GO et d'un pont pour pouvoir me faire une lumière d'ambiance dans mon salon. Mon but de ce script est que la lampe change de couleur de manière aleatoire toute les 10 minutes. J'ai donc commencé sur un script avec variation au bout de 10 min avec les variables HUE standard
Code : Tout sélectionner
-- script_time_variation_hue.lua
t1 = os.time()
s = otherdevices_lastupdate['Hue go 1']
-- returns a date time like 2013-07-11 17:23:12
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
commandArray = {}
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = (os.difftime (t1, t2))
if (otherdevices['Hue go 1'] == 'On' and difference > 600 and difference < 700) then
brightness = 80
iswhite = "false"
hue = "0" -- red
idx = otherdevices_idx["Hue go 1"] -- name lamp
url = 'http://xxx.xxx.x.xx:xxxx/json.htm?type=command¶m=setcolbrightnessvalue&idx=' .. idx .. '&hue=' .. hue .. '&brightness=' .. brightness ..'&iswhite=' .. iswhite
commandArray['OpenURL']= url
end
return commandArray
Ce script fonctionne et me passe ma lampe au bout de 10 min en rouge.
Je cherche desormais a faire varier les variables HUE en aleatoire:
- Pour brightness aleatoire entre 1 et 254
- Pour hue aleatoire entre 1 et 65535
Quelqu'un saurait m'aider pour ces variables en random?
Merci pour les futures réponses
Re: HUE Philips variation aleatoire de couleur [LUA]
Publié : 03 févr. 2017, 10:38
par naerleth
Hello
Je te conseille de jeter un oeil à la doc, et de tester des bouts de code LUA avec cette page :
https://www.lua.org/cgi-bin/demo
Pour t'aider plus précisément :
Code : Tout sélectionner
-- Initialise le seed
math.randomseed(os.time())
-- brightness entre 1 et 255 (FF)
local brightness = math.random(1, 255))
-- hue entre 1 et 65535 (FFFF)
local hue = math.random(1, 65535)
Voilà
Re: HUE Philips variation aleatoire de couleur [LUA]
Publié : 05 févr. 2017, 14:20
par MisterT
Salut
Je reviens pour la variation aleatoire de la lumiere de la lampe HUE. Avec ces variables, aucun probleme.
Ma question porte desormais sur le fait de changer toute les 10 minutes la couleur. Avec mes peu de competences en lua et apres avoir essayé plusieurs bout de script en m'inspirant de script sur le forum je n'y arrive pas
j'ai essayé ça mais sans resultat:(je n'utilise plus difference mais
Code : Tout sélectionner
t1 = os.date("*t")
if (otherdevices['Hue go 1'] == 'On' and t1.min%10 == 0) then
et le script en entier
Code : Tout sélectionner
-- script_time_variation_hue.lua
t1 = os.date("*t")
s = otherdevices_lastupdate['Hue go 1']
-- Initialise le seed
math.randomseed(os.time())
-- returns a date time like 2013-07-11 17:23:12
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
commandArray = {}
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
-- difference = (os.difftime (t1, t2))
-- if (otherdevices['Hue go 1'] == 'On' and difference > 120 and difference < 220) then
if (otherdevices['Hue go 1'] == 'On' and t1.min%5 == 0) then
-- brightness = 80
local brightness = math.random(1, 255)
iswhite = "false"
-- hue = "0" -- red
local hue = math.random(1, 65535)
idx = otherdevices_idx["Hue go 1"] -- name lamp
url = 'http://192.168.1.xx:808x/json.htm?type=command¶m=setcolbrightnessvalue&idx=' .. idx .. '&hue=' .. hue .. '&brightness=' .. brightness ..'&iswhite=' .. iswhite
commandArray['OpenURL']= url
end
return commandArray
un petit coup de main pour finir ce script ?
Re: HUE Philips variation aleatoire de couleur [LUA]
Publié : 06 févr. 2017, 11:31
par naerleth
Si tu ajoutes
Code : Tout sélectionner
print(otherdevices['Hue go 1'])
print(otherdevices_idx['Hue go 1'])
print(t1.min%5)
avant
tu obtiens quoi ?
Re: HUE Philips variation aleatoire de couleur [LUA]
Publié : 06 févr. 2017, 14:00
par MisterT
salut naerleth
suivant ta demande j'obtiens
2017-02-06 13:54:00.426 LUA: Off
2017-02-06 13:54:00.426 LUA: 120
2017-02-06 13:54:00.427 LUA: 4
pour
print(otherdevices['Hue go 1'])
print(otherdevices_idx['Hue go 1'])
print(t1.min%5)
donc Off c'est bon, la hue est bien éteinte
pour 120 c'est bon ma hue à bien l'idx 120
pour le 4 je ne comprends pas trop mon but est de changer la couleur toutes les 5 minutes
Je précise que le script fonctionne mais il n'y a qu'un seul changement de couleur, il n'y en a pas toutes les 5 minutes
une idée
Re: HUE Philips variation aleatoire de couleur [LUA]
Publié : 06 févr. 2017, 14:08
par naerleth
MisterT a écrit :salut naerleth
suivant ta demande j'obtiens
2017-02-06 13:54:00.426 LUA: Off
2017-02-06 13:54:00.426 LUA: 120
2017-02-06 13:54:00.427 LUA: 4
pour
print(otherdevices['Hue go 1'])
print(otherdevices_idx['Hue go 1'])
print(t1.min%5)
donc Off c'est bon, la hue est bien éteinte
pour 120 c'est bon ma hue à bien l'idx 120
pour le 4 je ne comprends pas trop mon but est de changer la couleur toutes les 5 minutes
Je précise que le script fonctionne mais il n'y a qu'un seul changement de couleur, il n'y en a pas toutes les 5 minutes
une idée
Je vais regarder.
t1.min%5 ça veut dire le modulo 5 des minutes. S'il est 13h54, que tu obtiennes 4 est normal. Le modulo est le reste de la division entière, donc 54%5 = 4 (car 54 = 5 x 10 + 4). À 55, comme 55 = 5 x 11, tu auras bien 0.
J'ai une hue à la maison, je testerai ton script ce soir sinon (et je te le piquerai, il est marrant

)
Re: HUE Philips variation aleatoire de couleur [LUA]
Publié : 06 févr. 2017, 20:28
par naerleth
La réponse est là :
https://www.domoticz.com/forum/viewtopi ... 499#p66197
Le statut "On" n'existe pas.
Au pire, teste ça :
Code : Tout sélectionner
if (otherdevices['Hue go 1'] ~= 'Off' and t1.min%5 == 0) then
Re: HUE Philips variation aleatoire de couleur [LUA]
Publié : 26 mars 2017, 19:22
par MisterT
Salut
je me remets doucement sur mon script lua pour ma lampe hue et j’ai fait évolué mon code. Je fais maintenant un comparatif avec l'état de ma freebox, l'état de ma télé, l'état de ma play4 et l'état de mon HTPC pour allumer ou non ma hue lamp. Le problème est maintenant sur la variable huecondition
sur huecondition = ('Hue_condition') j'ai ce message
Error: EventSystem: commandArray in script Script_time_variation.lua should only return ['string']='actionstring' or [integer]={['string']='actionstring'}
Ma variable est soit 0 soit 1 et je pense que cela ne passe pas car ce n'est pas un string mais je ne trouve pas comment corriger ceci.
Un petit coup de main please ?
Code : Tout sélectionner
-- script_time_variation_hue.lua
t1 = os.date("*t")
print(t1)
-- Initialise le seed
math.randomseed(os.time())
huename = "Hue go 1"
huecondition = ('Hue_condition')
commandArray = {}
minutesnow = t1.min + t1.hour * 60
-- test for t1 > sunset
if (minutesnow > timeofday['SunsetInMinutes']) then
if (otherdevices['Playstation 4 Etat'] == 'On' or otherdevices['Freebox player Etat'] == 'On' and t1.min%5 == 0 and huecondition == 0) then
commandArray['Hue go 1'] = 'On'
local brightness = math.random(1, 255)
iswhite = "false"
local hue = math.random(1, 65535)
idx = otherdevices_idx[huename] -- name lamp
url = 'http://192.168.1.37:8085/json.htm?type=command¶m=setcolbrightnessvalue&idx=' .. idx .. '&hue=' .. hue .. '&brightness=' .. brightness ..'&iswhite=' .. iswhite
commandArray['OpenURL']= url
commandArray['Variable:Hue_condition'] = 1
end
end
if (otherdevices['Playstation 4 Etat'] == 'Off' or otherdevices['Freebox player Etat'] == 'Off' or otherdevices['Télévisions Etat'] == 'Off' or otherdevices['HTPC Etat'] == 'Off' and Hue_condition == 1) then
commandArray['Hue go 1'] = 'Off'
commandArray['Variable:Hue_condition'] = 0
commandArray['le salon'] = 'Off'
end
if (otherdevices['HTPC Etat'] == 'On' and huecondition == 1) then
commandArray['Hue go 1'] = 'Off'
commandArray['Variable:Hue_condition'] = 0
commandArray['le salon'] = 'Off'
end
return commandArray
Re: HUE Philips variation aleatoire de couleur [LUA]
Publié : 26 mars 2017, 20:02
par vil1driver
Salut,
Je n'ai pas tout regardé mais ceci
Devrait être
Même chose lorsque tu lui passes 0
Une variable ne peut contenir qu'une chaîne