Autor Thema: Reading "Name" verbieten?  (Gelesen 1400 mal)

Offline M.Schulze

  • Commercial User
  • Jr. Member
  • **
  • Beiträge: 55
  • Principal Strategist, Maker
    • Home Control DEMO
Reading "Name" verbieten?
« am: 09 September 2022, 10:40:40 »
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};
  }

...
Home Control (HCtrl.de) - Operating Home-Automation as a Service (HAaaS)
https://musterhaus:demo@musterhaus.hctrl.de/

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25853
Antw:Reading "Name" verbieten?
« Antwort #1 am: 09 September 2022, 10:53:40 »
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.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18526
Antw:Reading "Name" verbieten?
« Antwort #2 am: 09 September 2022, 11:07:09 »
Oder festzulegen das ein virtuelles Reading "Name" immer den Gerätenamen enthält?

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

"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.
-----------------------
Möchte man beruflich "etwas mit Menschen" machen, ohne etwas mit deren Dummheit zu tun haben zu müssen,
bleibt eigentlich nur der Beruf des Bestatters übrig.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline M.Schulze

  • Commercial User
  • Jr. Member
  • **
  • Beiträge: 55
  • Principal Strategist, Maker
    • Home Control DEMO
Antw:Reading "Name" verbieten?
« Antwort #3 am: 09 September 2022, 11:27:57 »
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
Home Control (HCtrl.de) - Operating Home-Automation as a Service (HAaaS)
https://musterhaus:demo@musterhaus.hctrl.de/

 

decade-submarginal