[Gelöst] Autocreate definiert bekanntes Gerät neu

Begonnen von RPiFHEM, 09 November 2017, 21:22:11

Vorheriges Thema - Nächstes Thema

RPiFHEM

Hallo,

ich betreibe mehrere HMS100T/HMS100TF Geräte. Nach Batteriewechsel oder gelegentlich auch mal so (bei Gewitter?!) sendet das Gerät bekanntermaßen mit neuer Adresse.
Um nicht jedes mal die FHEM-Konfiguration per Hand ändern zu müssen, habe ich mir eine Funktion gebaut, die bei einem über Autocreate neu erkannten HMS-Gerät "$NeuesDevice" und Timeout des alten Geräts "Raumsensor1" folgende Funktionen aufruft, um die Adresse zu aktualisieren.
   fhem("defmod Raumsensor1 HMS $NeueAdresse");; \
   fhem("delete $NeuesDevice");; \
   fhem("delete FileLog_$NeuesDevice");; \
   fhem("delete SVG_$NeuesDevice");; \
   fhem("save");; \

Das Ergebnis ist zunächst wie erwartet:
- Die Adresse des alten Geräts "Raumsensor1" ist auf die neue Adresse geändert.
- Das per Autocreate neu angelegte Gerät $NeuesDevice ist gelöscht.

Das Problem ist jedoch, daß Autocreate beim darauffolgenden Senden des Geräts erneut das gerade gelöschte Gerät anlegt. Die Daten werden auch nicht im Log von "Raumsensor1" abgelegt.
Autocreate weiß offensichtlich nichts von der geänderte Adresse von "Raumsensor1".
Erst nach einem Neustart läuft "Raumsensor1" korrekt mit der neuen Adresse. Ich möchte aber nicht jedes mal FHEM neu starten.

Wie erreiche ich, daß die geänderte Adresse im System bekannt gemacht wird?

Gruß RPiFHEM
Raspberry Pi, Raspi-OS Buster;
FHEM 6.0, HM-MOD-RPI-PCB, CUL;
piVCCU3, HmIP-RFUSB

rudolfkoenig

Um das Geraet effizient zu finden, gibt es im HMS-Modul (und auch in den meisten anderen Modulen) ein ID -> Name Hash. Beim Anlegen des neuen Geraetes zeigt ID in diesem Hash auf das neue Geraet. Nach defmod auf das Alte. Nach delete wird der Hash-Eintrag geloescht, damit findet das Modul bei der naechsten Nachricht kein passendes Geraet -> es wird "UNDEFINED" gemeldet, woraufhin autocreate aktiv wird.
-> Diese Methode funktioniert nicht. Besser: erst delete, dann defmod.

Btw. bei HMS gibt es generische Adressen, die all das ueberfluessig machen. Funktioniert, wenn man nicht mehr als ein Geraet pro Typ hat, Details siehe commandref Eintrag fuer HMS.

RPiFHEM

Vielen Dank für die schnelle, professionelle Hilfe - auch wenn ich wohl doch den umständlicheren Weg mit Löschen / neu Anlegen gehen muß.

Die "Wildcard-ID" hilft mir leider nicht, da ich mehrere HMS gleichen Typs nutze.
Raspberry Pi, Raspi-OS Buster;
FHEM 6.0, HM-MOD-RPI-PCB, CUL;
piVCCU3, HmIP-RFUSB