FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dirk.k am 05 November 2018, 17:53:15

Titel: [gelöst] userReadings: Zählen von Komma-getrennten Readinginhalten
Beitrag 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?
Titel: Antw:userReadings: Zählen von Komma-getrennten Readinginhalten
Beitrag von: Byte09 am 05 November 2018, 18:25:19
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
Titel: Antw:[gelöst] userReadings: Zählen von Komma-getrennten Readinginhalten
Beitrag von: dirk.k am 05 November 2018, 20:12:36
DANKE