Dämmerungsscript

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

Re: Dämmerungsscript

Beitrag von unimatrix » 29.03.2011, 18:56

Hallo nochmal,

das Weather Script hab ich drin funktioniert 1A. Vom Twilight Script gibts na ne neue Version mit Schaltjahren und automatischer Sommerzeit.

Jedoch habe ich da bei mir das Verhalten, dass der Übgergang von Sonnenaufgang wetterabhängig zu sonnenuntergang wetterabhängig nicht funktioniert. Also der erste Wechsel am Abend, dann von Helligkeit 6 auf 5. Zur vorausberechneten Zeit wird das SCript zwar "aktiv", setzt dann die Untergangszeit wetterabhängig (zumindest war es heute so) auf eine Minute später, und dann passiert nix mehr, der bleibt da hängen. Die Variable mit der HTML Tabelle wird neu geschrieben. NICHT neu geschrieben wird die Helligkeit und die Phase selbst. Kille ich dann das Script und rufe es neu auf geht es in die richtige Phase.

Nun werd ich gleich mal sehen ob auch die nachfolgenden Abendphasen durchlaufen...

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

Re: Dämmerungsscript

Beitrag von unimatrix » 29.03.2011, 19:59

also es laeut nun weiter. das problem dass es aber immer bei der ersten dämmerungsstufe abends einfriert habe ich die ganze zeit...

Benutzeravatar
DocZoid
Beiträge: 94
Registriert: 01.11.2010, 18:53
Wohnort: Dortmund

Re: Dämmerungsscript

Beitrag von DocZoid » 29.03.2011, 21:26

ja ich glaube ich kann das bestätigen. Es scheint, dass bei gutem Wetter die neu berechnete Zeit VOR der aktuellen Zeit liegt, so dass daraufhin unendlich lange gewartet wird. Unter /tmp/twilight.tcl.stdout gibt es die Logausgabe der Übergänge, dort kann man das Phänomen beobachten. Ich muss mal schauen woran das liegt.

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

Re: Dämmerungsscript

Beitrag von unimatrix » 30.03.2011, 14:58

Ich hab das SCript noch nicht ganz genau gelesen aber vll sollte einfach nochmal ne Stunde vor dem berechneten Wetteruntergang neu kalkuliert werden...oder mindestens mal zu der Zeit, die man hätte, wenn es das bestmöglichste Wetter gäbe. Das wäre ja der worst Case.

War auch gestern genau so. Morgens Nebel abends klar.

VG

Benutzeravatar
DocZoid
Beiträge: 94
Registriert: 01.11.2010, 18:53
Wohnort: Dortmund

Re: Dämmerungsscript

Beitrag von DocZoid » 30.03.2011, 18:44

Genau so wird's bereits gemacht: wenn die Uhrzeit bei der wetterabhängigen Dämmerung kursiv geschrieben ist, dann nist das die vorläufige Uhrzeit, immer mehr-als-worst-case. Zu dieser Uhrzeit hole ich dann die Wetterdaten und berechne die Uhrzeit für die Dämmerung; diese wird dann normal geschrieben. Eigentlich sollte aber immer genügend Zeitpuffer zwischen dem aktualisieren des Wetters und der worst-case-Dämmerung sein.

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

Re: Dämmerungsscript

Beitrag von unimatrix » 30.03.2011, 19:17

was ich ja beobachtet hatte war, dass die Variable mit der großen Tabelle neu geschrieben wurde. Die dort neu berechnete Untergangszeit war gestern dann 5 Sekunden hinter dem Timestamp des Neuschreibens der Variable. Die anderen Variablen wurden nicht angefasst, das sieht man ebenfalls am Timestamp.

heute das gleiche. Genau 5 Sekunden. Wobei ich jetzt nicht weiss wie sich die Zeit verschoben hat, ich bin gar nicht zu Hause.

Was ich aber definitiv weiss ist, dass die Tabelle NICHT geschrieben wurde, bevor es zu der Wetteruntergangszeit kam, der Timestamp war noch von der Zeit des Aufganges, und bei dem war wie gesagt Nebel, was ja zu, Standardoffset führen müsste, der größer sein sollte als sonnig, wobei ich jetzt gestern nicht geschaut habe, welche Weather COndition wirklich gelifert wurde. Es war aber ab 10 Uhr klar gewesen so dass die eingetragene Zeit auf jeden Fall falsch gewesen sein dürfte (zu spät) und vorher kam es dann zu keiner AKtualisierung mehr.

