Ich habe jetzt nach dem Wiki mir die Abfall Anzeige nachgebaut, aber er zeigt mir immer -306 Tage an und zudem produziert er jede Menge Logeinträge die so aussehen
2020.11.01 17:36:00 3: get myAbfall events timeFormat:"%j" filter:field(summary)=~"BioabfallGruengut" limit:count=1,from=0 format:custom="$T1" : No get implemented for myAbfall
2020.11.01 17:36:00 3: get myAbfall events timeFormat:"%j" filter:field(summary)=~"GelberSackLeichtverpackungen" limit:count=1,from=0 format:custom="$T1" : No get implemented for myAbfall
2020.11.01 17:36:00 3: get myAbfall events timeFormat:"%j" filter:field(summary)=~"Restmuell_text" limit:count=1,from=0 format:custom="$T1" : No get implemented for myAbfall
2020.11.01 17:36:00 1: PERL WARNING: Argument "No get implemented for myAbfall" isn't numeric in subtraction (-) at (eval 5669261) line 5.
2020.11.01 17:36:00 3: get myAbfall events timeFormat:"%j" filter:field(summary)=~"PapierAbfall_text" limit:count=1,from=0 format:custom="$T1" : No get implemented for myAbfall
Ich hatte schon einige Parameter verändert was die Tage betrifft aber ich finde den Fehler nicht.
hier das list
Internals:
CFGFN
DEF subs {
## Die Funktion 'days' sucht nach dem Ereignis $event im Kalender und berechnet die Anzahl der verbleibenden Tage und legt sie im entsprechendem Reading $reading des DOIF-Moduls ab
sub days
{
my ($event,$reading)=@_;
set_Reading($reading,fhem('get myAbfall events timeFormat:"%j" filter:field(summary)=~"'.$event.'" limit:count=1,from=0 format:custom="$T1"')-::strftime ('%j', localtime()),1)
}
## Die Funktion 'update' bestimmt die verbleibenden Tage mit Hilfe der obigen Funktion 'days' für die jeweiligen Tonnen
sub update
{
days("PapierAbfall","PapierAbfall");days("Restmuell","Restmuell");days("GelberSackLeichtverpackungen","GelberSackLeichtverpackungen");days("BioabfallGruengut","BioabfallGruengut");
}
}
## Beim Start, um 02:00 Uhr und 08:00 Uhr wird zeitverzögert die obige Funktion 'update' aufgerufen
init {[02:00];[08:00];set_Exec("Timer",60,'update()');
}
FUUID 5f9eb378-f33f-a6c6-6c3c-cd099c6373783474
MODEL Perl
NAME di_Abfall_neu
NOTIFYDEV di_Abfall_neu,global
NR 24856
NTFY_ORDER 50-di_Abfall_neu
STATE initialized
TYPE DOIF
VERSION 22913 2020-10-04 21:46:02
OLDREADINGS:
READINGS:
2020-11-01 17:37:27 BioabfallGruengut -306
2020-11-01 17:37:27 GelberSackLeichtverpackungen -306
2020-11-01 17:37:27 PapierAbfall -306
2020-11-01 17:37:27 Restmuell -306
2020-11-01 17:36:27 block_init executed
2020-11-01 17:37:34 mode disabled
2020-11-01 17:36:27 state initialized
2020-11-01 17:36:27 timer_01_c01 02.11.2020 02:00:00
2020-11-01 17:36:27 timer_02_c01 02.11.2020 08:00:00
Regex:
accu:
uiTable:
di_Abfall_neu:
di_Abfall_neu_uiTable_c_0_0_0_0:
Restmuell ^di_Abfall_neu$:^Restmuell:
di_Abfall_neu_uiTable_c_0_1_0_0:
PapierAbfall ^di_Abfall_neu$:^PapierAbfall:
di_Abfall_neu_uiTable_c_0_2_0_0:
GelberSackLeichtverpackungen ^di_Abfall_neu$:^GelberSackLeichtverpackungen:
di_Abfall_neu_uiTable_c_0_3_0_0:
BioabfallGruengut ^di_Abfall_neu$:^BioabfallGruengut:
condition:
0 ::DOIF_time_once($hash,0,$wday);::DOIF_time_once($hash,1,$wday);set_Exec("Timer",60,'update()');
days:
helper:
DEVFILTER ^global$|^di_Abfall_neu$
NOTIFYDEV global|di_Abfall_neu
globalinit 1
last_timer 2
sleeptimer -1
intervalfunc:
localtime:
0 1604278800
1 1604300400
perlblock:
0 init
init 0
ptimer:
Timer:
count 0
name Timer
sec 60
subname update()
time 1604248647.11827
hash:
realtime:
0 02:00:00
1 08:00:00
time:
0 02:00:00
1 08:00:00
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
triggertime:
1604278800:
localtime 1604278800
hash:
1604300400:
localtime 1604300400
hash:
uiTable:
dev di_Abfall_neu
package package ui_Table;
reading BioabfallGruengut
shownostate 1
table:
0:
0:
0:
0 package ui_Table;::DOIF_Widget($hash,$reg,'di_Abfall_neu_uiTable_c_0_0_0_0',ic ("dustbin\@gray",::ReadingValDoIf($hash,'di_Abfall_neu','Restmuell')),"")
1:
0:
0 package ui_Table;::DOIF_Widget($hash,$reg,'di_Abfall_neu_uiTable_c_0_1_0_0',ic ("dustbin\@blue",::ReadingValDoIf($hash,'di_Abfall_neu','PapierAbfall')),"")
2:
0:
0 package ui_Table;::DOIF_Widget($hash,$reg,'di_Abfall_neu_uiTable_c_0_2_0_0',ic ("bag\@yellow",::ReadingValDoIf($hash,'di_Abfall_neu','GelberSackLeichtverpackungen')),"")
3:
0:
0 package ui_Table;::DOIF_Widget($hash,$reg,'di_Abfall_neu_uiTable_c_0_3_0_0',ic ("bag\@lightgreen",::ReadingValDoIf($hash,'di_Abfall_neu','BioabfallGruengut')),"")
tc:
0 align='center'
1 align='center'
2 align='center'
3 align='center'
4 align='center'
td:
0:
tr:
Attributes:
group ABFALL
icon message_garbage@blue
room HWR
uiTable {
package ui_Table;
$TC{0..4}="align='center'";
$SHOWNOSTATE=1;
## die Funktion 'ic' benutzt die Funktion 'icon_label' für die Darstellung des Icons, abhängig von der Anzahl der Tage wird die Anzahl in grün bzw. rot eingefärbt
sub ic
{
my ($icon,$days)=@_;
icon_label($icon,$days,"white",$days > 1 ? "lightgreen":"crimson")
}
}
## Tabellendefinition, die einzelnen Tonnen werden mit Hilfe der obigen Funkton 'ic' dargestellt
ic ("dustbin\@gray",[$SELF:Restmuell])|
ic ("dustbin\@blue",[$SELF:PapierAbfall])|
ic ("bag\@yellow",[$SELF:GelberSackLeichtverpackungen])|
ic ("bag\@lightgreen",[$SELF:BioabfallGruengut])
myAbfall muss als Calendermodul definiert werden: https://wiki.fhem.de/wiki/Calendar
Ok, das habe ich jetzt nochmal überprüft und mein Abfall Kalender heißt tatsächlich "AbfallKalender" aber es tut sich nichts...
Habe mal die Zeit verändert, es bleibt weiterhin bei der Zahl -306
Zitat von: moonsorrox am 01 November 2020, 22:14:12
Ok, das habe ich jetzt nochmal überprüft und mein Abfall Kalender heißt tatsächlich "AbfallKalender" aber es tut sich nichts...
Habe mal die Zeit verändert, es bleibt weiterhin bei der Zahl -306
Dann wurde offenbar die entsprechende Angabe im Kalender nicht gefunden.
Danke Damian, jetzt habe ich den Fehler gefunden, sobald in dem Namen wie bei mir z.B. in dem Code
days("Gelber Sack, Leichtverpackungen","GelberSackLeichtverpackungen");
im vorderen Teil ein Komma drin ist funktioniert das nicht mehr, d.h. ich muss nur den ersten Teil vor dem Komma eingeben dann funktioniert das.
eine Frage noch dazu ist dies jetzt einfach nur im log eine Information.? denn das sind ja die Zeiten der eingestellten update Uhrzeit
2020.11.03 08:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Bioabfall" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 08:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Gelber Sack" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 08:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Restmüll" limit:count=1,from=0 format:custom="$T1" : 316
2020.11.03 08:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Papier Abfall" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 02:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Bioabfall" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 02:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Gelber Sack" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 02:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Restmüll" limit:count=1,from=0 format:custom="$T1" : 316
2020.11.03 02:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Papier Abfall" limit:count=1,from=0 format:custom="$T1" : 309
Zitat von: moonsorrox am 03 November 2020, 12:30:49
eine Frage noch dazu ist dies jetzt einfach nur im log eine Information.? denn das sind ja die Zeiten der eingestellten update Uhrzeit
2020.11.03 08:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Bioabfall" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 08:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Gelber Sack" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 08:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Restmüll" limit:count=1,from=0 format:custom="$T1" : 316
2020.11.03 08:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Papier Abfall" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 02:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Bioabfall" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 02:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Gelber Sack" limit:count=1,from=0 format:custom="$T1" : 309
2020.11.03 02:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Restmüll" limit:count=1,from=0 format:custom="$T1" : 316
2020.11.03 02:01:00 3: get AbfallKalender events timeFormat:"%j" filter:field(summary)=~"Papier Abfall" limit:count=1,from=0 format:custom="$T1" : 309
ja, das loggt wohl das Calender-Device - vielleicht kann man das dort abstellen.
ist bei mir auf verbose 1
Zitat von: moonsorrox am 03 November 2020, 13:14:06
ist bei mir auf verbose 1
ja, Calender-Modul ist nicht meine Baustelle
ja das weiß ich und werde es mal umstellen