Aller au contenu
Steven

Scénario Permettant De Contrôler Les Ids

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ...

Partager ce message


Lien à poster
Partager sur d’autres sites

Super, c'est une bonne info ca ;-)

 

amuse toi bien à  changer la variable mailmsg ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

Oh le belge !! La prochaine fois fait des icônes transparentes !! :D :D :D

Rah !! un si beau boulot de notre Steven national gâché par un mangeur de frite !!

 

:98:

 

Voici la nouvelle icône, transparente pour Môôôsieur ...

voici ce que ça donne "en situation":

post-826-0-78255800-1475331020_thumb.png

J'espère ne pas me faire insulter cette fois  ;)

post-826-0-64163800-1475330633_thumb.png

  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as piqué cela sous jeedom 😀

Envoyé de mon SM-G901F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

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

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

ç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

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

  • Upvote 5

Partager ce message


Lien à poster
Partager sur d’autres sites

@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")
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@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.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

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é

Partager ce message


Lien à poster
Partager sur d’autres sites

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}

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

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  :P

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

vérifie avec le toolkit ce que tu as en 476

Partager ce message


Lien à poster
Partager sur d’autres sites

×