Aller au contenu

rahany

Membres confirmés
  • Compteur de contenus

    48
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

rahany a gagné pour la dernière fois le 23 juin 2015

rahany a eu le contenu le plus aimé !

Profile Information

  • Sexe :
    Male
  • Ville :
    94
  • Box
    Home Center 2
  • Version
    4.049

rahany's Achievements

Newbie

Newbie (1/14)

9

Réputation sur la communauté

  1. Bin après une semaine de test, très concluant....ts fonctionne correctement Scéne LUA avec mes variables ainsi que les scènes en mode bloc utilisant les variables. Donc sujet clos. Merci encore pour vos aides. Et bonnes vacances pour ceux qui partent en juillet.
  2. Bon j'ai testé et ça àfonctionné 2 jrs, mais today no. bon je vais attendre la fin de la semaine pour faire un bilan.
  3. ok, je crois que l'heure c'est parce que le changement d'heure à lieu à 3h00 du matin donc, par précaution il le lance à 4H15. Je remplace les lignes si dessus et le script ce lancera tous les jours à 4h15 et ma variable "Saison" sera à jour, et donc mes scènes avec la variable "Été ou Hiver" ce déclencheront normalement. Je vais tester çà . j'espère que je tiens le bon bout. .
  4. Ok, je viens de prendre le code de KriKoff, mais comme je ne comprends pas trop ( voir rien du tout au code) Pouvez-vous me dire SVP, si ce code est bon, avec la variable : Saison - Été / Hiver ? Par avance merci de votre retour. --[[ %% autostart %% properties %% globals --]] function check() -- récupération table Date local dt = os.date("*t"); -- création de la chaîne pour affichage local display = dt.hour..":"..dt.min..":"..dt.sec.." Heure d'été -> "..tostring(dt.isdst); -- Sortie de la variable vers la fenêtre debug du HC2 -- false pour hiver, true pour été fibaro:debug(display); -- mise à jour de la variable if (dt.isdst) then fibaro:setGlobal("Saison", "Eté"); else fibaro:setGlobal("Saison","Hiver"); end end local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); 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) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "04:15") )) then check(); end fibaro:sleep(60*1000); end else local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if (startSource["type"] == "other") then check(); end end
  5. ok merci de l'info, qu'elle est la ligne de code pour que la scène ce déclenche tt les jours pour connaitre la saison alors ? Ou comment dois-je modifier le code pour que cela fonctionne
  6. Bonsoir, Je souhaite déclencher plusieurs scènes selon la saison. ( Été - Hiver ) J'ai créé une variable Saison avec 2 arguments Été et Hiver. Créer la scène en script, avec le code ci-dessous, pour connaitre la saison. Mais cela ne fonctionne pas Attention, ce n'est pas mon code je l'ai trouvé sur le forum, et je crois que c'est krikoff qui l'a écrit. local startSource = fibaro:getSourceTrigger(); if ( startSource["type"] == "other" ) then -- récupération table Date local dt = os.date("*t"); -- création de la chaîne pour affichage local display = dt.hour..":"..dt.min..":"..dt.sec.." Heure d'été -> "..tostring(dt.isdst); -- Sortie de la variable vers la fenêtre debug du HC2 -- false pour hiver, true pour été fibaro:debug(display); -- mise à jour de la variable if (dt.isdst) then fibaro:setGlobal("Saison","Ete"); else fibaro:setGlobal("Saison","Hiver"); end end Par contre, quand je crée les scènes en mode bloc comme ci-dessous, tout fonctionne correctement. un petite aide m'siou
  7. euh je ne pense qu'il y a pas de "" avant et après les variable, exemple : -- ton code indiqué ci-dessus "partie 1 ".. ("\n") .."partie 2" -- le code dans mon cas partie 1 .. ("\n") .. partie 2 cependant quand je regarde le code il me semble que c'est du json. peut-être que cela vient de là .
  8. Je viens de suivre ton conseil. merci
  9. Le VD au complet prêt à être importé pour ce qui le souhaite. Alarm.vfib.zip
  10. Petite mise à jour, du code avec un " SendPush" sur les 2 boutons (Activé / Desactié ) vers la ligne 75. -- À ajouter dans le code du bouton "Activé". fibaro:call(ID_de_votre_mobile, "sendPush","SENSORS"..Not_Armed_Devices_ID) -- À ajouter dans le code du bouton "Désactivé". fibaro:call(ID_de_votre_mobile, "sendPush","SENSORS"..Not_Disarmed_Devices_ID)
  11. La critique est constructive du moment quelle reste positive si qui est le cas. donc je ne vois rien de mal dans ta critique. Ben pour tous dire je ne suis pas un développeur et je ne comprends pas tt dans le code. Donc si il y a moyen, apparement oui, d’optimiser le code, faut pas hésiter à le soumettre. L'intérêt que j'ai pour le check est : Si il y a pas tt les modules armed/disarmed alors ça l'indique le dans un label. Pour mes connecteurs de fenêtre par exemple cela veut dire dans mon cas, la fenêtre n'est pas fermée. c'est vraie que l'option optimisée du code serait : avant de basculer les door_senor ou window_sensor en Armed ==> vérifier s'ils sont tous en mode normal Si oui ==> bascule les tous en armed / si ce n’est pas le cas, ==> alors envoi une notification par Push ou mail. Mais je ne suis pas dev .
  12. je post le code des boutons. "Activé et Desactivé" en attend l'autorisation d'uploader le ficher complet. Je ne passe pas par la case création d'un VD car il y a un très bon tuto là -dessus le forum. Dans mon cas 2, boutons + 2 étiquettes pour afficher le résultat de chaque action : bouton " activé" HC2 = Net.FHttp("127.0.0.1",11111); local debug = false --Enable debug.. local Not_Armed_Devices_ID = "" -- Function for getting status of devices Get_Devices_Status = function() -- get response from H2 about all your devices local response ,status, errorCode = HC2:GET("/api/devices") -- Look for error if errorCode == 0 then fibaro:debug("No errors getting devices, decoding answer") else fibaro:debug("Error, code:" .. errorCode) fibaro:debug("Scene aborted") end -- Decode json string to table jsonTable = json.decode(response) end Arm_Devices = function() fibaro:debug("Arming devices") -- Loop trough table and detect sensors.. for key, id in ipairs(jsonTable) do -- If its a sensor then if jsonTable[key].type == "com.fibaro.FGMS001" or jsonTable[key].type == "com.fibaro.windowSensor" or jsonTable[key].type == "com.fibaro.doorSensor" then if debug then fibaro:debug("Device ID:" .. jsonTable[key].id .. " Type:" .. jsonTable[key].type .. " Name:" .. jsonTable[key].name) end --Enable if you want to arm sensor fibaro:call(jsonTable[key].id, "setArmed", "1") end end end Check_Armed_Devices = function() fibaro:debug("Checking armed devices") -- Loop through the updated table for key, id in ipairs(jsonTable) do if jsonTable[key].type == "com.fibaro.FGMS001" or jsonTable[key].type == "com.fibaro.windowSensor" or jsonTable[key].type == "com.fibaro.doorSensor" then if debug then fibaro:debug("Device ID:" .. jsonTable[key].id .. " Type:" .. jsonTable[key].type .. " Name:" .. jsonTable[key].name) end if debug then fibaro:debug("Armed Status =" .. fibaro:getValue(jsonTable[key].id, "armed")) end if tonumber(fibaro:getValue(jsonTable[key].id, "armed")) == 0 then local temp_ID = jsonTable[key].name Not_Armed_Devices_ID = Not_Armed_Devices_ID .. ("\n") .. temp_ID -- Add your actions here if the device is not armed! end end end end Send_Email = function() --Use this info to send push about not armed devices fibaro:debug("Devices not armed=" .. Not_Armed_Devices_ID ) --Enable to send push, you have non enables sensor ID´s in variable above --fibaro:call(2, "sendEmail","SENSORS"..Not_Armed_Devices_ID) -- ID is id# of your mobile -- Affichage des Device non armé fibaro:call(fibaro:getSelfId(), "setProperty", "ui.noarmed.value", Not_Armed_Devices_ID); end -- Get current status of devices Get_Devices_Status() -- Arm devices Arm_Devices() -- Wait for everything to get in order fibaro:sleep(5*1000) -- wait a while.. -- Get current status of devices Get_Devices_Status() --Have a look if they are all armed. Check_Armed_Devices() --Send info to phone Send_Email() fibaro:debug("Done!") et le bouton "désactivé" HC2 = Net.FHttp("127.0.0.1",11111); local debug = false --Enable debug.. local Not_Disarmed_Devices_ID = "" -- Function for getting status of devices Get_Devices_Status = function() -- get response from H2 about all your devices local response ,status, errorCode = HC2:GET("/api/devices") -- Look for error if errorCode == 0 then fibaro:debug("No errors getting devices, decoding answer") else fibaro:debug("Error, code:" .. errorCode) fibaro:debug("Scene aborted") end -- Decode json string to table jsonTable = json.decode(response) end Disarm_Devices = function() fibaro:debug("Disarming devices") -- Loop trough table and detect sensors.. for key, id in ipairs(jsonTable) do -- If its a sensor then if jsonTable[key].type == "com.fibaro.FGMS001" or jsonTable[key].type == "com.fibaro.windowSensor" or jsonTable[key].type == "com.fibaro.doorSensor" then if debug then fibaro:debug("Device ID:" .. jsonTable[key].id .. " Type:" .. jsonTable[key].type .. " Name:" .. jsonTable[key].name) end --Enable if you want to arm sensor fibaro:call(jsonTable[key].id, "setArmed", "0") end end end Check_Disarmed_Devices = function() fibaro:debug("Checking Disarmed devices") -- Loop through the updated table for key, id in ipairs(jsonTable) do if jsonTable[key].type == "com.fibaro.FGMS001" or jsonTable[key].type == "com.fibaro.windowSensor" or jsonTable[key].type == "com.fibaro.doorSensor" then if debug then fibaro:debug("Device ID:" .. jsonTable[key].id .. " Type:" .. jsonTable[key].type .. " Name:" .. jsonTable[key].name) end if debug then fibaro:debug("Disarmed Status =" .. fibaro:getValue(jsonTable[key].id, "armed")) end if tonumber(fibaro:getValue(jsonTable[key].id, "armed")) == 1 then local temp_ID = jsonTable[key].name Not_Disarmed_Devices_ID = Not_Disarmed_Devices_ID .. ("\n") .. temp_ID -- Add your actions here if the device is not armed! end end end end Send_Push = function() --Use this info to send push about not armed devices fibaro:debug("Devices not Disarmed=" .. Not_Disarmed_Devices_ID ) --Enable to send push, you have non enables sensor ID´s in variable above --fibaro:call(YOUR_ID_GOES_HERE, "sendPush", "SENSORS") -- ID is id# of your mobile -- Affichage des Device non armé fibaro:call(fibaro:getSelfId(), "setProperty", "ui.nodiarmed.value", Not_Disarmed_Devices_ID); end -- Get current status of devices Get_Devices_Status() -- Disarm devices Disarm_Devices() -- Wait for everything to get in order fibaro:sleep(5*1000) -- wait a while.. -- Get current status of devices Get_Devices_Status() --Have a look if they are all armed. Check_Disarmed_Devices() --Send info to phone Send_Push() fibaro:debug("Done!") @MasterBT : regarde à la ligne 60 il y a toutes la ligne pour le retour chariot. à‡a peut peut-être t'aider.
  13. Bon voilà , j'ai fini le VD que vous trouverez à dispo. Le retour à la ligne fonctionne sur les labels seulement via la page web. Via l'iPhone ( pas test sur Android) mes champs sont vides, dà» au code suivant ==> ("\n"), qui est interprété de manière différente. . Je regarderai cela un peu plus tard. Si une bonne âme peut m'aider sur cette affaire je prends. Ce module sert à activer tous les modules types FGMS / FGK en mode "armed" et me remonte une info si un des modules n'est pas passé "armed" idem pour le bouton désactivé. Je tiens à préciser que ce n'est pas mon CODE, comme déjà évoqué au début du post, il a été fait part SPEEDY, que j'ai mis à ma sauce. @Pilou, super intéressant, mais dans mon cas pas trop utile pour le moment. ( je le garde dans un coin, car il me servira quand je ferai des évolutions, merci pour ton retour ) Ci - dessous le résultat. Messieurs les ROIS du forum, apparemment je n'ai pas les droits pour upload un fichier vfib.json. une petite aide sur cette partie
  14. bon je n'ai pas pu résister à tester tt de suite .. et j'ai trouvé la solution à mon problème. Pour le retour à la ligne ou retour chariot dans un Label dans mon cas j'ai mis variable = variable .. ("\n") .. temp_ID En mettant ("\n") ==> mon texte dans le label retour à la ligne pour chaque résultat. Cependant quand on est en mode débug il n'y a pas de retour chariot. Dans le mode avancé de la VD, il y a un retour à la ligne par rapport à la taille de la fenêtre, pour voir un résultat correct il faut tester la VD directement via la page "Home" par exemple .... Voilà j'espere que ça pourra aider certain Je finis ma VD et je posterai le code un peu plus tard.
  15. Je teste cela demain, et vous tiens informé
×
×
  • Créer...