Message populaire Steven Posté(e) le 27 septembre 2016 Message populaire Signaler Posté(e) le 27 septembre 2016 VERIFICATEUR D'ID Très souvent, trop souvent, notre HC2 plante car nous utilisons des IDs (identifiants) qui n'existent pas/plus.Ces identifiants ont tendance à changer lors : d'une mise à jour de la box de la reconfiguration d'un device Parfois, même un simple changement de pile Bref, il est difficile de contrôler périodiquement tous nos scènarios, VD, ... Voici donc un scénario qui va "tenter" de faire cette vérification pour vous. Ce scénario N'EST PAS intelligent, il analyse votre code sans le comprendre et vous affiche des éléments qui méritent d'être vérifiés. Ce scénario peut vous envoyer un push en cas d'avertissement rencontré, peux tourner à intervalle régulier et vous envoyer un rapport par email. Lorsque ce scénario rencontre quelque chose d'étrange, il vous affiche la ligne suivante : [DEBUG] 09:57:24: checking scene : [425] Graphs pull [DEBUG] 09:57:24: code --> contient une référence erronée dans fibaro:call(81, "pressButton", "1") [ignored = {id=425, field="81"}] Vous allez donc vérifier le code de votre scène (Graphs pull) dans cet exemple. Si effectivement l'ID n'existe plus, il vous suffit de corriger votre code. Inversement, si cet avertissement n'a pas de sens, il vous suffit de copier le code commencant par ignored [ignored = {id=425, field="81"}] situé en fin de ligne et de le copier entre les deux lignes suivantes local ignored = { -- {id=425, field="81"}, -- Graph pull - Ligne en commentaire } Ainsi cette scène ignorera cet avertissement pour les prochaines fois. Cette scène nécessite un petit effort de mise en place mais permet de corriger et prévenir des erreurs d'ID qui peuvent être désagréable.Courage et n'hésitez pas si vous avez des questions.Ci-joint la scène en question et l'icone créé par @sebcbien. Historique : 1.0 -> Initialisaton 2.0 -> vérifie ou non les scènes et VDs désactivés (voir local checkDisabled = false) 2.0 -> corrige l'analyse de l'entête des scènes (du mois, je crois) 2.0 -> permet d'ignorer certaines erreurs (voir local ignored = {}) 2.1 -> optimisation du code 2.2 -> lors de la recherche de la valeur d'une variable, prend en compte la position dans le code 2.3 -> Vérifie les variables courantes : "id", "deviceid", ... (voir local mostUseVariables = {}) 3.0 -> Auto-détection de GEA 3.1 -> Ignore les warnings liés à cette propre scène 3.2 -> Autostart et envoi de push + notification en cas de problème 3.3 -> Envoi de mail + relancement automatique toutes les X heures 3.4 -> Mise à disposition des utilisateurs 3.5 -> Affichage du nom du bouton en cas d'avertissement 3.6 -> Ne confond plus les variables contenant caractères et chiffres (Windows5, Radiateur_4) avec des IDs de module 3.6 -> Ne confond plus le numéro du CentralSceneEvent avec un ID de module CheckAll_v3.6.lua 10
Nico Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 Et il fonctionne très bien 1
mprinfo Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 Toujours au top notre Steven super travail Envoyé de mon SM-G901F en utilisant Tapatalk 1
pepite Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 (modifié) LE top du TOP, merci maitre. Je mets ca ce soir, couplé au Générateur d'IDs, top !! J'ai pas pu attendre ;-) un petit home.fibaro, vite fait ;-) Marche superbement bien, trouve un id ;-) qui est dans un Vd test, mis dans "ignored" : Nickel :-) La 1ère question du boulet : j'utilise par exemple 2 tableau d'ids supplementaires dans GEA : users, et mobile ;-) Je les mets plutot dans mostUseVariables ou dans "ids ? Si c'est dans Ids si je comprends bien, je comprends pas la syntaxe à utiliser :-( .. Je remets tout mon tableau d'ids "users" et tout mon tableau d'ids mobile ? Modifié le 27 septembre 2016 par pepite
Steven Posté(e) le 27 septembre 2016 Auteur Signaler Posté(e) le 27 septembre 2016 Si tu souhaites contrôler tes tableaux d'ID, il faut les mettre dans "ids" comme ceci : local ids = { USER1 = 141, USER2 = 8, USER3 = 12, MOBILE1 = 100, MOBILE2 = 32, }
pepite Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 (modifié) OK compris maitre ;-) J'avais déjà fait le "mauvais choix" en mettant dans Most_UseVariables lol J'utilise pas Pushbullet encore et concernant le HomeCenterPopup ca tourne chez vous ? L'appli doit toujours être en 1er plan ? ca fait longtemps que j'ai pas essayé ;-) Bon,je viens de tester : - Tableau d'ids supplementaire, nickel surtout que j'ai les mêmes noms et aps les memes ids, TOP - PopUP : --> En arrière plan : la petite enveloppe avec la bulle rouge "info" sur le nombre de notification apparait et on peut aller lire les notifications, dingue non ? Mais je ne sais pas encore comment on les supprime lol, elles restent toutes, si quelqu'un a l'info ;-) merci --> En 1er plan, cela apparait nickel ;-) Super TOP Petit HS : couplé au push qui ne reste pas ce POPUP est TOP. Je rate parfois des notifications "push", et là je n'en raterais pas.. Maitre : ce serait beaucoup de boulot à coupler avec GEA, que le message de GEA soit le contentBody du push ? Modifié le 27 septembre 2016 par pepite
Steven Posté(e) le 27 septembre 2016 Auteur Signaler Posté(e) le 27 septembre 2016 Non c'est facile assez facile. Je te MP.
sebcbien Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 Testé et approuvé c'est de la balle !!! :60:
Fredric Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 ça c'est super!! Je vais essayer de le mettre en place dés ce soir. Merci @Steven
MaxBlack Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 Super !! Merci 2 erreurs de corrigées.
TonyC Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 Le vieux ménage de .. d'automne que je vais faire, ça déchire! Merci Monsieur Steven Par contre Steven le script tombe chez moi avec [DEBUG] 20:55:54: line 333: attempt to concatenate a nil value sur un VD. Si tu veux je te passe le fichier qui le fait se bananer.
Steven Posté(e) le 27 septembre 2016 Auteur Signaler Posté(e) le 27 septembre 2016 Oui, bien volontiers
Invité chris6783 Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 Si GT mauvaise langue je dirais ´encore un truc fait parce que la HC2 ne sait pas faire ´ mais comme je ne le suis pas je dis bravo @Steven et merci pour le partage :-)
TonyC Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 Je te place ou Steven le code du coupable ? MP envoyé
TonyC Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 Le vieux ménage de .. d'automne que je vais faire, ça déchire! Merci Monsieur Steven Par contre Steven le script tombe chez moi avec [DEBUG] 20:55:54: line 333: attempt to concatenate a nil value sur un VD. Si tu veux je te passe le fichier qui le fait se bananer. C'est moi qui est merdoyé je n'avais pas mis à jour l'id de mon tel et laissé celui d'origine. Mais Monsieur Steven l'a vu tout de suite enfin ça lui a pris 14 secondes et des poussières ... ça marche de la balle !! 1
CharlesO Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Salut j'ai un message d'erreur a l'instalation : malformed vfid file (en rouge) je fais quoi ? merci
Berale64 Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Très joli travail. ça m'a permit de corriger deux, trois erreurs. Un truc marrant: J'ai dans une scène : id = 0 puis dans une boucle j'assigne une valeur à id. Cette ligne est signalée comme "à vérifier" found id=0 in code and 0 is not a device, please check [ignored = {id=24, field="id", value="0"}] PS: Si seulement il y avait un truc du genre $insert ça simplifierait bien la vie
sebcbien Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Salut j'ai un message d'erreur a l'instalation : malformed vfid file (en rouge) je fais quoi ? merci Corruption du fichier?Essaye de le re-telecharger du premier post Sent from my Note4
Steven Posté(e) le 28 septembre 2016 Auteur Signaler Posté(e) le 28 septembre 2016 C'est un scénario et non pas un VD.
Steven Posté(e) le 28 septembre 2016 Auteur Signaler Posté(e) le 28 septembre 2016 PS: Si seulement il y avait un truc du genre $insert ça simplifierait bien la vie 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 :-) 3
Nico Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Pareil, je t'envoi l'accès à ma Box par MP, comme ça tu te charges de l'installation... D'ailleurs ce serait bien que tu passes par ma box de test avant mise en PROD, ok ? :) 1
Berale64 Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Je ne sais pas si on parle de la même chose. Je pense à une facilité comme en language C ou d'autres. Créer un fichier unique qui contient tous les IDs des devices et on l'insert automatiquement dans les scènes. Fichier du genre: Lampe_salon = 25 VMC_cuisine = 124 etc ... et dans les scènes il suffit d'utiliser les noms. De plus, ce fichier peut être générés automatiquement, il y a déjà des exemples sur le forum. En cas de changement, on tourne la scène qui génère les Ids. Reboot et hop !!! tout est à jour. Mais je rêve ...
sebcbien Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Il faudrait voir si on pourrait stocker tout dans un label ou une VG et l'appeler en début de script. Quitte àcompresser. Mais àmon avis ça risquerait de ralentir Sent from my Note4
Messages recommandés