"Name" in SET Liste ?

Begonnen von M.Schulze, 12 April 2020, 08:29:03

Vorheriges Thema - Nächstes Thema

M.Schulze

Hallo,

ich möchte in meinem Modul "Name" zur SET Liste hinzufügen. Name wäre in diesem Fall kein Reading sondern der FHEM Name der immer auch dem Gerätenamen entspricht.

Ich vermisse die Funktion die dem Nutzer von FHEM WEB dann, statt einem leeren Textfeld, den aktuellen FHEM Namen anbietet, zur Anpassung, ggf mit Gültigkeitsprüfung.

Habe ich da was übersehen?


MfG

Muss ich hier das Licht aus machen?

rudolfkoenig

Es tut mir leid, ich verstehe das Problem nicht genau genug, und ich will nicht raten.
Am besten ganz konkret werden.

M.Schulze

#2
Hallo,

es geht um  'NAME' in den internals.

Ein 'rename <oldname> <newname>' führt nur zur lokalen Umbenennung der Resource. Das Gerät funktioniert dann nicht mehr weil das reale Gerät den rename nicht mitbekommt. Das trennt die Kommunikation.

Verbesserung 1: Rename sollte durch das Modul verboten werden können. (Die Rename-Funktion wird ausgeführt, nachdem ein Gerät umbenannt wurde -> zu spät!)


Daher muss ein rename über den SET Befehl angestoßen werden.  KEY=VALUE, NAME=<newname> muss erzeugt werden. Das Gerät wird dann antworten: 'ja,ich wurde umbenannt', mit neuem Namen. Erst jetzt könnte die FHEM rename Funktion aufgerufen werden. Vielleicht ein Widerspruch zur Verbesserung 1. Auch könnte ein Rename im WebIf des Gerätes ausgeführt werden.


Verbesserung 2: Wenn in der SET LIST 'NAME' enthalten ist, wird dem Nutzer 'NAME'  aus den internals angeboten, und bei Änderung / Auswahl auf  Gültigkeit (FHEM Namen) geprüft.


MfG
Muss ich hier das Licht aus machen?

justme1968

du schmeißt alles mögliche durcheinander und deine vorschläge sind nicht sinnvoll.

wenn ein modul mit einem rename nicht klar kommt ist es ein fehler im modul. nicht im rename und auch nicht in fhem.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

ZitatDas Gerät funktioniert dann nicht mehr weil das reale Gerät den rename nicht mitbekommt. Das trennt die Kommunikation.
Ich kann diese Argumentation nicht nachvollziehen. Die Bezeichnung in FHEM muss nicht mit der GeraeteId gleich sein, diese koennen separat gespeichert werden. RenameFn hat die Moeglichkeit interne Datenstrukturen anzupassen, set ist aus dieser Hinsicht nicht besser, es sei denn, es verweigert die Operation, das sehe ich aber bei rename nicht begruendet.

Abgesehen davon, jedes Modul hat die Freiheit die Argumente der set oder get Befehle instanzspezifisch anzugeben, siehe MQTT oder ZWave als Beispiel. Wenn ein Modul den Namen des Geraetes als Befehl order Argument zu einem Befehl haben will, dann muss sie selbst beim Antwort auf "set NAME ?" dafuer sorgen.