jojo Posté(e) le 30 septembre 2016 Signaler Posté(e) le 30 septembre 2016 en fait ça ne change rien, mais le mail est le contenu du debug ? Je vai essayé de tronquer le debug pour trouver la longueur maximale d'un mail et éventuellement splitter en plusieurs. En fait, la longuer du degub ne dépend pas du nombre de devices, mais du nombre de scènes et de VD
jojo Posté(e) le 30 septembre 2016 Signaler Posté(e) le 30 septembre 2016 Merci Steven, c'était la bonne piste : le message à envoyer est trop long chez moi. En supprimant le remplissage de la variable mailmsg dans la fonction log(), ça passe. Il n'y a donc "plus" qu'à trouver la longueur maximale d'un mail et tronquer ou splitter le message si trop long ...
pepite Posté(e) le 30 septembre 2016 Signaler Posté(e) le 30 septembre 2016 Super, c'est une bonne info ca ;-) amuse toi bien à changer la variable mailmsg ;-)
jojo Posté(e) le 30 septembre 2016 Signaler Posté(e) le 30 septembre 2016 bon, voici le résultat de mon nalyse. Je laisse à maître Steven le soin de nous pondre un beau code pour tout cela 1) les mails sont envoyés SI la somme du nbr de caractères du sujet du mail et du body (=variable mailmsg) <=2418 2) si un mail est envoyé, le body du mail est tronqué à 963 caractères, qui correspond également à la somme du sujet du mail et du body (=variable mailmsg) Je n'ai pas étudié l'influence de la longueur de l'adresse mail
Steven Posté(e) le 30 septembre 2016 Auteur Signaler Posté(e) le 30 septembre 2016 @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
jojo Posté(e) le 1 octobre 2016 Signaler Posté(e) le 1 octobre 2016 il est clair que ton code fait quelque chose, mais très bizarre le résultat. Je reçois tout en deux mails. (voir pdf joint) J'ai mis ton code juste après l'entête Gmail - HC2 Scénario CheckAllIDs v.3.4.pdf
sebcbien Posté(e) le 1 octobre 2016 Signaler Posté(e) le 1 octobre 2016 Oh le belge !! La prochaine fois fait des icônes transparentes !! :D Rah !! un si beau boulot de notre Steven national gâché par un mangeur de frite !! Voici la nouvelle icône, transparente pour Môôôsieur ... voici ce que ça donne "en situation": J'espère ne pas me faire insulter cette fois 3
mprinfo Posté(e) le 1 octobre 2016 Signaler Posté(e) le 1 octobre 2016 Tu as piqué cela sous jeedom 😀 Envoyé de mon SM-G901F en utilisant Tapatalk
sebcbien Posté(e) le 1 octobre 2016 Signaler Posté(e) le 1 octobre 2016 Non, pas possible, pas besoin de ça sur Jeedom, c'est géré par le core, mais Shhhhtttt, j'ai rien dit ! ;-) Sent from my Note4 1
Steven Posté(e) le 4 octobre 2016 Auteur Signaler Posté(e) le 4 octobre 2016 @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
jojo Posté(e) le 4 octobre 2016 Signaler Posté(e) le 4 octobre 2016 ça va déjà beaucoup mieux : Le mail est découpé en 3, mais ce n'est pas assez. J'ai remarqué également que le débug avait été "modifié" (et correspondrait au mail envoyé) [DEBUG] 14:34:30: ====================== [DEBUG] 14:34:30: Starting checker v.3.4 [DEBUG] 14:34:30: Cet outil ESSAIE de trouver des erreurs d'ID dans le code LUA [DEBUG] 14:34:30: En aucun cas il est exaustif et peux indiquer des warning qui n'ont pas de raison d'être [DEBUG] 14:34:30: A vous d'ajuster le tableau "ignored" [DEBUG] 14:34:30: ====================== [DEBUG] 14:34:30: code couleur : [DEBUG] 14:34:30: .....orange = a vérifier [DEBUG] 14:34:30: .....rouge = erreur [DEBUG] 14:34:30: [DEBUG] 14:34:30: -------------------------------------------- [DEBUG] 14:34:30: Checking scenes ... [DEBUG] 14:34:30: -------------------------------------------- [DEBUG] 14:34:30: checking scene : [1] Backup_Variables [DEBUG] 14:34:30: checking scene : [2] Backup_HeatPanel [DEBUG] 14:34:30: checking scene : [3] Generateur_ID [DEBUG] 14:34:30: checking scene : [4] Clignote_Lampes [DEBUG] 14:34:30: checking scene : [5] GA_Remote [DEBUG] 14:34:30: checking scene : [6] Barr_Open_Remote [DEBUG] 14:34:30: checking scene : [7] Barr_Close_Remote [DEBUG] 14:34:30: checking scene : [8] Gache_Remote [DEBUG] 14:34:30: checking scene : [9] EmonCMS [DEBUG] 14:34:30: checking scene : [11] Performance_Analysis [DEBUG] 14:34:30: checking scene : [12] Simulation [DEBUG] 14:34:30: checking scene : [13] WatchDog [DEBUG] 14:34:31: checking scene : [14] VariablesWhereUsed [DEBUG] 14:34:31: checking scene : [15] GEA_5.4 [DEBUG] 14:34:32: checking scene : [16] EmonCMS_Counter [DEBUG] 14:34:33: checking scene : [17] CheckAllIDs [DEBUG] 14:34:33: checking scene : [18] Test_LUA [DEBUG] 14:34:33: ... done [DEBUG] 14:34:33: -------------------------------------------- [DEBUG] 14:34:33: Checking virtual devices ... [DEBUG] 14:34:33: -------------------------------------------- [DEBUG] 14:34:34: checking vd : [118] Arrosage_Plantes [DEBUG] 14:34:34: checking vd : [119] SurvStation_Salon [DEBUG] 14:34:34: checking vd : [165] Network_Monitor [DEBUG] 14:34:34: checking vd : [167] Synology_Monitoring [DEBUG] 14:34:34: checking vd : [286] Stat_Gar_Annabelle [DEBUG] 14:34:35: checking vd : [287] Stat_Gar_Vincent [DEBUG] 14:34:35: checking vd : [289] SurvStation_Jardin [DEBUG] 14:34:35: checking vd : [290] Stat_Barriere [DEBUG] 14:34:35: checking vd : [292] SurvStation_Avant [DEBUG] 14:34:35: checking vd : [293] Backup_Variables [DEBUG] 14:34:35: checking vd : [294] Backup_HeatPanel [DEBUG] 14:34:35: checking vd : [307] SONOS_Maximilien [DEBUG] 14:34:35: checking vd : [310] Var_Incendie [DEBUG] 14:34:35: checking vd : [311] HP_Update [DEBUG] 14:34:35: checking vd : [312] Courrier [DEBUG] 14:34:35: checking vd : [313] Var_Auth_TV [DEBUG] 14:34:35: checking vd : [314] Var_Auth_PS3 [DEBUG] 14:34:35: checking vd : [315] Var_Auth_VMCEtage [DEBUG] 14:34:35: checking vd : [316] Var_Auth_LumInterieur [DEBUG] 14:34:35: checking vd : [317] Var_ECS [DEBUG] 14:34:35: checking vd : [318] Var_Vacances [DEBUG] 14:34:35: checking vd : [319] Var_Rempl_Piscine [DEBUG] 14:34:35: checking vd : [320] Var_PMC [DEBUG] 14:34:35: checking vd : [321] Var_Chauffage [DEBUG] 14:34:35: checking vd : [322] Var_Noel [DEBUG] 14:34:35: checking vd : [323] Var_DayPart [DEBUG] 14:34:35: checking vd : [324] Var_Saison [DEBUG] 14:34:35: checking vd : [325] Presence_Simulator [DEBUG] 14:34:35: checking vd : [326] Variables_Globales [DEBUG] 14:34:35: checking vd : [327] Check Internet [DEBUG] 14:34:35: checking vd : [328] Top_10_Power [DEBUG] 14:34:35: checking vd : [329] My_Batteries [DEBUG] 14:34:35: checking vd : [330] DeadNodesAnalysis [DEBUG] 14:34:35: checking vd : [331] SONOS_MP3 [DEBUG] 14:34:36: checking vd : [332] Clock_Sync [DEBUG] 14:34:36: checking vd : [333] Technical [DEBUG] 14:34:36: checking vd : [334] EmonCMS [DEBUG] 14:34:36: checking vd : [335] SurvStation_All [DEBUG] 14:34:36: checking vd : [336] SurvStation_Ext [DEBUG] 14:34:36: checking vd : [337] HC2_Diagnostics [DEBUG] 14:34:36: checking vd : [343] SONOS_Parents [DEBUG] 14:34:37: checking vd : [352] SONOS_Cuisine [DEBUG] 14:34:37: checking vd : [371] Restart Modem [DEBUG] 14:34:37: ... done [DEBUG] 14:34:37: -------------------------------------------- [DEBUG] 14:34:37: Checking table [ids] ... [DEBUG] 14:34:37: -------------------------------------------- [DEBUG] 14:34:39: ... done [DEBUG] 14:34:39: --- Terminé --- [DEBUG] 14:34:39: Mail len = 2877 [DEBUG] 14:34:39: Reduced Mail len = 2877 [DEBUG] 14:34:39: ====================== [DEBUG] 14:34:39: Starting checker v.3.4 [DEBUG] 14:34:39: Cet outil ESSAIE de trouver des erreurs d'ID dans le code LUA [DEBUG] 14:34:39: En aucun cas il est exaustif et peux indiquer des warning qui n'ont pas de raison d'être [DEBUG] 14:34:39: A vous d'ajuster le tableau "ignored" [DEBUG] 14:34:39: ====================== [DEBUG] 14:34:39: code couleur : [DEBUG] 14:34:39: .....orange = a vérifier [DEBUG] 14:34:39: .....rouge = erreur [DEBUG] 14:34:39: [DEBUG] 14:34:39: -------------------------------------------- [DEBUG] 14:34:39: Checking scenes ... [DEBUG] 14:34:39: -------------------------------------------- [DEBUG] 14:34:39: checking scene : [1] Backup_Variables [DEBUG] 14:34:39: checking scene : [2] Backup_HeatPanel [DEBUG] 14:34:39: checking scene : [3] Generateur_ID [DEBUG] 14:34:39: checking scene : [4] Clignote_Lampes [DEBUG] 14:34:39: checking scene : [5] GA_Remote [DEBUG] 14:34:39: checking scene : [6] Barr_Open_Remote [DEBUG] 14:34:39: checking scene : [7] Barr_Close_Remote [DEBUG] 14:34:39: checking scene : [8] Gache_Remote [DEBUG] 14:34:39: checking scene : [9] EmonCMS [DEBUG] 14:34:39: checking scene : [11] Performance_Analysis [DEBUG] 14:34:39: checking scene : [12] Simulati [DEBUG] 14:34:39: on [DEBUG] 14:34:39: checking scene : [13] WatchDog [DEBUG] 14:34:39: checking scene : [14] VariablesWhereUsed [DEBUG] 14:34:39: checking scene : [15] GEA_5.4 [DEBUG] 14:34:39: checking scene : [16] EmonCMS_Counter [DEBUG] 14:34:39: checking scene : [17] CheckAllIDs [DEBUG] 14:34:39: checking scene : [18] Test_LUA [DEBUG] 14:34:39: ... done [DEBUG] 14:34:39: -------------------------------------------- [DEBUG] 14:34:39: Checking virtual devices ... [DEBUG] 14:34:39: -------------------------------------------- [DEBUG] 14:34:39: checking vd : [118] Arrosage_Plantes [DEBUG] 14:34:39: checking vd : [119] SurvStation_Salon [DEBUG] 14:34:39: checking vd : [165] Network_Monitor [DEBUG] 14:34:39: checking vd : [167] Synology_Monitoring [DEBUG] 14:34:39: checking vd : [286] Stat_Gar_Annabelle [DEBUG] 14:34:39: checking vd : [287] Stat_Gar_Vincent [DEBUG] 14:34:39: checking vd : [289] SurvStation_Jardin [DEBUG] 14:34:39: checking vd : [290] Stat_Barriere [DEBUG] 14:34:39: checking vd : [292] SurvStation_Avant [DEBUG] 14:34:39: checking vd : [293] Backup_Variables [DEBUG] 14:34:39: checking vd : [294] Backup_HeatPanel [DEBUG] 14:34:39: checking vd : [307] SONOS_Maximilien [DEBUG] 14:34:39: checking vd : [310] Var_Incendie [DEBUG] 14:34:39: checking vd : [311] HP_Update [DEBUG] 14:34:39: checking vd : [312] Courrier [DEBUG] 14:34:39: checking vd : [313] Va [DEBUG] 14:34:39: r_Auth_TV [DEBUG] 14:34:39: checking vd : [314] Var_Auth_PS3 [DEBUG] 14:34:39: checking vd : [315] Var_Auth_VMCEtage [DEBUG] 14:34:39: checking vd : [316] Var_Auth_LumInterieur [DEBUG] 14:34:39: checking vd : [317] Var_ECS [DEBUG] 14:34:39: checking vd : [318] Var_Vacances [DEBUG] 14:34:39: checking vd : [319] Var_Rempl_Piscine [DEBUG] 14:34:39: checking vd : [320] Var_PMC [DEBUG] 14:34:39: checking vd : [321] Var_Chauffage [DEBUG] 14:34:39: checking vd : [322] Var_Noel [DEBUG] 14:34:39: checking vd : [323] Var_DayPart [DEBUG] 14:34:39: checking vd : [324] Var_Saison [DEBUG] 14:34:39: checking vd : [325] Presence_Simulator [DEBUG] 14:34:39: checking vd : [326] Variables_Globales [DEBUG] 14:34:39: checking vd : [327] Check Internet [DEBUG] 14:34:39: checking vd : [328] Top_10_Power [DEBUG] 14:34:39: checking vd : [329] My_Batteries [DEBUG] 14:34:39: checking vd : [330] DeadNodesAnalysis [DEBUG] 14:34:39: checking vd : [331] SONOS_MP3 [DEBUG] 14:34:39: checking vd : [332] Clock_Sync [DEBUG] 14:34:39: checking vd : [333] Technical [DEBUG] 14:34:39: checking vd : [334] EmonCMS [DEBUG] 14:34:39: checking vd : [335] SurvStation_All [DEBUG] 14:34:39: checking vd : [336] SurvStation_Ext [DEBUG] 14:34:39: checking vd : [337] HC2_Diagnostics [DEBUG] 14:34:39: checking vd : [343] SONOS_Parents [DEBUG] 14:34:39: checking vd : [352] SONOS_Cuisine [DEBUG] 14:34:39: checking vd : Gmail - HC2 Scénario CheckAllIDs v.pdf
Steven Posté(e) le 4 octobre 2016 Auteur Signaler Posté(e) le 4 octobre 2016 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.
pepite Posté(e) le 4 octobre 2016 Signaler Posté(e) le 4 octobre 2016 @jojo, le push et le debug te suffisent pas ? J'adore ce code @Maitre, j'essaie de piger ;-), qu'est ce que je galere à jouer avec les strings ;-) et les patterns
sebcbien Posté(e) le 4 octobre 2016 Signaler Posté(e) le 4 octobre 2016 Jojo c'est Big brother, quand on lit son gea, on se dit que son téléphone est bien sympa d'accepter toutes ces notifications... C'est un extraterrestre àmon avis, une mouche qui pète dans sa maison et il est au courant ;-) Sent from my Note4 5
Steven Posté(e) le 4 octobre 2016 Auteur Signaler Posté(e) le 4 octobre 2016 @jojo, le push et le debug te suffisent pas ? J'adore ce code @Maitre, j'essaie de piger ;-), qu'est ce que je galere à jouer avec les strings ;-) et les patterns 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") 1
jojo Posté(e) le 4 octobre 2016 Signaler Posté(e) le 4 octobre 2016 @Pepite, je trouve le push super pour me signaler s'il y a une erreur. Avoir un rapport par mail est sympa pour savoir que tout a bien fonctionné, sans devoir se connecter sur la box pour regarder le debug. Mais surtout, s'i y a une fonctionnalité, j'aime bien qu'elle fonctionne correctement (ie pas de mail tronqués par Fibaro, ...), même si je ne l'utilise pas. @sebcbien Mon GEA ne m'envoie que très peu de push (la variable portables est vide). Je ne reçois un push que s'il y a Portable dans les options (incendie, intrusion, porte ouverte et alarme mise, ....) => donc mon tel n'est pas beaucoup sollicité. Par contre je reçois plus de mails. 1
Sakkhho Posté(e) le 4 octobre 2016 Signaler Posté(e) le 4 octobre 2016 Installé - merci Steven, RAS chez moi mis à part des lignes d'exemples en commentaires avec des mauvais IDs les notifications marchent bien meme dans l'app du coup, 1ere fois que je vois les notifs dans l'app iPhone j'ai mis mon tableau d'iDs de GEA j'ai ca [DEBUG] 20:18:53: ... done [DEBUG] 20:18:53: -------------------------------------------- [DEBUG] 20:18:53: Checking table [ids] ... [DEBUG] 20:18:53: -------------------------------------------- [DEBUG] 20:18:55: ... done so far so good ?
pepite Posté(e) le 4 octobre 2016 Signaler Posté(e) le 4 octobre 2016 @sebcbien, @jojo, c'est clair, ton GEA est waouw, j'ai pas encore tout lu pour éviter de faire une migraine ;-) mais je vais bientot finir et voler des idées ;-) Tu n'as pas encore saturé ta boite mail lol @steven, ok j'ai compris, sendPush devient un sendGlobal mais tu continues a utiliser les fonctions de fibaro d'origine : fibaro:call... Ce que j'ai toujours un peu de mal à suivre, c'est comment sont declarés les params, je comprends ce qu'ils recuperent..mais avant ;-) je rame lol mais j'adooore @sakkho, tu vois les Popup dans l'appli ? Super, pourrais tu essayer de les supprimer stp ? ;-) tu as bien mis ta table d'ids GEA correctement ? dans le debug si tout est OK c'est effectivement comme toi quand c'est OK
Sakkhho Posté(e) le 5 octobre 2016 Signaler Posté(e) le 5 octobre 2016 pas compris la blague sur les popups pour mon GEA ca ne fonctionne pas en fait, le debug ne voit rien mais mon tableau d'ids est pas correct car je viens de changer une pile sur une smoke detector, et j'ai du l'exclure et le remettre car il voulait pas repartir ... et la scene ne voit pas que cette ID n'est plus utilisé
pepite Posté(e) le 5 octobre 2016 Signaler Posté(e) le 5 octobre 2016 Ce n'est pas une blague sakkhho pour les popups, arrives tu à les supprimer après avoir cliqué sur l'enveloppe ? tu as bien mis ton tableau d'ids supplementaire ? PAr exemple dans GEA j'utilise local users ={ pepite = 33, toto = 34 } Pour la prise en compte par CheckAllIds tu mets dans local ids = { pepite = 33, toto = 34}
jojo Posté(e) le 5 octobre 2016 Signaler Posté(e) le 5 octobre 2016 @Steven, Je crois que je vais abandonner cette fausse bonne idée de vouloir recevoir un mail. Car m^eme découpés pas ton code le mail n'est pas complet (regarde la fin du débug
Steven Posté(e) le 6 octobre 2016 Auteur Signaler Posté(e) le 6 octobre 2016 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
henri-allauch Posté(e) le 6 octobre 2016 Signaler Posté(e) le 6 octobre 2016 Merci pour ce scénario, il m'a trouvé une erreur cela prouve son efficacité. Bravo
Sakkhho Posté(e) le 8 octobre 2016 Signaler Posté(e) le 8 octobre 2016 Ce n'est pas une blague sakkhho pour les popups, arrives tu à les supprimer après avoir cliqué sur l'enveloppe ? tu as bien mis ton tableau d'ids supplementaire ? PAr exemple dans GEA j'utilise local users ={ pepite = 33, toto = 34 } Pour la prise en compte par CheckAllIds tu mets dans local ids = { pepite = 33, toto = 34} oui j'y arrive sans problème en cliquant sur la notification pour le tableau d'id GEA j'ai copier mon tableau local ids = { -- SECTION : Cave -- ROOM : Buanderie TEMP_SMOKE_CAVE = 476, TEMP_CAVE_EA_VINS = 375, CAMERA_CAVE = 324, etc... } mais le Smoke detector de la cave est maintenant en 574 après un changement de pile fastidieux ... et le script ne me donne pas d'erreur avec le 476 [DEBUG] 20:18:53: -------------------------------------------- [DEBUG] 20:18:53: Checking table [ids] ... [DEBUG] 20:18:53: -------------------------------------------- [DEBUG] 20:18:55: ... done
sebcbien Posté(e) le 8 octobre 2016 Signaler Posté(e) le 8 octobre 2016 vérifie avec le toolkit ce que tu as en 476
Messages recommandés