rmeyerz
Beiträge: 58
Registriert: 04.04.2011, 12:31

Re: Dämmerungsscript

Beitrag von rmeyerz » 05.04.2011, 10:11

Hallo DocZoid,

vielen Dank für das tolle TCL-Script. Ich habe es jetzt in der aktuellen Version runtergeladen. Wenn ich in der Ausgabedatei im tmp-Verzeichniss schaue, dann wird anscheinend die Sunsetzeit bereits mit dem wetterabhängigen Sonnenaufgang morgens bestimmt. Hier habe ich heute morgen beispielsweise "Klar" als Wetterbedingung angezeigt bekommen und um 7.25 Uhr wurde dann die Zeit für den wetterabhängigen Sonnenuntergang festgelegt. In der Version davor wurde erst kurz vor dem tatsächlichen wetterabhängigen Sonnenuntergang geprüft und dann die Zeit angepasst.
Hier einmal die Zeilen aus der Datei:

07:25:11: updating twilight time table: 07:05:27 19:43:12 Indoor:
07:25:11: updating twilight time table: 07:25:10 19:09:45 Wetterabh.:
07:25:11: retrieving weather condition for sunset
07:25:12: current condition is "Klar"
07:25:12: twilight horizon set to 5.0
07:25:12: updating twilight time table: 04:42:54 22:05:45 Astronom.:
07:25:12: updating twilight time table: 05:29:14 21:19:25 Nautisch:
07:25:12: updating twilight time table: 06:11:45 20:36:55 Bürgerlich:
07:25:12: updating twilight time table: 06:46:41 20:01:59 Standard:
07:25:12: updating twilight time table: 07:05:27 19:43:12 Indoor:
07:25:12: updating twilight time table: 07:25:10 19:23:30 Wetterabh.:
07:25:12: weather sunset at 19:23:30
07:25:12: waiting 43098 s until Tue Apr 05 19:23:30 CEST 2011


Es wird also bis zum tatsächlichem wetterabhängigen Sonnenuntergang gewartet ohne weitere Prüfung.
Der twilight horizon wird auch immer auf 5.0 gesetzt. Müsste doch eigentlich bei "Klar" auf 2.2 (Indoor Horizont ist auf 2 gesetzt) gesetzt werden. Was zur Konsequenz hat, dass auch bei "Klar" der Unterschied zwischen Indoor- und Wetterabhängigen Untergang ca. 20 Minuten beträgt, obwohl nur 0.2 Grad Unterschied. Hier wird anscheinend immer mit dem Wert "5.0" gerechnet.

Ich selber habe vor vielen vielen vielen Jahren mal im Rahmen eines Projektes an der Uni TCL gelernt, aber es ist jetzt wieder absolutes Neuland für mich. lch muss mich erst wieder reinarbeiten. Daher kann ich leider den Fehler noch nicht selber ausfindig machen.

Änderung meinerseits:
Ich habe folgende Stelle im Script ziemlich weit unten liegend geändert:

