CALVIEW - Fehler wenn Terminelement ein | (pipe) enthält

Begonnen von tobi925, 02 Mai 2023, 13:08:23

Vorheriges Thema - Nächstes Thema

tobi925

Wenn eine Terminbeschreibung ein | enthält, kommt es bei mir zu einem Fehler

2023.05.02 11:51:38.700 1: PERL WARNING: Argument " Besprechungsoptionen<https://teams.microsoft.com/meetin..." isn't numeric in numeric eq (==) at ./FHEM/57_CALVIEW.pm line 226.
2023.05.02 11:51:38.700 1: stacktrace:
2023.05.02 11:51:38.700 1:     main::__ANON__                      called by ./FHEM/57_CALVIEW.pm (226)
2023.05.02 11:51:38.700 1:     main::CALVIEW_GetUpdate             called by ./FHEM/57_CALVIEW.pm (81)

Das Problem dürfte generisch auch für alle anderen Elemente gelten. Schuld ist die Funktion getsummary, die | als Feldtrenner verwendet.
Vorschlag: Anderes Trennzeichen verwenden. ASCII(30) = RS fand ich passend. So funktionierts bei mir:
Zeile 346 ersetzen mit:
my $all = CallFn($calendername, "GetFn", $defs{$calendername},("-","events","format:custom='\$U\x1e\$T1\x1e\$T2\x1e\$S\x1e\$L\x1e\$DS\x1e\$CA\x1e\$d'"));
ebenso Zeile 351:
my @lineparts  = split(/\x1e/,$line);