Aller au contenu

Steven

Membres confirmés
  • Compteur de contenus

    4 434
  • Inscription

  • Dernière visite

  • Jours gagnés

    201

Tout ce qui a été posté par Steven

  1. Steven

    Support Gea

    Perso, je ferais ainsi : --[[ %% autostart %% properties %% globals TimeOfDay --]] local VOLETSRDC = { DeviceID["volet_1"], DeviceID["volet_2"], DeviceID["volet_3"], DeviceID["volet_cuisine"] } local estJour = {"Global", "TimeOfDay", "Day"} local estSoiree = {"Global", "TimeOfDay", "Evening"} GEA.add(true, 30, "", {{"Time", "Sunrise-15", "Sunrise-15"}, estJour}}) GEA.add(true, 30, "", {{"Time", "Sunset", "Sunset"}, estSoiree}) for _,v in ipairs(VOLETSRDC) do GEA.add(estJour, -1, "", {{"Open", v}}) end Edit : Ne pas oublier que les variables globales doivent être préalablement créées depuis le panneau des variables.
  2. Steven

    Scènes qui ne se lance plus

    Cela m'est déjàarrivé avec GEA, j'ai du rebooter la box. J'ai aussi du installer le watchdog de @Lazer afin de rebooter cela en automatique si cela se reproduit. Chance pour moi, cela n'arrive que tout les 3-4 semaines. Imagine, non mais imagine, j'ai du installer un truc développé par @Lazer, non mais ou va-t-on ?
  3. Steven

    Support Gea

    En effet, va voir le DOC car c'est exactement cela
  4. Chez nous, on dit : "Pête un coup et ça ira mieux". Ok, je sors
  5. ??? Il est pas encore àla retraite ?
  6. Pffft, j'ai remis le même qu'avant soit : "jeedom" et cela a fonctionné ... étrange, je comprends pas pourquoi il a été rejeté auparavant.
  7. Steven

    Support Gea

    Il est vivement déconseiller de modifier GEA car le jour ou il y aura une modification de ce dernier, cela va vite devenir ingérable. Il faut créer un scénario différent et utiliser les variables globales (ou label d'un VD) comme déclencheur. Dans le cas d'un Popup qui doit recevoir plusieurs paramètres, il est possible d'utiliser le JSON. Depuis GEA local param = json.encode({temat = "Message", info = "Titre", desc = "Desc", scr1_txt = "Scene1", scr1_num = 10, scr1_txt = "Scene2", scr2_num = 11}) GEA.add(......, {{"Global", "Popup", param}}) Depuis la nouvelle scène pour reprendre l'info : ... local param = json.decode(fibaro:getGlobalValue("Popup")) fibaro:debug(param.temat) ...
  8. Pour info, j'ai du reseter mon mot de passe pour pouvoir me connecter.
  9. Il est quasiment impossible de contrôler les ID dans GEA. Si l'ID n'est pas dans l'entête, ce script ne verra rien. Je souhaitais faire en sorte que GEA vérifie lui les ID qu'il utilise mais cela demande un certain temps que je n'ai jamais eu
  10. L'idée de @lamparo n'est pas bête et je comprends sa problématique. Si la température ne change pas, il n'y a aucun déclencheur. Hors si à6h00 une température de 17° nous va très bien, elle peux devenir insuffisant à6h30. Je crains donc que tu vas devoir faire une boucle ou un VD :-(
  11. Steven

    Pushbullet

    Purée si @pepite commence àcomprendre des trucs, il va commencer ànous poser des questions aux quelles on ne sera plus répondre et on va passer pour des billes ... Arggg, tout se perd, je dis bien tout ce perd Trêve de plaisanterie : bien joué pepite.
  12. Je n'ai pas encore traiter les boutons d'un VD ni les messages personnalisé car cela prend un temps monstrueux alors qu'il n'y a que quelques utilisateurs. Edit : mais tu peux toujours créer un scénario qui appui sur le bouton
  13. Tout depends comment tu as configurer ton Tasker. Mon Tasker traite les SMS UNIQUEMENT si mon SMS contient le mot clé "HC2" en début de message. Pour ce faire, voici ce que j'ai fait. Créer un "Profile" -> Evénement -> Téléphone -> SMS Reçu -> Contenu : "HC2*" Créer les tâches suivantes : Variable -> Affecter une variable -> Nom : "%HC_REQUEST" - A : "%SMSRB" (corps du sms) Variable -> Rechercher/Remplacer -> Variable : "%HC_REQUEST" - Rechercher "HC2 " (attention àl'espace) - Cocher Remplacer les correspondances - Remplacer : <laisser vide> Tache -> Effectuer la tâche : HC Traiter demande
  14. Steven

    Pushbullet

    Après une petite lecture rapide, voici mes recommandations : Ne pas mélanger GEA et Pushbullet, garder 2 scripts différents (c'est plus facile pour debugger et pour la maintenance) Utiliser la variable "Pushbullet" parce qu'elle peux être utilisée de n'importe qu'elle scène / vd Modifier au minimum GEA * * for i = 1, #GEA.portables do --fibaro:call(tonumber(GEA.portables[i]), "sendPush",GEA.getMessage(entry, nil)) fibaro:setGlobal("Pushbullet", GEA.getMessage(entry, nil)) GEA.log("sendActions", entry, "!ACTION! : sendPush " .. GEA.getMessage(entry, nil), true) end
  15. Steven

    Pushbullet

    Bonjour tout le monde, Honnêtement, j'ai pas suivis le problématique. Va falloir que je regarde vos message et je vous tiens au courant dès que je peux.
  16. if (type(varZone.urlTPJ) ~= "nil" and varZone.urlTPJ~=-1) then
  17. C'est varZone.urlTPJ dont tu parles ?
  18. Steven

    Support Gea

    Can you please send me your full script at steven.piccand@gmail.com I will have a look. I need yours because we may not have the same version. And just explain me in the mail how your global variables are changed (or not ) so I will be able to test it correctly.
  19. Steven

    Pushbullet

    Et j'ai rajouté le "token" en paramètre de TOUTES les fonctions sauf le displayDevices() qui n'en a pas besoin.
  20. Steven

    Pushbullet

    Aucune idée si cela va fonctionner mais voici une correction (non testé, non validée) --[[ %% properties 72 ui.Pushbullet.value %% events %% globals --]] local pushbullet = { --token = "o.xxxxxxxxxxxx", titreDesMessage = "Fibaro", debug = false, -- ============================================== -- Affichage dans la console -- Paramètres : -- message : le message a afficher -- force : affiche le message même si debug est àfalse -- ============================================== log = function(self, message, force) force = force or false if (self.debug or force) then print(__convertToString(message)) end end, -- ============================================== -- Affichage les devices reconnus et actifs -- Paramètres : -- data : tableau des devices -- ============================================== displayDevices = function(self, data) self:log("----------========== D e v i c e s =========----------", true) for _,v in ipairs(data.devices) do if (v.model) then self:log(v.model .. " --- " .. v.iden, true) end end end, -- ============================================== -- Interrogation des devices -- Paramètres : -- func : une fonction a rappeler après traitement ou nil -- ============================================== getDevices = function(self, func, token) local http = net.HTTPClient() http:request("https://api.pushbullet.com/v2/devices", { options = { method = 'GET', headers = { ["Access-Token"] = token, ["Content-Type"] = "application/json" }, data = "" }, success = function(response) if (func) then func(json.decode(response.data), token) else self:displayDevices(json.decode(response.data)) end end, error = function(response) self:log(" ERROR !!! " .. url, true) end, }) end, -- ============================================== -- Envoi un message -- Paramètres : -- message : le message àenvoyer -- id : l'identifiant du device OU nil -- ============================================== sendPush = function(self, message, id, token) local http = net.HTTPClient() http:request("https://api.pushbullet.com/v2/pushes", { options = { method = 'POST', headers = { ["Access-Token"] = token, ["Content-Type"] = "application/json" }, data = json.encode({ ["body"]=message, ["title"]= self.titreDesMessage, ["type"]="note" }), device_iden = id, }, success = function(response) local data = json.decode(response.data) self:log("----------========== P u s h e s =========----------") self:log("Identifiant du message : " .. data.iden) end, error = function(response) self:log(" ERROR !!! " .. url, true) end, }) end, -- ============================================== -- Envoi d'un message push -- Paramètres : -- message : le message àenvoyer -- device : le nom du device concerné ou nil -- ============================================== send = function(self, message, device, token) if (device) then self:getDevices(function(data) local found for _,v in ipairs(data.devices) do if (v.model == device or v.iden == device) then found = true self:sendPush(message, v.iden, token) end end if (not found) then self:log(device .. " non trouvé", true) end end, token) else self:sendPush(message, nil, token) end end } -- ============================================== -- Démarrage du script -- ============================================== local tokens = {"o.xxxxxxx", "o.xxxxxxxxx"} --local device = "Nexus 5X" local idVDMaison = 72 local trigger = fibaro:getSourceTrigger() if (trigger.type == "other") then for _, v in ipairs(tokens) do pushbullet:getDevices(nil, v) end elseif (trigger.type == "property") then local value = fibaro:getValue(idVDMaison, "ui.Pushbullet.value") if (value ~= "") then for _, v in ipairs(tokens) do pushbullet:send(value, nil, v) end fibaro:call(idVDMaison, "setProperty", "ui.Pushbullet.value", "") end end
  21. Steven

    Support Gea

    Both are the same. I prefere the second option. but you should write like this (watch the brackets at the last 2 lines) local Home = {"Global", "PresentState", "Home"} local Away = {"Global", "PresentState", "Away"} local Light = {"Global", "LuxHome", "2"} local Dark = {"Global", "LuxHome", "0"} local HomeDark = {Home, Dark} local HomeLight = {Home, Light} With this modification, in GEA, you will have to write GEA.add( HomeDark , ...) It is up to you but becarefull with brackets.
  22. Steven

    Support Gea

    Hummm seems missing something, GEA.add( { HomeDark } , ...) should do the trick. same for GEA.add( { HomeLight } , ...)
  23. Steven

    Pushbullet

    Tu as tout bon. L'usage du self est très spécial, il représente l'objet lui même, dans le cas de ce scénario, c'est l'objet "pushbullet". Cela revient au même de faire. local pushbullet = {} pushbullet.send = function(pushbullet, ...) mais en lua, si tu notes pushbullet:send (avec les 2 points) il sait qu'il doit envoyer comme 1er paramètre l'objet parent à la méthode soit "pushbullet". l'utilité de faire passer la variable "self" dans tout les méthodes c'est qu'une méthode sera capable d'appeler une même méthode du même objet via cette variable. Bref, c'est pas facile à expliquer. Il y a une explication ici. Personnellement, je n'aime pas l'utiliser parce que justement on s'embrouille facilement mais c'est du LUA et je me doit donc d'exploiter ses forces et faiblesses.
  24. Steven

    Pushbullet

    Ah, j'avais pas compris que tu souhaitais 2 comptes disticts. Soit tu fait 2 scénarios séparés ... bof, soit du duplifie le code local pushbullet = { ... } .. beurkkkkk, soit tu te fais ch.. (censuré) tu passes la variable token en paramètre de méthode. Exemple : send = function(self, message, device)... devient send = function(self, message, device, token) ... Et au lieu d'utiliser self.token dans le code tu utilise token après, tu remplace ipairs(devices) du post précédent par ipairs(tokens) que tu auras bien évidement créer avant. local tokens = {"AxDfsdasdasdadasdada", "Ay8Frsadadjakldjadlkajd"} Et le tour est joué ... facile non ? Allez essaie de le faire toi de ton côté, et si tu y arrives sinon, envoi moi ton code et je le corrigerais bien volontiers, mais essaie avant. Edit : 1 compte par personne c'est mieux sinon tu risque de polluer Madame avec des notifications qui ne la concerne pas. Ma femme a son compte, moi le mien ... sauf que la HC2 ne lui envoi pas de notification ce pourquoi je n'ai pas eu besoin des 2 tokens comme toi.
  25. Steven

    Pushbullet

    Je mettrais ceci àla fin du script : local devices = {"sssadadasd", "asdasdasdasdas"} local trigger = fibaro:getSourceTrigger() if (trigger.type == "other") then pushbullet:getDevices() elseif (trigger.type == "global") then local value = fibaro:getGlobalValue("Pushbullet") if (value ~= "") then for k, v in ipairs(devices) do pushbullet:send(value, v) end fibaro:setGlobal("Pushbullet", "") end end En faisant donc attention aux lignes : 2, 11, 12 et 13
×
×
  • Créer...