Hallo zusammen,
ich möchte den inhalt eines Raedings zählen und das Ergebnis in ein userreading ausgeben.
Reading: postme07Cont
Inhalt: "Alarm1 mit level 3, Alarm2 mit level 2, Alarm4,test1"
gewünschtes Ergebnis: postme07Count wird 4
mein Versuch:
userreadings
postme07Count {
my $tempvar = ReadingsVal("$NAME","postme07Cont",0);
$tempvar = sapply(strsplit($tempvar,","),FUN=function(x){length(x[x!="Null"])});
return $tempvar;
},
Den Teil mit "sapply(strsplit($tempvar,","),FUN=function(x){length(x[x!="Null"])})" habe ich aus einem Pearl-Beispiel entnommen, das funktioniert aber nicht.
kann mir da jemand helfen?
Zitat von: dirk.k am 05 November 2018, 17:53:15
Hallo zusammen,
ich möchte den inhalt eines Raedings zählen und das Ergebnis in ein userreading ausgeben.
Reading: postme07Cont
Inhalt: "Alarm1 mit level 3, Alarm2 mit level 2, Alarm4,test1"
gewünschtes Ergebnis: postme07Count wird 4
mein Versuch:
userreadings
postme07Count {
my $tempvar = ReadingsVal("$NAME","postme07Cont",0);
$tempvar = sapply(strsplit($tempvar,","),FUN=function(x){length(x[x!="Null"])});
return $tempvar;
},
Den Teil mit "sapply(strsplit($tempvar,","),FUN=function(x){length(x[x!="Null"])})" habe ich aus einem Pearl-Beispiel entnommen, das funktioniert aber nicht.
kann mir da jemand helfen?
musst du noch ausbauen , geht aber grundsätzlich . gibt aber bestimmt elegantere möglichkeiten
( anderes reading etc. )
test { my @array = split( /,/, ReadingsVal("$NAME","t1","1,2") ); return "ergebniss:". @array;}
gruss Byte09
DANKE