Reading "Name" verbieten?

Begonnen von M.Schulze, 09 September 2022, 10:40:40

Vorheriges Thema - Nächstes Thema

M.Schulze

Hallo,

gibt es eigentlich verbotene Reading-Namen? Wo finde ich diese?

Macht es nicht Sinn das Reading "Name" zu verbieten?
Oder festzulegen das ein virtuelles Reading "Name" immer den Gerätenamen enthält?



Durch ändern der Funktion ReadingsVal($$$) lässt sich ein Befehl

"set altergeraetename name neuergeraetename"

besser implementieren. Da bei den "Device SET Capabilities" in FHEM-WEB zu "name" dann auch der aktuelle Name angezeigt wird / vorverfüllt ist.

MfG


sub
ReadingsVal($$$)
{
  my ($d,$n,$default) = @_;

  if ($n="name") {
    return $defs{$d}{NAME};
  }

...
Muss ich das Licht aus machen?

rudolfkoenig

Die Funktion goodReadingName() in fhem.pl beschreibt erlaubte Reading Namen:
$name =~ m/^[a-z0-9._\-\/]+$/i ||
$name =~ m/^\.[^\s]*$/


Eine Blacklist gibt es nicht, und ich habe bisher auch keine Begruendung gehoert, warum sowas eingefuehrt werden sollte.

betateilchen

Zitat von: M.Schulze am 09 September 2022, 10:40:40
Oder festzulegen das ein virtuelles Reading "Name" immer den Gerätenamen enthält?

Das internal NAME enthält immer den Gerätenamen.

Zitat von: M.Schulze am 09 September 2022, 10:40:40
"set altergeraetename name neuergeraetename"

rename altergeraetename neuergeraetename

Mit dem bloßen Ändern eines Readingwertes wäre ein Gerät noch lange nicht korrekt umbenannt, da hängt noch ein bisschen mehr dran.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

M.Schulze

Zitat von: betateilchen am 09 September 2022, 11:07:09
Mit dem bloßen Ändern eines Readingwertes wäre ein Gerät noch lange nicht korrekt umbenannt, da hängt noch ein bisschen mehr dran.

Das Gerät bekommt den den neuen Namenswunsch auf den .set Endpunkt. Dann passiert das gleiche wie bei Direkteingabe in das WebIf des Gerätes. Das Gerät ändert seinen Namen und den Zeitstempel für den Namen. Das führt dazu das der neue Name publiziert wird, ergänzend mit der Hardware ID/Seriennummer. Nur anhand der angehängten ID/Seriennummer zieht FHEM dann den rename nach.
Der manuelle rename durch den Anwender darf im normalen Betrieb also auch nicht erfolgen.

MfG
Muss ich das Licht aus machen?