Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'tuto hc2'.



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

133 résultats trouvés

  1. Shad

    LUA scheduler for HC2

    Ce code a été écrit par robmac avec l'aide de jompa68 , A.Socha. J'ai également fais une traduction du poste original ici. Je ne vais pas tout expliquez mais juste faire comprendre le fonctionnement de base. Ce script a été écrit pour pouvoir gérer tout les heures de lancement d'une action depuis une seule scène. Personnellement ce script fonctionne beaucoup que le code standard lua. Les commandes sunset or sunrise fonctionne très bien. ATTENTION CE CODE NE FONCTIONNE PAS CHAQUE MINUTES DONC N'UTILISE PAS DE RESSOURCES SYSTEME. ILS DÉMARRENT SEULEMENT LORSQU'UNE TACHE EST PLANIFIÉE. Personnellement, depuis que j'utilise ce code ma HC2 ne fonctionne que mieux, dans chaque scène vous n'avez juste qu'à y mettre vos conditions et actions. Je ne posterais pas le code car il fait plus de 1000 lignes. Ce script ajoute également une fonctionne qui manque cruellement à la HC2, des alarmes. Par défaut il n'en possède que deux. Pour mon usage j'en ai programmé deux, une pour la semaine et l'autre pour le week-end. Installation du script: Créer une scène en Lua et collez le code du fichier Scene-1 - ID 1 Scheduler.txt, importez le fichier Alarm_Clock.vfib 4 fois (editez le numéro de chaqu'un dans le code) et 1 fois le Scheduler Control. Il vous faudra ensuite créer des globals variables avec comme nom: - scheduleGroup - scheduleActive - alarmTime1 - alarmTime2 - alarmTime3 - alarmTime4 Après pour redémarrez le scheduler il faut créer une scène avec: --[[ %% properties %% globals --]] local scheduleScene = 1 while (fibaro:countScenes(scheduleScene) > 0) do fibaro:killScenes(scheduleScene); fibaro:debug("Kill") end; active = active or { Active = 1, Disabled = 2 } activeIndex = activeIndex or { [1] = "Active", [2] = "Disabled"} local scheduleActive = fibaro:getGlobalValue("scheduleActive") or activeIndex[1] if scheduleActive == activeIndex[1] then -- restart a new instance if active fibaro:startScene(scheduleScene) end Maintenant pour paramétrez tout sa c'est très simple. Dans le scheduler il faut éditez les lignes: - 96: Id scène pour redémarrer - 97: Id virtual device pour controler le scheduler - 98, 103, 108 et 113: les id des virtuals devices pour les alarmes. Ensuite dans la scène pour redémarrer le scheduler éditez la ligne suivante avec l'id de la scène du scheduler: local scheduleScene = 1 Normallement c'est tout pour la configuration. MISE EN PLACE DU SCENARIO: Vous devez insérez vos lignes en-dessous la section <ADD YOUR LINES HERE> luaDaySchedule:add(<time>,<id>, <parameter> , <action>, <days> ,<catchup>,<p1>,<p2>,<p3>) Heure de lancement du scénario: <time> : Remplacez cette balise par une heure dans un format de 24h exemple: "23:21" ou "07:00". PS: Vous ne pouvez changer une variable globale pour changez l'heure de la scène sans relancez la scène. SUNRISE - SUNSET avec + ou - x minutes: <time>: Remplacez cette balise par "Sunrise" ou Sunset" <p1> Remplacez cette balise par 27 pour ajoutez 27 minutes ou - 11 pour lancez 11 minutes plus tôt. ID DU MODULE OU DE LA SCENE: <id> Remplacez cette balise par l'id de votre module ou scène. ACTION POSSIBLE (liste non entière et consulter le poste originale pour voir les commandes): Allumez ou éteindre un module régler une valeur pour un dimer envoyer un mail envoyer une notification push à un ou tous les périphériques envoyer un mail à un ou tous les utilisateurs appuyer sur un modules virtuels régler un slider pour un modules virtuels régler un variable global armer ou désarmer un module régler toute chacune des couleurs d'un module RGB démarrer un programme RGB démarrer une autre scène CHOIX DES JOURS DE LANCEMENT DES SCENARIOS: <days> Remplacer cette balise par jour de la semaine Il est également possible de mettre plusieurs jours de la semaine avec {"Sunday','Monday"}. Il y a 3 commandes spécial: {"All"] = Tous les jours de la semaines {"Weekend"} = Samedi et Dimanche {"Weekday"} = Lundi au Vendredi Ils peuvent également être fusionner avec les jours de la semaine {"Weekend","Monday"} = Samedie, Dimanche et Lundi LES ALARMES: Pour configurer les alarmes, un fichier vfib est disponible dans le zip joint. A la ligne 92 du scheduler vous devez paramétrer les id de vos modules virtuels ainsi que l'id de la scene du redémarrage du scheduler (également fournie dans le zip). Dans chaque bouton du module virtuel vous devez également reconfigurer l'id de ce module virtuel. Et pour finir vous devez créer des variables globales pour alarmDays1 - alarmDays2 - alarmTime1- alarmTime2. Voici les lignes que vous devez ajoutez à votre scheduler: --Réveil 1 luaDaySchedule:add(getAlarm("alarmTime1"),{"4"}, "" , "startScene", {"All"} ,false) --Réveil 2 luaDaySchedule:add(getAlarm("alarmTime2"),{"5"}, "" , "startScene", {"All"} ,false) Voici quelques une de mes lignes: luaDaySchedule:add("07:00","30", "" , "startScene", {"Weekday"}, false); luaDaySchedule:add("07:30","30", "" , "startScene", {"Saturday"}, false); luaDaySchedule:add("Sunset","Nightime", "1" , "setGlobal", {"All"}, false , 0); Comme écrit plus haut je n'ai pas tout expliquer car trop long. Il s'agit juste d'un résumé Des exemples sont fournis dans le scheduler + d'autre explication sur le poste originale du forum officiel. scheduler-1-3-0.zip Scheduler1-3-1.zip
  2. Domotique-Home

    [Lua - Leçon 2] – Association De Modules

    La scène précédente (Leçon 1) avait un inconvénient important – elle devait être déclenchée manuellement. Aujourd’hui je vais vous expliquer comment automatiser une scène en code LUA. Nous allons allumer une lumière à l’ouverture de la porte. Pour cela nous allons utiliser deux modules : - binary_light (vu dans la Leçon 1) - door_sensor (détecteur d’ouverture de porte/fenêtre) Pour comprendre comment fonctionne door_sensor nous allons nous aider d’API fibaro:debug déjà vu dans la Leçon 1. (nous supposons que notre door_sensor porte le numéro ID = 22 et notre binary_light a toujours ID = 100) –[[ %% properties 22 value %% globals --]] local doorSensorValue = fibaro:getValue(22, ‘value’) fibaro:debug(‘Mon etat = ‘ .. doorSensorValue) Nous déclarons notre variable doorSensorValue et grâce à la commande fibaro:getValue (Leçon 1) nous luis attribuons l’état actuel de notre door_sensor. En exécutant la scène manuellement dans la console Debug on obtient Mon etat = 0 ou Mon etat = 1 en fonction de l’état de notre module. Une fois activée la scène nous donnera l’état du module à chaque changement. Utilisons cela pour activer notre deuxième module binary_light –[[ %% properties 22 value %% globals --]] – Lecture de l’état value du module 22 door_sensor local value = fibaro:getValue(<doorSensor>, ‘value’) — si l’état door_sensor = 1 alors on allume la lumière if (value == ’1′) then fibaro:call(100, ‘turnOn’) end La scène fonctionne bien mais la lumière va s’allumer à chaque ouverture de porte donc pour que cela ne fonctionne plus il faut désactiver notre scène ou…… tous simplement allumer la lumière si notre door_sensor est activé. Il faut modifier notre script. –[[ %% properties 22 value %% globals --]] – Lecture de l’état value du module 22 door_sensor local value = fibaro:getValue(22, ‘value’) – Lecture de l’état d’activation du module 22 door_sensor local armed = fibaro:getValue(22, ‘armed’) – si l’état value door_sensor = 1 et il est activé alors on allume la lumière if (armed == ’1′ and value == ’1′) then fibaro:call(100, ‘turnOn’) end Et voilà
  3. Ci-dessous, le lien vers "Domotique-store" expliquant "les bases" de la programmation en Lua avec la HC2 : http://tutoriels.domotique-store.fr/content/5/72/fr/programmation-en-lua-sur-home-center-2.html
  4. Bonjour à tous, Je me suis aperçu que il n’existe pas beaucoup de tutoriel sur le langage LUA pour HC2 de Fibaro. Je reçois régulièrement les demande de mes clients pour une configuration un peu plus complexe de scènes pour leurs installation domotique. J’ai décidé donc de partager le peu de connaissances que je possède Aujourd’hui je vais vous expliquer comment allumer et éteindre la lumière (binary_light) on considère que le module possède ID=100 Rappel le code LUA doit TOUJOURS commencer par: Code: --[[ %% properties %% globals --]] On va utiliser les API de Fibaro suivants: fibaro:debug = Affiche un commentaire fibaro:call = Fonction qui envoie une requête pour exécuter une action. fibaro:getValue = Fonction qui récupère la valeur. Voilà le code commenté: Code: --[[ %% properties %% globals --]]– État actuel de la variable light local light = fibaro:getValue(100, ‘value’)– si égal à 0 (lumière éteint) alors on allume if (light == ’0′) then fibaro:debug(‘On Allume!’) fibaro:call(100, ‘turnOn’) else – dans le cas contraire (lumière allumée) on éteint fibaro:debug(‘On Éteint’) fibaro:call(100, ‘turnOff’) end Explication des API utilisées: - fibaro:debug(text) Affiche le message ‘text’ dans la console debug associée avec le script. Paramètre: text: texte a afficher Exemple: fibaro:debug(‘Votre texte ici’); - fibaro:call(deviceID, actionName, …) Envoie une requête pour exécuter une action. Paramètre: deviceID : numéro ID de module actionName : nom de l’argument a exécuter (ici turnOff ‘mise à 0′ et turnOn ‘mise à 1′) Exemple: fibaro:call(100, ‘turnOff’); –mise à 0 du module - fibaro:getValue(deviceID, propertyName) Fonction qui récupère la valeur. Paramètre: deviceID : numéro ID de module propertyName : nom de propriété Exemple: local light = fibaro:getValue(100, ‘value’) — récupère l’état de la variable light (soit 0, soit 1) Si vous avez des question n’hésitez pas a me contacter. Merci et à bientôt
  5. 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.
  6. Bonjour, Sur le post du script pour le contrôle du niveau des piles j'ai abordé le sujet nÅ“uds morts pour les détecter et voici un script tip top qui/ - Contrôle les nÅ“uds morts, - Chercher a les réveiller, - Envoie des notifications pour avertir --[[ %% autostart %% properties %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "07", "00")) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "23", "00"))) and (math.floor(os.time()/60)-math.floor(1369026000/60))%2 == 0 ) ) then local i = 1 local TotalDevices = 156 + 1 while i < TotalDevices do local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:setGlobal('lastDeadNode', i); -- fibaro:call(30, "pressButton", "6"); fibaro:call(1, "wakeUpDeadDevice",i); fibaro:debug("Try to wake up node "..i); fibaro:call(68, "sendPush", "Try to wake up node "..i); fibaro:sleep(5*1000); local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:debug("Device "..i.." still dead"); fibaro:call(68, "sendPush", "Device "..i.." still dead"); -- fibaro:call(30, "pressButton", "6"); -- fibaro:call(65, "sendDefinedPushNotification", "9"); -- fibaro:call(2, "sendEmail", "DEAD "..i); else -- fibaro:call(30, "pressButton", "7"); fibaro:debug("Device "..i.." fixed"); fibaro:call(68, "sendPush", "Device "..i.." fixed"); end else end i = i + 1 end end fibaro:sleep(60*1000); end else local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( startSource["type"] == "other" ) then fibaro:debug("send notification"); fibaro:call(68, "sendPush", "start check dead node"); local i = 1 local TotalDevices = 156 + 1 while i < TotalDevices do local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:setGlobal('lastDeadNode', i); -- fibaro:call(30, "pressButton", "6"); fibaro:call(1, "wakeUpDeadDevice",i); fibaro:debug("Try to wake up node "..i); fibaro:call(68, "sendPush", "Try to wake up node "..i); fibaro:sleep(5*1000); local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:debug("Device "..i.." still dead"); fibaro:call(68, "sendPush", "Device "..i.." still dead"); -- fibaro:call(30, "pressButton", "6"); -- fibaro:call(65, "sendDefinedPushNotification", "9"); -- fibaro:call(2, "sendEmail", "DEAD "..i); else -- fibaro:call(30, "pressButton", "7"); fibaro:debug("Device "..i.." fixed"); fibaro:call(68, "sendPush", "Device "..i.." fixed"); end else end i = i + 1 end end end Voici le script,son auteur est Olivier MALE. Il faut l'adapter pour le N° d'ID pour le push. Son auteur a aussi mis des "--" devant certaines lignes de notifications push et de virtual device, perso j'ai supprimé ces lignes. Le script fonctionne nickel chez moi.
  7. lionel

    Créer et utiliser une Variable

    bonjour a tous Je cherche a créer une scène entre le coucher et le lever du soleil, j ai essayé avec les scènes blocs ,mais ça ne fonctionne pas une idée, de script? Merci Lionel
  8. Script pour connaitre la capacité et être averti par e-mail en cas de "piles faibles" sur un ou des modules Créer une Scène en Lua et insérer ce code : --[[ %% properties %% globals --]] local batterieDevice = "1" local minbattSeuil = 70 -- Saisir le seuil mini d'alerte ici! local i = 0 local maxNodeID = 250 for i = 0, maxNodeID do local type = fibaro:get (i, "isBatteryOperated"); x , y = string.find (type, batterieDevice ) local niveauBatterie = tonumber(fibaro:getValue (i, "batteryLevel")) if x ~= nill and niveauBatterie ~= nill and (niveauBatterie <= minbattSeuil or minbattSeuil == 255) then local nom = fibaro:getName(i) fibaro:debug("Device "..i.."="..nom.." Niveau Batterie="..niveauBatterie) fibaro:call(4, "sendEmail", "Alerte Batterie", "Piles faibles module: "..nom) end end Vous avez juste à spécifier à partir de quel seuil vous souhaitez être averti . Dans cet exemple, je vais recevoir un mail pour chaque module en dessous de 70%.(changer l'ID "sendEmail" par celui souhaité) Vous pouvez aussi remplacer "sendEmail" par "sendPush" pour une notification Vous pouvez lancer la scène manuellement périodiquement . Personnellement, j'ai créé une autre scène qui exécute celle-ci tous les jours. Auteur original du script : Jompa68
×