FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: boeho am 18 Oktober 2016, 13:23:25

Titel: Alle attr von Devices auslesen
Beitrag von: boeho am 18 Oktober 2016, 13:23:25
Hallo,
ich versuche in meinem 99_myUtil.pm alle Devices vom Typ dummy mit al seinen attr zu lesen und in eine Datei zu schreibe.
ich bekomme im LOG den Fehler:
'Type of argument to each on reference must be unblessed hashref or arrayref at ./FHEM/99_myUtils.pm line 1206.'
Hier mal dazu mein Perlversuch:

foreach my $dev (sort keys %defs) {
if ( $defs{$dev}{TYPE} eq "dummy" ) {
my $output = "define $dev $defs{$dev}{TYPE} $defs{$dev}{DEF}\n";
while ( my ($key, $value) = each($attr{$dev}) ) { ### hier passiert es
$output .= "attr $dev $key $value\n";
}
print OUTdef "$output\n";
my $devState = Value("$dev");
my $zeile_set= "set $dev $devState";
print OUTset "$zeile_set\n";
}
}

Laut Syntax braucht each ein Hash und diese Syntax geht wohl nur in älteren Perl.
Kann mir jemand helfen, wie es richtig sein muss?
Wo findet man denn eine Beschreibung zu solchen Dingen wie %defs und sicher noch viele anderen????
Schon mal Dank an meine Retter.
Titel: Antw:Alle attr von Devices auslesen
Beitrag von: Hans Franz am 18 Oktober 2016, 14:56:18
Meine Perlverion ist wohl zu alt, um es nachzustellen, aber versuch es mal so:
while ( my ($key, $value) = each %{$attr{$dev}} )

Gruß
Hans
Titel: Antw:Alle attr von Devices auslesen
Beitrag von: boeho am 18 Oktober 2016, 17:42:51
Es rennt und alles richtig.
Nochmals Dank.
Hast Du einen Lnk wo man etwas über die FHEM Hashes lesen kann???
Gruß
Titel: Antw:Alle attr von Devices auslesen
Beitrag von: Hans Franz am 19 Oktober 2016, 00:21:11
Schön das es klappt. Als Quelle kenne ich auch nur den Code der Module.

Gruß
Hans
Titel: Antw:Alle attr von Devices auslesen
Beitrag von: JoWiemann am 19 Oktober 2016, 08:49:18
Schau mal hier: http://www.fhemwiki.de/wiki/DevelopmentModuleIntro

Grüße Jörg
Titel: Antw:Alle attr von Devices auslesen
Beitrag von: boeho am 25 Oktober 2016, 20:49:19
Dank Euch beiden. Es ist genau was ich meinte.
Gruß
Titel: Antw:Alle attr von Devices auslesen
Beitrag von: Loredo am 25 Oktober 2016, 20:55:02
list -r TYPE=dummy