Ich habe mir eine Testumgebung Fhem in einem Docker Container erstellt um es mal zu testen.
Ein DOIF verursacht aber immer Fehler die so aussehen.
2020.10.06 18:04:25.247 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_3_0_0',::ReadingValDoIf($hash,'di_Abfall_1','PapierAbfall'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','PapierAbfall_days')))
2020.10.06 18:04:25.247 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_2_0_0',::ReadingValDoIf($hash,'di_Abfall_1','BioabfallGruengut'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','BioabfallGruengut_days')))
2020.10.06 18:04:25.247 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_1_0_0',::ReadingValDoIf($hash,'di_Abfall_1','GelberSackLeichtverpackungen'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','GelberSackLeichtverpackungen_days')))
2020.10.06 18:04:25.247 3: di_Abfall_1:Warning in
In meinem Produktiv Fhem bekomme ich diese Fehler nicht, kann mir jemand sagen warum ich diese Fehler bekomme:? Docker ist noch absolutes Neuland, aber der Fhem Container läuft darin.
Auf was basiert die benutzte docker-Variante?
Benutzt docker den gleichen FHEM-Modulstand wie das Produktiv-System?
Hilfreich wäre u.U. ein list vom DOIF-Device.
Oh ja hätte ich gleich dran denken können...
hier das list:
Internals:
DEF (1)
FUUID 5f7c6bd0-f33f-f1b9-e63a-354ad6cb368d11eb
FVERSION 98_DOIF.pm:0.229130/2020-10-04
MODEL FHEM
NAME di_Abfall_1
NOTIFYDEV myAbfall,di_Abfall_1,global
NR 231
NTFY_ORDER 50-di_Abfall_1
STATE disabled
TYPE DOIF
VERSION 22913 2020-10-04 21:46:02
DOIF_Readings:
BioabfallGruengut ::AggregateDoIf($hash,'#min:','^myAbfall$','"BioabfallGruengut.*_tage$"')
GelberSackLeichtverpackungen ::AggregateDoIf($hash,'#min:','^myAbfall$','"GelberSackLeichtverpackungen.*_tage$"')
PapierAbfall ::AggregateDoIf($hash,'#min:','^myAbfall$','"PapierAbfall.*_tage$"')
Restmuell ::AggregateDoIf($hash,'#min:','^myAbfall$','"Restmuell.*_tage$"')
READINGS:
2020-10-06 17:04:37 BioabfallGruengut 1
2020-10-06 17:04:37 GelberSackLeichtverpackungen 1
2020-10-06 15:07:14 O-Tonne 0
2020-10-06 17:04:37 PapierAbfall 1
2020-10-06 17:04:37 Restmuell 8
2020-10-06 15:06:24 cmd 0
2020-10-06 18:19:17 last_cmd initialized
2020-10-06 18:19:17 mode disabled
2020-10-06 18:19:17 state disabled
Regex:
DOIF_Readings:
:
BioabfallGruengut:
"^myAbfall$" ^myAbfall$
GelberSackLeichtverpackungen:
"^myAbfall$" ^myAbfall$
PapierAbfall:
"^myAbfall$" ^myAbfall$
Restmuell:
"^myAbfall$" ^myAbfall$
accu:
uiTable:
di_Abfall_1:
di_Abfall_1_uiTable_c_1_0_0_0:
Restmuell ^di_Abfall_1$:^Restmuell:
di_Abfall_1_uiTable_c_1_1_0_0:
GelberSackLeichtverpackungen ^di_Abfall_1$:^GelberSackLeichtverpackungen:
di_Abfall_1_uiTable_c_1_2_0_0:
BioabfallGruengut ^di_Abfall_1$:^BioabfallGruengut:
di_Abfall_1_uiTable_c_1_3_0_0:
PapierAbfall ^di_Abfall_1$:^PapierAbfall:
myAbfall:
di_Abfall_1_uiTable_c_1_0_0_0:
Restmuell_days ^myAbfall$:^Restmuell_days:
di_Abfall_1_uiTable_c_1_1_0_0:
GelberSackLeichtverpackungen_days ^myAbfall$:^GelberSackLeichtverpackungen_days:
di_Abfall_1_uiTable_c_1_2_0_0:
BioabfallGruengut_days ^myAbfall$:^BioabfallGruengut_days:
di_Abfall_1_uiTable_c_1_3_0_0:
PapierAbfall_days ^myAbfall$:^PapierAbfall_days:
condition:
0 1
do:
0:
0
1:
helper:
DEVFILTER ^global$|^myAbfall$|^di_Abfall_1$
NOTIFYDEV global|myAbfall|di_Abfall_1
event GelberSackLeichtverpackungen_tage: 1,GelberSackLeichtverpackungen_text: Gelber Sack, Leichtverpackungen,GelberSackLeichtverpackungen_datum: 07.10.20,GelberSackLeichtverpackungen_wochentag: Mittwoch,PapierAbfall_tage: 1,PapierAbfall_text: Papier Abfall,PapierAbfall_datum: 07.10.20,PapierAbfall_wochentag: Mittwoch,BioabfallGruengut_tage: 1,BioabfallGruengut_text: Bioabfall, Grüngut,BioabfallGruengut_datum: 07.10.20,BioabfallGruengut_wochentag: Mittwoch,O-Tonne_tage: 8,O-Tonne_text: O-Tonne,O-Tonne_datum: 14.10.20,O-Tonne_wochentag: Mittwoch,Restmuell_tage: 8,Restmuell_text: Restmüll,Restmuell_datum: 14.10.20,Restmuell_wochentag: Mittwoch,next: GelberSackLeichtverpackungen_1,next_tage: 1,next_text: Gelber Sack, Leichtverpackungen,next_datum: 07.10.20,next_wochentag: Mittwoch,1,ftui_datum: Error evaluating myAbfall userReading ftui_datum: Undefined subroutine &main::datumHeuteMorgen called at (eval 1452) line 1.
,ftui_next: GelberSackLeichtverpackungen_1
globalinit 1
last_timer 0
sleeptimer -1
triggerDev myAbfall
triggerEvents:
GelberSackLeichtverpackungen_tage: 1
GelberSackLeichtverpackungen_text: Gelber Sack, Leichtverpackungen
GelberSackLeichtverpackungen_datum: 07.10.20
GelberSackLeichtverpackungen_wochentag: Mittwoch
PapierAbfall_tage: 1
PapierAbfall_text: Papier Abfall
PapierAbfall_datum: 07.10.20
PapierAbfall_wochentag: Mittwoch
BioabfallGruengut_tage: 1
BioabfallGruengut_text: Bioabfall, Grüngut
BioabfallGruengut_datum: 07.10.20
BioabfallGruengut_wochentag: Mittwoch
O-Tonne_tage: 8
O-Tonne_text: O-Tonne
O-Tonne_datum: 14.10.20
O-Tonne_wochentag: Mittwoch
Restmuell_tage: 8
Restmuell_text: Restmüll
Restmuell_datum: 14.10.20
Restmuell_wochentag: Mittwoch
next: GelberSackLeichtverpackungen_1
next_tage: 1
next_text: Gelber Sack, Leichtverpackungen
next_datum: 07.10.20
next_wochentag: Mittwoch
1
ftui_datum: Error evaluating myAbfall userReading ftui_datum: Undefined subroutine &main::datumHeuteMorgen called at (eval 1452) line 1.
ftui_next: GelberSackLeichtverpackungen_1
triggerEventsState:
GelberSackLeichtverpackungen_tage: 1
GelberSackLeichtverpackungen_text: Gelber Sack, Leichtverpackungen
GelberSackLeichtverpackungen_datum: 07.10.20
GelberSackLeichtverpackungen_wochentag: Mittwoch
PapierAbfall_tage: 1
PapierAbfall_text: Papier Abfall
PapierAbfall_datum: 07.10.20
PapierAbfall_wochentag: Mittwoch
BioabfallGruengut_tage: 1
BioabfallGruengut_text: Bioabfall, Grüngut
BioabfallGruengut_datum: 07.10.20
BioabfallGruengut_wochentag: Mittwoch
O-Tonne_tage: 8
O-Tonne_text: O-Tonne
O-Tonne_datum: 14.10.20
O-Tonne_wochentag: Mittwoch
Restmuell_tage: 8
Restmuell_text: Restmüll
Restmuell_datum: 14.10.20
Restmuell_wochentag: Mittwoch
next: GelberSackLeichtverpackungen_1
next_tage: 1
next_text: Gelber Sack, Leichtverpackungen
next_datum: 07.10.20
next_wochentag: Mittwoch
state: 1
ftui_datum: Error evaluating myAbfall userReading ftui_datum: Undefined subroutine &main::datumHeuteMorgen called at (eval 1452) line 1.
ftui_next: GelberSackLeichtverpackungen_1
perlblock:
uiTable:
dev myAbfall
package
reading PapierAbfall_days
shownostate 1
table:
0:
0:
0:
0 FW_makeImage("dustbin\@gray")
1:
0:
0 FW_makeImage("bag\@yellow")
2:
0:
0 FW_makeImage("bag\@green")
3:
0:
0 FW_makeImage("bag\@blue")
1:
0:
0:
0 ::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_0_0_0',::ReadingValDoIf($hash,'di_Abfall_1','Restmuell'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','Restmuell_days')))
1:
0:
0 ::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_1_0_0',::ReadingValDoIf($hash,'di_Abfall_1','GelberSackLeichtverpackungen'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','GelberSackLeichtverpackungen_days')))
2:
0:
0 ::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_2_0_0',::ReadingValDoIf($hash,'di_Abfall_1','BioabfallGruengut'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','BioabfallGruengut_days')))
3:
0:
0 ::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_3_0_0',::ReadingValDoIf($hash,'di_Abfall_1','PapierAbfall'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','PapierAbfall_days')))
tc:
0 align='center'
1 align='center'
2 align='center'
3 align='center'
4 align='center'
td:
0:
1:
tr:
Attributes:
DOIF_Readings Restmuell:[#min:"^myAbfall$":"Restmuell.*_tage$"], GelberSackLeichtverpackungen:[#min:"^myAbfall$":"GelberSackLeichtverpackungen.*_tage$"], BioabfallGruengut:[#min:"^myAbfall$":"BioabfallGruengut.*_tage$"], PapierAbfall:[#min:"^myAbfall$":"PapierAbfall.*_tage$"]
alias Abfall - DOIF
group ABFALL
room DOIF,HWR
uiTable { $TC{0..4}="align='center'";
$SHOWNOSTATE=1;
sub FUNC_font { my ($value)=@_; return ("font-weight:bold;".($value <=1 ? "color:darkorange":"color:white")); }}
FW_makeImage("dustbin\@gray")|FW_makeImage("bag\@yellow")| FW_makeImage("bag\@green")|FW_makeImage("bag\@blue")
STY ([$SELF:Restmuell],FUNC_font([myAbfall:Restmuell_days]))|
STY ([$SELF:GelberSackLeichtverpackungen],FUNC_font([myAbfall:GelberSackLeichtverpackungen_days]))|
STY ([$SELF:BioabfallGruengut],FUNC_font([myAbfall:BioabfallGruengut_days]))|
STY ([$SELF:PapierAbfall],FUNC_font([myAbfall:PapierAbfall_days]))|
Es ist das aktuelle Docker Image welches hier vom User Loredo bereit gestellt wird.
Bezeichnung oder Version ist:
org.fhem.version 6.0-s22528
org.opencontainers.image.authors Julian Pawlowski (Forum.fhem.de:@loredo, Twitter:@loredo)
org.opencontainers.image.created 2020-08-03T11:22:51+00:00
Docker Fhem Latest Revision: 22924
Aber wie schon gesagt, dass selbe DOIF nutze ich im Produktiv Fhem da gibt es diese Fehler oder Warnungen nicht.
Fhem ist Version 5.9 Latest Revision: 22915
Auffällig im gelieferten list ist schon mal, dass eine Funktion namens datumHeuteMorgen fehlt.
Zielführend könnte weiterhin sein, die lists von beiden Systemen zu vergleichen - z.B. via diff ...
DOIF wertet eine "Warning"-Variable, die vom FHEM-System gesetzt wird, wenn eine Warnung zuvor durch eine Perlausführung entsteht, dieses wird normalerweise zuvor vom FHEM-System geloggt. DOIF schreibt nur noch aus welchem Funktionsaufruf diese Warnung kommen.
Eigentlich müsste es im Log zur gleichen Zeit Warnungen geben, die das Problem beschreiben. Bei den Ausgaben vom DOIF kann man es nicht mehr sehen.
Wenn es keine sonstigen Warnungen gibt, dann wird ggf. die "Warning"-Variable vom System in der Docker-Umgebung nicht richtig gesetzt oder zurückgesetzt.
Zitat von: OdfFhem am 07 Oktober 2020, 07:04:43
Auffällig im gelieferten list ist schon mal, dass eine Funktion namens datumHeuteMorgen fehlt.
Zielführend könnte weiterhin sein, die lists von beiden Systemen zu vergleichen - z.B. via diff ...
gute Idee, ich werde sie mal vergleichen...
Kurze Erklärung, da es sich um einen Abfall Modul handelt, habe ich dieses wie in dem jeweiligen Forumthread beschrieben steht herunter geladen und habe dann festgestellt, das diese schon eine neuere Version ist indem einige Variablen drin sind die ich bisher noch nicht genutzt habe... in meinem Produktivsystem sind die nicht drin obwohl ich immer Updates mache.
Diese Funktion
datumHeuteMorgen habe ich also in meinem anderm list nicht das hatte ich gestern schon gesucht.
Ich lösche mal das reading evtl ist der Spuk dann vorbei.
Ich kann es mir nur so erklären...
Damian ich habe dieses Beispiel direkt von dir übernommen und ja es sind die gleichen Fehlermeldungen im log drin, ich habe das DOIF mal disabled, bis ich den Fehler gefunden habe.
Evtl. ist es so wie ich geschrieben habe mit den löschen des Readings...
Ich werde berichten...
EDIT:// au man Leute ich habe den Fehler gefunden... schande über mein Haupt :-\ :-\
ich habe auf meinem neuen System vergessen die 99_myUtils zu erstellen dort steht dieses natürlich drin
Bekomme aber nun weitere Fehlermeldungen im Log und werde mal suchen...!! :-\
Ich habe das DOIF jetzt mal wieder in Betrieb und es geht munter weiter....
Aber ich habe jetzt festgestellt es gibt dieses datumHeuteMorgen in Readings gar nicht.. :-\
hier mal das aktuelle log:
2020.10.07 14:12:02.186 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_3_0_0',::ReadingValDoIf($hash,'di_Abfall_1','PapierAbfall'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','PapierAbfall_days')))
2020.10.07 14:12:02.186 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_2_0_0',::ReadingValDoIf($hash,'di_Abfall_1','BioabfallGruengut'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','BioabfallGruengut_days')))
2020.10.07 14:12:02.186 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_1_0_0',::ReadingValDoIf($hash,'di_Abfall_1','GelberSackLeichtverpackungen'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','GelberSackLeichtverpackungen_days')))
2020.10.07 14:12:02.186 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_0_0_0',::ReadingValDoIf($hash,'di_Abfall_1','Restmuell'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','Restmuell_days')))
2020.10.07 14:11:34.655 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_3_0_0',::ReadingValDoIf($hash,'di_Abfall_1','PapierAbfall'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','PapierAbfall_days')))
2020.10.07 14:11:34.655 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_2_0_0',::ReadingValDoIf($hash,'di_Abfall_1','BioabfallGruengut'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','BioabfallGruengut_days')))
2020.10.07 14:11:34.655 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_1_0_0',::ReadingValDoIf($hash,'di_Abfall_1','GelberSackLeichtverpackungen'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','GelberSackLeichtverpackungen_days')))
2020.10.07 14:11:34.654 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_0_0_0',::ReadingValDoIf($hash,'di_Abfall_1','Restmuell'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','Restmuell_days')))
2020.10.07 14:11:14.777 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_3_0_0',::ReadingValDoIf($hash,'di_Abfall_1','PapierAbfall'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','PapierAbfall_days')))
2020.10.07 14:11:14.777 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_2_0_0',::ReadingValDoIf($hash,'di_Abfall_1','BioabfallGruengut'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','BioabfallGruengut_days')))
2020.10.07 14:11:14.777 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_1_0_0',::ReadingValDoIf($hash,'di_Abfall_1','GelberSackLeichtverpackungen'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','GelberSackLeichtverpackungen_days')))
2020.10.07 14:11:14.777 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_0_0_0',::ReadingValDoIf($hash,'di_Abfall_1','Restmuell'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','Restmuell_days')))
2020.10.07 14:06:40.945 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_3_0_0',::ReadingValDoIf($hash,'di_Abfall_1','PapierAbfall'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','PapierAbfall_days')))
2020.10.07 14:06:40.945 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_2_0_0',::ReadingValDoIf($hash,'di_Abfall_1','BioabfallGruengut'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','BioabfallGruengut_days')))
2020.10.07 14:06:40.945 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_1_0_0',::ReadingValDoIf($hash,'di_Abfall_1','GelberSackLeichtverpackungen'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','GelberSackLeichtverpackungen_days')))
2020.10.07 14:06:40.945 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_0_0_0',::ReadingValDoIf($hash,'di_Abfall_1','Restmuell'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','Restmuell_days')))
2020.10.07 14:06:38.730 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_3_0_0',::ReadingValDoIf($hash,'di_Abfall_1','PapierAbfall'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','PapierAbfall_days')))
2020.10.07 14:06:38.730 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_2_0_0',::ReadingValDoIf($hash,'di_Abfall_1','BioabfallGruengut'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','BioabfallGruengut_days')))
2020.10.07 14:06:38.730 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_1_0_0',::ReadingValDoIf($hash,'di_Abfall_1','GelberSackLeichtverpackungen'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','GelberSackLeichtverpackungen_days')))
2020.10.07 14:06:38.730 3: di_Abfall_1:Warning in DOIF_RegisterEvalAll:::DOIF_Widget($hash,$reg,'di_Abfall_1_uiTable_c_1_0_0_0',::ReadingValDoIf($hash,'di_Abfall_1','Restmuell'),::DOIF_FUNC_di_Abfall_1_font(::ReadingValDoIf($hash,'myAbfall','Restmuell_days')))
Im meinem Abfallkalender "myAbfall habe ich es entdeckt, dass kann dann z.B. mit dem neueren Modul zusammen hängen.
Ich werde mal schauen und vergleichen.
Habe gesehn das es in meinem Produktivsystem auch drin ist, aber leer
Im Fehlersystem sieht das so aus:
Error evaluating myAbfall userReading ftui_datum: Undefined subroutine &main::datumHeuteMorgen called at (eval 6299) line 1.