if {$i == 7 && [clock seconds] < [lindex $twilight_times 8]} then {
#sunset weather
log "retrieving weather condition for sunset"

Ich habe die Zahl 6 für die Variable i auf 7 sowie die Variablenzahl twilight_times von 7 auf 8 geändert. Dies verschiebt die Prüfung vom Moment des Wetteraufganges auf den Moment des Wetterunterganges. Jetzt wird auch der Wert für den vorläufigen Wetterabhängigen Sonnenuntergang wieder tagsüber kursiv angezeigt, was vorher nicht der Fall war.
Verbleibt noch die Sache mit dem Horizontwert, der immer bei 5.0 bleibt, wenn ich es richtig verstehe.

Gruß
Rüdiger

Benutzeravatar
DocZoid
Beiträge: 94
Registriert: 01.11.2010, 18:53
Wohnort: Dortmund

Re: Dämmerungsscript

Beitrag von DocZoid » 06.04.2011, 12:47

Danke für's Feedback! Ich hatte bei mir nicht mehr drauf geschaut und werde das nochmal genau kontrollieren. Kann durchaus sein dass ich hier was verschlimmbessert habe, da ich an der Stelle ein anderes Problem gelöst habe: in der alten Version wurde der wetterabhängige Sonnenuntergang nicht berechnet, wenn man das Script nach dem "vorläufigen wetterabhängigen Sonnenuntergang" und vor dem Indoor-Untergang gestartet hat. Vermutlich hat sich dort ein Bug eingeschlichen (wobei ich schon immer auf $i==6 abgefragt habe, also war das vermutlich schon immer falsch... :roll: ).

Das mit dem Horizont ist merkwürdiger.
In dem Codeabschnitt

Code: Alles auswählen

  catch {
    ...
    puts "[clock format [clock seconds] -format "%H:%M:%S"]: current condition is \"$aCurrent(condition)\""
    file delete /tmp/twilightweather.xml
    switch $aCurrent(condition){
      "Klar"              {set twilightHorizon [expr {$base_horizon + 0.2}]}
      "Meist sonnig"      {set twilightHorizon [expr {$base_horizon + 1.5}]}
      "Teils sonnig"      {set twilightHorizon [expr {$base_horizon + 3.0}]}
    }
  }
  log "twilight horizon set to $twilightHorizon"
Kann der Horizont nur 5.0 werden wenn das switch kein Ziel findet oder es eine Exception beim file delete gibt... Ich werde es später mal untersuchen...

rmeyerz
Beiträge: 58
Registriert: 04.04.2011, 12:31

Re: Dämmerungsscript

Beitrag von rmeyerz » 07.04.2011, 20:36

Du hast ja auch ein weiteres Script geschrieben: weather.tcl. Hier gibt es die Varibale tomorow. Der Wert wird ähnlich dem twilight-Script bestimmt. Nur wenn hier nichts gefunden wird, übernimmt er den Zustand aus dem Wetterbericht direkt. Beispiel im Script selber ist nur regen klein geschrieben angegeben. Ich habe mich zuerst gewundert, dass im Display Regen großgeschrieben wurde. Der Blick in die Datei mit den Wetterdaten zeigte es dann. Hier ist Regen groß geschrieben und die Variable behält dann den Wert.

Also im Prinzip ähnlich, eigentlich im weather.tcl noch komplizierter. Vielleicht kannst du das ja für das twilight.tcl Script verwerten. Ich habe mir erstmal meine alten Unterlagen aus dem Keller geholt und brauche bestimmt noch einiges an Zeit, um wieder im Thema zu sein.

Noch etwas ist mir aufgefallen. Ich lasse gewisse Dinge in der CCU per Systemprotokoll erfassen. Als Neuling kann ich dann gut nachvollziehen, was so alles geschaltet und geändert wurde. Eine echte Hilfe. Allerdings stoppte die Erfassung immer irgendwann. Meiner Meinung nach immer dann, wenn das twiligt.tcl Script in den Wartemodus geht. Aber ich habe soviel neugestartet und so, dass ich nicht sicher bin. Sicher ist aber folgendes: Seit 2 Tagen läuft das twiligt.tcl Script probeweise nicht mehr. Die Erfassung im Systemprotokoll ist seitdem lückenlos und nicht mehr unterbrochen. Das weather Script läuft noch weiter und ich lasse mir die Daten im Display anzeigen. Also daran liegt es nicht.
Schöne wäre es natürlich, wenn alles zusammen laufen würde und man kann trotzdem noch das Systemprotokoll laufen lassen ohne dass es stoppt.

Benutzeravatar
DocZoid
Beiträge: 94
Registriert: 01.11.2010, 18:53
Wohnort: Dortmund

Re: Dämmerungsscript

Beitrag von DocZoid » 07.04.2011, 23:38

In weather.tcl unterscheide ich in der Großschreibung wie stark eine Wetterbedingung vorhergesagt wird, also regen = vereinzelt Regen, während Regen (mit großem R) "mehr" Regen ist, vor allem bei Sonne ist das so...

Im Grunde verfahre ich aber in twilight.tcl ähnlich, dort setze ich den Horizont erstmal auf 5.0 für alle schlechten Wetterbedingungen die es so gibt, und dann berechne ich den kleiner bei gutem Wetter - theoretisch.

Ich hatte bisher nicht genug Zeit da rein zu schauen, nächste Woche geht das hoffentlich.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“