Aller au contenu

Scénario Permettant De Contrôler Les Ids


Steven

Messages recommandés

@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   ;)

Lien vers le commentaire
Partager sur d’autres sites

Aye aye sir :)

Pour les scènes oui, bien que certaines n'ont pas besoin de déclencheurs et idem pour les VD.

Et pour les entêtes, ton tool peut vérifier ça facilement.

Donc ça ne resouds pas tout mais une fameuse partie quand même.

Sent from my Note4

Lien vers le commentaire
Partager sur d’autres sites

@Steven,

Félicitations, travail d'enfer. et ce qui m'impressionne encore plus, c'est que le code n'est pas kilométrique ...

 

Quelle est l'utilité de la variable "mostUseVariables" ? Dans mon GEA, j'utilise DeviceID (là  où beaucoup utilisent id), et le check se fait parfaitement.

Lien vers le commentaire
Partager sur d’autres sites

 

 

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:

il faut être root pour cela....

c'est d'autant plus dommage que c'est très facile à  faire.

mais Fibaro ne souhaite pas nous simplifier la vie avec ces IDs

Lien vers le commentaire
Partager sur d’autres sites

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.

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

1) PROUT !  :P

2) Je l'ai faite sur un pc sans photoshop et en 2 minutes sur un paint un peu plus évolué, alors les transparents... 'fo pas rêver

3) SI j'ai le temps ET SI vous êtes sages, je pourrais EVENTUELLEMENT ENVISAGER de PENSER à  la POSSIBILITE de la refaire.  :2:

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

plus sérieusement, je ne reçois ni mail, ni notif. Pourtant ce sont les même ID que dans GEA où cela fonctionne parfaitement.

Je viens même de faire un restart de ma box (qui après 18 jours était à  34% de RAM :D )

Une idée ?

 

Voici ma config

--[[
%% autostart
--]]

-- ===========================================
-- ANALYSEUR DE CODE pour relevé les problèmes d'ID
-- ===========================================

local receivePush = true		-- true pour recevoir une notification en cas de problème éventuel
local receiveEmail = true	-- true pour recevoir le rapport d'exécution par email
local checkDisabled = false -- true pour vérifier aussi les scènes et VD désactivés

-- Tableau contenant les id des smartphones devant recevoir une notification en cas de problème
-- mettre en commentaire pour envoyer à  tous les smartphones
local portables_for_notification = {166}

-- Tableau contenant les id des utilisateurs devant recevoir un e-mail résumant
-- l'analyse
local users_for_mail = {99}

-- Va executer cette scène toutes les X heures
-- mettre cette ligne en commentaire pour désactiver
local run_every = 24

-- Tableau permettant d'ajuster les warnings à  ignorer
-- Exemple
-- {id=141}  -- tous les warning du VD ou de la scène 141 seront ignoré
-- {id=141, field="id"}  -- tous les warning du VD ou de la scène 141 seront ignoré s'il concerne une variable "id"
-- {id=141, field="id", value="2000"}  -- tous les warning du VD ou de la scène 141 seront ignoré s'il concerne une variable "id" et la valeur est 2000
local ignored = {
   {id=11, field="id_not_exist", value="100056"},
   {id=12, field="Lights_On_at_end_Simulation", value="0"},
   {id=12, field="Lights_On_if_Simulation_deactivated", value="0"},
}

-- Tableau contenant les noms de variables habituellement utilisés pour identifiant
-- un ID fibaro
local mostUseVariables = {"id", "deviceid", "device_id", "module", "identifiant", "DeviceID"}

