Attribut global uniqueID => keine Auswirkung

Begonnen von hexenmeister, 12 Mai 2018, 15:51:21

Vorheriges Thema - Nächstes Thema

hexenmeister

Moin!

Mir ist zufällig aufgefallen, dass im 'global'-Gerät definierte 'uniqueID'-Attribut keine Auswirkungen hat.
In 'fhem.pl' definierte Funktionen 'getKeyValue' und 'setKeyValue' verwendet festverdrahtete Werte.
Sollte das nicht repariert weden, oder werden Nebenwirkungen erwartet?

sub
getKeyValue($)
{
  my ($key) = @_;
  my $fName = $attr{global}{modpath}."/FHEM/FhemUtils/uniqueID";
  my ($err, @l) = FileRead($fName);
  return ($err, undef) if($err);
  for my $l (@l) {
    return (undef, $1) if($l =~ m/^$key:(.*)/);
  }
  return (undef, undef);
}

# Use an undefined value to delete the key
sub
setKeyValue($$)
{
  my ($key,$value) = @_;
  my $fName = $attr{global}{modpath}."/FHEM/FhemUtils/uniqueID";
  my ($err, @old) = FileRead($fName);
  my @new;
  if($err) {
    push(@new, "# This file is auto generated.",
               "# Please do not modify, move or delete it.",
               "");
    @old = ();
  }
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rudolfkoenig

uniqueID wird mW z.Zt. nur von fheminfo verwendet, um die freiwilligen Statistiken zu erstellen. uniqueID wird in der Datei FHEM/FhemUtils/uniqueID abgelegt, und kann vom Benutzer geaendert werden, nur eben nicht ganz einfach, was meiner Ansicht nach angesichts des "typischen" FHEM-Benutzers auch ok ist.
Ich bin z.Zt. eher der Ansicht, dass das global Attribut ueberfluessig ist, und ich wuerde es ausbauen.Andere Meinungen?

hexenmeister

Es gibt bereits eine Reihe weiterer Module, die diese Datei verwenden (vor Allem um Passwörter abzulegen). Das wären z.B. FRITZBOX, SYSMON, FB_CALLMONITOR,
FB_CALLLIST.

Ich würde es besser finden, wenn man das definieren kann.
Mein Anwendungsfall: ich habe mehrere FHEM-Instanzen parallel aus dem selben Verzeichniss (natürlich mit unterschiedlichen Config-Dateien) laufen. Es wäre meines Erachtens sinnvoll, wenn diese jeweils eine eigene ID hätten.

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rudolfkoenig

Wenn ich mich recht erinnere, was das uniqueID Attribut nicht fuers spezifizieren des Dateinamens, sondern fuer den Inhalt von uniqueID gedacht. Um deinen Wunsch zu entsprechen, muesste man ein neues Attribut uniqueIDFileName (oder besser "keyFileName") einfuehren.

hexenmeister

Ok, wird aus dem Commandref leider nicht klar. Ich wäre dann dafür, diesen Attribut zu entfernen und eine neuen "keyFileName" in "global" zu definieren. Dein Einverständnis vorausgesetzt, würde ich in den  nächten Tagen einen entsprechenden Patch vorbereiten.

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rudolfkoenig

Kein Grund fuer den Patch, steht schon auf meiner TodoListe.

rudolfkoenig

Habe keyFileName ein- und uniqueID ausgebaut.

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

betateilchen

Vielleicht sollte man in diesem Zusammenhang irgendwann mal die 99_Utils.pm bereinigen,

Dort stehen nämlich getUniqueId(), setkeyValue() und getKeyValue() noch in der commandref, vermutlich noch aus der Zeit, als diese Funktionen noch nicht in der fhem.pl vorhanden waren.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Und könnte es vielleicht sein, dass dieser Thread in einem völlig falschen Forumbereich steht? Unter

CUL -> Entwicklung -> Fehlerberichte

finde ich das Thema irgendwie völlig merkwürdig.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

Zitat von: betateilchen am 16 Mai 2018, 22:27:17
Unter

CUL -> Entwicklung -> Fehlerberichte

finde ich das Thema irgendwie völlig merkwürdig.


Ähem.. Du hast recht. Anfangs habe ich jedoch angenommen, dass es das Attribut 'uniqueID' nicht funktioniert hat (tat es ja auch nicht und wurde jetzt auch entfernt). Daher Fehlerberichte. Habe mich wohl aber auf 'CUL' verklickt. Ich verschiebe mal FHEM - Entwicklung -> FHEM Development. Danke für den Hinweis.


Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

betateilchen

Man hätte den Ausbau des Attributes vielleicht auch ankündigen sollen. Es tauchen schon die ersten Fehler-Threads auf, in denen User nicht wissen, wie sie mit der Fehlermeldung beim FHEM Start umgehen sollen, wenn sie das Attribut bisher gesetzt hatten.

Mal wieder so ein typischer Schnellschuß, mit dem man die Anwender grundlos ärgert. Niemandem hätte das Attribut wehgetan, auch wenn es nicht benutzt wird. Es gibt so viele sinnlose Attribute in FHEM, da kommt es auf eines mehr oder weniger nicht an.

Das Attribut keyFileName hätte man ja trotzdem einführen können.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

Grundsätzlich könnte man natürlich ankündigen. Da das Attribut jedoch eh nie funktioniert hat, ist es sichern nicht so wild...
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy