Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'Script Lua'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Bienvenue
    • Nouveau ? Présentez-vous
    • Le bistrot
    • Mon installation domotique
    • Annonces et suggestions
  • La Home Center et ses périphériques
    • La Home Center pour les nuls
    • HC 2 & Lite
    • HC 3
    • Modules Fibaro
    • Modules Z-wave
    • Périphériques et matériels autres
    • Plugins
    • Quick App
    • Multimédia (audio, vidéo ...)
    • Chauffage et Energie
    • Actionneurs & Ouvrants (Portail, volets, piscines, ...)
    • Eclairage
    • Applications Smartphones et Tablettes
  • Autres solutions domotiques
    • Box / Logiciel
    • Modules Nice (433 & 866 MHz)
    • Modules Zigbee
    • GCE Electronics
    • Modules Bluetooth Low Energy
  • Objets connectés
    • Les Assistants Vocaux
    • Netatmo
    • Philips Hue
    • DIY (Do It Yoursel)
  • Sécurité
    • Alarmes
    • Caméras
    • Portiers
    • Serrures
  • Informatique / Réseau
    • Tutoriels
    • Matériels Réseaux
    • Matériels Informatique
    • NAS
    • Virtualisation
  • Les bonnes affaires
    • Sites internet
    • Petites annonces

Rechercher les résultats dans…

Rechercher les résultats qui…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


Jabber


Skype


Ville :


Intéret :


Version

