FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: DoubleD am 15 Dezember 2019, 17:21:03

Titel: perl-funktion um alle Readings eines Devices zu bekommen
Beitrag 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
Titel: Antw:perl-funktion um alle Readings eines Devices zu bekommen
Beitrag von: Otto123 am 15 Dezember 2019, 17:29:15
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
Titel: Antw:perl-funktion um alle Readings eines Devices zu bekommen
Beitrag von: Byte09 am 15 Dezember 2019, 17:30:56
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
Titel: Antw:perl-funktion um alle Readings eines Devices zu bekommen
Beitrag von: DoubleD am 15 Dezember 2019, 17:48:53
Vielen Dank Euch beiden!
Genau das habe ich gesucht!