-- Si vous avez un tableau d'ID a tester
local ids = {
	--LUA_SNIPPETS = 141, SEISMOMETRE = 8, LAMPE_CHAMBRE = 12,
-- ===========
-- Devices
-- ===========
-- SECTION : Etage
-- ROOM : Bibliothèque
FUME_BIBLIOTHEQUE = 201, LUM_BIBLIOTHEQUE = 58, PRISE_PS3 = 15, THERM_BIBLIOTHEQUE = 60, TMP_BIBLIOTHEQUE = 203, VANNE_BIBLIOTHEQUE = 219,
-- ROOM : Bureau
FUME_BUREAU = 193, LUM_BUREAU = 382, NETWORK_MONITOR = 165, PRISE_BUREAU = 5, SYNOLOGY_MONITORING = 167, THERM_BUREAU = 384, TMP_BRUEAU = 195, VANNE_BUREAU = 229,
-- ROOM : Ch Enfants
FUME_MAXIMILIEN = 209, FUME_PAULINE = 213, SONOS_MAXIMILIEN = 307, THERM_CHENFANTS = 112, TMP_MAXIMILIEN = 211, TMP_PAULINE = 215, VANNE_MAXIMILIEN = 223, VANNE_PAULINE = 217,
-- ROOM : Hall de nuit
FUME_HALLNUIT_SDB = 244, FUME_HALLNUIT_SDJ = 240, LUM_HALLNUIT_SDB = 9, LUM_HALLNUIT_SDJ = 7, MVT_HALLNUIT_SDB = 342, MVT_HALLNUIT_SDJ = 26, TMP_HALLNUIT_SDJ = 242,
-- ROOM : Salle de jeux
FUME_SDJ = 197, THERM_SDJ = 298, TMP_SDJ = 199, VANNE_SDJ = 231,
-- ROOM : SdB Etage
FUME_SDBETAGE = 205, LUM_SDBETAGE = 11, THERM_SDBETAGE = 108, TMP_SDBETAGE = 207, VMC_ETAGE = 13, VANNE_RADIATEUR = 227, VANNE_SECHESERVIETTE = 225,

-- SECTION : Extérieur
-- ROOM : Avant
BOUTON_BARRIERE = 189, BOUTON_GACHE = 191, COURRIER = 312, IN2_RGBW = 32, IN3_RGBW = 33, IN4_RGBW = 34, IPCAM_AVANT = 291, LUM_AVANT = 50, MVT_EST_AVANT = 39, MVT_OUEST_AVANT = 20, NIVEAU_EAU_PLUIE = 31, PRISE_AVANT = 64, SONNETTE = 46, STAT_BARRIERE = 290, SURVSTATION_AVANT = 292,
-- ROOM : Jardin
IPCAM_JARDIN = 288, LUM_JARDIN = 369, LUM_TERREST = 106, LUM_TERROUEST = 296, LUM_TERRPAR = 110, LUM_TERRSUD = 370, MVT_EST_JARDIN = 40, MVT_OUEST_JARDIN = 21, PISCCHAUF = 70, PISCPMP = 68, SURVSTATION_JARDIN = 289, TMP_EXTERIEURE = 129, TMP_PISCINE = 154,

-- SECTION : Rez de chaussée
-- ROOM : Ch Parents
SONOS_PARENTS = 343,
-- ROOM : Cuisine
LUM_CUISINE = 375, LUM_CUISINETABLE = 376, SONOS_CUISINE = 352,
-- ROOM : Garage
ALARME_ACTIVE = 128, ALARME_INTRUSION = 127, BOUTON_GA = 104, BOUTON_GV = 102, FUME_GARAGE = 283, PRISE_MODEM = 187, RESTART_MODEM = 371, STAT_GAR_ANNABELLE = 286, STAT_GAR_VINCENT = 287, TMP_FREZE = 353, TMP_GARAGE = 285,
-- ROOM : Hall d'entrée
FUME_HALLENTRE_C = 248, FUME_HALLENTRE_S = 252, LUM_HALLENTRE = 44, LUX_HALLENTRE_S = 184, MVT_HALLENTRE_C = 177, MVT_HALLENTRE_S = 182, TMP_HALLENTRE_S = 254,
-- ROOM : Salon
ARROSAGE_PLANTES = 118, IPCAM_LIVING = 120, LUM_PETITSALON = 264, LUM_SALLEMANGER = 262, LUM_SALONTV = 258, LUM_VITRINE = 260, NEST_HUMIDITY = 117, NEST_TEMPERATURE = 116, NEST_THERMOSTAT = 115, PORTE_COULISS = 256, PRISE_PETITSALON = 62, PRISE_TV = 48, SURVSTATION_SALON = 119, VAR_INCENDIE = 310,
-- ROOM : SdB Rez
HUM_SDBREZ = 238, LUM_SDBREZ_DOUCHE = 56, LUM_SDBREZ_LAVABO = 54, LUX_SDBREZ = 237, MVT_SDBREZ = 235, TMP_SDBREZ = 236, VANNE_SECHESERVIETTE_SDB_REZ = 233,

-- SECTION : Section virtuelle
-- ROOM : Backup
BACKUP_HEATPANEL = 294, BACKUP_VARIABLES = 293,
-- ROOM : Tehniques
CHECK_INTERNET = 327, CLOCK_SYNC = 332, DEADNODESANALYSIS = 330, EMONCMS = 334, HC2_DIAGNOSTICS = 337, MY_BATTERIES = 329, SONOS_MP3 = 331, SURVSTATION_ALL = 335, SURVSTATION_EXT = 336, TECHNICAL = 333, TOP_10_POWER = 328,
-- ROOM : Variables
PRESENCE_SIMULATOR = 325, VAR_AUTH_LUMINTERIEUR = 316, VAR_AUTH_PS3 = 314, VAR_AUTH_TV = 313, VAR_AUTH_VMCETAGE = 315, VAR_CHAUFFAGE = 321, VAR_DAYPART = 323, VAR_ECS = 317, VAR_NOEL = 322, VAR_PMC = 320, VAR_REMPL_PISCINE = 319, VAR_SAISON = 324, VAR_VACANCES = 318, VARIABLES_GLOBALES = 326,
-- ROOM : Z-Spare
Z121_R1 = 122, Z121_R2 = 124, Z149_IN2 = 152, Z344_IN1 = 346, Z344_IN2 = 347, Z377_R2 = 380, Z49_R2 = 52, Z89_IN2 = 92,
-- ROOM : Z_Fake
IN21_F = 135, IN22_F = 136, IN31_F = 143, IN32_F = 144, R11_F = 271, R12_F = 273, R21_F = 275, R22_F = 277, R31_F = 279, R32_F = 281, R41_F = 355, R42_F = 357, R51_F = 359, R52_F = 361, R61_F = 363, R62_F = 365, TMP12_F = 130, TMP13_F = 131, TMP14_F = 132, TMP21_F = 137, TMP22_F = 138, TMP23_F = 139, TMP24_F = 140, TMP31_F = 145, TMP32_F = 146, TMP33_F = 147, TMP34_F = 148,
-- ROOM : Z_Hidden device
BARRIERE_CLOSED = 163, BARRIERE_OPENED = 164, BOITELETTRES_FACTEUR = 87, BOITELETTRES_PORTE = 88, CONTACT_GACHE = 91, GA_MVT = 96, GA_OPEN = 95, GV_MVT = 160, GV_OPEN = 159, NEST_CONTROLER = 113, TELEC_CHPARENTS = 304, TELEC_CUISINE = 302,

-- SECTION : Sous-sol
-- ROOM : Cave à  vin
PORTE_CAVEAVIN = 349, PRISE_PMPEAUPLUIE = 169, TMP_CAVEAVIN = 351,
-- ROOM : Chaufferie
AUTH_PAC = 378, CHAUDIERE_CMD = 74, CHAUDIERE_OUTPUT = 72, CIRCULATEUR_ETAGE = 76, CIRCULATEUR_REZ = 78, FLOD_CHAUFFERIE = 171, HP_UPDATE = 311, SOLAIRE_OUTPUT = 151, TMPH_PANNEAUX = 156, TMPL_PANNEAUX = 155, TMP_CHAUFFERIE = 173, TMP_TISUN = 153,

-- ===========
-- Users
-- ===========
    Vincent = 99,
    Annabelle = 98,

-- ===========
-- Mobiles
-- ===========
    V_Nexus5 = 166,
    A_Nexus5 = 999,
}


--[[ ===========================================
NE PAS TOUCHER
--=========================================== ]]

Lien vers le commentaire
Partager sur d’autres sites

@jojo,

 

Si tu ne recois rien, c'est que tu n'as pas de soucis, et qu'il a tout retrouve, donc pas d'ids fantomes, tout est OK.

 

Idem, j'ai rajoute ce que j'avais dans GEA et tout est OK.

 

Regarde ton debug, ni rouge, ni orange, panipwo ;-)

Tu recois push, mail, popup unqiuement si tu as un probleme ;-)

 

Pour tester, commente une de tes lignes "ignored" tu vas avoir un petit push ;-)

Lien vers le commentaire
Partager sur d’autres sites

c'est ce que je me disais, mais dans les commentaires, il me semblait qu'on ne recevait un push qu'en cas de problème, mais un mail dans tous les cas.

 

De toute façon j'ai forcé une erreur dans mon tableau pour recevoir qqch

 [DEBUG] 19:51:26: ======================
[DEBUG] 19:51:26: Starting checker v.3.4
[DEBUG] 19:51:26: Cet outil ESSAIE de trouver des erreurs d'ID dans le code LUA
[DEBUG] 19:51:26: En aucun cas il est exaustif et peux indiquer des warning qui n'ont pas de raison d'être
[DEBUG] 19:51:26: A vous d'ajuster le tableau "ignored"
[DEBUG] 19:51:26: ======================
[DEBUG] 19:51:26: code couleur :
[DEBUG] 19:51:26: .....orange = a vérifier
[DEBUG] 19:51:26: .....rouge = erreur
[DEBUG] 19:51:26:
[DEBUG] 19:51:26: --------------------------------------------
[DEBUG] 19:51:26: Checking scenes ...
[DEBUG] 19:51:26: --------------------------------------------
[DEBUG] 19:51:26: checking scene : [1] Backup_Variables
[DEBUG] 19:51:27: checking scene : [2] Backup_HeatPanel
[DEBUG] 19:51:27: checking scene : [3] Generateur_ID
[DEBUG] 19:51:27: checking scene : [4] Clignote_Lampes
[DEBUG] 19:51:27: checking scene : [5] GA_Remote
[DEBUG] 19:51:27: checking scene : [6] Barr_Open_Remote
[DEBUG] 19:51:27: checking scene : [7] Barr_Close_Remote
[DEBUG] 19:51:27: checking scene : [8] Gache_Remote
[DEBUG] 19:51:27: checking scene : [9] EmonCMS
[DEBUG] 19:51:27: checking scene : [11] Performance_Analysis
[DEBUG] 19:51:27: checking scene : [12] Simulation
[DEBUG] 19:51:27: checking scene : [13] WatchDog
[DEBUG] 19:51:30: checking scene : [14] VariablesWhereUsed
[DEBUG] 19:51:31: checking scene : [15] GEA_5.4
[DEBUG] 19:51:32: checking scene : [16] EmonCMS_Counter
[DEBUG] 19:51:32: checking scene : [17] CheckAllIDs
[DEBUG] 19:51:32: ... done
[DEBUG] 19:51:32: --------------------------------------------
[DEBUG] 19:51:32: Checking virtual devices ...
[DEBUG] 19:51:32: --------------------------------------------
[DEBUG] 19:51:33: checking vd : [118] Arrosage_Plantes
[DEBUG] 19:51:34: checking vd : [119] SurvStation_Salon
[DEBUG] 19:51:34: checking vd : [165] Network_Monitor
[DEBUG] 19:51:34: checking vd : [167] Synology_Monitoring
[DEBUG] 19:51:34: checking vd : [286] Stat_Gar_Annabelle
[DEBUG] 19:51:34: checking vd : [287] Stat_Gar_Vincent
[DEBUG] 19:51:34: checking vd : [289] SurvStation_Jardin
[DEBUG] 19:51:34: checking vd : [290] Stat_Barriere
[DEBUG] 19:51:34: checking vd : [292] SurvStation_Avant
[DEBUG] 19:51:35: checking vd : [293] Backup_Variables
[DEBUG] 19:51:35: checking vd : [294] Backup_HeatPanel
[DEBUG] 19:51:35: checking vd : [307] SONOS_Maximilien
[DEBUG] 19:51:35: checking vd : [310] Var_Incendie
[DEBUG] 19:51:35: checking vd : [311] HP_Update
[DEBUG] 19:51:35: checking vd : [312] Courrier
[DEBUG] 19:51:35: checking vd : [313] Var_Auth_TV
[DEBUG] 19:51:35: checking vd : [314] Var_Auth_PS3
[DEBUG] 19:51:35: checking vd : [315] Var_Auth_VMCEtage
[DEBUG] 19:51:35: checking vd : [316] Var_Auth_LumInterieur
[DEBUG] 19:51:35: checking vd : [317] Var_ECS
[DEBUG] 19:51:35: checking vd : [318] Var_Vacances
[DEBUG] 19:51:35: checking vd : [319] Var_Rempl_Piscine
[DEBUG] 19:51:35: checking vd : [320] Var_PMC
[DEBUG] 19:51:35: checking vd : [321] Var_Chauffage
[DEBUG] 19:51:35: checking vd : [322] Var_Noel
[DEBUG] 19:51:35: checking vd : [323] Var_DayPart
[DEBUG] 19:51:35: checking vd : [324] Var_Saison
[DEBUG] 19:51:35: checking vd : [325] Presence_Simulator
[DEBUG] 19:51:35: checking vd : [326] Variables_Globales
[DEBUG] 19:51:35: checking vd : [327] Check Internet
[DEBUG] 19:51:35: checking vd : [328] Top_10_Power
[DEBUG] 19:51:35: checking vd : [329] My_Batteries
[DEBUG] 19:51:35: checking vd : [330] DeadNodesAnalysis
[DEBUG] 19:51:35: checking vd : [331] SONOS_MP3
[DEBUG] 19:51:36: checking vd : [332] Clock_Sync
[DEBUG] 19:51:36: checking vd : [333] Technical
[DEBUG] 19:51:36: checking vd : [334] EmonCMS
[DEBUG] 19:51:36: checking vd : [335] SurvStation_All
[DEBUG] 19:51:36: checking vd : [336] SurvStation_Ext
[DEBUG] 19:51:36: checking vd : [337] HC2_Diagnostics
[DEBUG] 19:51:36: checking vd : [343] SONOS_Parents
[DEBUG] 19:51:37: checking vd : [352] SONOS_Cuisine
[DEBUG] 19:51:37: checking vd : [371] Restart Modem
[DEBUG] 19:51:37: ... done
[DEBUG] 19:51:37: --------------------------------------------
[DEBUG] 19:51:37: Checking table [ids] ...
[DEBUG] 19:51:37: --------------------------------------------
[DEBUG] 19:51:38: --> A_Nexus5 contient une référence erronée le table : 999
[DEBUG] 19:51:45: ... done
[DEBUG] 19:51:45: Message d'avertissement envoyé à  "LGE Nexus 5"
[DEBUG] 19:51:45: --- Terminé ---
Lien vers le commentaire
Partager sur d’autres sites

J'ai mis ton petit scrip, et il fonctionne.

J'ai refait un save de la scène CheckAll, et j'ai reçu la notification sur mon Androïd :) , mais pas de mail :(

Cela correspond maintenant au debug de la scène : il me dit qu'il a envoyé une notif.

Etait-il supposé mettre une autre ligne avec l'information comme quoi il avait envoyé un mail ?

Reçoit-t-on le mail même si tout est ok, ou seulement si erreur ?

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...