Berale64 Posté(e) le 14 janvier 2015 Signaler Posté(e) le 14 janvier 2015 J'ai essayé de faire un petit truc pour commencer en LUA. J'ai droit à un gros message avec "ERROR 403" avant même le premier message de debug. De plus ma scène devient invisible et je dois rebooter la HC2. J'ai faux ou ??? --[[ %% autostart %% properties %% globals AtHome –]] local AllDays ; local Command ; local SalonAtHomeON = "19:30" ; local SalonAtHomeOFF = "21:00" ; local SalonGoneON = {"17:30" ,"01:30" , "05:20"} ; local SalonGoneOFF = {"22:30" ,"01:45" , "07:20"} ; local sourceTrigger = fibaro:getSourceTrigger(); fibaro:debug(sourceTrigger["type"]); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger();
Krikroff Posté(e) le 14 janvier 2015 Signaler Posté(e) le 14 janvier 2015 C'est je pense un problème de droits d'accès sur la scène mais pourquoi ! Tu peux essayer de supprimer la scène ?
Berale64 Posté(e) le 14 janvier 2015 Auteur Signaler Posté(e) le 14 janvier 2015 J'ai supprimé et créé une nouvelle. A chaque foi que je fais une modif et sauvegarde, la scène disparait. Je dois rebooter pour la retrouver. ça doit faire 20 fois depuis ce matin. Bye bye LUA.
Invité chris6783 Posté(e) le 14 janvier 2015 Signaler Posté(e) le 14 janvier 2015 tu as un 'while true do' premier probleme : il n'y a pas de end pour delimiter le code de la boucle ensuite dans la boucle tu fais juste des appels systeme très courts et la boucle va consommer toutes les resources de la HC essaye d'enlever la boucle 'while true' et de te restreindre à du code linéaire pour débuter, sans boucles ni fonctions.... apres tu pourra attaquer la structure du code avec des boucles et des fonctions.
Berale64 Posté(e) le 14 janvier 2015 Auteur Signaler Posté(e) le 14 janvier 2015 Ce n'est qu'un extrait de la scène. Ca n'explique pas pourquoi quand je veux enregistrer après une modifie la scène disparaît.
Krikroff Posté(e) le 14 janvier 2015 Signaler Posté(e) le 14 janvier 2015 @Berale24, oui je suis d'accord ... Tu devrais envoyer une demande au support c'est un problème qui est connu mais avant tu devrais aussi vérifier si tu n'as pas un détecteur genre FGK ou FGMS etc en violation et armé car cela provoque justement une erreur 403 en cas d’édition d'une scène.
Berale64 Posté(e) le 14 janvier 2015 Auteur Signaler Posté(e) le 14 janvier 2015 Merci Krikroff. je pense être sur la piste. J'avais écrit ma scène avec un éditeur de texte (openoffice) puis copier/coller dans fibaro. Il a pas l'air d'aimer.
Berale64 Posté(e) le 14 janvier 2015 Auteur Signaler Posté(e) le 14 janvier 2015 Voilà , c'est bon, ça marche. Ce n'est qu'un début qui ne demande qu'à évoluer. Cependant, je ne comprends pas pourquoi quand j'ouvre la fenêtre la scène démarre bien en mode "autostart" mais si je fais "Démarrer" je suis en mode Other. Pourquoi dans la fenêtre "Général" la case "Lancer au démarrage" n'apparait plus" ? --[[ %% autostart %% properties %% globals AtHome --]] local AllDays; local Command; local SalonAtHomeON = "19:30"; local SalonAtHomeOFF = "21:00"; local SalonGoneON = {"17:30","01:30","05:20"}; local SalonGoneOFF = {"22:30","01:45","07:20"}; local sourceTrigger = fibaro:getSourceTrigger(); fibaro:debug(sourceTrigger["type"]); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); fibaro:debug("loop"); local startSource = fibaro:getSourceTrigger(); local TriggerTime = string.format("%02d",currentDate.hour)..":"..string.format("%02d",currentDate.min); if (currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) then AllDays = 1 else AllDays = 0 end Command = ""; if (fibaro:getGlobalValue("AtHome") == "YES" and AllDays == 1) then if (TriggerTime == SalonAtHomeON) then Command = "turnOn"; elseif (TriggerTime == SalonAtHomeOFF) then Command = "turnOff"; end end if (fibaro:getGlobalValue("AtHome") == "NO" and AllDays == 1) then for i = 1,#SalonGoneON do if (TriggerTime == SalonGoneON[i]) then Command = "turnOn"; elseif (TriggerTime == SalonGoneOFF[i]) then Command = "turnOff"; end end end if (Command ~= "") then fibaro:call(46,Command); fibaro:call(47,Command); fibaro:call(48,Command); end fibaro:sleep(60*1000); end end
Berale64 Posté(e) le 14 janvier 2015 Auteur Signaler Posté(e) le 14 janvier 2015 Y'a pas une bonne âme pour répondre àmes dernières questions ?
Krikroff Posté(e) le 14 janvier 2015 Signaler Posté(e) le 14 janvier 2015 C'est logique car "other" correspond justement àune demande du bouton "démarrer" sur le HC2 . Si tu souhaites tester avec le bouton tu devrais l'ajouter dans ta condition if (sourceTrigger["type"] == "autostart" or sourceTrigger["type"] == "other") then
Berale64 Posté(e) le 15 janvier 2015 Auteur Signaler Posté(e) le 15 janvier 2015 Merci Krikroff. Je m'amuse bien en LUA. J'ai l'impression de réinventer la roue . PS:Trouve pas le bouton "sujet résolu" !!!
pepite Posté(e) le 15 janvier 2015 Signaler Posté(e) le 15 janvier 2015 @Berale24 : tu t'en sers pour quoi de cette scene ? je me renseigne ;-) Si ce n'est pas trop perso Merci
Berale64 Posté(e) le 15 janvier 2015 Auteur Signaler Posté(e) le 15 janvier 2015 Cette scène sert dans deux cas. Si je suis chez moi (variable globale AtHome = YES) les lumières du salon s'allument à 19h30 pour s'éteindre à 21h00. Si je ne suis pas chez moi (variable AtHome =NO) il y a trois séquences d'allumage pour de la simulation de présence. C'est en fait la transcription de deux scènes en mode bloc en une seule pour se faire la main. L'idée étant de perfectionner ensuite la chose. Le langage LUA est en fait assez simple, la vraie difficulté est le manque de doc sur les fonctions et surtout leurs arguments.
pepite Posté(e) le 15 janvier 2015 Signaler Posté(e) le 15 janvier 2015 @Breale24, merci et qu'utilises tu pour mettre ta variable "AtHome" à YES ou NO ? Je crois quil y aplus simple en ecriture pour les if currentDate.wday, j'essaie de remettre la main dessus ;-)
Berale64 Posté(e) le 15 janvier 2015 Auteur Signaler Posté(e) le 15 janvier 2015 J'ai créé un device virtuel pour gérer la variable.
pepite Posté(e) le 15 janvier 2015 Signaler Posté(e) le 15 janvier 2015 ah ok, je pose la question pour trouver le moyen WAF+++ de gerer un MODE MAISON, type present, absent, vacances..alors je me renseigne. J'ai essaye la presence "smartphone" maos avec les ibidules c'est pas tres tres reactif..donc pas tres WAF Que pensez-vous des interrupteurs ? ou si vous avez une autre idee je suis preneur... SI je suis HS, merci aux modos de deplacer, j'ai juste profiter pour explqiuer @Berale24 ma question,rien d'intrusif.. ;-)
Berale64 Posté(e) le 17 janvier 2015 Auteur Signaler Posté(e) le 17 janvier 2015 La gestion du "MODE MAISON" nécessite une intervention manuelle. J'ai choisi le virtual device, certain utilise le "Google Calendar" . Je ne crois pas trop au smartphone qui ne peut gérer l'épouse, les enfants, la belle mère !!! J'ai le sentiment que le fameux "Fibaro Button" peut être une solution intéressante. Placé prêt de la porte, une petite tape en partant, et voilà je suis absent, une double tape je suis en vacances. En liaison avec un virtual device qui donne un visuel de l'état du système, mais aussi une possibilité de changer à distance si besoin.
Lazer Posté(e) le 17 janvier 2015 Signaler Posté(e) le 17 janvier 2015 Je pense qu'il n'y a pas de solution universelle pour détecter la présence de telle ou telle personne, à moins d'avoir tous une puce implantée sous la peau (patience, ça viendra bientôt.... :/ ) Du coup, il faut agréger un maximum d'infos, avec un algorithme pour mélanger tout ça (Biboun avait commencer à travailler sur le sujet, il avait créé un topic dédié sur le forum) : - détection des mobiles (WiFi et/ou Bluetooth) - motion sensor - Netatmo : capteurs de CO2 et dB - activité des dimmers - mise en marche/arrêt de l'alarme - etc... La maison intelligente qu'on nous promet, sera celle capable de prendre en compte tous les paramètres. Dis autrement : on n'est pas prêt de s'ennuyer, et ce forum a encore de belles années devant lui
pepite Posté(e) le 18 janvier 2015 Signaler Posté(e) le 18 janvier 2015 Bonjour, @Berale24 et Lazer, Effectivement, rien de très precis pour la gestion d'un mode maison.. JE crois que je vais l'orienter vers un interrupteur qui modifierait une variable via un virtual device, qu'en pensez vous ? Oui "le fibaro button" pourrait etre une bonne solution, mais pas sur qu'il soit WAF en terme d'esthetique, ca ressemble un peu à un bouton d'urgences hihi
Messages recommandés