
lexus_69
Membres confirmés-
Compteur de contenus
42 -
Inscription
-
Dernière visite
Tout ce qui a été posté par lexus_69
-
C'est bon à savoir pour la prochaine fois. Merci !
-
C'est bon j'ai trouvé ! Il suffisait de redémarrer la HC2...
-
Non, je n'ai pas fait de save sur le panneau de variable. Je viens de m'apercevoir que quand je relance le VD, la variable ne s'ajoute pas dans le panneau...
-
Bonjour, j'ai le même problème que LMSI sauf que lorsque que je supprime la variable et que je relance le VD j'ai ce message : [DEBUG] 16:32:51: line 44: bad argument #1 to 'len' (string expected, got nil) Une idée ? Merci par avance !
-
Je réponds à moi même Voici ce qui fonctionne parfaitement et qui répond à mes besoins: Merci PdB --[[ %% properties 74 value %% globals %% killOtherInstances --]] -- c'est la nuit ou petit dej alors stop if (fibaro:getGlobalValue("Jour_Nuit") == "Nuit") or (fibaro:getGlobalValue("Petit_Dej") == "OUI") then fibaro:debug("Scène annulée car nuit ou petit dej'"); fibaro:abort(); end -- déclaration des variables local Petit_Dej = fibaro:getGlobalValue("Petit_Dej"); local Luminosite = fibaro:getValue(76, "value"); local delayedCheck0 = false; local HeureActuelle = os.date("*t"); -- fin de déclaration des variables if fibaro:countScenes() > 1 then fibaro:abort() end fibaro:debug("Il est "..HeureActuelle['hour']..":"..HeureActuelle['min']) fibaro:debug("La luminosité est de "..Luminosite.." Lux") fibaro:debug("Petit déjeuner : "..Petit_Dej) if ( tonumber(fibaro:getValue(74, "value")) == 0 ) then fibaro:debug("Fin de présence, décompte de 5mn activé...") else fibaro:debug("Présence détectée") end -- premier déclenchement on allume puis stop if ( tonumber(fibaro:getValue(74, "value")) > 0 ) and ( tonumber(fibaro:getValue(76, "value")) <= 5 ) then fibaro:call(65, "turnOn"); fibaro:debug("Lampe allumée") fibaro:abort() end -- déclenchements suivants on attends 5mn pour éteindre setTimeout(function() if ( tonumber(fibaro:getValue(74, "value")) == 0 ) then delayedCheck0 = true; end if ( delayedCheck0 == true ) then fibaro:call(65, "turnOff"); fibaro:debug("Lampe éteinte") end end, 5*60*1000) --temps après extinction 5mn
-
Merci pour toutes ces réponses ! J'ai pu avancer un peu sur mon problème en faisant quelques modifications. Maintenant la lumière s'éteint bien au bout de 5 mn mais j'ai encore un soucis. A l'heure actuelle, la lumière s'allume bien quand le détecteur est déclenché et que la luminosité est inférieur à 5lux mais s'éteint 5mn après le premier déclenchement. Or j'aimerais que la lumière reste allumée tant qu'il y a du mouvement et s'éteigne au bout de 5mn si plus de mouvement mais je ne sais comment faire... voici ma scène modifiée qui ne fonctionne pas encore à la perfection... --[[ %% properties 74 value %% globals --]] -- c'est la nuit ou petit dej alors stop if (fibaro:getGlobalValue("Jour_Nuit") == "Nuit") or (fibaro:getGlobalValue("Petit_Dej") == "OUI") then fibaro:debug("Scène annulée car nuit ou petit dej'"); fibaro:abort(); end -- déclaration des variables local Petit_Dej = fibaro:getGlobalValue("Petit_Dej"); local Luminosite = fibaro:getValue(76, "value"); local deviceLastModification0 = fibaro:getModificationTime(74, "value"); local delayedCheck0 = false; local HeureActuelle = os.date("*t"); -- fin de déclaration des variables if (fibaro:countScenes() > 1) then fibaro:abort() end; fibaro:debug("Il est "..HeureActuelle['hour']..":"..HeureActuelle['min']) fibaro:debug("La luminosité est de "..Luminosite.." Lux") fibaro:debug("Petit déjeuner : "..Petit_Dej) -- premier déclenchement on allume puis stop if ( tonumber(fibaro:getValue(74, "value")) > 0 ) and ( tonumber(fibaro:getValue(76, "value")) <= 5 ) then fibaro:call(65, "turnOn"); fibaro:debug("Lampe allumée") fibaro:abort() end -- déclenchements suivants on attends XX sec pour éteindre setTimeout(function() fibaro:debug("Temps écoulé "..os.time() - deviceLastModification0); if (( tonumber(fibaro:getValue(74, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 300) then delayedCheck0 = true; end if ( delayedCheck0 == true ) then fibaro:call(65, "turnOff"); fibaro:debug("Lampe éteinte") end end, 300*1000) Une autre question, est ce que le setTimout ne fait pas double emploi avec if (( tonumber(fibaro:getValue(74, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 300) ? Encore merci par avance pour vos réponses ! Bonne journée.
-
Effectivement la variable tempDeviceState0 ne me servait plus, je l'ai enlevée. Maintenant la lampe s'allume mais ne veut pas s'éteindre au bout de 5mn. Par contre si je relance la scène manuellement la lampe s'éteint... Bizarre ! [DEBUG] 09:29:32: line 29: attempt to perform arithmetic on local 'deviceLastModification0' (a nil value)
-
Merci pour la réponse mais ça ne fonctionne pas. Voici ce que j'ai dans le debug: [DEBUG] 11:08:19: Il est 11:8 [DEBUG] 11:08:19: line 29: attempt to perform arithmetic on local 'deviceLastModification0' (a nil value) line 29: fibaro:debug("le capteur est safe depuis : "..((os.time() - deviceLastModification0)/60).." min")
-
Je ne comprends plus... Ca me fait n'importe quoi maintenant. Il y a peut être un moyen plus simple. Dur dur d'apprendre quand on commence de zéro
-
Bonjour à tous, Depuis quelques jours j'ai une scène qui bug. Elle fonctionnait très bien depuis plusieurs semaines et depuis peu elle ne fonctionne mais que partiellement... Voici la scène en question: --[[ %% properties 74 value %% globals --]] -- c'est la nuit ou petit dej alors stop if (fibaro:getGlobalValue("Jour_Nuit") == "Nuit") or (fibaro:getGlobalValue("Petit_Dej") == "OUI") then fibaro:debug("Scène annulée"); fibaro:abort(); end -- déclaration de variables local Petit_Dej = fibaro:getGlobalValue("Petit_Dej"); local Luminosite = fibaro:getValue(76, "value"); local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(74, "value"); local HeureActuelle = os.date("*t"); -- fin de déclaration de variables if (fibaro:countScenes() > 1) then fibaro:abort() end; fibaro:debug("Il est "..HeureActuelle['hour']..":"..HeureActuelle['min']) fibaro:debug("le capteur est safe depuis : "..((os.time() - deviceLastModification0)/60).." min") fibaro:debug("La luminosité est de "..Luminosite.." Lux") fibaro:debug("Petit déjeuner : "..Petit_Dej) if ( tonumber(fibaro:getValue(74, "value")) > 0 ) and ( tonumber(fibaro:getValue(76, "value")) <= 5 ) -- valeur en Lux then fibaro:call(65, "turnOn"); fibaro:debug("Lampe allumée") fibaro:sleep(60*1000); end if (( tonumber(fibaro:getValue(74, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 300) -- temps après extinction then delayedCheck0 = true; end if ( delayedCheck0 == true ) then fibaro:call(65, "turnOff"); fibaro:debug("Lampe éteinte") end La scène débute bien, la lampe s'allume mais ne s'éteint plus au bout de 5mn. J'ai l'impression que le décompte ne se fait plus. Quelqu'un a une idée ?
-
Ah ben oui, je n'avais même pas fait attention!!! J'ai résolu le problème avec une variable Jour_Nuit Merci pour ta réponse en tout cas
-
Personne à une idée ? Il y a peut être un autre moyen mais je manque de connaissances. Merci d'avance
-
Je me suis inspiré d'une scène en mode bloc puis convertie en LUA: --[[ %% properties 74 value 76 value %% globals --]] local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(74, "value"); local HeureActuelle = os.date("*t"); if (fibaro:countScenes() > 1) then fibaro:abort() end; fibaro:debug("Il est "..HeureActuelle['hour']..":"..HeureActuelle['min']) fibaro:debug("le capteur est safe depuis : "..((os.time() - deviceLastModification0)/60).." min") if ((HeureActuelle['hour']>= 8 and string.format("%02d", HeureActuelle.hour) .. ":" .. string.format("%02d", HeureActuelle.min) == fibaro:getValue(1, "sunriseHour")) and ( tonumber(fibaro:getValue(74, "value")) > 0 ) and ( tonumber(fibaro:getValue(76, "value")) < 5 ) -- valeur en Lux ) then fibaro:call(65, "turnOn"); fibaro:sleep(60*1000); end if (( tonumber(fibaro:getValue(74, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 60) then delayedCheck0 = true; end if ( delayedCheck0 == true ) then fibaro:call(65, "turnOff") end Mais ça ne fonctionne toujours pas Une idée du pourquoi ?
-
Revoilà le casse bonbon... J'ai récupérer ce script qui fonctionne très bien (Merci Yannick) mais j'aimerais légèrement le modifier mais je ne sais pas comment m'y prendre... J'aimerais qu'entre 8h et jusqu'au couché du soleil et si la luminosité est <10 lux ma lumière s'allume. Il faut donc que je modifie cette ligne "if ((HeureActuelle['hour']>= 18 or HeureActuelle['hour'] <= 7)" avec cette commande : fibaro:getValue(1, "sunsetHour") mais comment l'intégrer ? Le script en question: --[[ %% properties 31 value 33 value %% globals --]] local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(31, "value"); local HeureActuelle = os.date("*t"); if (fibaro:countScenes() > 1) then fibaro:abort() end; fibaro:debug("Il est "..HeureActuelle['hour']..":"..HeureActuelle['min']) fibaro:debug("le capteur est safe depuis : "..((os.time() - deviceLastModification0)/60).." min") if ((HeureActuelle['hour']>= 18 or HeureActuelle['hour'] <= 7) and ( tonumber(fibaro:getValue(31, "value")) > 0 ) and ( tonumber(fibaro:getValue(33, "value")) <= 10 ) ) then fibaro:call(29, "turnOn"); fibaro:sleep(60*1000); end if (( tonumber(fibaro:getValue(31, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 60) then delayedCheck0 = true; end if ( delayedCheck0 == true ) then fibaro:call(29, "turnOff") end
-
Cool, merci !! Je vais tester ça ce soir.
-
Une autre petite question, j'aimerais stopper 2 scènes à une heure précise mais je ne sais pas quelle fonction utiliser. Des idées?
-
Ok, merci beaucoup !
-
Merci, c'est exactement ce que je voulais faire ! Tout fonctionne correctement On était bien loin du résultat avec mon bout de code bidon Par contre une question: régulièrement le HC2 me dit qu'il y a trop de scènes dans les notifications. Est ce normal, et est ce un problème ? En tout cas merci !
-
Bonjour à tous, Je commence tout doucement a programmer en LUA et je suis perdu... Je vous explique: Je veux allumer une lampe uniquement la nuit quand je passe devant mon détecteur de présence. Tout bête mais je galère. Voici ce que je mets dans ma scène: --[[ %% properties 74 value %% globals –-]] local MaVariable local Jour_Nuit MaVariable = fibaro:getValue(74, 'value') if (MaVariable == '1') then if (Jour_Nuit == 'Nuit') then fibaro:call(65, 'turnOn') else fibaro:sleep(60000) fibaro:call(65, 'turnOff') end end Comme vous l'aurez compris ça ne marche pas. Je suis preneur de vos lumières
-
Oui, le support est vraiment top. Bon après il faut parler soit Polonais ou Anglais pour ce faire comprendre J'aime bien joué, mais j'avoue que j'ai eu une grosse sueur froide...
-
Merci pour toutes ces infos Tout fonctionne !
-
Merci ça fonctionne bien maintenant ! Une autre petite question, il est possible de lui faire dire la température du plugin météo ?
-
En fait j'ai reçu la HC2 sans clé ! Donc elle ne démarrait pas... Dans l'annonce eBay c'était spécifié que la HC2 était pour pièces détachées mais que tous les voyants étaient fixés à l'allumage. J'ai senti la bonne affaire En tout cas le support Fibaro est top, j'avais envoyé que la HC2 et ils me l'ont retourné complète, avec antenne, alimentation, câble Ethernet et une petite boite de caramel !
-
bonjour à tous, je rencontre un petit soucis avec l'exemple ci dessous: Annoncer la date du jour, la température extérieure et la météo : -- 239 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 239, 28 local cond = fibaro:getValue(3, "WeatherConditionConverted"); local tempext = fibaro:getValue(33, "value"); -- température extérieure fibaro:debug ("Température extérieure : "..tempext) local degre = string.gsub(tempext, '[,]' , ' degré ') local degre = string.gsub(degre, '[.]' , ' degré ') local degre = string.gsub(degre, '[-]' , ' moins ') local currentDate = os.date("*t") local jourL = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"} local jour = jourL[currentDate.wday] fibaro:debug ("Jour : "..jour) local moisL = {"janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre"} local mois = moisL[currentDate.month] fibaro:debug ("Mois : "..mois) local condfr =""; if( cond == "clear" ) then condfr = "clair"; end if( cond == "cloudy" ) then condfr = "nuageux"; end if( cond == "rain" ) then condfr = "pluvieux"; end if( cond == "snow" ) then condfr = "neigeux"; end if( cond == "storm" ) then condfr = "tempete"; end if( cond == "fog" ) then condfr = "brouillard"; end fibaro:debug ("Conditions météorologiques : "..condfr) fibaro:debug ("Création du TTS") -- Create TTS params object local params = { -- TTS Message message = "Bonjour a vous. Nous sommes le "..jour .." "..currentDate.day .." "..mois .. ". Il est ".. currentDate.hour .." heure et ".. currentDate.min .." minutes. ".. "Le thermomètre extérieur est a "..degre .. ", et le temps est "..condfr ..". ", duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 40 -- Volume } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { tts = params }) _f:call(sid, "pressButton", bid) il m'annonce bien la date, l'heure, la température mais pas la condition météo. avez vous déjà rencontré ce problème ?
-
Merci Lazer 1/ je vais envoyer un MP à krikroff 2/ OK