Ich habe ein Device "SML_Reader", das u.a. die Readings "json2nameValueErrorText" und "json2nameValueInput" besitzt, in denen irgendwelche Fehlermeldungen stehen. Nun wollte ich herausfinden, für welche weiteren Devices dies ebenfalls zutrifft. Um das herauszufinden, habe ich "list .* json2nameValue.*" in die FHEM-Kommandozeile eingegeben. Resultat: Große Überraschung, gar Nichts: auch "SML_Reader" wurde nicht gelistet! Ich meine, das habe ich früher schon mal so mit Erfolg probiert. Hat sich in dieser Hinsicht bei einem neueren Update etwas verändert? Letztes Update war bei mir am 02.08.2025.
Folgende Eingaben waren erfolgreich:
list .* json2nameValueInput => OK
list SML_Reader json2nameValueInput => OK
Folgende Eingaben waren erfolglos:
list .* json2nameValue.* => "No device named .* json2nameValue.* found"
list .* json2nameValue.* => Es wir gar nichts angezeigt (s.o.)
Auch die Anwendung von "{-r|-R}" ändert daran nicht viel.
Weiß jemand mehr darüber? Oder habe ich etwas mißverstanden?
Danke
Wolfgang
Hallo,
hier steht wie es geht:
https://fhem.de/commandref_modular.html#devspec
Was du magst ist:
list json2nameValue=.+
list json2nameValueInput=.+
Die Verwendung von dem Plus im regulären Ausdruck ist wichtig:
.+ bedeutet: mindestens ein Zeichen (matcht nur Readings mit "Inhalt")
.* bedeutet: auch 0 Zeichen erlaubt (matcht also auch wenn nicht vorhanden)
Gruß
Thomas
Hallo Thomas,
gebe ich
Zitatlist json2nameValue=.+
in die Kommandozeile ein, bleibt das Ergebnis dennoch leer!
Und das, obwohl eine Device zwei Readings namens "json2nameValueErrorText" und "json2nameValueInput" hat, die beide nicht leer sind.
Gruß
Wolfgang
Zitat..."json2nameValueErrorText" und "json2nameValueInput"...
Zitat von: TomLee am 03 August 2025, 16:38:58Zitat..."json2nameValueErrorText" und "json2nameValueInput"...
Ja? Kommt da noch 'was?
Die beiden Readings gibt es wirklich, falls das in Frage gestellt werden sollte. Ich würde ja gern einen ScreenShot hochladen als Beleg dafür, finde aber keine Möglichkeit...
Gruß
Wolfgang
list json2nameValueInput=.+
list json2nameValueErrorText=.+
Gut, wenn ich das so mache, bekomme ich die Devices mit dem explizit aufgeführten Reading angezeigt.
Ich möchte meine Frage anhand eines anderen Beispiels verallgemeinern:
Gebe ich
list .* battery
ein, werden (bei mir) 55 Devices aufgeführt.
Gebe ich aber
list .* batt.*
ein, werden genau Null Devices angezeigt, also gar keine.
Die Frage ist also: Warum funktioniert der zweite reguläre Ausdruck ".*" hier nicht?
Zitat von: fhem_olsi am 03 August 2025, 17:20:13Die Frage ist also: Warum funktioniert der zweite reguläre Ausdruck ".*" hier nicht?
Vermutung, in Readingnamen kann kein regulärer Ausdruck genutzt werden?
ZitatVermutung, in Readingnamen kann kein regulärer Ausdruck genutzt werden?
Scheint so; war das schon immer so?
Zitat von: fhem_olsi am 03 August 2025, 17:36:28war das schon immer so?
Ich meine ja. siehe auch https://forum.fhem.de/index.php?msg=858509
OK, ich danke Euch!