-
Compteur de contenus
4 434 -
Inscription
-
Dernière visite
-
Jours gagnés
201
Tout ce qui a été posté par Steven
-
De tête, je sais que le dernier mail est oublié car je n'envoi le mail que lorsqu'on atteint la limite, oubliant ainsi les derniers caractères .. soit le dernier mail. Perso, je ne pense pas que cela soit judicieux de découper tout cela pour l'envoi par mail, surtout que dans ton cas, on peux envoyer de vrai mail sans passer par fibaro
-
Ce code est un peu tordu car il contourne le comportement normal d'un fonction de fibaro. Chez moi le push ne fonctionne pas, je contourne donc le code de fibaro uniquement pour le "sendPush" et je le remplace par un setGlobal("Pushbullet", ...) fibaro.previouscall = fibaro.call fibaro.call = function(self, deviceID, actionName, ...) if (actionName == "sendPush") then local params = {...} fibaro:setGlobal("Pushbullet", params[1]) else fibaro:previouscall(deviceID, actionName, {...}) end end fibaro:call(505, "sendPush", "Coucou2")
-
Tu peux jouer avec le local max = 900 pour essayer d'avoir quelque chose de correcte, mais je trouve trop nul de devoir envoyé tant d'email pour cela.
-
Je suis en 4.090 et le test =="" sur une global inexistante ne plante pas, mais ne fonctionne pas. Et ce depuis fort longtemps. En 4.100, le code suivant plante ? local res = fibaro:getGlobal("Coucou") print(type(res)) if (fibaro:getGlobal("Coucou") == "") then print("estVide") else print("n'est pas vide") end Console [DEBUG] 13:57:13: nil [DEBUG] 13:57:13: n'est pas vide
-
@jojo fibaro.previouscall = fibaro.call fibaro.call = function(self, deviceID, actionName, ...) if (actionName == "sendEmail") then local subject = "" local message = "" for i, v in ipairs({...}) do if (i == 1) then subject = tostring(v) elseif (i == 2) then message = tostring(v) end end local size = string.len(message) local max = 900 local msg = "" local j = 0 for i = 1, size do j = j + 1 msg = msg .. string.sub(message, i, i) if (j > max) then fibaro:previouscall(deviceID, actionName, subject, msg) print(msg) msg = "" j = 0 end end else fibaro:previouscall(deviceID, actionName, {...}) end end
-
Je suis aux anges .. ma box me refuse de faire la mise à jour vers la 4.100, je suis donc bloqué en 4.090 et cela pour mon plus grand bonheur
- 12 330 réponses
-
- 3
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
J'ai relu le code .. en effet, je comprends mieux :-)
- 80 réponses
-
- Module Virtuel
- Bouton
-
(et 1 en plus)
Étiqueté avec :
-
De doc officiel, j'en connais pas. Par contre @Tomzebest avait fait un travail de titan en traduisant la doc d'une vieille version (je ne sais plus laquelle). Mais cela n'a pas beaucoup évoluer. Voici le lien http://www.domotique-fibaro.fr/index.php/cp/2-api-fibarofr/ mais il suffit de cliquer sur "API Fibaro.fr" dans le menu de ce même forum. Encore bravo à @Tomzebest.
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@sebcbien Tu as pu tester ? Car on avait du changer le système pour la raison suivante : Si tu clique sur un bouton ... tu ne peux pas recliquer dessus tant que le code du précédent click n'est pas terminé. Et comme tu as un sleep() cela ne fonctionnait pas. En outre, si cela refonctionne en version > 4.080 alors le code original doit fonctionner.
- 80 réponses
-
- Module Virtuel
- Bouton
-
(et 1 en plus)
Étiqueté avec :
-
Absolument. Tout ce que GEA ne sait pas faire est normalement réalisable àtravers "Function".
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Presque juste Tu avais une toute petite erreur : fibaro:getGlobal("index") > 1 fibaro:getGlobal("index") retourne une chaîne de caractères que tu compares avec un number ... il manque juste tonumber(...) > 1
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
GEA.add({"Global+", "index", 0}, -1, "Valeur : #value#", {{"Function", function() fibaro:call(13, "setValue", fibaro:getGlobal("index")) end}}) @pepite C'est tout a fait possible mais pas implémenté dans le GEA actuel, A vu d'oeil, il faudrait juste remplacer : fibaro:call(id, "setValue", entry[GEA.keys["PARAMS"]][i][2]) -- et fibaro:call(id, "setValue", entry[GEA.keys["PARAMS"]][i][3]) avec fibaro:call(id, "setValue", GEA.getMessage(entry[GEA.keys["PARAMS"]][i][2])) -- et fibaro:call(id, "setValue", GEA.getMesage(entry[GEA.keys["PARAMS"]][i][3])) GEA.getMessage() étant la fonction qui a pour but de rempalcer les #value#, .. par les valeurs.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
le #value# n'est traduit que dans les cas suivants : - Global - Label - et dans les messages push Cela ne fonctionne donc pas avec Value. Et cela n'est pas possible de faire cela en GEA pure et dur ... ou il faut passer par une function.
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Je suis sà»rement pas le seul à avoir eu cela donc je me retourne vers vous pour une petite question. En effet, impossible de mettre à jour la box. Quand je valide les à cases à cocher et appuie sur "Install", la page de configuration se recharge et ... rien. Voilà , pour l'instant, je suis bloqué en 4.090. Qui, heureusement, est stable chez moi. Si quelqu'un a une petite idée, c'est volontiers. P. S : Redémarrage déjà tenté.
-
@jojo Pourrais-tu essayer de mettre ce code au début du scénario CheckID. J'ai aucune idée si cela va fonctionner mais je suis curieux. N'étant pas à la maison, je ne peux pas tester donc ça passe ou ça casse fibaro.previouscall = fibaro.call fibaro.call = function(self, deviceID, actionName, ...) if (actionName == "sendEmail") then local subject = "" local message = "" for i, v in ipairs({...}) do if (i == 1) then subject = tostring(v) elseif (i == 2) then message = tostring(v) end end local size = string.len(message) local max = 900 local msg = "" local j = 0 for i = 1, size do j = j + 1 msg = msg .. string.sub(message, i, i+1) if (j > max) then fibaro:previouscall(deviceID, actionName, subject, msg) msg = "" j = 0 end end else fibaro:previouscall(deviceID, actionName, {...}) end end
-
Le message est peut-être trop long, trop de devices.
-
Je n'ai pas mis de ligne informant l'envoi de mail. Le mail part dans tous les cas (erreur ou pas) Le code pour l'envoi de mail est : local v = 2 -- id de l'utilisateur local scene_name = "Nom de la scene" local version = "0.0" local mailmsg = "Le résumé complet du debug" fibaro:call(v, "sendEmail", "HC2 Scénario " .. scene_name .. " v." .. version, mailmsg) Qui correspond à la doc de fibaro http://www.fibarouk.co.uk/support/lua/actions-use-fibarocall-api/actions-arguments-usage/#sendEmail Par contre, chez moi, les push ET les mails ne fonctionne pas depuis ma HC2, je ne peux donc pas tester. Mais je suis 99,9% sà»r du code.
-
Pourrais-tu créer un scénario en y mettant juste ces 2 lignes stp .. pour tester. local v = 166 local message = "Test" fibaro:call(v, "sendPush", "["..v .. "] : " .. message)
-
mostUseVariables regroupe une liste de variable généralement utilisé pour mapper un ID. local id = X local deviceId = X ... Le script va donc toutes les analyser comme dans ton cas avec DeviceID. On peux en rajouter selon sont style de programmation. Si tu as l'habitude d'utiliser "local pureeDInvariableQuiChange = Y", tu peux l'ajouter à la liste.
-
@kioneoranga De rien. @Berale24 et @sebcbien, J'y ai pensé mille fois et il y a une dizaine de moyen de faire cela, mais un problème persiste ... les entête. On devra toujours tapper le bon ID dans l'entête de nos scénario, perdant ainsi tout intérêt à la centralisation des IDs. @Nico Tout dépend du ° alcool que tu fourni
-
Purée mais t'es vraiment un flemmard :-) J'ai déjàmis en fin de ligne la commande a utiliser pour simplifier. La prochaine fois, je passe directement chez toi pour l'installer :-)
-
C'est un scénario et non pas un VD.
-
Oui, bien volontiers
-
Non c'est facile assez facile. Je te MP.
-
Oui, environ 3 jours par mois OK