Funktioniert "list" nicht (mehr) richtig?

Begonnen von fhem_olsi, 03 August 2025, 15:24:45

Vorheriges Thema - Nächstes Thema

fhem_olsi

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

TomLee

#1
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


fhem_olsi

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

TomLee

Zitat..."json2nameValueErrorText" und "json2nameValueInput"...

fhem_olsi

Zitat von: TomLee am 03 August 2025, 16:38:58
Zitat..."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

TomLee

list json2nameValueInput=.+list json2nameValueErrorText=.+

fhem_olsi

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 .* batteryein, 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?

TomLee

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?

fhem_olsi

ZitatVermutung, in Readingnamen kann kein regulärer Ausdruck genutzt werden?
Scheint so; war das schon immer so?

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fhem_olsi