Alexandru 14 Signaler ce message Posté(e) 23 juin 2016 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 Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 24 juin 2016 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 ? Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 24 juin 2016 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 Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 13 août 2016 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 Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 13 août 2016 [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' Partager ce message Lien à poster Partager sur d’autres sites
Nico 2 170 Signaler ce message Posté(e) 14 août 2016 Oui, revérifies tes parenthèses, ils en manquent des fermantes là, et plusieurs même. Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 14 août 2016 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 Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 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 Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 [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 Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 14 août 2016 Salut, As tu quelque chose dans le label "actualconsigna" du 109 ? Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 Oui ,j'ai ca , dans le VD avec id 109 Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 Voila Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 14 août 2016 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") Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 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") Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 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 Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 --[[ %% 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")) Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 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 Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 14 août 2016 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 Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 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 Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 14 août 2016 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 ? Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 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 ... Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 14 août 2016 voila le VD Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 15 août 2016 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 ? Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 15 août 2016 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) Partager ce message Lien à poster Partager sur d’autres sites
Alexandru 14 Signaler ce message Posté(e) 15 août 2016 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 --[[--------------------------------------------------------------------------]] Partager ce message Lien à poster Partager sur d’autres sites