Ich habe irgendwie in den letzten Tagen Probleme mit dem SUNRISE Modul.
Irgendwie scheint es irgendwie ein Problem mit dem HORIZON Parameter zu geben :-[ Aufgefallen ist mir das es einen deutlichen Unterschied zwischen dem REAL (HORIZON = 0.0) und CIVIL (HORIZON = -6.0) Parameter gibt - da habe ich mich mal näher rangetastet...
defmod SetDummy2 at *{sunrise("HORIZON=-3.0",0)} set Tageslicht hell
ergibt mir als nächste Ausführungszeit "Next: 07:00:09"
defmod SetDummy2 at *{sunrise("HORIZON=-3.1",0)} set Tageslicht hell
ergibt mir als nächste Ausführungszeit "Next: 03:59:30"
defmod SetDummy1 at *{sunset("HORIZON=-1.5",0)} set Tageslicht dunkel
ergibt mir als nächste Ausführungszeit "Next: 19:59:50"
defmod SetDummy1 at *{sunset("HORIZON=-1.6",0)} set Tageslicht dunkel
ergibt mir als nächste Ausführungszeit "Next: 02:00:29"
Habe auch mal beide Module neu installiert, was aber keine Änderung gebracht hat :-\
Mir sind jetzt die Ideen ausgegangen... Vielleicht hat ja noch jemand eine Idee was ich noch probieren könnte.
Gruß Firetic
Hallo,
hast Du die Attribute fuer latitude und longitude geprueft? Sind die korrekt?
Mehr faellt mir dazu leider auch nicht ein.
Gruss
Michael
Fuer die voreingestellten Werte von latitude/longitude bekomme ich:
fhem> defmod SetDummy2 at *{sunrise("HORIZON=-3.0",0)} set Tageslicht hell
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-29 06:56:24
fhem> defmod SetDummy2 at *{sunrise("HORIZON=-3.1",0)} set Tageslicht hell
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-29 06:55:46
fhem> defmod SetDummy2 at *{sunset("HORIZON=-1.5",0)} set Tageslicht dunkel
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-28 19:54:08
fhem> defmod SetDummy2 at *{sunset("HORIZON=-1.6",0)} set Tageslicht dunkel
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-28 19:54:46
Schaut ok aus fuer mich...
Moin,
ich kann das bestätigen, habe das vorhin auch mal durchgespielt. Meine Zeiten liegen wie die von Rudi grob ca 1 min auseinander bei 6:40:xx
Gruß Otto
Meiner Meinung nach ist das korrekt eingestellt:
latitude 51.255404
longitude 7.466133
Das Twilight Modul scheint auch ohne Probleme zu funktionieren - das greift doch glaube ich auch darauf zurück!?
Auch die Systemzeit ist korrekt eingestellt...
fhem> attr global latitude 51.255404
fhem> attr global longitude 7.466133
fhem> defmod SetDummy2 at *{sunrise("HORIZON=-3.0",0)} set Tageslicht hell
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-29 07:00:09
fhem> defmod SetDummy2 at *{sunrise("HORIZON=-3.1",0)} set Tageslicht hell
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-29 06:59:30
fhem> defmod SetDummy2 at *{sunset("HORIZON=-1.5",0)} set Tageslicht dunkel
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-28 19:59:50
fhem> defmod SetDummy2 at *{sunset("HORIZON=-1.6",0)} set Tageslicht dunkel
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-28 20:00:29
Ich verzweifel jetzt langsam :'(
Soviel kann ich doch eigentlich gar nicht falsch machen ::)
Zitat von: Firetic am 28 März 2018, 10:46:04
Das Twilight Modul scheint auch ohne Probleme zu funktionieren - das greift doch glaube ich auch darauf zurück!?
Nein, beim Twilight Modul sind die Koordinaten Pflichtangabe im DEF:
define <name> Twilight <latitude> <longitude> [<indoor_horizon> [<Weather_Position>]]
will heißen: Twilight verwendet
nicht die Koordinaten aus
global!
Stimmt - das war mir entfallen...
Habe gerade nochmal die Werte überprüft. Sind aber die gleichen in der "Global" und "Twilight" Definition.
Habe mal die Definition von latitude und longitude gelöscht. Dann scheint es zu funktionieren (er nimmt ja dann wohl die Werte für Frankfurt)...
Kann ich mir möglicherweise durch meine global Definition irgendwie einen Fehler reingeholt haben?
Hier einfach mal meine Global-def (also hier noch vorm rauslöschen der beiden Werte)
attr global userattr cmdIcon devStateIcon devStateStyle icon msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global autosave 0
attr global exclude_from_update 17_EGPM2LAN.pm
attr global language DE
attr global latitude 51.265952
attr global logfile ./log/fhem-%Y-%m-%d.log
attr global longitude 7.475378
attr global modpath .
attr global stacktrace 0
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3
Mit deinen global Attributen:
fhem> defmod SetDummy2 at *{sunrise("HORIZON=-3.1",0)} set Tageslicht hell
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-29 06:59:27
fhem> defmod SetDummy2 at *{sunrise("HORIZON=-27.6",0)} set Tageslicht hell
fhem> li SetDummy2 TRIGGERTIME_FMT
SetDummy2 2018-03-29 03:59:10
Danke erstmal für deine ganze Mühe :)
Hab nochmal alles mögliche versucht - glaube ich muss mein System nochmal komplett neu aufsetzten :-[
Eines ist mir noch aufgefallen (vielleicht hat jemand ja einen Geistesblitz dazu):
{sunset("CIVIL",0)}
direkt über die Oberfläche liefert mir den korrekten Wert "20:41:11" im at steht allerdings für die nächste Ausführung "Next: 02:41:11"
ebenso beim Sonnenaufgang:
{sunrise("CIVIL",0)}
direkt über die Oberfläche liefert mir den korrekten Wert "30:24:24" im at steht allerdings für die nächste Ausführung "Next: 03:24:24"
Irgendwie scheint mein System einen Drehen in den Stunden zu haben ???
Dann gib uns doch bitte mal die "list" Ausgabe von Deinen "at" ... ich glaube, bisher haben wir nur die Definitionen (aus der .cfg?) gesehen.
Stimmt :)
Hier mal die "list" Ausgabe:
Internals:
COMMAND set Tageslicht dunkel
DEF *{sunset("CIVIL",0)} set Tageslicht dunkel
NAME SetDummy1
NR 173
NTM 02:41:11
PERIODIC yes
RELATIVE no
REP -1
STATE Next: 02:41:11
TIMESPEC {sunset("CIVIL",0)}
TRIGGERTIME 1522888871
TRIGGERTIME_FMT 2018-04-05 02:41:11
TYPE at
READINGS:
2018-04-04 08:16:42 state Next: 02:41:11
Attributes:
alias Sonnenuntergang
group Info
ZitatIrgendwie scheint mein System einen Drehen in den Stunden zu haben
Faszinierend.
Kannst du bitte Folgendes ueber die Eingebezeile pruefen
{ join(",", GetTimeSpec('{sunrise("CIVIL",0)}')) }
{ join(",", GetTimeSpec('{sunset("CIVIL",0)}')) }
Es erzeugt jeweils eine Warnung in der fhem.log, das kann aber ignoriert werden.
Zitat von: rudolfkoenig am 04 April 2018, 21:05:02
Faszinierend.
Ja irgendwie sehr seltsam :o
Nach der Eingabe erhalte ich als Rückgabe:
,6,24,24,sunrise("CIVIL",0)
,2,42,56,sunset("CIVIL",0)
Wirst du daraus schon schlauer ;D
Ein bisschen: Sunset ist um 20:42:46, GetTimeSpec (fhem.pl, Zeile 3366) hat auf deinem Rechner daraus aber 2,42,46 gemacht, irgendwas ist mit der Regexp-Bibliothek anders. Was liefert
{ "20:42:46" =~ m/^([0-9]+):([0-5][0-9]):([0-5][0-9])$/;; "$1,$2,$3" }
Das scheint zu klappen...
20,42,46
Kannst du bitte die folgende Zeile:
Log 1, "TSPEC: $tspec => /$hr/$min/$sec/";
in fhem.pl/3368, nach der vorhandenen Zeile
($hr, $min, $sec) = ($1, $2, $3);
einbauen, FHEM neu starten, danach die zwei { join... Zeilen von vorhin ausfuehren, und die TSPEC Zeilen aus dem FHEM-Log hier mitteilen?
Super das hat die Lösung gebracht - ich war mal wieder selber Schuld :o
Ich habe deine Änderung in die fhem.pl eingepflegt und mich nach einem Neustart gewundert das ich keine Ausgabe im LOG erhalte. :-\
Nachdem ich mir die Änderung genauer angeschaut habe, schien mir die aufgerufene Funktion "GetTimeSpec" doch irgendwie bekannt vorzukommen - ich habe diese auch in meiner MyUtils-Datei angelegt :-X
Nachdem ich diese bereinigt habe funktioniert alles wieder wie gewohnt...
Vielen vielen Dank für deine Hilfe - darauf wäre ich glaube ich nicht gekommen. Mich wundert nur das es diese eigentlich schon ewig in meiner MyUtils-Datei gibt?!
Gruß Firetic
Es duerfte auch eine Warnung der Art
PERL WARNING: Subroutine GetTimeSpec redefined at ./FHEM/99_myUtils.pm line ...
als erste Zeile bei jedem FHEM Start gekommen sein...
Wie auch immer, freut mich, dass das Problem geloest ist.
Stimmt - die Warnung kam wirklich. Hab ich irgendwie immer überlesen...
War zwischen den "PERL WARNING: Smartmatch is experimental..." Meldungen versteckt :o
Vielen Dank auf jeden Fall nochmal :)