Myteriöses at?

Begonnen von brmpfl, 02 März 2013, 10:21:50

Vorheriges Thema - Nächstes Thema

brmpfl

Guten Morgen,

ich kämpfe z.Zt. mit folgendem Problem:
Das "Dekolicht" im Flur soll zum Sonnenuntergang an- und 22:15:00 ausgehen.
Definiert habe ich das wie folgt:

define FlurLichtOnAtSunset at *{sunset_abs("REAL")} {\
  fhem "set flur_Dekolicht on";;\
  fhem "define FlurLichtOffAtSunset at 22:15:00 set flur_Dekolicht off";;\
}


Das funktioniert auch alles soweit ganz gut.
Allerdings erhalte ich täglich im Logfile folgende Meldung:


2013.03.01 17:53:06 3: FS20 set flur_Dekolicht on
2013.03.01 17:54:57 3: FS20 set flur_Dekolicht on
2013.03.01 17:54:57 3: define FlurLichtOffAtSunset at 22:15:00 set flur_Dekolicht off : FlurLichtOffAtSunset already defined, delete it first
2013.03.01 17:54:57 3: FlurLichtOffAtSunset already defined, delete it first


Irgendwie scheint es, als ob o.g. FlurLichtOnAtSunset 2x ausgeführt wird.
Ich kann jedoch hoch und heilig versichern, dass es nur 1x definiert ist und unter at's (room Unsorted) nur einmal auftaucht.
Licht an um 06:00 und aus zum Sonnenaufgang funktioniert dagegen ohne Probleme.

Ist in meiner Definition was falsch?
Oder hat fhem, ggf. naoch aus meiner Experimentierzeit, ein FlurLichtOnAtSunset irgendwo intern gespeichert und führt das "heimlich" aus?
:)
Hajo

Puschel74

Hallo,

da ist nichts falsch in deiner Def.

Fhem versucht da define um 22:15 zweimal anzulegen was natürlich scheitert.
Allerdings gibt es nur die Fehlermeldung.
FHEM funktioniert einwandfrei.

Wenn dich diese Meldung stört kannst du ja sowas noch dran hängen:

fhem "define FlurLichtOffAtSunset at 22:15:00 set flur_Dekolicht off" if (Value("FlurLichtOffAtSunset") eq "");;\

Nun wird das define nur noch angelegt wenn es nicht bereits existiert.

Ungetestet und aus dem Kopf.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

brmpfl

Hai,

vielen Dank für die Antwort.
Die Frage wäre: Weshalb versucht fhem 2x das define für 22:15 anzulegen?

Da lt. Log das Licht 2x eingeschaltet wurde, gehe ich davon aus, dass das define FlurLichtOnAtSunset 2x abgearbeitet wird.
Aber wieso?

:)
Hajo

Puschel74

Hallo,

wenn es ein FS20-Befehl ist sendet fhem diesen mehrfach (2 - 3 mal) aus.
Dadurch wird auch das define mehrmals angelegt.

Ich hoffe ich hab das noch richtig im Kopf.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

rudolfkoenig

Man sollte die feinen Unterschiede zw. sunset und sunset_abs verinnerlichen.
Gilt genauso fuer sunrise/sunrise_abs, das wird aber erst ab 21.Juni aktuell.
Dafuer hoeren die sunset Probleme dann auf :)


brmpfl

Zitat von: Puschel74 schrieb am Sa, 02 März 2013 11:33Hallo,

wenn es ein FS20-Befehl ist sendet fhem diesen mehrfach (2 - 3 mal) aus.
Dadurch wird auch das define mehrmals angelegt.

Ich hoffe ich hab das noch richtig im Kopf.

Grüße
Der Befehl wird, soweit mir bekannt, mehrmals gesendet. Das ist richtig.
Aber es wird nur 1x ins Log geschrieben - oder.
Sonst müßten die anderen doch auch mehrfach auftauchen.
:)
Hajo

brmpfl

Zitat von: rudolfkoenig schrieb am Sa, 02 März 2013 12:07Man sollte die feinen Unterschiede zw. sunset und sunset_abs verinnerlichen.
Gilt genauso fuer sunrise/sunrise_abs, das wird aber erst ab 21.Juni aktuell.
Dafuer hoeren die sunset Probleme dann auf :)

Hallo Rudi,

ehrlich gesagt, hilft mir das im konkreten Fall nicht weiter.
Ich gehöre zu denen, die sich bemühen, alle notwendigen Informationen der Doku zu entnehmen, quäle die Forensuche, google&Co, ... BEVOR ich mit einem Problem(chen) zu Wort melde.
Natürlich erhebe ich keinen Anspruch darauf, immer alle relevanten Informationen gefunden zu haben und gebe zu, auch was übersehen oder überlesen zu können.

Wenn ich was übersehen, etwas falsch verstanden, oder was falsch gemacht habe, bin ich für einen konkreten Hinweis, optimal wäre mit Lösung(sansatz), sehr dankbar.



:)
Hajo

Puschel74

Hallo,

Rudi bezog sich auf das (vermute ich mal).

Zitat2013.03.01 17:53:06 3: FS20 set flur_Dekolicht on
2013.03.01 17:54:57 3: FS20 set flur_Dekolicht on

Wie man sieht wurde das Dekolicht um 17:53:06 eingeschaltet und um 17:54:57 nochmal.
Also knapp 2 Minuten später (111 sec.).

Da ich die Unterschiede zwischen sunset und sunset_abs jetzt nicht im Kopf habe müsste ich auch erst in der commandref nachschauen.
Dort sollte der Unterschied beschrieben sein.

Ich glaube, es hat was mit der Interpretation des Zeitpunktes des Sonnenuntergangs zu tun.
Daher vermutlich auch die Doppelauslösung und der Versuch das define ein zweites mal an zu legen.
Was mit besagter Fehlermeldung quitiert wurde.

Bitte nicht schlagen wenn ich ganz daneben liege ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

rudolfkoenig

Ich habe folgendes schon ein paarmal geschrieben:

Bei wiederholenden at Befehlen wird der naechste Aufruftermin beim Ausfuehren des aktuellen Befehls berechnet. Falls die Uhrzeit >= aktuelle Zeit ist, dann addiert at automatisch 24 Stunden dazu.
sunset_abs berechnet den Sonnenuntergang fuer den _heutigen_ Tag. Wenn man das Befehl damit morgen beim (heutigen) Sonnenuntegang-Uhrzeit ausfuehrt, dann liegt der naechste am gleichen Tag, ein paar Minuten spaeter.

sunset (ohne _abs) beachtet dieses Problem, und gibt die um ein Tag verschobene Zeit zurueck.

Siehe http://fhem.de/commandref.html#SUNRISE_EL:
Zitatsunrise()/sunset() returns the absolute time of the next sunrise/sunset, adding 24 hours if the next event is tomorrow, to use it in the timespec of an at device or for the on-till command for FS20 devices.
sunrise_rel()/sunset_rel() returns the relative time to the next sunrise/sunset.
sunrise_abs()/sunset_abs() return the absolute time of the corresponding event today (no 24 hours added).

brmpfl

Hallo Rudi,

vielen Dank für Deine Antwort.
DAS war offensichtlich der Denkanstoss, den ich gebraucht habe.

Wenn ich das richtig verstanden habe, tritt das Problem nur bei länger werdenden Tagen auf - oder?
:)
Hajo