57 résultats trouvés

  1. Rem's

    Récurrence Scène

    Bonsoir à tous, Voici mon bout de code qui me permet de lancer le réveil le matin. Si je lance manuellement cette scène (je me suis levé plus tôt), elle va donc tournée 2 fois à l'heure dite. J'ai rajouté la condition "fibaro:countScenes" ....... Est-elle au bon endroit ?? depuis cette modif, la scène ne se lance plus toute seul. Merci de votre coup d'oeil --[[ %% autostart %% properties %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do if fibaro:countScenes() > 1 then -- si la scène est lancée plus d'une fois alors fibaro:abort() -- arrêt de cette lecture du script end -- fin de la condition local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "06:45") ) ) then -- 6h45 : Allumage réveil fibaro:call(71, "turnOn");
  2. Rem's

    Réveil En Lua

    Bonsoir a tous : Version technicolor (c'est super pratique et super clair, merci pour l'explication) je voudrai regrouper mes scènes à travers un script lua, plus complet. Seulement voila, pour moi c'est du "mandarin" que j'essaye de décrypter. Je joint ma scène complète, si quelqu'un pouvait m'en dire plus .... local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "06:45") ) ) then local startSource = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do -- réveil à 6h45 -- fibaro:call(71, "turnOn"); fibaro:call(14, "turnOn"); elseif ( tonumber(fibaro:getValue(49, "valueSensor")) <= 5 then fibaro:call(56, "pressButton", "1"); fibaro:sleep(7*1000); fibaro:call(56, "pressButton", "14"); fibaro:sleep(2*1000); fibaro:call(56, "pressButton", "9"); fibaro:sleep(2*1000); fibaro:call(56, "pressButton", "5"); fibaro:call(41, "turnOn"); fibaro:debug("Lancement du réveil"); -- Allumage TV + BFM -- fibaro:sleep(900*1000); -- Lancement de l'extinction des lumières fibaro:call(11, "turnOn"); fibaro:sleep(900*1000); fibaro:call(11, "turnOff"); fibaro:call(14, "turnOff"); fibaro:call(41, "turnOff"); fibaro:debug("Extinction salon"); fibaro:call(56, "pressButton", "1"); fibaro:debug("Bascule vers Disney channel"); -- Virtuel device pour basculer de BFM vers Disney Channel -- fibaro:sleep(4000*1000); -- Extinction lampe entrée à 8h, 1h 30 plus tard fibaro:call(71, "turnOff); fibaro:debug("Extinction entrée"); end fibaro:sleep(60*1000); end end D'avance merci pour votre aide.
  3. Checker l'éclairage chez soi Exécution automatique d'un script qui vérifie si toutes les lumières sont éteintes au départ de chez soi. NB : Je ne suis pas un spécialiste de LUA et mes connaissances en programmation datent de plus de 20 ans (inutile de m'appeler papy ) L'exemple ci-dessous est une adaptation d'un script de contrôle de fenêtres écrit par @quikdav...j'espère qu'il rejoindra ce forum Cette scène est exécutée automatiquement au départ de chez moi Quelques précisions : - "wallplug" et "interrupteur" sont des variables locales de type "table" - les valeurs entre parenthèses bouclées, sont les ID des modules Fibaro (Wall plug FGP111 / Dimmer FGD111). Elles sont séparées par des virgules - Le script va lire les valeurs d'une table dans une boucle : "for i = 1, #wallplug do" par exemple - Ces valeurs sont utilisées dans les commandes : "fibaro:getValue" - "tonumber" permet de changer le type de variable de "caractères à "nombre" - la variable "request" recueille le message à envoyer : une concaténation de textes et de variable - les deux lignes suivantes permettent d'envoyer le message par l'outil "Prowl" que j'expliquerai dans un futur post fibaro:setGlobal('pushnotification', request); fibaro:call(46, "pressButton", "3"); -- Message Prowl Voilà donc un premier post à propos de LUA Et n'hésitez pas dans vos remarques ! --[[ %% properties %% globals --]] wallplug = {6, 67, 68, 69} -- id des wallplugs interrupteur = {22, 50, 51, 87} -- id des interrupteurs local startSource = fibaro:getSourceTrigger(); local bconso = 0 -- contrôle wall plug for i = 1, #wallplug do local wallplugname = fibaro:getName(wallplug[i]); local request -- contrôle si conso supérieure à 1W (halogène consomme 0.5 à l'arrêt) if (tonumber(fibaro:getValue(wallplug[i], "valueSensor")) > 1) then -- remplace les espaces par des %20 pour que cela puisse être interprété dans une URL wallplugname = string.gsub(wallplugname, " ", "%%20") request = 'La%20lampe%20'..wallplugname..'%20est%20allumée'; fibaro:debug(request); fibaro:setGlobal('pushnotification', request); fibaro:call(46, "pressButton", "3"); -- Message Prowl bconso = 1 fibaro:sleep(2000); end end -- contrôle interrupteurs for i = 1, #interrupteur do local interrupteurname = fibaro:getName(interrupteur[i]); local request if (tonumber(fibaro:getValue(interrupteur[i], "value")) > 0) then -- remplace les espaces par des %20 pour que cela puisse être interprété dans une URL interrupteurname = string.gsub(interrupteurname, " ", "%%20") request = 'La%20lampe%20'..interrupteurname..'%20est%20allumée'; fibaro:debug(request); fibaro:setGlobal('pushnotification', request); fibaro:call(46, "pressButton", "3"); -- Message Prowl bconso = 1 fibaro:sleep(2000); end end if (bconso == 0) then request = "Aucune%20lampe%20n'est%20allumée"; fibaro:debug(request); fibaro:setGlobal('pushnotification', request); fibaro:call(46, "pressButton", "3"); -- Message Prowl end
  4. Domotique-Home

    Index Des Fonctions (Thématique)

    Bonjour, J'ai commencé la traduction de la docs Fibaro en français je pense que cela nous aidera. Alors si vous êtes volontaire pour me donner un coup de pouce, hésitez pas a me contacter j’alimente la liste avec des lien au fur et a mesure de mon avancement. Index des fonctions (thématique) Fonctions de Contrôle de modules: fibaro:call(deviceID, actionName, …) fibaro:get(deviceID, propertyName) fibaro:getValue(deviceID, propertyName) fibaro:getModificationTime(deviceID, propertyName) fibaro:getType(deviceID) fibaro:getRoomID(deviceID) fibaro:getSectionID(deviceID) Fonctions de Contrôle des scènes fibaro:abort() fibaro:getSourceTrigger() fibaro:getSourceTriggerType() fibaro:startScene(sceneID) fibaro:killScenes(sceneID) fibaro:setSceneEnabled(sceneID, enabled) fibaro:isSceneEnabled(sceneID) fibaro:countScenes() fibaro:countScenes(sceneID) Fonctions de Manipulation fibaro:setGlobal(varName, value) fibaro:getGlobal(varName) fibaro:getGlobalValue(varName) fibaro:getGlobalModificationTime(varName) Fonctions supplémentaires fibaro:debug(text) fibaro:calculateDistance(position1, position2) Lien supprimés en respect de la nouvelle charte.
  5. Krikroff

    Créer une fonction récursive...

    Il peut arriver lorsqu'un script dépend d'un traitement extérieur comme par exemple l'appel d'un service web qui retourne un json, que le script ne s’exécute pas correctement jusqu'au bout, les raisons peuvent être multiples: timeout, service indisponible etc. C'est pourquoi il peut être utile dans certaines conditions de relancer l’exécution du script jusqu’à obtention du résultat attendu. Voici comment faire: -- Copyright © 2013 Jean-christophe Vermandé local _selfId = fibaro:getSelfId(); -- update Public IP label httpClient = Net.FHttp("checkip.dyndns.com"); -- recursive function to ping device function checkIP(retry) retry = retry or 0; -- call domaine to check response, status, errorCode = httpClient:GET("/"); -- check for error if errorCode == 0 then -- Internet connection is alive :-) fibaro:setGlobal("NetworkStatus", 1); if tonumber(status) == 200 then local ip = response:match("(%d%d?%d?.%d%d?%d?.%d%d?%d?.%d%d?%d?)"); fibaro:call(_selfId, "setProperty", "ui.lblPublicIP.value", ip); else fibaro:call(_selfId, "setProperty", "ui.lblPublicIP.value", "Error!"); end else if retry < 5 then fibaro:debug("Retry #"..retry.."process, please wait..."); fibaro:sleep(1000); return checkIP(tonumber(retry+1)); end -- Internet seems down, check connection... fibaro:setGlobal("NetworkStatus", 0); fibaro:call(_selfId, "setProperty", "ui.PublicIPLabel.value", "Unknown"); -- send mail fibaro:call(2, "sendEmail", "Check Network Status failed !", "Unable to check network status, error code is "..errorCode.. ", response is ["..response.."]"); end end -- execution de la fonction checkIP(); -- clean memory, destroy object httpClient = nil; Ce code interroge le service checkip.dyndns.com pour vérifier l'adresse IP, si le service est en erreur ou bien un problème avec FHttp, alors le script est relancé une nouvelle fois. Si au bout d'un maximum de 5 tentatives il y a toujours une erreur alors un mail est envoyé. La fonction récursive peut être dans d'autres cas: algorithme, calcul etc.
  6. Bonsoir, Voila j'expose mon problème, j'ai un détecteur d'ouverture et je voudrais que si la porte reste ouverte plus de 30 secondes cela m'envoie une notification. Sur le forum Fibaro j'ai vu un script et j'ai demandé à Andrew comment faire pour avoir la fonction "si ouvert plus de 30 secondes = notification", Andrew m'a dit d'utiliser une while loop, j'ai regardé le lien mais j'avoue que je ne sais pas comment faire. Voici le script que j'ai mis sur ma HC2 et qui envoi une notif + email quand le détecteur détecte un ouverture de porte: --[[ %% properties 154 value %% globals --]] local startSource = fibaro:getSourceTrigger(); if ( ( tonumber(fibaro:getValue(154, "value")) > 0 ) or startSource["type"] == "other" ) then fibaro:call(146, "sendDefinedPushNotification", "42"); fibaro:call(2, "sendDefinedEmailNotification", "42"); end Si quelqu'un peux m'expliquer comment marche une white loop et comment il faudrait faire pour mon cas de figure cela serait top. Merci
  7. Tout est dans le titre J'ai publié ce code en premier sur le Forum Fibaro ici http://forum.fibaro.com/viewtopic.php?t=1870#15926 suite à une demande utilisateur. Modifier avec votre adresse IP, UserID et Password de votre HC2. HC2 = Net.FHttp("xxx.xxx.xxx.xxx"); HC2:setBasicAuthentication("admin","password"); response, status, errorCode = HC2:POST("/api/settings/reboot", "data=reboot"); if errorCode == 0 then fibaro:log(status); else fibaro:log("error"); end A utiliser par exemple dans le bouton d'un périphérique virtuel.
×