Aller au contenu

Messages recommandés

Posté(e)

Bonjour a vous ,

 

Depuis une certaine période , j'ai essayé les deux versions en 0-10V pour le ventilateur du convecteur Clima Canal Jaga en HC2

- la première version c'est une combinaison LT-3060-010V avec RGBW Fibaro 

-la deuxième version est avec Flush Dimmer 0-10V Qubino

Je suis satisfait avec les deux versions.

 

Maintenant, pour pouvoir intégrer ce ventilateur dans notre HC2 est nécessaire une scène et cette scène doit être en fonction de la différence de température ambiante et température de consigne. (ex  si dans la pièce la température ambiante est 18° et la température de consigne est 22° alors le ventilateur démarre a 80 pour-cent de sa vitesse et aussi la température ambiante est 20° et la température de consigne est 22° alors le ventilateur va diminué sa vitesse a 10 pour-cent et température ambiante 21 et la température de consigne est 22° ventilateur s'arrête)

 

Merci bien à  vous de votre aide !  

 

 

 

Bien à  vous 

Posté(e)

Salut, 

 

Tu as donc besoin d'aide pour faire la scène c'est ca ?

Si oui, as-tu déjà  commencé à  écrire quelque-chose ?

Posté(e)

Désolé pour le retard ,

 

Oui c'est ça j'ai besoin d'aide pour faire la scène ,

 

En fait , j'ai mis en place le Vd Thermostat Virtuel Pid et j'ai essayé quelque-ligne en mode bloc , mais ça ne marche pas ... et en LUA mes connaissances sont limitées 

  • 1 mois après...
Posté(e)

Bonjour , 

 

J'ai essayé ca mais j'arrive pas a résoudre quelque chose...

[[
%% autostart
%% properties
107 value
%% events
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(107, "value")) >= 24.5
and
 ( tonumber(fibaro:getValue(109, "ui.actualConsigna.value")) >= 26
or
startSource["type"] == "other"
)
then
	fibaro:call(12, "setValue", "25"); 
end



Posté(e)


[DEBUG] 21:46:46: line 17: ')' expected (to close '(' at line 11) near 'then'

[DEBUG] 21:51:19: line 17: ')' expected (to close '(' at line 11) near 'then'

Posté(e)

Oui, revérifies tes parenthèses, ils en manquent des fermantes là, et plusieurs même.

Posté(e)

Oui @nico a raison, comme ceci. à  tester.

if (
 tonumber(fibaro:getValue(107, "value")) >= 24.5
and
 tonumber(fibaro:getValue(109, "ui.actualConsigna.value")) >= 26
or
startSource["type"] == "other"
)
then
    fibaro:call(12, "setValue", "25");
end
Posté(e)

 Bonjour, Je vous remercie , mais je l'ai testé , mais maintenant j'ai ca ...

 
--[[
%% autostart
%% properties
107 value
%% events
%% globals
--]]
 
local startSource = fibaro:getSourceTrigger();
if (
 tonumber(fibaro:getValue(107, "value")) >= 25.5
and
 tonumber(fibaro:getValue(109, "ui.actualConsigna.value")) >= 27
or
startSource["type"] == "other"
)
then
	fibaro:call(12, "setValue", "25"); 
end
 
 
Posté(e)


[DEBUG] 16:27:10: line 15: attempt to compare number with nil

[DEBUG] 16:27:42: line 15: attempt to compare number with nil

[DEBUG] 16:27:42: line 15: attempt to compare number with nil

[DEBUG] 16:28:35: line 15: attempt to compare number with nil

[DEBUG] 16:36:45: line 15: attempt to compare number with nil

Posté(e)

Essaie cela et regarde le debug. Cela nous donnera la valeur du label "actualconsigna".

 

Y a t-il quelquechose d'ecrit dans cette etiquette ?

if (
 tonumber(fibaro:getValue(107, "value")) >= 24.5
and
 tonumber(fibaro:getValue(109, "ui.actualConsigna.value")) >= 26
or
startSource["type"] == "other"
)
then
    fibaro:call(12, "setValue", "25");
end

fibaro:debug("Valeur consigna : " ..fibaro:getValue(109, "ui.actualConsigna.value")
Posté(e)

J'ai essayé ...

--[[
%% autostart
%% properties
107 value
%% events
%% globals
--]]
 
local startSource = fibaro:getSourceTrigger();
if (
 tonumber(fibaro:getValue(107, "value")) >= 24.5
and
 tonumber(fibaro:getValue(109, "ui.actualConsigna.value")) >= 26
or
startSource["type"] == "other"
)
then
	fibaro:call(12, "setValue", "25"); 
end
 
fibaro:debug("Valeur consigna : "..fibaro:getValue(109, "ui.actualConsigna.value") 
 
 
Posté(e)

le debug

[DEBUG] 21:00:59: line 25: ')' expected (to close '(' at line 23) near
[DEBUG] 21:01:04: line 25: ')' expected (to close '(' at line 23) near
[DEBUG] 21:01:20: line 25: ')' expected (to close '(' at line 23) near
Posté(e)


--[[

%% autostart

%% properties

107 value

%% events

%% globals

--]]

local startSource = fibaro:getSourceTrigger();

if (

tonumber(fibaro:getValue(107, "value")) >= 24.5

and

tonumber(fibaro:getValue(109, "ui.actualConsigna.value")) >= 26

or

startSource["type"] == "other"

)

then

fibaro:call(12, "setValue", "25");

end

fibaro:debug("Valeur consigna : "..fibaro:getValue(109, "ui.actualConsigna.value"))

Posté(e)

le debug ...

[DEBUG] 21:06:25: line 15: attempt to compare number with nil
[DEBUG] 21:06:30: line 15: attempt to compare number with nil
[DEBUG] 21:08:06: line 15: attempt to compare number with nil
Posté(e)

oops pardon j'avais oublie une parenthese

 

Mets la ligne de debug juste apres le startsource sinon le code s'arrete a l'erreur de la ligne 15

j'avais copie la ligne mais j'ai oublie de la remettre au bon endroit sorry

Posté(e)

Opus on a quelque chose 

[DEBUG] 21:32:35: Valeur consigna : 26.75ºC / 23.50ºC _
[DEBUG] 21:32:35: line 16: attempt to compare number with nil
[DEBUG] 21:32:46: Valeur consigna : 26.75ºC / 23.50ºC _
[DEBUG] 21:32:46: line 16: attempt to compare number with nil
Posté(e)

tu as donc bien 2 températures dans ce label et pas qu'1 seule, difficile donc de comparer en l'etat la valeur avec 26.

 

D'où viennent ces temperatures dans l'etiquette ?

Posté(e)

En fait, la température de 26,75 est la température ambiante , et la température de 23,50 est la temperature de consigne , donc la température de consigne qu'il me faut , cela que je dois récupère ...

Posté(e)

Salut,

 

Oui, j'ai bien compris que tu voulais récupérer la temperature de consigne.

 

Comment l'etiquette est renseignée par ces 2 valeurs ? Quel module te donne la temperature de consigne ?

Posté(e)

Désolé pour le retard , mais j'avais analyse un  peu et le bouton " + " du ce VD et jai trouvé ce ligne qui donne la temperature consigne...

fibaro:call(_selfId, "setProperty", "ui.actualConsigna.value",
   value..'ºC / '..targetLevel..'ºC'..onOff)
Posté(e)

En fait le code de bouton  "+" 

--[[ TermostatoVirtual
	Dispositivo virtual
	upTempButton.lua
	por Manuel Pascual
------------------------------------------------------------------------------]]

--[[----- CONFIGURACION DE USUARIO -------------------------------------------]]
--[[----- FIN CONFIGURACION DE USUARIO ---------------------------------------]]

--[[----- NO CAMBIAR EL CODIGO A PARTIR DE AQUI ------------------------------]]

--[[----- CONFIGURACION AVANZADA ---------------------------------------------]]
local _selfId = fibaro:getSelfId()  -- ID de este dispositivo virtual
local intervalo = 0.5
local maxTemp = 28
local shadowTime = 120 -- minutos en intervalos de 15min.
--[[----- FIN CONFIGURACION AVANZADA -----------------------------------------]]

-- isVariable(varName)
-- (string) varName: nombre de la variable global
-- comprueba si existe una variable global dada
function isVariable(varName)
  -- comprobar si existe
  local valor, timestamp = fibaro:getGlobal(varName)
  if (valor and timestamp > 0) then return valor end
  return false
end

--[[----------------------------------------------------------------------------
getDevice(nodeId)
	recupera el dispositivo virtual desde la variable global
  (number)
--]]
function getDevice(nodeId)
  -- si  exite la variable global recuperar dispositivo
  local device = isVariable('dev'..nodeId)
  if device then
    return json.decode(device)
  end
end

-- recuperar dispositivo
local termostatoVirtual = getDevice(_selfId)

-- comprobar que no està¡ en modo MANUAL
if termostatoVirtual.mode ~= 0 then
  -- recuperar temperaturas
  local value = termostatoVirtual.value
  local targetLevel = termostatoVirtual.targetLevel
  local onOff = ' _'
  -- disminuir intervalo
  if targetLevel <= (maxTemp - intervalo) then
    targetLevel = targetLevel + intervalo
  else
    targetLevel = 0
  end

  --actualizar dispositivo
  termostatoVirtual.targetLevel = targetLevel
  -- proteger con un tiempo por defecto
  termostatoVirtual.timestamp = os.time() + shadowTime * 60
  -- guardar en variable global
  fibaro:setGlobal('dev'.._selfId, json.encode(termostatoVirtual))

  -- actualizar la etiqueta
  targetLevel = string.format('%.2f', targetLevel)
  value = string.format('%.2f', value)
  local onOff = ' _'
  fibaro:call(_selfId, "setProperty", "ui.actualConsigna.value",
   value..'ºC / '..targetLevel..'ºC'..onOff)
end
--[[--------------------------------------------------------------------------]]

×
×
  • Créer...