devspec2array - Reading Filter

Begonnen von Juelo, 06 Mai 2025, 16:05:56

Vorheriges Thema - Nächstes Thema

Juelo

Hallo zusammen,

ich brauch mal wieder euren Rat.

Aktuell versuche ich alle Geräte mit den folgenden Readings auszugeben.

Wenn ich den Readingsname direkt angebe, funktioniert es. Gerne würde ich jedoch einen Wildcard nutzen.
    my @devs1 = devspec2array("MatchId_55_Map!=");;
  foreach my $dev (@devs1) {

  }
}

Als Wildcard bekomme ich keine Informationen. Jemand eine Idee wie ich alle Geräte mit einem den .* Readings Filter rausbekommen kann?
    my @devs1 = devspec2array("MatchId_.*_Map!=");;
  foreach my $dev (@devs1) {

  }
}

Grüße

Otto123

Hi,
ich meine das geht nicht, wurde aber hier schon mal in einen anderen Ansatz gewandelt: https://forum.fhem.de/index.php?topic=141277.0

Gruß Otto
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

Torxgewinde

#2
Alternativ sollte das auch mit DOIF möglich sein, die Funktion kann dann auch RegEx auswerten: https://fhem.de/commandref_DE.html#DOIF_aggregation. Mit z.B. uiTable kann man dann schön kompakt eine Liste der Devices erstellen.

Konkret auf das verlinkte Beispiel bezogen, eine Liste der Devices mit /batter.*/ im Reading, per RegEx gefiltert:
defmod di_battery DOIF ##
attr di_battery state [@":batter.*":"batter.*":$_]