FHEM Forum

FHEM => Automatisierung => Thema gestartet von: ritchie am 18 Dezember 2016, 11:36:40

Titel: (gelöst) Fehlermeldung: function "getSunRiseTime();" must return a timespec
Beitrag von: ritchie am 18 Dezember 2016, 11:36:40
Hallo Zusammen,

um einen neuen Sensortypen zu unterstützen, musste ich gestern ein Update auf die aktuelle Version machen.

jetzt bekomme ich die Meldung
Zitat
Messages collected while initializing FHEM:
configfile: the function "getSunSetTime();" must return a timespec and not Undefined subroutine &main::getSunSetTime called at (eval 24) line 1, <$fh> line 121.
.
the function "getSunRiseTime();" must return a timespec and not Undefined subroutine &main::getSunRiseTime called at (eval 25) line 1, <$fh> line 130.
.

Ich verwende diesen Code und sehe keinen Unterschied zur Dokumentation
Fhem.cfg

#
# SunSet Time events
#
define sSunSetTime dummy
attr sSunSetTime alias Die Sonne geht unter um
attr sSunSetTime group Zeiten
attr sSunSetTime room Anwesend

define evtRoutineSunSetTime at *{getSunSetTime();;} {evtHandlerSunSetTime($we);;}
attr evtRoutineSunSetTime room events
#
# SunRise Time events
#
define sSunRiseTime dummy
attr sSunRiseTime alias Die Sonne geht auf um
attr sSunRiseTime group Zeiten
attr sSunRiseTime room Anwesend
define evtRoutineSunRiseTime at *{getSunRiseTime();;} {evtHandlerSunRiseTime($we);;}
attr evtRoutineSunRiseTime room events


99_myUtils.pm

#
# get the sun Set Time for the at command
#
sub getSunSetTime()
{
  return ReadingsVal("sSunSetTime","STATE","19:00:00");
}
#
# Event to execute something on the sun set time
#
sub evtHandlerSunSetTime($)
{
  my $WeekendFlag = shift;

  return;
}
#
# get the sun rise Time for the at command
#
sub getSunRiseTime()
{
return ReadingsVal("sSunRiseTime","STATE","06:00:00");
}
#
# Event to execute something on the sun Rise time
#
sub evtHandlerSunRiseTime($)
{
  my $WeekendFlag = shift;

return;
}


Wo ist der Fehler ?


Gruss R.
Titel: Antw:Fehlermeldung: function "getSunRiseTime();" must return a timespec
Beitrag von: rudolfkoenig am 18 Dezember 2016, 12:30:28
Ich sehe es auf dem ersten Blick auch nicht:
Was liefert
{getSunSetTime()}
wenn man es im FHEMWEB oder telnet eingibt?
Btw. die beiden ;; sind in _diesem_ Beispiel ueberfluessig.
Titel: Antw:Fehlermeldung: function "getSunRiseTime();" must return a timespec
Beitrag von: KölnSolar am 18 Dezember 2016, 12:30:50
ich spekuliere, dass Deine dummys kein Reading STATE haben, sondern state   ;)
Grüße Markus
Titel: Antw:Fehlermeldung: function "getSunRiseTime();" must return a timespec
Beitrag von: ritchie am 18 Dezember 2016, 12:43:37
Hallo Zusammen,

leider nein. Das Reading heisst wirklich "STATE". Wie gesagt. vor dem Update hatte ich diese Meldung nicht.
Ich suche weiter.

Gruss R.
Titel: Antw:Fehlermeldung: function "getSunRiseTime();" must return a timespec
Beitrag von: KölnSolar am 18 Dezember 2016, 12:47:31
und du bist sicher, dass du nicht das internal STATE meinst ? Meine dummies haben nur das reading state ???
Titel: Antw:Fehlermeldung: function "getSunRiseTime();" must return a timespec
Beitrag von: ritchie am 18 Dezember 2016, 14:31:55
Hallo Zusammen,

danke für die Hilfe:
Ein einem Modul hatte ich doch glatt ein "use Switch;" vergessen, aber ein "switch" neu eingebaut.


Nur was will mir diese Meldung jetzt sagen:
ZitatPERL WARNING: Switch will be removed from the Perl core distribution in the next major release. Please install it from CPAN

Viele Grüße
R.