vielleicht kann mir jemand weiterhelfen ...
Ich versuche gerade über devspec2array alle Devices mit dem Reading "battery" zu greifen, habe aber keine Ahnung wie :-\
list .* battery
oderlist .* r:battery
das kann ich aber doch nicht in der Form
foreach my $myItem (devspec2array("list .* battery")) {
in meinem perl-Code verwenden oder ?
Den Inhalt könnte ich mit
foreach my $myItem (devspec2array("battery=ok")) {
abfragen ...
Das list ist ein Befehl. Rudis Beispiel zeigt die Verwendung von devspec (in seinem Beispiel eben im Befehl list).
Dass "list" ein Befehl ist, ist mir schon klar - ich bekomme dann ja auch alle Devices mit Reading "battery" aufgelistet.
Ich brauche aber ein Array mit allen Devices, die das Reading "battery" besitzen, zur Auswertung in meiner 99_myUtils.pm.
Meines Wissens geht das dort mit devspec2array.
Was aber gebe ich dort mit ? "list .* battery" macht keinen Sinn - muss ich stattdessen "*. battery" nehmen ? Ich konnte hierzu leider keine Dokumentation finden ...
Zitat von: dt2510 am 26 März 2019, 12:09:03
Ich brauche aber ein Array mit allen Devices, die das Reading "battery" besitzen, zur Auswertung in meiner 99_myUtils.pm.
devspec2array(".*:FILTER=battery!=")
oder nur:
devspec2array("battery!=")
Gruß
Dan
wenn ich folgende Prozedur in meine 99_myUtils.pm einbaue
sub Test() {
foreach my $myItem (devspec2array("*. battery")) {
Log 1, $myItem;
}
führt die Ausführung (über die Eingabezeile in FHEM) von
{Test()}
zu folgenden Fehlermeldungen im Logfile:
2019.03.26 12:13:39 1: devspec2array *. battery: Unknown verb pattern '. battery' in regex; marked by <-- HERE in m/^(*. battery) <-- HERE $/ at fhem.pl line 1307.
2019.03.26 12:13:39 1: stacktrace:
2019.03.26 12:13:39 1: main::devspec2array called by ./FHEM/99_myUtils.pm (95)
2019.03.26 12:13:39 1: main::Test called by (eval 1941) (1)
2019.03.26 12:13:39 1: (eval) called by fhem.pl (1127)
2019.03.26 12:13:39 1: main::AnalyzePerlCommand called by fhem.pl (1152)
2019.03.26 12:13:39 1: main::AnalyzeCommand called by fhem.pl (1081)
2019.03.26 12:13:39 1: main::AnalyzeCommandChain called by ./FHEM/01_FHEMWEB.pm (2666)
2019.03.26 12:13:39 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (939)
2019.03.26 12:13:39 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (567)
2019.03.26 12:13:39 1: main::FW_Read called by fhem.pl (3697)
2019.03.26 12:13:39 1: main::CallFn called by fhem.pl (744)
2019.03.26 12:13:39 1: *. battery
Zitat von: DeeSPe am 26 März 2019, 12:15:29
devspec2array(".*:FILTER=battery!=")
oder nur:
devspec2array("battery!=")
Gruß
Dan
Ah ! So funktioniert es :) Danke !!
Das macht meinen nächsten Beitrag unnötig ;)