Yannick Posté(e) le 29 juillet 2015 Auteur Signaler Partager Posté(e) le 29 juillet 2015 désolé mais je n'ai jamais utilisé les variables.. je commence àcomprendre les choses maiiiiiiiis... il faut m'expliquer longtemps ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 29 juillet 2015 Signaler Partager Posté(e) le 29 juillet 2015 Yannick, Il est difficile de faire un cours LUA ici. De plus je suis un fervent adepte de l'autodidacte, c'est comme ça qu'on apprend et retient le mieux. Je te conseille néanmoins les lectures suivantes : le forum "la HC2 pour les nuls" le Wiki de Steven, et plus particulièrement sa partie sur les variables : http://gea.piccand.me/doku.php/vg http://www.domotique-fibaro.fr/index.php/topic/1199-précis-sur-les-variables-localesglobales/?hl=variables#entry68636 bonne lecture, il y a aussi www.google.com Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 30 juillet 2015 Auteur Signaler Partager Posté(e) le 30 juillet 2015 Salut Jojo Eh oui je comprends bien. Merci je vais essayer de me démerder tout seul. Mais je ne suis aucunement développeur et les mécanismes m'échappent. Merci quand même Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 30 juillet 2015 Signaler Partager Posté(e) le 30 juillet 2015 Je ne suis pas développeur non-plus. J'ai tout appris sur le tas => c'est possible ... Commence tes recherches, et quand tu as un point précis, on reste là pour t'aider à débogguer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 4 août 2015 Auteur Signaler Partager Posté(e) le 4 août 2015 Salut Jojo, alors voilà j'ai fait mon bout de code comme tu me l'avais demandé en me démerdant mais j'ai un souci de syntaxe de mon script et je n'arrive pas à comprendre où ça coince. Voici le code --[[ %% properties 49 valueSensor %% globals TV --]] local startSource = fibaro:getSourceTrigger(); if ( ( fibaro:getGlobalValue("TV") == "Off" ) and ( tonumber(fibaro:getValue(49, "valueSensor")) >= 100 ) ) then fibaro:setGlobal("TV", "On"); fibaro:call(91, "sendPush", "Allumage Télé"); fibaro:debug("TV") end If ( ( tonumber(fibaro:getValue(49, "valueSensor")) < 100 )) then fibaro:setGlobal("TV","Off" ) end Mais j'ai une erreur qui me remonte qui me dit : [ERROR] 10:05:15: line 21: unexpected symbol near 'then' tu peux me dire où je merdouille ? Merci PS : comment vous faite pour copier l'encart de rédaction de code dans vos messages ? c'est quoi l'outil ? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 4 août 2015 Signaler Partager Posté(e) le 4 août 2015 Je ne vois pas d'erreur dans ton code à première vue. la ligne 21 correspond au 2° then. N'y aurait-il pas un caractère caché bizarre ? Pour mettre du code dans les message, tu cliques sur l'icône <> qui est juste en dessous de l'icones des smily. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 4 août 2015 Auteur Signaler Partager Posté(e) le 4 août 2015 Désolé ça y est j'ai trouvé.. j'ai modifé et le code fonctionne Mais j'"ai toujours le même problème. la notif est envoyée à chaque changement de conso Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 4 août 2015 Signaler Partager Posté(e) le 4 août 2015 Salut Yannick, J'aurais tout mis dans la meme boucle moi, a tester. Si tu recois le push a chaque variation, verifie que ta variable glbaole TV passe à ON. Si tu recois c'est qu'elle reste à OFF If....AND ...then else...then... end Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 4 août 2015 Signaler Partager Posté(e) le 4 août 2015 @yannick, tu nous remet le bon code avec l'icône <> (beaucoup plus lisible) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 4 août 2015 Signaler Partager Posté(e) le 4 août 2015 @Yannick : essaie ca peut-etre : --[[ %% properties 49 valueSensor %% globals TV --]] local startSource = fibaro:getSourceTrigger(); if ( ( fibaro:getGlobalValue("TV") == "Off" ) and ( tonumber(fibaro:getValue(49, "valueSensor")) >= 100 ) ) then fibaro:setGlobal("TV", "On"); fibaro:call(91, "sendPush", "Allumage Télé"); fibaro:debug("TV") else fibaro:setGlobal("TV","Off" ) end Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 4 août 2015 Signaler Partager Posté(e) le 4 août 2015 je supprimerait dans %% globals TV, car le vrai trigger est la conso électrique je supprimerais la ligne 9 car on ne l'utilise pas ainsi que les () non indispensables ce qui donnerait --[[ %% properties 49 valueSensor %% globals --]] if (fibaro:getGlobalValue("TV") == "Off" and tonumber(fibaro:getValue(49, "valueSensor")) >= 100 ) then fibaro:setGlobal("TV", "On"); fibaro:call(91, "sendPush", "Allumage Télé"); fibaro:debug("TV") else fibaro:setGlobal("TV","Off" ) end Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 4 août 2015 Signaler Partager Posté(e) le 4 août 2015 :60: Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 4 août 2015 Auteur Signaler Partager Posté(e) le 4 août 2015 Bon après plusieurs modifs et quelques tests voici le bon code final : --[[ %% properties 49 valueSensor %% globals --]] local Etat_Tele = fibaro:getGlobalValue("TV") if ( ( Etat_Tele == "Off" ) and ( tonumber(fibaro:getValue(49, "valueSensor")) >= 100 ) ) then fibaro:setGlobal("TV", "On"); fibaro:call(91, "sendPush", "Allumage Télé"); else fibaro:setGlobal("TV","Off" ) end fibaro:debug("La télé est : "..Etat_Tele) et a priori je n'ai plus de push toutes les secondes comme avant. Effectivement, le fait de déclarer la Valeur Globale TV dans l'entête faisait passé cette variable de "On" à "Off" 2 fois par seconde ce qui engendrait l'envoi du Push à chaque fois. Merci les gars !!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 4 août 2015 Auteur Signaler Partager Posté(e) le 4 août 2015 ah !! par contre quand je clique plusieurs fois sur démarrer la scène pour débugger, alors que la conso reste supérieure à 100, la varaible Etat_Tele me renvoie alternativement "On" et "Off" à chaque fois. Un vrai casse tête quand même !!! [DEBUG] 17:25:54: La télé est : Off [DEBUG] 17:26:54: La télé est : On [DEBUG] 17:26:57: La télé est : Off [DEBUG] 17:26:58: La télé est : On [DEBUG] 17:27:03: La télé est : Off [DEBUG] 17:27:07: La télé est : On [DEBUG] 17:27:08: La télé est : Off [DEBUG] 17:27:09: La télé est : On [DEBUG] 17:27:09: La télé est : Off [DEBUG] 17:27:10: La télé est : On [DEBUG] 17:27:10: La télé est : Off [DEBUG] 17:27:11: La télé est : On [DEBUG] 17:27:11: La télé est : Off [DEBUG] 17:27:11: La télé est : On Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 5 août 2015 Signaler Partager Posté(e) le 5 août 2015 Rajoute une variable de conso dans ton debug pour vérifier aussi ;-) Est-ce que cela fonctionne ou tu as de nouveau plusieurs push ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 5 août 2015 Auteur Signaler Partager Posté(e) le 5 août 2015 Salut pépite, j'ai rajouté ma variable de conso dans mon debug, je vais voir ce que ça donne. Je peux te poser une question : j'ai fait un code et j'ai erreur quand je lance mon debug mais je ne sais pas où. tu peux m'aider ? --[[ %% properties 76 value 31 value 79 value 41 value %% globals --]] local Id_Smartphone = 91 local a = fibaro:getValue(76, 'value') local b = fibaro:getValue(29, 'value') local c = fibaro:getValue(31, 'value') local d = fibaro:getValue(79, 'value') local e = fibaro:getValue(41, 'value') --fibaro:debug("porte : "..a) --fibaro:debug("lampe couloir : ".. --fibaro:debug("Mouvement couloir : "..c) --fibaro:debug("Mouvement Salon : "..d) --fibaro:debug("porte chambre : "..e) If (tonumber(a) == 1); or (tonumber(c) == 1); then fibaro:call(tonumber(Id_Smartphone), 'sendPush', "Mouvement Couloir"))) fibaro:sleep(5000); fibaro:call(88, "sendPhotoToUser", "2"); end if (tonumber(d) == 1) then fibaro:call(tonumber(Id_Smartphone), 'sendPush', "Mouvement Salon-Séjour") end l'erreur qui m'est renvoyé c'est celle-ci : [ERROR] 16:50:14: line 23: unexpected symbol near 'or' je n'arrive pas à trouver pourquoi il me dit que j'ai un symbol inattendu alors qu'il n'y a rien. Merci pour votre aide les gars Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 5 août 2015 Auteur Signaler Partager Posté(e) le 5 août 2015 je viens d'avoir une notification qui me confirme qu'un push est envoyé àchaque variation de consommation, ne serait-ce que de 0.1w Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 5 août 2015 Auteur Signaler Partager Posté(e) le 5 août 2015 Je viens de modifier mon code en faisant ça --[[ %% properties 49 valueSensor %% globals --]] local Etat_Tele = fibaro:getGlobalValue("TV") local Power = fibaro:getValue(49, "valueSensor") if (tonumber(Power) >= 100 ) then fibaro:setGlobal("TV", "On"); else fibaro:setGlobal("TV","Off" ) end if (Etat_Tele == "On") then fibaro:call(91, "sendPush", "Allumage Télé"); else fibaro:call(91, "sendPush", "Télé éteinte"); end fibaro:debug("La télé est : "..Etat_Tele) fibaro:debug("Consommation : "..Power.." W") ça a l'air d'être mieux on va voir Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 5 août 2015 Signaler Partager Posté(e) le 5 août 2015 Salut Yannick, Sans trop réfléchir, je l'aurais d'abord ecrit comme cela, mais suis pas un expert ;-) local Id_Smartphone = 91 local a = fibaro:getValue(76, 'value') local b = fibaro:getValue(29, 'value') local c = fibaro:getValue(31, 'value') local d = fibaro:getValue(79, 'value') local e = fibaro:getValue(41, 'value') --fibaro:debug("porte : "..a) --fibaro:debug("lampe couloir : ".. --fibaro:debug("Mouvement couloir : "..c) --fibaro:debug("Mouvement Salon : "..d) --fibaro:debug("porte chambre : "..e) if (tonumber(a) == 1) or (tonumber(c) == 1) then fibaro:call(Id_Smartphone, 'sendPush', "Mouvement Couloir") fibaro:sleep(5000) fibaro:call(88, "sendPhotoToUser", "2") end if (tonumber(d) == 1) then fibaro:call(Id_Smartphone, 'sendPush', "Mouvement Salon-Séjour") end Oui pas bete pour la TV comme ca ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 5 août 2015 Signaler Partager Posté(e) le 5 août 2015 Je suis sur mon tel donc pas facile de lire tout ce code si demain matin j'ai un peu de temp je jetterai un oeil de mon pc Envoyé de mon SM-G900F en utilisant Tapatalk Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 6 août 2015 Auteur Signaler Partager Posté(e) le 6 août 2015 Salut Pepite, merci pour l'interpretation. Pour ce qui est de la télé, cela ne change rien ! à chaque variation de consommation, je reçois un push. Je viens d'en recevoir 2 à l'instant parce que la conso est passé de 49.1 w à 49.5 w... Si je supprime la déclaration de mon module dans propriété ça va changer quoi ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 6 août 2015 Signaler Partager Posté(e) le 6 août 2015 Salut Yannick, Ah ben oui, ce qu'il y a dans properties correspond au trigger, c'est à dire le declencheur de la scene. Donc en le mettant, ta scene surveille la variation de consomation, et des qu'il ya une variation, ca enclenche ta scene.. Si tu l'enleves, ca devrait etre bon, j'avais pas remarque..dans ce cas, tu peux pe ecrire en plus propre la scene. Teste et tiens nous au jus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 6 août 2015 Auteur Signaler Partager Posté(e) le 6 août 2015 je l'ai enlevé de Properties. je vais vois. Pour ce qui est de récrire plus propre ma scène, je ne demande pas mieux... mais j'en suis pas là encore !! merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 6 août 2015 Auteur Signaler Partager Posté(e) le 6 août 2015 @Pepite : une question, sais-tu pourquoi je n'arrive pas àrécupérer la localisation de mon Smartphone quand je suis àl'extérieur ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 6 août 2015 Signaler Partager Posté(e) le 6 août 2015 Essaie ca : --[[ %% properties %% globals --]] local Etat_Tele = fibaro:getGlobalValue("TV") local Power = fibaro:getValue(49, "valueSensor") if (tonumber(Power) >= 100 ) and (Etat_Tele == "Off") then fibaro:setGlobal("TV", "On"); fibaro:call(91, "sendPush", "Allumage Télé"); else fibaro:setGlobal("TV","Off" ) fibaro:call(91, "sendPush", "Télé éteinte"); end fibaro:debug("La télé est : "..Etat_Tele) fibaro:debug("Consommation : "..Power.." W") les experts feraient pe autrement lol Tu as eu les notifs pour la tele ? Pour la localisation GPS c'est pas tres fiable, ca ne fonctionne pas terrible..mais il existe plein de tutos sur le forum concernant la localisation par téléphone sas utiliser la HC2 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés