Nico Posté(e) le 2 septembre 2014 Signaler Posté(e) le 2 septembre 2014 Petite réflexion et voir ce que vous en pensez : Vu que le node ID des modules ne change jamais dans la base Zwave, est ce qu'on ne pourrait pas créer un système simple qui permettent de gérer en auto les ID. Je m'explique : -On créer une variable par module dans laquelle on stock l'ID HCx du module quand on le créer avec comme comme nom de variable "NDI_xxx" ou xxx est le Node ID du module -Dans tous les scénarios, modules virtuels, main loop, etc, on utilise uniquement ces variables au lieu de l'ID HCx -Ensuite on créer une petite scène qu'on pourrait relancer après chaque dés-inclusion/inclusion d'un module, qui irait mettre à jour ces variables en y mettant le nouvel ID HCx que le module aura pris, en faisant le lien par rapport à son node ID qui lui ne change jamais dans une même HCx Qu'en pensez vous ?? Ce serait top, car du coup plus obligé de tout refaire après dés-inclusion/inclusion d'un module (Pour raison x). 1
Steven Posté(e) le 2 septembre 2014 Signaler Posté(e) le 2 septembre 2014 Marche pas Le Node ID est le même pour les périphérique liés. Si tu prend le Motion Sensor, tu auras Détecteur, Luminosité et Température sur le même Node ID. Il devient donc impossible de retrouvé le bon ... impossible n'étant pas français, on connait l'ordre d'inclusion de ces modules qui est toujours le même 1: Détecteur, 2: Température, 3 : Luminosité, ... Néanmoins, cela devient super compliquer De plus, dans les scénarios, tu seras toujours obliger de noter ID value à la main dans l'entête de ton scénario. Je comprends très très bien ta requête car c'est vraiment l'horreur cette gestion des ID mais, de mon côté, je ne vois pas de solution inintéressante.
Nico Posté(e) le 2 septembre 2014 Auteur Signaler Posté(e) le 2 septembre 2014 C'est àdire Steven ? On n'a pas le droit d'appeler en entête par une variable... snif...
Steven Posté(e) le 2 septembre 2014 Signaler Posté(e) le 2 septembre 2014 Non pas de code dans les entêtes Une réalité --[[ %% autostart %% properties 91 value %% globals --]] Une utopie --[[ %% autostart %% properties fibaro:getGlobalValue("NID_39") %% globals --]] C'est frustrant mais on a encore de la chance, sur la Zibase quand tu fait appel, par un API, à un scénario, tu dois lui passer son ID en paramètre ...sauf que cet ID est en réalité la position de scénario dans la liste donc si tu supprimes un scénario, l'ID de tout les suivants changent. Super pratique comme truc. Exemple, tu as un scénario ID #7. Tu supprime le scénario #6 et bien ton scénario #7 est devenu #6 ... et tu n'as plus qu'à changer tout tes appels. Ou alors tu supprimes jamais rien et tu réutilises. Mais c'est vraiment nul.
Nico Posté(e) le 2 septembre 2014 Auteur Signaler Posté(e) le 2 septembre 2014 Ah oui clairement, heureusement je n'ai mis aucun scénario du côté de ma Zibase Pro +, tout reste sur la HC2...
JM13 Posté(e) le 10 septembre 2014 Signaler Posté(e) le 10 septembre 2014 Ha ! je crois que j'ai pris le problème dans l'autre sens L'ID n'est important que quand tu l'utilises dans un autre VD ou une scène...donc j'ai pris comme hypothèse (surtout avec la V4 qui arrive) d'anticiper les changements d'ID des modules (et aussi les variables globales) J'ai un truc du style ci-dessous que je recopie local id = { PORTE_ENTREE = 14, PRESENCE_ENTREE = 89, LAMPE_ENTREE = 70, DETECTEUR_BAL = 15, PORTE_GARAGE = 16, LAMPE_GARAGE = 7, PRESENCE_ESCALIER = 84, FORAGE = 31, PUSH = 24, -- VD PUSH Live Notifier générique FREEBOX = 39, -- VD Test ADSL WIFI_DEVICE = 45, -- VD Plugin FREEBOX METEO = 40, -- VD Alerte météo ZWAVE = 41, -- VD Test Noeuds morts JOURS_FERIES = 51, -- VD Test jour chomé NETATMO = 52, -- VD Mise à jour Netatmo SONOS = 88, -- VD SONOS pour TTS BATTERIES = 81, -- VD My Batteries PRESENCE_PIANO = 65, LAMPE_SALON_PRISE = 17, LAMPE_SALON = 21, LAMPE_SALON_SUD = 70, PRESENCE_SALON = 65, TEMPERATURE_SALON = 66 } dans GEA par exemple (ou les gros VD) et je limite les appels transverses autant que je peux ! Donc la modif est simple car je n'utilise que des variables locales et la modif est en tête du code. MAIS tu as raison c'est quand même dommage...même pourquoi ne pas rêver...un jour... de ne pas pouvoir taper directement dans la base pour changer l'ID Tiens, en plus, j'ai crée un VD qui ré-initialise les variables globales avec toutes les adresses IP des box avec leur ID et mot de passe, etc ...que j'ai appelé "En attendant la V4"
Nico Posté(e) le 10 septembre 2014 Auteur Signaler Posté(e) le 10 septembre 2014 Lol, oui c'est du rêve... Un jour
JM13 Posté(e) le 10 septembre 2014 Signaler Posté(e) le 10 septembre 2014 On vient bien d'avoir la V4 ....3mois avant Noà«l ...je pense que pour Noà«l une V4.1...C'et possible
Nico Posté(e) le 10 septembre 2014 Auteur Signaler Posté(e) le 10 septembre 2014 Oui car la V4 c'est pas une réussite pour le moment.
sebcbien Posté(e) le 23 septembre 2014 Signaler Posté(e) le 23 septembre 2014 Ha ! je crois que j'ai pris le problème dans l'autre sens L'ID n'est important que quand tu l'utilises dans un autre VD ou une scène...donc j'ai pris comme hypothèse (surtout avec la V4 qui arrive) d'anticiper les changements d'ID des modules (et aussi les variables globales) J'ai un truc du style ci-dessous que je recopie local id = { PORTE_ENTREE = 14, PRESENCE_ENTREE = 89, LAMPE_ENTREE = 70, DETECTEUR_BAL = 15, PORTE_GARAGE = 16, LAMPE_GARAGE = 7, PRESENCE_ESCALIER = 84, FORAGE = 31, PUSH = 24, -- VD PUSH Live Notifier générique FREEBOX = 39, -- VD Test ADSL WIFI_DEVICE = 45, -- VD Plugin FREEBOX METEO = 40, -- VD Alerte météo ZWAVE = 41, -- VD Test Noeuds morts JOURS_FERIES = 51, -- VD Test jour chomé NETATMO = 52, -- VD Mise à jour Netatmo SONOS = 88, -- VD SONOS pour TTS BATTERIES = 81, -- VD My Batteries PRESENCE_PIANO = 65, LAMPE_SALON_PRISE = 17, LAMPE_SALON = 21, LAMPE_SALON_SUD = 70, PRESENCE_SALON = 65, TEMPERATURE_SALON = 66 } dans GEA par exemple (ou les gros VD) et je limite les appels transverses autant que je peux ! Donc la modif est simple car je n'utilise que des variables locales et la modif est en tête du code. C'est une bonne idée, mais pourquoi ne pas stocker ça dans une variable globale, ça ne fonctionnerait pas ? Il suffirait de faire la modif à un seul endroit et tout serait mis à jour. edit: je me réponds à moi même après essai, les variables globales n'ont pas l'air d'aimer les tables :-/
Messages recommandés