Aller au contenu

mprinfo

Membres confirmés
  • Compteur de contenus

    14 367
  • Inscription

  • Dernière visite

  • Jours gagnés

    244

Tout ce qui a été posté par mprinfo

  1. Je connais pas le c malheureusement Mais tu as tostring et tonumber le problème ce passe lorsque tu passes par les vg du panneau ou lorsque tu récupère une valeur d'un module Envoyé de mon SM-G900F
  2. Essaie de mettre tonumber Ton erreur viens sûrement de la Envoyé de mon SM-G900F
  3. tu as la valeur du début du code ce qui est normal met juste avant les debugs fermerVolet = fibaro:getGlobalValue("fermerVolet")
  4. --[[ %% globals SoleilLever SoleilCoucher %% properties 179 value --]] local mesvolets ={ ["Volet Ch Parents"] = 117, ["Volet CH Lily"] = 108, ["Baie 1"] = 73, ["Baie 2"] = 75, ["Volet 3"] = 77, ["Volet Bureau"] = 28, } -- Table Zone (Groupes de modules) local RDC = {"Volet Bureau", "Baie 1", "Volet 3"} local Etage = {"Volet CH Lily", "Volet Ch Parents"} -------------------------------------------------------------------------- local nomLever = "SoleilLever" --> Nom de la Variable Globale lever soleil local nomCoucher = "SoleilCoucher" --> Nom de la Variable Globale coucher soleil --local Heure = "Heure" --> Nom de la variable globale Heure --local JourChome = fibaro:getGlobalValue("JourChome") --> Nom de la variable Module Virtuel Hansloo local IdTel = fibaro:getGlobalValue("IdTel") -- Recuperation de id du tel pour le push local JourNuit = fibaro:getGlobalValue("Jour_Nuit") -------------------------------------------------------------------------- local Pause = 0 -- Temp de pause entre chaque commande de modules en seconde ---------------------------------------------------------------------- -- Envoi d'un Push pour avertir que le box àdémarrer ou redémarrer -- ---------------------------------------------------------------------- function EnvoiPush(Message) fibaro:debug("Envoi Push : "..Message) if Idtel ~= nil then fibaro:call(IdTel, "sendPush", Message) else fibaro:debug("Il n'y a aucun tel enregistré") end end ----------------------------------------------------------------------- -- Test si la valeur a enoyer est différente de la valeur du module ----------------------------------------------------------------------- function testvaleur(id, valeurs) local GetValeur = tonumber(fibaro:getValue(id, "value")) if valeurs ~= GetValeur then fibaro:call(id, "setValue", valeurs) --fibaro:debug(id.." - action en cours... - Valeur "..valeurs) fibaro:sleep(Pause*1000) end end ---------------------------------------------------------------------------- -- Recupération de l'id par rapport au nom de la tables mesvolets ---------------------------------------------------------------------------- function volets(zone, valeurs) if (type(zone) == "table") then local messages = "Les "..#zone.." Volets : " for i,v in ipairs(zone) do messages = (messages..v..", ") local id = mesvolets[v] if id == nil then fibaro:debug("ERREUR NOM DU VOLET - "..v.." - dans une table") EnvoiPush("ERREUR NOM DU VOLET - "..v.." - dans une table") else testvaleur(id, valeurs) end end messages = (messages.."ont été actionnés à"..valeurs.."%") EnvoiPush(messages) elseif (type(zone) == "string") then local id = mesvolets[zone] if id == nil then fibaro:debug("ERREUR DANS LE NOM DU VOLET : "..zone) EnvoiPush("EERREUR DANS LE NOM DU VOLET : "..zone) else testvaleur(id, valeurs) EnvoiPush("Le volet : "..zone.." a été actionné à"..valeurs.."%") end else fibaro:debug("Erreur......") EnvoiPush("Erreur......") end end -------------------------------------------------------------------- -- test si le déclencheur est lever ou coucher du soleil -------------------------------------------------------------------- function Test(zone, valeurs, minutes) if zone ~= nil then if minutes == nil then; minutes = 0 end volets(zone, valeurs) else fibaro:debug("Erreur dans la table ou table inéxitante") EnvoiPush("Erreur dans la table ou table inéxitante") end end -------------------------------------------------------------------- -- test Lever -------------------------------------------------------------------- function lever(zone, valeurs, minutes, Jchome) if nomTrigger == nomLever and valeurTrigger == minutes then if Jchome == JourChome or Jchome == nil then Test(zone, valeurs, minutes) end end end -------------------------------------------------------------------- -- test Coucher -------------------------------------------------------------------- function coucher(zone, valeurs, minutes, Jchome) if nomTrigger == nomCoucher and valeurTrigger == minutes then if Jchome == JourChome or Jchome == nil then Test(zone, valeurs, minutes) end end end -------------------------------------------------------------------- -- test Heure -------------------------------------------------------------------- function heure(zone, valeurs, minutes, Jchome) if nomTrigger == Heure and valeurTrigger == minutes then if Jchome == JourChome or Jchome == nil then Test(zone, valeurs, minutes) end end end -------------------------------------------------------------------------- -- Demarrage du programme -------------------------------------------------------------------------- local trigger = fibaro:getSourceTrigger() if (trigger['type'] == 'global') then nomTrigger = trigger['name'] valeurTrigger = tonumber(fibaro:getGlobalValue(nomTrigger)) print("Nom du déclencheur = ", nomTrigger, " - Minutes : ", valeurTrigger) elseif (trigger['type'] == 'property') then if JourNuit == "Nuit" then if tonumber(fibaro:getValue(179, "value")) == 0 then volets("Baie 2", 0) end end fibaro:abort(); else fibaro:debug("La scéne ne peut être lancer que par une Variable Globale") fibaro:abort(); -- nomTrigger = "SoleilCoucher" -- valeurTrigger = -5 end ------------------------------------------------------------------------- -- Ne rien modifier au dessus de cette ligne ------------------------------------------------------------------------- -- Commandes a écrit pour lever du soleil -- lever (Funtion qui traite le lever du soleil -- coucher(zone, valeur, minutes) -- exemple pour actionné les volets de la table Rue a 80% 10 minutes avant le lever -- lever(Rue, 80, -10) -- exemple pour actionné le volet "Bureau" au lever du jour -- lever("Bureau", 99, 0) -- Pour actionner un volet au coucher du soleil -- Il faut remplacer lever par coucher -- ex : coucher(Rue, 0, 20) ------------------------------------------------------------------------ -- Vous pouvez entrer vos commande en dessous de cette ligne ------------------------------------------------------------------------ -- si Baie 2 fermer alors fermer volet if tonumber(fibaro:getValue(179, "value")) == 0 then coucher("Baie 2", 0, -5) end -- fin test baie 2 fermer coucher(Etage, 0, 10)
  5. --[[ %% globals SoleilLever SoleilCoucher %% properties 179 value --]] local mesvolets ={ ["Volet Ch Parents"] = 117, ["Volet CH Lily"] = 108, ["Baie 1"] = 73, ["Baie 2"] = 75, ["Volet 3"] = 77, ["Volet Bureau"] = 28, } -- Table Zone (Groupes de modules) local RDC = {"Volet Bureau", "Baie 1", "Volet 3"} local Etage = {"Volet CH Lily", "Volet Ch Parents"} -------------------------------------------------------------------------- local nomLever = "SoleilLever" --> Nom de la Variable Globale lever soleil local nomCoucher = "SoleilCoucher" --> Nom de la Variable Globale coucher soleil --local Heure = "Heure" --> Nom de la variable globale Heure --local JourChome = fibaro:getGlobalValue("JourChome") --> Nom de la variable Module Virtuel Hansloo local IdTel = fibaro:getGlobalValue("IdTel") -- Recuperation de id du tel pour le push local JourNuit = fibaro:getGlobalValue("Jour_Nuit") -------------------------------------------------------------------------- local Pause = 0 -- Temp de pause entre chaque commande de modules en seconde ---------------------------------------------------------------------- -- Envoi d'un Push pour avertir que le box àdémarrer ou redémarrer -- ---------------------------------------------------------------------- function EnvoiPush(Message) fibaro:debug("Envoi Push : "..Message) if Idtel ~= nil then fibaro:call(IdTel, "sendPush", Message) else fibaro:debug("Il n'y a aucun tel enregistré") end end ----------------------------------------------------------------------- -- Test si la valeur a enoyer est différente de la valeur du module ----------------------------------------------------------------------- function testvaleur(id, valeurs) local GetValeur = tonumber(fibaro:getValue(id, "value")) if valeurs ~= GetValeur then fibaro:call(id, "setValue", valeurs) --fibaro:debug(id.." - action en cours... - Valeur "..valeurs) fibaro:sleep(Pause*1000) end end ---------------------------------------------------------------------------- -- Recupération de l'id par rapport au nom de la tables mesvolets ---------------------------------------------------------------------------- function volets(zone, valeurs) if (type(zone) == "table") then local messages = "Les "..#zone.." Volets : " for i,v in ipairs(zone) do messages = (messages..v..", ") local id = mesvolets[v] if id == nil then fibaro:debug("ERREUR NOM DU VOLET - "..v.." - dans une table") EnvoiPush("ERREUR NOM DU VOLET - "..v.." - dans une table") else testvaleur(id, valeurs) end end messages = (messages.."ont été actionnés à"..valeurs.."%") EnvoiPush(messages) elseif (type(zone) == "string") then local id = mesvolets[zone] if id == nil then fibaro:debug("ERREUR DANS LE NOM DU VOLET : "..zone) EnvoiPush("EERREUR DANS LE NOM DU VOLET : "..zone) else testvaleur(id, valeurs) EnvoiPush("Le volet : "..zone.." a été actionné à"..valeurs.."%") end else fibaro:debug("Erreur......") EnvoiPush("Erreur......") end end -------------------------------------------------------------------- -- test si le déclencheur est lever ou coucher du soleil -------------------------------------------------------------------- function Test(zone, valeurs, minutes) if zone ~= nil then if minutes == nil then; minutes = 0 end volets(zone, valeurs) else fibaro:debug("Erreur dans la table ou table inéxitante") EnvoiPush("Erreur dans la table ou table inéxitante") end end -------------------------------------------------------------------- -- test Lever -------------------------------------------------------------------- function lever(zone, valeurs, minutes, Jchome) if nomTrigger == nomLever and valeurTrigger == minutes then if Jchome == JourChome or Jchome == nil then Test(zone, valeurs, minutes) end end end -------------------------------------------------------------------- -- test Coucher -------------------------------------------------------------------- function coucher(zone, valeurs, minutes, Jchome) if nomTrigger == nomCoucher and valeurTrigger == minutes then if Jchome == JourChome or Jchome == nil then Test(zone, valeurs, minutes) end end end -------------------------------------------------------------------- -- test Heure -------------------------------------------------------------------- function heure(zone, valeurs, minutes, Jchome) if nomTrigger == Heure and valeurTrigger == minutes then if Jchome == JourChome or Jchome == nil then Test(zone, valeurs, minutes) end end end -------------------------------------------------------------------------- -- Demarrage du programme -------------------------------------------------------------------------- local trigger = fibaro:getSourceTrigger() if (trigger['type'] == 'global') then nomTrigger = trigger['name'] valeurTrigger = tonumber(fibaro:getGlobalValue(nomTrigger)) print("Nom du déclencheur = ", nomTrigger, " - Minutes : ", valeurTrigger) elseif (trigger['type'] == 'property') then if JourNuit == "Nuit" then if tonumber(fibaro:getValue(179, "value")) == 0 then volets("Baie 2", 0) end end fibaro:abort(); else fibaro:debug("La scéne ne peut être lancer que par une Variable Globale") fibaro:abort(); -- nomTrigger = "SoleilCoucher" -- valeurTrigger = -5 end ------------------------------------------------------------------------- -- Ne rien modifier au dessus de cette ligne ------------------------------------------------------------------------- -- Commandes a écrit pour lever du soleil -- lever (Funtion qui traite le lever du soleil -- coucher(zone, valeur, minutes) -- exemple pour actionné les volets de la table Rue a 80% 10 minutes avant le lever -- lever(Rue, 80, -10) -- exemple pour actionné le volet "Bureau" au lever du jour -- lever("Bureau", 99, 0) -- Pour actionner un volet au coucher du soleil -- Il faut remplacer lever par coucher -- ex : coucher(Rue, 0, 20) ------------------------------------------------------------------------ -- Vous pouvez entrer vos commande en dessous de cette ligne ------------------------------------------------------------------------ -- si Baie 2 fermer alors fermer volet if tonumber(fibaro:getValue(179, "value")) == 0 then coucher("Baie 2", 0, -5) end -- fin test baie 2 fermer coucher(Etage, 0, 10)
  6. De rien cela fais toujours plaisir d'aider les autres si je commence a me débrouiller en lua c'est grâce a ce forum Envoyé de mon SM-G900F
  7. je t'ai mis le code pour mettre àjour la variables globale fermerVolet
  8. pour que l'on ai pas tous le même numéro lol ou tu remplaces les xx:xx:......... par l'adresse mac de ton HP il faut que tu décoches cette case dans la config quickconnect je n'utilise pas je crois que cela ne fonctionne pas. http://xpenology.com/forum/viewtopic.php?f=13&t=5470 moi j'utilise un port sur l'extérieur et j'ai noip mais tu peux aussi utilisé l'adresse ip public de ta box adsl
  9. local TempSalon = fibaro:getValue(49, "value") local TempVeranda = fibaro:getValue(45, "value") local fermerVolet = fibaro:getGlobalValue("fermerVolet") if TempVeranda > TempSalon and fermerVolet == 0 then fibaro:setGlobal("fermerVolet", 1) fibaro:call(39, "turnOn") fibaro:sleep(3*1000) fibaro:call(39, "turnOff") elseif TempSalon > TempVeranda and fermerVolet == 1 then fibaro:setGlobal("fermerVolet", 0) fibaro:call(39, "turnOn") fibaro:sleep(1*1000) fibaro:call(39, "turnOff") end fibaro:debug("Temp Salon = " .. TempSalon) fibaro:debug("Temp Veranda = " .. TempVeranda) fibaro:debug(fermerVolet)
  10. il faut que tu récuperes la valeur des volets pour savoir si ils sont fermer ou ouvert ensuite tu fais le test de température avec ces 2 résultats tu exécutes ou pas les actions siréne et actionnement des volets
  11. pourquoi en début de script tu ne récupères pas la valeur du volet ? local fermerVolet = tonumber(fibaro:getValue(id, "value")) pour les volets je n'utilise jamais close et open mais toujours les valeurs qui vont de 0 à99 local valeurs = 99 fibaro:call(id, "setValue", valeurs)
  12. le programme ne fera qu'un tour puis ce terminera. il sera lancé de nouveau lors d'un changement de température l'id de ton volet c'est combien ?
  13. Je te complique un peu la chose mais tu veras c'est super utile après on copie coller dans les scripts et on gagne du temp Envoyé de mon SM-G900F
  14. Regarde le tuto jours nuit j'en utilise pas mal Il faut mettre au debut du scripts Envoyé de mon SM-G900F
  15. moi je ferai un truc comme cela si tu n'as pas plus de chose a mettre local TempSalon = fibaro:getValue(49, "value") local TempVeranda = fibaro:getValue(45, "value") local fermerVolet = 0 if (TempVeranda > TempSalon and fermerVolet == 0) then fermerVolet = 1 fibaro:call(39, "turnOn") fibaro:sleep(3*1000) fibaro:call(39, "turnOff") elseif (TempSalon > TempVeranda and fermerVolet == 1) then fermerVolet = 0 fibaro:call(39, "turnOn") fibaro:sleep(1*1000) fibaro:call(39, "turnOff") end fibaro:debug("Temp Salon = " .. TempSalon) fibaro:debug("Temp Veranda = " .. TempVeranda) fibaro:debug(fermerVolet) je ne vois pas ou est le soucis de mettre fermerVolet au début du code car si la condition n'est pas remplit il n'y aura pas de mise a jour
  16. voila 2 fonctions que j'utilise pour mettre a jour le VG fibaro donc disponible de partout scène et VD -- ----------------------------------------------------------------- -- Vérification Variable Globale et création si besoin -- -- ----------------------------------------------------------------- function VerifVG(nom, valeur, choix) if (fibaro:getGlobalValue(nom) == nil) then local enum = 0 if (type(choix) ~= "nil") then enum = 1 end api.post("/globalVariables", {name=nom, isEnum=enum}) if enum == 1 then local variable = {} variable.value = tostring(valeur) variable.isEnum = false if (type(choix) ~= "nil") then variable.isEnum = true variable.enumValues = choix end api.put("/globalVariables/" .. nom, variable) end end end ---------------------------------------------------------------------- -- Mise a jour d'une variable global -- ---------------------------------------------------------------------- function UpdateVG(NomVG, Valeurs) if (fibaro:getGlobalValue(NomVG) == nil) then fibaro:debug("il faut cree la variable "..NomVG) EnvoiPush(string.format("La variable Globale %s n'existe pas ou a ete supprimer", NomVG)) fibaro:abort() -- fin du programme end fibaro:debug("Mise a jour de la Variable Globale : "..NomVG.." = "..Valeurs) fibaro:setGlobal(NomVG, Valeurs); end
  17. Alors tu es satisfait de ton investissement Tu as mis un disque de ton synology? Envoyé de mon SM-G900F
  18. Sinon ton adresse mac va changer a chaque démarrage Envoyé de mon SM-G900F
  19. Pour les variables elles sont local ou global au niveau de l'instance par contre les variables du panneau dites globales ce qui n'est pas le juste terme a mon sens sont des variables typics a fibaro, pour les utiliser il faut faire un get ou un set
  20. lol il faut faire un local fermevolet = fibaro:getGlobalValue( "fermevolet" ) Stp mets ton code dans la fenêtre c'est plus simple a lire il faut juste cliquer sur <>
  21. la ligne que j'ai ajouté sert a lire la valeur du slider donc il faut la définir avant
  22. syslinux.cfg àconfigurer il ce trouve dans \\DISKSTATION\usbshare1 UI menu.c32 PROMPT 0 TIMEOUT 50 DEFAULT xpenology MENU TITLE XPEnoboot 5.2-5565.1-9d792e9 LABEL xpenology MENU LABEL XPEnology DSM 5.2-5565 KERNEL /zImage APPEND root=/dev/md0 ihd_num=0 netif_num=4 syno_hw_version=DS3615xs sn=B3J4N12345 mac:xx:xx:xx:xx:xx:xx vid=0x0EA0 pid=0x2168 loglevel=0 vga=0x305 LABEL debug MENU LABEL XPEnology DSM 5.2-5565 Debug KERNEL /zImage APPEND root=/dev/md0 ihd_num=0 netif_num=4 syno_hw_version=DS3615xs sn=B3J4N12345 mac:xx:xx:xx:xx:xx:xx vid=0x0EA0 pid=0x2168 loglevel=0 vga=0x305 debug=1 LABEL install MENU LABEL XPEnology DSM 5.2-5565 Install/Upgrade KERNEL /zImage APPEND root=/dev/md0 ihd_num=0 netif_num=4 syno_hw_version=DS3615xs sn=B3J4N12345 mac:xx:xx:xx:xx:xx:xx vid=0x0EA0 pid=0x2168 loglevel=0 vga=0x305 upgrade=5.2-5565 il faut remplacer mac:xx:xx:xx:xx:xx:xx par l'adresse mac physique de ton HP et tu peux aussi changer le numéro de série sn=B3J4N12345 en fait moi je ne change que les 5 derniers nombres
  23. il faut que l'on configure ton adresse Mac et le serial du HP. Veux tu faire du WOL avec ton hp ou il tourne en permanence ?
  24. tu peux résumé ce que tu as fais stp
  25. Jojo je suis la pas de bios modifier pour le gen8 Envoyé de mon SM-G900F
×
×
  • Créer...