help sur script eclairage
Re: help sur script eclairage
la commande
commandArray['Variable:Besoin_Lumiere_Salon']= '1'
fonctionne, en revanche
commandArray['Besoin_Lumiere_Salon']='1'
ne fonctionne pas chez moi!
commandArray['Variable:Besoin_Lumiere_Salon']= '1'
fonctionne, en revanche
commandArray['Besoin_Lumiere_Salon']='1'
ne fonctionne pas chez moi!
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: help sur script eclairage
Salut,
Le debug passe par l'usage de print en masse..
Tu veux savoir pourquoi mesure n'est jamais inférieure à consigne ?
Affiche dans le log ce qu'elles contiennent..
Et tu comprendra qu'elle sont mal déclarées.
Le debug passe par l'usage de print en masse..
Tu veux savoir pourquoi mesure n'est jamais inférieure à consigne ?
Affiche dans le log ce qu'elles contiennent..
Et tu comprendra qu'elle sont mal déclarées.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: help sur script eclairage
Bonjour et merci pour ton aide!
Dans le code de base, j'affiche toutes les valeurs necessaires au traitement lorsque le script démarre,
ensuite j'affiche un message en cas de changement d'état des besoins en luminosité. Au niveau des variables, les consignes et le besoin sont des uservariables, mesure est une otherdivices, je ne sais pas si celà est à priori comparable, cependant lorsque les besoins sont à 0 et que la luminosité est inferieure à la consigne de d'enclenchement, les besoins passent bien à 1 et la variable est bien mise à jour.
C'est lorsque les besoins sont à 1 et que la mesure est superieure à la consigne de déclenchement que le problème apparait
Dans le code de base, j'affiche toutes les valeurs necessaires au traitement lorsque le script démarre,
ensuite j'affiche un message en cas de changement d'état des besoins en luminosité. Au niveau des variables, les consignes et le besoin sont des uservariables, mesure est une otherdivices, je ne sais pas si celà est à priori comparable, cependant lorsque les besoins sont à 0 et que la luminosité est inferieure à la consigne de d'enclenchement, les besoins passent bien à 1 et la variable est bien mise à jour.
C'est lorsque les besoins sont à 1 et que la mesure est superieure à la consigne de déclenchement que le problème apparait
Code : Tout sélectionner
-- 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
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: help sur script eclairage
c'est bien beau de faire ceci
mais ce que tu compares est Mesure et non otherdevices_svalues[Mesure]
je te disais de faire ceci
pour te rendre compte que Mesure = 'BREADBOARD_Lumiere' et non otherdevices_svalues[Mesure]
puisque tu as commenté la ligne qui aurait fait le taf !
et au passage, gaff ! à la casse, mesure n'est pas Mesure !
même choses pour consigne..
Code : Tout sélectionner
print ('Luminosite mesurée: '..otherdevices_svalues[Mesure])Code : Tout sélectionner
if Mesure < Consigne_enclenchement thenCode : Tout sélectionner
print ('Luminosite mesurée: '..Mesure )puisque tu as commenté la ligne qui aurait fait le taf !
Code : Tout sélectionner
--local mesure = otherdevices_svalues['BREADBOARD_Lumiere']même choses pour consigne..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: help sur script eclairage
J'ai modifié le code conformément à tes recomandations:
voici ce que me dit le log:
Code : Tout sélectionner
-- Calcul des besoins de luminosite
--
--
-- 24/06/17 : Version 1 : Redaction initiale
local Consigne_enclenchement = uservariables['Salon_luminosite_enclenchement']
local Consigne_declenchement = uservariables['Salon_luminosite_declenchement']
local Occupation = 'GENERAL_OCCUP'
local Vacances = 'GENERAL_VACANCES'
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: '..Mesure)
print ('Consigne d"enclenchement:'..Consigne_enclenchement)
print ('Consigne de declenchement:'..Consigne_declenchement)
print ('Besoin lumiere: '..Besoin)
if Besoin==0 then
if Mesure < Consigne_enclenchement then
print ('Mise à jour besoin = 1')
commandArray['Variable:Besoin_Lumiere_Salon']= '1'
end
end
if Besoin==1 then
if Mesure > Consigne_declenchement then
print ('Mise à jour besoin = 0')
commandArray['Variable:Besoin_Lumiere_Salon']= '0'
end
end
end
return commandArray
Code : Tout sélectionner
2017-07-12 11:42:07.288 LUA: Luminosite mesurée: 93
2017-07-12 11:42:07.288 LUA: Consigne d"enclenchement:30
2017-07-12 11:42:07.288 LUA: Consigne de declenchement:50
2017-07-12 11:42:07.288 LUA: Besoin lumiere: 1
2017-07-12 11:42:07.288 Error: EventSystem: in test2: [string "-- Calcul des besoins de luminosite..."]:30: attempt to compare number with string
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: help sur script eclairage
Code : Tout sélectionner
local Consigne_enclenchement = tonumber(uservariables['Salon_luminosite_enclenchement'])
local Consigne_declenchement = tonumber(uservariables['Salon_luminosite_declenchement'])MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: help sur script eclairage
Yes ça marche, t'es trop fort!
Je me doutais bien qu'il y avait un problème au niveau des variables.
C'est tordu comme langage quand même! Quel est l'interet de considérer toutes les variables comme string?
et pourquoi l'opération fonctionne sans aucune modif dans le cas ou on doit faire passer les besoins à 1 (dans mon script?)??
Je me doutais bien qu'il y avait un problème au niveau des variables.
C'est tordu comme langage quand même! Quel est l'interet de considérer toutes les variables comme string?
et pourquoi l'opération fonctionne sans aucune modif dans le cas ou on doit faire passer les besoins à 1 (dans mon script?)??