perl-funktion um alle Readings eines Devices zu bekommen

Begonnen von DoubleD, 15 Dezember 2019, 17:21:03

Vorheriges Thema - Nächstes Thema

DoubleD

Hallo

Wie der Titel schon sagt, suche ich eine Möglichkeit in perl um alle Readings-Namen eines Devices zu erhalten.

sowas wie my alleReadings = ReadAllReadings("Device","fehler");

Danke & Gruß
Daniel

Otto123

Hallo Daniel,

so in etwa, für die FHEM Kommandozeile:
{my $d="fuehler1";;my $hash = $defs{$d};;my $readings = $hash->{READINGS};;my $message="{ ";;foreach my $a ( keys %{$readings} ) {my $val=ReadingsVal($d,$a,"error");;$message .= toJSON($a)." : ".toJSON($val)." ," };;chop($message);;$message.="}"}
Habe ich gemacht um alle readings eines Gerätes in einen json String zu bekommen :)

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

Byte09

Zitat von: DoubleD am 15 Dezember 2019, 17:21:03
Hallo

Wie der Titel schon sagt, suche ich eine Möglichkeit in perl um alle Readings-Namen eines Devices zu erhalten.

sowas wie my alleReadings = ReadAllReadings("Device","fehler");

Danke & Gruß
Daniel

so bekommst du alle readings in ein array:
my $devhash = $defs{"Fritzbox"}; #name des devices
my $testreading = $devhash ->{READINGS};
my @areadings = ( keys %{$testreading} ); # enthält alle readings des devices


gruss Byte09

edit: da war otto schneller

DoubleD

Vielen Dank Euch beiden!
Genau das habe ich gesucht!