Perl Fehler Kalender notify

Begonnen von Leinad, 09 November 2014, 15:06:32

Vorheriges Thema - Nächstes Thema

Leinad

Ich habe mir aus den im Forum verfügbaren Codeschnipseln meinen Abfallkalender gebastelt.
Nach einigem Probieren funktioniert es auch... fast...

Ein Problem habe ich allerdings, ich denke das liegt daran, dass das notify bereits auslöst, bevor der Kalender komplett eingelesen ist?!



Hier mal meine fhem.cfg:

define Kalender Calendar ical url xxx.ics 14400

define Papiertonne dummy
attr Papiertonne group Abfall Countdown
attr Papiertonne icon BlaueTonne
attr Papiertonne room Kalender

define Restmuell dummy
attr Restmuell group Abfall Countdown
attr Restmuell icon GraueTonne
attr Restmuell room Kalender

define gelber_Sack dummy
attr gelber_Sack group Abfall Countdown
attr gelber_Sack icon GelberSack
attr gelber_Sack room Kalender

define Abfall_Update notify Kalender:modeUpcoming.* {Abfalltermine("$EVENT")}
attr Abfall_Update room Unsorted

Logauszug:

2014.11.09 15:00:09.564 3: get Kalender summary 2526212 : Restmuelltonne
2014.11.09 15:00:09.564 3: get Kalender start 2526212 : 01.12.2014 00:01:00
2014.11.09 15:00:09.564 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 86.
2014.11.09 15:00:09.564 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 90.
2014.11.09 15:00:09.565 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 98.
2014.11.09 15:00:09.565 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 102.

2014.11.09 15:00:09.566 3: get Kalender summary 2526213 : Restmuelltonne
2014.11.09 15:00:09.566 3: get Kalender start 2526213 : 29.12.2014 00:01:00
2014.11.09 15:00:09.567 3: get Kalender summary 2526236 : Bioabfallbehaelter
2014.11.09 15:00:09.567 3: get Kalender start 2526236 : 10.11.2014 00:01:00
2014.11.09 15:00:09.569 3: get Kalender summary 2526237 : Bioabfallbehaelter
2014.11.09 15:00:09.569 3: get Kalender start 2526237 : 24.11.2014 00:01:00


Die Zeile in der myUtils sieht so aus:

my $dayDiff = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);

Jetzt denke ich, dass nach dem Einlesen des ersten Ereignisses aus dem Kalender, hier Restmüll, die anderen Variablen noch leer sind, und nicht übergeben werden.
Die Zeile für Restmüll taucht auch nicht als Fehler auf. Lediglich Gelber Sack. Bio usw.

Wie kann ich das notify erst ausführen, nachdem der Kalender kompett eingelesen ist?!



//EDIT: Oder sollte ich den Variablen in der myUtils am Anfang einen Zahlenwert zuweisen? Momentan definiere ich sie mit

my $dtPapier = '';