Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
j'essaie de commander (TOR) une led par lua en fonction de la luminosité, d'une consigne d'enclenchement (luminosité faible), d'une consigne de declenchement (luminosité haute) et d'un detecteur de présence.
mon script fonctionne lorsque le besoin en lumiere passe de o à 1 mais impossible de comprendre pourquoi ça ne fonctionne pas dans l'autre sens.
Si il y a une ame charitable qui peut me filer un coup de main la dessus, je suis preneur!
-- Calcul des besoins de luminosite
--
--
-- 24/06/17 : Version 1 : Redaction initiale
local Consigne_enclenchement = 'Salon_luminosite_enclenchement'
local Consigne_declenchement = 'Salon_luminosite_declenchement'
local Occupation = 'GENERAL_OCCUP'
local Vacances = 'GENERAL_VACANCES'
local Mesure = 'BREADBOARD_Lumiere'
local Besoin ='Besoin_Lumiere_Salon'
--local mesure = otherdevices_svalues['BREADBOARD_Lumiere']
--local besoin = uservariables['Besoin_Lumiere_Salon']
commandArray = {}
if (devicechanged[Occupation]) or devicechanged[Mesure] or devicechanged[Vacances] then
print ('Luminosite mesurée: '..otherdevices_svalues[Mesure])
print ('Consigne d"enclenchement:'..uservariables[Consigne_enclenchement])
print ('Consigne de declenchement:'..uservariables[Consigne_declenchement])
print ('Besoin lumiere: '..uservariables[Besoin])
if uservariables[Besoin]==0 then
if Mesure < Consigne_enclenchement then
print ('Mise à jour besoin = 1')
commandArray['Variable:Besoin_Lumiere_Salon']= '1'
end
end
if uservariables[Besoin]==1 then
if Mesure > Consigne_declenchement then
print ('Mise à jour besoin = 0')
commandArray['Variable:Besoin_Lumiere_Salon']= '0'
end
end
end
return commandArray
Dernière modification par FPA le 12 juil. 2017, 11:47, modifié 1 fois.
salut, merci pour ta réponse.
En effet je n'ai pas fait gaffe à cette partie du script.
Je viens de la corriger, mais ça ne change pas grand chose sur le fond: lorsque besoin lumiere = 1, if Mesure < Consigne_enclenchement ne fonctionne pas. ça doit etre une histoire de format de variable, mais j'avoue débuter sur domoticz et je seche!
si la condition (if) n'est pas remplie le then ne seras pas exécuté, il faut faire des test dans un nouveau script tout simple avec une variable et un if.. then pour bien comprendre le fonctionnement et la syntaxe ...
Domoticz Stable V4.9700 sur Synology DSM 6.2 / 2 x RFlink V48.4 - 433.92MHz(Dio/Chacon) & 433.42MHz(RTS) / Script en LUA & Blocky
le truc c'est que la premiere partie du script fonctionne, donc la deuxieme étant exactement du meme type ça devrait logiquement fonctionner également. je ne vois pas ou il pourrait y avoir une erreur, mais si tu en vois, n'hésites pas, j'en peux plus de ce script!!
if uservariables[Besoin]==1 then
if Mesure > 10 then
print ('Mise à jour besoin = 0')
commandArray['Variable:Besoin_Lumiere_Salon']= '0'
end
end
me revois
2017-07-11 21:29:44.596 Error: EventSystem: in test2: [string "-- Calcul des besoins de luminosite..."]:31: attempt to compare number with string
Cette syntaxe me semble bizarre :
commandArray['Variable:Besoin_Lumiere_Salon']= '1'
Pourquoi mettre "varable:" je n'ais pas cela dans mes script, et pas d'espace après le = , ce serais plutôt (fait copier/coller de cette ligne) :
commandArray['Besoin_Lumiere_Salon']='1'
Il faut être sur que la variable passe bien a l'état 1, ENCORE UNE FOIS, fait des test dans un petit script !!
Cela a l'air d'être 2 types de variable string et number, on ne peut pas comparer 2 variable de type différent !
Domoticz Stable V4.9700 sur Synology DSM 6.2 / 2 x RFlink V48.4 - 433.92MHz(Dio/Chacon) & 433.42MHz(RTS) / Script en LUA & Blocky
if uservariables[Besoin]==1 then
if Mesure > Consigne_declenchement then
print ('Mise à jour besoin = 0')
commandArray['Variable:Besoin_Lumiere_Salon']= '0'
end
end
etait parfaitement conforme à la syntaxe mais que la valeur Mesure était plus élevée que la valeur sensée etre affichée.. je suis vraiment perplexe la!