Aller au contenu
Steven

Scénario Permettant De Contrôler Les Ids

Recommended Posts


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

post-339-0-99224700-1474963885_thumb.png

CheckAll_v3.6.lua

  • Upvote 10

Partager ce message


Lien à poster
Partager sur d’autres sites

Et il fonctionne très bien :)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Toujours au top notre Steven super travail

Envoyé de mon SM-G901F en utilisant Tapatalk

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par pepite

Partager ce message


Lien à poster
Partager sur d’autres sites

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,
}

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par pepite

Partager ce message


Lien à poster
Partager sur d’autres sites

Non c'est facile assez facile.

 

Je te MP.

Partager ce message


Lien à poster
Partager sur d’autres sites

Testé et approuvé c'est de la balle !!! :60: :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

ça c'est super!!

 

Je vais essayer de le mettre en place dés ce soir.

Merci @Steven  :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

Le vieux ménage de .. d'automne que je vais faire, ça déchire! Merci Monsieur Steven  :60:

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.

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Je te place ou Steven le code du coupable ? 

MP envoyé

Partager ce message


Lien à poster
Partager sur d’autres sites

Le vieux ménage de .. d'automne que je vais faire, ça déchire! Merci Monsieur Steven  :60:

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

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut

j'ai un message d'erreur a l'instalation

: malformed vfid file (en rouge)

je fais quoi ?

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est un scénario et non pas un VD.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

 

:) :)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

×