Ich hab jetzt keine Zeit im Code nach zu sehen, wo genau das definiert wird. Bei wiederkehrenden unregelmäßigen Item Änderungen, gibt man dem Scheduler nicht das Item selber, sondern eine Funktion an. Der Scheduler triggert diese Funktion zum angegebenen Zeitpunkt. In der Funktion ändert man nun das Item, berechnet gleichzeitig den nächsten Zeitpunkt und übergibt diesen wieder an den Scheduler. Daraufhin erscheinen dann die Log Meldungen, wenn eine Funktion das nächste mal getriggert wird.
Als Besonderheit kann der Scheduler aber auch mit crontab und cycle umgehen. Man kann also den exakten Zeitpunkt angeben und den nächsten dann selber berechnen, so wie ich z.B. im UZSU Plugin, oder man nutzt crontab oder cycle für wiederkehrende Aufrufe.
eval_trigger ist nochmal was anderes. Jedes Item hat eine Liste an Logiken und Methoden die bei Itemänderung getriggert werden sollen. Wenn du bei einem Item einen eval_trigger angibst, trägt sich das attributierte Item bei dem angegebenen Item als Methode ein, die bei Änderung getriggert werden soll. Damit kann das attributierte Item auf Änderungen des angegebenen Items reagieren. Da diese Methoden des Items öffentlich sind, kann sich aber auch jedes Plugin oder auch eine Logik etc. für Itemänderungen eintragen. Entspricht also dem Observer-Pattern.
Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - Die innere Uhr: UTC/CEST Debugging
Einklappen
X
-
Ich meine so etwas:
Kann man das so verstehen, dass der Scheduler immer zu diesen Zeiten env_stat, env_loc und ebusd aufruft? Wo wird denn z.B. festgelegt, wie oft diese (fest eingebauten) Logiken aufgerufen werden? Bei den eigenen Logiken wird dann der Scheduler durch so etwas wie crontab konfiguriert!?Code:2014-06-19 15:44:48,953 DEBUG Scheduler env_stat next time: 2014-06-19 15:49:48+02:00 -- scheduler.py:_next_time:289 oder: 2014-06-19 16:09:39,924 DEBUG Scheduler env_loc next time: 2014-06-19 16:39:39+02:00 -- scheduler.py:_next_time:289 oder: 2014-06-19 16:09:36,772 DEBUG Scheduler eBusd next time: 2014-06-19 16:13:36+02:00 -- scheduler.py:_next_time:289
Und wie funktioniert das mit eval_trigger? Ändert der Scheduler das überwachte Objekt und eval_trigger wird dann benachrichtigt (so Observer-Pattern-mäßig?), oder pollt eval_trigger die ganze Zeit auf dem überwachten Objekt (und wenn ja, wie ist das Polling-Intervall)?
Einen Kommentar schreiben:
-
Was interessiert dich da genau? Der scheduler macht eigentlich nichts anderes, als das du ihm sagen kannst, wann er eine bestimmte Funktion mit welchem Wert aufrufen soll. Das kann nun eine Logik sein, das Setzen eines Item Wertes oder eine eigene Funktion innerhalb eines Plugins. Der scheduler sorgt dann dafür, dass die Funktion zu der Zeit aufgerufen wird und das genügend Workerthreads vorhanden sind. Nicht mehr und nicht weniger.Zitat von chriscrown Beitrag anzeigenPS: Die Funktion des Schedulers in SH.py würde mich immer noch interessieren, vielleicht hat Marcus ja ein wenig Zeit das zu erläutern...
Einen Kommentar schreiben:
-
Es funktioniert korrekt
OK, es funktioniert korrekt!
Der Hinweis mit der bürgerlichen Dämmerung war das entscheidene Puzzleteilchen. Für alle anderen Hilfe-Suchenden hier noch mal eine kleine Zusammenfassung:
Die bürgerliche Dämmerung ist laut Wikipedia "Lesen im Freien möglich (Tiefenwinkel bis 6 Grad)". Da die Phase zwischen Sonnenuntergang und Ende der bürgerlichen Dämmerung in unseren Breiten kurz vor der Sonnenwende ziemlich genau 60min beträgt, bin ich immer von einer Zeitverschiebung um eine Stunde nach hinten ausgegangen, was ich auf die vermeintlich flasche Systemzeit zurückführte. Im Log kann man (wenn man es erstmal verstanden hat) allerdings erkennen, dass bei Sonnenuntergang (bei mir ungefähr 21:51) die neue Sonnenuntergangszeit des Folgetages berechnet wird. Da funktioniert der Zusammenhang zwischen Systemzeit und SH.py-Zeit also wunderbar und lässt auch ein korrekt konfiguriertes System schließen. Um 22:52 wird dann das Event day getriggert, welches mein day-item korrekt auf false setzt. Alles ist also in Ordnung.
So habe ich das System eingestellt/getestet:
Zeitzone auf UTC oder CEST (Europe/Berlin) einstellen, SH.py rechnet automatisch um:
smarthome.conf auf Zeitzone prüfen:Code:dpkg-reconfigure tzdata
System auf eine Uhrzeit kurz vor Sonnenuntergang setzen:Code:tz = 'Europe/Berlin'
SH.py im Debug-Mode starten:Code:sudo date --set="20140624 21:50"
Nun beobachten, ob zum Zeitpunkt des Sonnenuntergangs der Sonnenuntergang des Folgetages berechnet wird. Alternativ kann man auch per Telnet (telnet localhost 2323) das sunset-Objet beobachten.Code:./smarthome.py -d
Wenn man SH.py nun weiterlaufen lässt, sollte ca. 1 Std. später auch das day-Objekt umgeschaltet werden (wieder Log oder telnet zu Prüfen).
Die vorherige Lösung mit crontab triggert zum Zeitpunkt des Sonnenuntergangs, weshalb ich die natürlich als korrekt angenommen hatte. Unter dem Gesichtspunkt der Abhängigkeit des day-Objektes von der bürgerlichen Dämmerung versteht man dann hinterher aber auch, warum mit env.location.day erst eine Stunde später getriggert wird und alles mit den Zeitzonen seine Richtigkeit hat.
Nochmals vielen Dank für Eure Hilfe!
PS: Die Funktion des Schedulers in SH.py würde mich immer noch interessieren, vielleicht hat Marcus ja ein wenig Zeit das zu erläutern...
Einen Kommentar schreiben:
-
Hallo Marcus!
Ja, das ist nachvollziehbar und erklärt das aktuelle Verhalten des day-Objektes.
Wie kann ich das jetzt vernünftig testen? Bisher habe ich immer die Zeit per date gesetzt, dann SH.py gestartet und dann mit Debug-Log und CLI "beobachtet" während die Uhrzeit über den Sonnenuntergang lief.
Kann ich die Zeit auch weiterstellen während SH.py läuft, oder funktioniert das dann mit dem Scheduler nicht? Ich meine, dass ich SH.py über den Sonnenuntergang laufen lasse und dann auf kurz vor Ende der bürgerlichen Dämmerung weiterstelle. Ich hab das einfach noch nicht so ganz geschnallt wie SH.py die Systemzeit "überwacht" und die Events entsprechend triggert. Es wäre toll, wenn Du vielleicht kurz beschreiben kannst wie das intern gelöst ist.
Einen Kommentar schreiben:
-
Hallo,
die Zeiten scheinen zu passen.
Vllt liegt es an der Definition was Tag bzw. Nacht ist.
Ich setzte Tag bzw. Nacht so:
env.location.day beinhaltet auch die bürgerliche Dämmerung.Code:# setting day and night day = sh.sun.rise(-6).day != sh.sun.set(-6).day sh.env.location.day(day) sh.env.location.night(not day)
Nachvollziehbar?
Bis bald
Marcus
Einen Kommentar schreiben:
-
Ich habe jetzt mal alle Informationen zusammen getragen. Sicher könnte ich mit dem fertigen Image vermutlich schnell ans Ziel kommen, allerdings wüsste ich auch gerne, warum ich dann an diesem Ziel bin...
Ich konnte feststellen, dass beim Systemstart der richtige Zustand des day-items auf den Bus gesendet wird. Wird dann der Sonnenuntergang "überschritten", wird auch auf dem CLI der nächste Sonnenuntergang korrekt berechnet. Allerdings löst eval_trigger = env.location.day nicht ein Senden des aktualisierten day-items auf den Bus aus. Auch im CLI steht env.location.day nach wie vor auf dem alten Wert.
date liefert:
Ich habe es auch mit UTC (also +0000) probiert, die Zeiten wurden korrekt berechnet, aber nicht getriggert.Code:date +%FT%T%z 2014-06-19T15:06:18+0200
Das Item:
plugin.conf:Code:[day] type = num knx_dpt = 1 knx_send = 0/2/20 knx_reply = 0/2/20 eval = sh.env.location.day() eval_trigger = env.location.day
Debug-Log (bis sich das System "eingeschwungen" hat):Code:[knx] class_name = KNX class_path = plugins.knx host = 127.0.0.1 port = 6720 [visu] class_name = WebSocket class_path = plugins.visu acl = rw [cli] class_name = CLI class_path = plugins.cli port = 2323 ip = 0.0.0.0 update = true [sql] class_name = SQL class_path = plugins.sqlite [ebus] class_name = eBus class_path = plugins.ebus host = localhost # ip of ebusd port = 8888 # port of ebusd cycle = 240 # cycle of each item
Ich hoffe, das sind alle benötigten Informationen, vielen Dank für den Support!Code:2014-06-19 15:09:26,744 INFO Main Start SmartHome.py 1.0-35-gf62db45 -- smarthome.py:__init__:231 2014-06-19 15:09:26,751 DEBUG Main Python 3.2.3 -- smarthome.py:__init__:232 2014-06-19 15:09:26,760 INFO Main Init Scheduler -- scheduler.py:__init__:86 2014-06-19 15:09:26,767 INFO Main Init Plugins -- smarthome.py:start:274 2014-06-19 15:09:26,781 DEBUG Scheduler creating 5 workers -- scheduler.py:run:93 2014-06-19 15:09:26,806 DEBUG Main Plugin: knx -- plugin.py:__init__:43 2014-06-19 15:09:26,853 DEBUG Main Plugin: visu -- plugin.py:__init__:43 2014-06-19 15:09:26,961 DEBUG Main Plugin: cli -- plugin.py:__init__:43 2014-06-19 15:09:26,977 DEBUG Main Plugin: sql -- plugin.py:__init__:43 2014-06-19 15:09:27,020 DEBUG Main SQLite 3.7.13 -- __init__.py:__init__:62 2014-06-19 15:09:29,770 DEBUG Main SQLite: database integrity ok -- __init__.py:__init__:78 2014-06-19 15:09:29,809 DEBUG Main SQLite pack next time: 2014-06-20 03:02:00+02:00 -- scheduler.py:_next_time:289 2014-06-19 15:09:29,817 DEBUG Main Plugin: ebus -- plugin.py:__init__:43 2014-06-19 15:09:29,834 INFO Main Init Items -- smarthome.py:start:280 2014-06-19 15:09:30,467 DEBUG Main Item env.core.memory = 17141760.0 via SQLite None None -- item.py:set:457 2014-06-19 15:09:30,847 DEBUG Main Item env.core.threads = 7.0 via SQLite None None -- item.py:set:457 2014-06-19 15:09:31,219 DEBUG Main Item env.core.garbage = 0.0 via SQLite None None -- item.py:set:457 2014-06-19 15:09:31,228 DEBUG Main Item env.core: no type specified. -- item.py:__init__:242 2014-06-19 15:09:31,329 DEBUG Main Item env.location: no type specified. -- item.py:__init__:242 2014-06-19 15:09:31,731 DEBUG Main Item env.system.load = 0.65000003975968 via SQLite None None -- item.py:set:457 2014-06-19 15:09:31,756 DEBUG Main Item env.system: no type specified. -- item.py:__init__:242 2014-06-19 15:09:31,761 DEBUG Main Item env: no type specified. -- item.py:__init__:242 2014-06-19 15:09:31,781 DEBUG Main KNX: ebus.flow_temp reply to 0/3/200 -- __init__.py:parse_item:267 2014-06-19 15:09:31,799 DEBUG Main KNX: ebus.return_temp reply to 0/3/201 -- __init__.py:parse_item:267 2014-06-19 15:09:31,817 DEBUG Main KNX: ebus.out_temp reply to 0/3/202 -- __init__.py:parse_item:267 2014-06-19 15:09:31,838 DEBUG Main KNX: ebus.water_temp reply to 0/3/203 -- __init__.py:parse_item:267 2014-06-19 15:09:31,848 DEBUG Main Item ebus: no type specified. -- item.py:__init__:242 2014-06-19 15:09:31,867 DEBUG Main KNX: tech.light listen on 1/4/100 -- __init__.py:parse_item:235 2014-06-19 15:09:31,873 DEBUG Main KNX: tech.light listen on and init with 1/4/100 -- __init__.py:parse_item:244 2014-06-19 15:09:31,879 DEBUG Main Item tech: no type specified. -- item.py:__init__:242 2014-06-19 15:09:31,901 DEBUG Main KNX: laundry.light listen on 1/4/110 -- __init__.py:parse_item:235 2014-06-19 15:09:31,906 DEBUG Main KNX: laundry.light listen on and init with 1/4/110 -- __init__.py:parse_item:244 2014-06-19 15:09:31,920 DEBUG Main KNX: laundry.plugs listen on 2/4/110 -- __init__.py:parse_item:235 2014-06-19 15:09:31,925 DEBUG Main KNX: laundry.plugs listen on and init with 2/4/110 -- __init__.py:parse_item:244 2014-06-19 15:09:31,938 DEBUG Main KNX: Temperatur listen on 0/3/110 -- __init__.py:parse_item:235 2014-06-19 15:09:31,954 DEBUG Main KNX: Türkontakt HWR listen on 0/1/110 -- __init__.py:parse_item:235 2014-06-19 15:09:31,959 DEBUG Main KNX: Türkontakt HWR listen on and init with 0/1/110 -- __init__.py:parse_item:244 2014-06-19 15:09:31,972 DEBUG Main Item laundry.motion: no type specified. -- item.py:__init__:242 2014-06-19 15:09:31,977 DEBUG Main Item laundry: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,003 DEBUG Main KNX: kitchen.light_ceiling.dimvalue listen on 1/5/120 -- __init__.py:parse_item:235 2014-06-19 15:09:32,010 DEBUG Main KNX: kitchen.light_ceiling listen on 1/4/120 -- __init__.py:parse_item:235 2014-06-19 15:09:32,015 DEBUG Main KNX: kitchen.light_ceiling listen on and init with 1/4/120 -- __init__.py:parse_item:244 2014-06-19 15:09:32,027 DEBUG Main Item kitchen.light_spots: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,039 DEBUG Main KNX: kitchen.light_cupboard listen on 1/4/123 -- __init__.py:parse_item:235 2014-06-19 15:09:32,044 DEBUG Main KNX: kitchen.light_cupboard listen on and init with 1/4/123 -- __init__.py:parse_item:244 2014-06-19 15:09:32,057 DEBUG Main Item kitchen.light_hood: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,069 DEBUG Main KNX: kitchen.plugs listen on 2/4/120 -- __init__.py:parse_item:235 2014-06-19 15:09:32,074 DEBUG Main KNX: kitchen.plugs listen on and init with 2/4/120 -- __init__.py:parse_item:244 2014-06-19 15:09:32,087 DEBUG Main KNX: Türkontakt Küche listen on 0/1/120 -- __init__.py:parse_item:235 2014-06-19 15:09:32,092 DEBUG Main KNX: Türkontakt Küche listen on and init with 0/1/120 -- __init__.py:parse_item:244 2014-06-19 15:09:32,098 DEBUG Main Item kitchen: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,124 DEBUG Main KNX: livingroom.light_table.dimvalue listen on 1/5/130 -- __init__.py:parse_item:235 2014-06-19 15:09:32,130 DEBUG Main KNX: livingroom.light_table listen on 1/4/130 -- __init__.py:parse_item:235 2014-06-19 15:09:32,135 DEBUG Main KNX: livingroom.light_table listen on and init with 1/4/130 -- __init__.py:parse_item:244 2014-06-19 15:09:32,155 DEBUG Main KNX: livingroom.light_piano.dimvalue listen on 1/5/131 -- __init__.py:parse_item:235 2014-06-19 15:09:32,161 DEBUG Main KNX: livingroom.light_piano listen on 1/4/131 -- __init__.py:parse_item:235 2014-06-19 15:09:32,166 DEBUG Main KNX: livingroom.light_piano listen on and init with 1/4/131 -- __init__.py:parse_item:244 2014-06-19 15:09:32,185 DEBUG Main KNX: livingroom.light_couch.dimvalue listen on 1/5/132 -- __init__.py:parse_item:235 2014-06-19 15:09:32,192 DEBUG Main KNX: livingroom.light_couch listen on 1/4/132 -- __init__.py:parse_item:235 2014-06-19 15:09:32,196 DEBUG Main KNX: livingroom.light_couch listen on and init with 1/4/132 -- __init__.py:parse_item:244 2014-06-19 15:09:32,208 DEBUG Main Item livingroom.light_spots: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,220 DEBUG Main KNX: livingroom.plugs1 listen on 2/4/130 -- __init__.py:parse_item:235 2014-06-19 15:09:32,225 DEBUG Main KNX: livingroom.plugs1 listen on and init with 2/4/130 -- __init__.py:parse_item:244 2014-06-19 15:09:32,239 DEBUG Main KNX: livingroom.plugs2 listen on 2/4/131 -- __init__.py:parse_item:235 2014-06-19 15:09:32,244 DEBUG Main KNX: livingroom.plugs2 listen on and init with 2/4/131 -- __init__.py:parse_item:244 2014-06-19 15:09:32,256 DEBUG Main KNX: Temperatur listen on 0/3/132 -- __init__.py:parse_item:235 2014-06-19 15:09:32,272 DEBUG Main KNX: Türkontakt Schiebeelement listen on 0/1/130 -- __init__.py:parse_item:235 2014-06-19 15:09:32,277 DEBUG Main KNX: Türkontakt Schiebeelement listen on and init with 0/1/130 -- __init__.py:parse_item:244 2014-06-19 15:09:32,291 DEBUG Main KNX: Türkontakt PSK listen on 0/1/132 -- __init__.py:parse_item:235 2014-06-19 15:09:32,295 DEBUG Main KNX: Türkontakt PSK listen on and init with 0/1/132 -- __init__.py:parse_item:244 2014-06-19 15:09:32,341 DEBUG Main KNX: livingroom.blinds.complete.position listen on 3/4/100 -- __init__.py:parse_item:235 2014-06-19 15:09:32,346 DEBUG Main KNX: livingroom.blinds.complete.position listen on and init with 3/4/100 -- __init__.py:parse_item:244 2014-06-19 15:09:32,351 DEBUG Main Item livingroom.blinds.complete: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,356 DEBUG Main Item livingroom.blinds: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,369 DEBUG Main KNX: livingroom.scene_cooking listen on 0/5/10 -- __init__.py:parse_item:235 2014-06-19 15:09:32,382 DEBUG Main KNX: livingroom.scene_dinner listen on 0/5/10 -- __init__.py:parse_item:235 2014-06-19 15:09:32,394 DEBUG Main KNX: livingroom.scene_party listen on 0/5/10 -- __init__.py:parse_item:235 2014-06-19 15:09:32,412 DEBUG Main KNX: livingroom.scene_tv listen on 0/5/10 -- __init__.py:parse_item:235 2014-06-19 15:09:32,426 DEBUG Main KNX: livingroom.scene_chillout listen on 0/5/10 -- __init__.py:parse_item:235 2014-06-19 15:09:32,439 DEBUG Main KNX: livingroom.scene_standby listen on 0/5/10 -- __init__.py:parse_item:235 2014-06-19 15:09:32,445 DEBUG Main Item livingroom: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,467 DEBUG Main KNX: guests_bathroom.light listen on 1/4/150 -- __init__.py:parse_item:235 2014-06-19 15:09:32,473 DEBUG Main KNX: guests_bathroom.light listen on and init with 1/4/150 -- __init__.py:parse_item:244 2014-06-19 15:09:32,486 DEBUG Main Item guests_bathroom.light_mirror: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,500 DEBUG Main KNX: guests_bathroom.plugs listen on 2/4/150 -- __init__.py:parse_item:235 2014-06-19 15:09:32,506 DEBUG Main KNX: guests_bathroom.plugs listen on and init with 2/4/150 -- __init__.py:parse_item:244 2014-06-19 15:09:32,520 DEBUG Main KNX: Temperatur listen on 0/3/150 -- __init__.py:parse_item:235 2014-06-19 15:09:32,538 DEBUG Main KNX: Fensterkontakt EG Bad listen on 0/1/150 -- __init__.py:parse_item:235 2014-06-19 15:09:32,543 DEBUG Main KNX: Fensterkontakt EG Bad listen on and init with 0/1/150 -- __init__.py:parse_item:244 2014-06-19 15:09:32,551 DEBUG Main Item guests_bathroom: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,571 DEBUG Main KNX: base_corridor.light listen on 1/4/160 -- __init__.py:parse_item:235 2014-06-19 15:09:32,577 DEBUG Main KNX: base_corridor.light listen on and init with 1/4/160 -- __init__.py:parse_item:244 2014-06-19 15:09:32,591 DEBUG Main KNX: base_corridor.light_stairs listen on 1/4/53 -- __init__.py:parse_item:235 2014-06-19 15:09:32,597 DEBUG Main KNX: base_corridor.light_stairs listen on and init with 1/4/53 -- __init__.py:parse_item:244 2014-06-19 15:09:32,611 DEBUG Main KNX: base_corridor.plugs listen on 2/4/160 -- __init__.py:parse_item:235 2014-06-19 15:09:32,617 DEBUG Main KNX: base_corridor.plugs listen on and init with 2/4/160 -- __init__.py:parse_item:244 2014-06-19 15:09:32,631 DEBUG Main KNX: Temperatur listen on 0/3/160 -- __init__.py:parse_item:235 2014-06-19 15:09:32,649 DEBUG Main KNX: Türkontakt Haustür listen on 0/1/160 -- __init__.py:parse_item:235 2014-06-19 15:09:32,654 DEBUG Main KNX: Türkontakt Haustür listen on and init with 0/1/160 -- __init__.py:parse_item:244 2014-06-19 15:09:32,660 DEBUG Main Item base_corridor: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,681 DEBUG Main KNX: guests.light listen on 1/4/140 -- __init__.py:parse_item:235 2014-06-19 15:09:32,688 DEBUG Main KNX: guests.light listen on and init with 1/4/140 -- __init__.py:parse_item:244 2014-06-19 15:09:32,701 DEBUG Main KNX: guests.plugs listen on 2/4/140 -- __init__.py:parse_item:235 2014-06-19 15:09:32,707 DEBUG Main KNX: guests.plugs listen on and init with 2/4/140 -- __init__.py:parse_item:244 2014-06-19 15:09:32,722 DEBUG Main KNX: Temperatur listen on 0/3/140 -- __init__.py:parse_item:235 2014-06-19 15:09:32,740 DEBUG Main KNX: Türkontakt Gästezimmer listen on 0/1/140 -- __init__.py:parse_item:235 2014-06-19 15:09:32,746 DEBUG Main KNX: Türkontakt Gästezimmer listen on and init with 0/1/140 -- __init__.py:parse_item:244 2014-06-19 15:09:32,752 DEBUG Main Item guests: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,774 DEBUG Main KNX: dressing_room.light listen on 1/4/30 -- __init__.py:parse_item:235 2014-06-19 15:09:32,780 DEBUG Main KNX: dressing_room.light listen on and init with 1/4/30 -- __init__.py:parse_item:244 2014-06-19 15:09:32,795 DEBUG Main KNX: dressing_room.plugs listen on 2/4/1 -- __init__.py:parse_item:235 2014-06-19 15:09:32,801 DEBUG Main KNX: dressing_room.plugs listen on and init with 2/4/1 -- __init__.py:parse_item:244 2014-06-19 15:09:32,815 DEBUG Main KNX: Temperatur listen on 0/3/30 -- __init__.py:parse_item:235 2014-06-19 15:09:32,835 DEBUG Main Item dressing_room.contact: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,842 DEBUG Main Item dressing_room: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,863 DEBUG Main KNX: child2.light listen on 1/4/20 -- __init__.py:parse_item:235 2014-06-19 15:09:32,871 DEBUG Main KNX: child2.light listen on and init with 1/4/20 -- __init__.py:parse_item:244 2014-06-19 15:09:32,889 DEBUG Main KNX: child2.plugs listen on 2/4/11 -- __init__.py:parse_item:235 2014-06-19 15:09:32,895 DEBUG Main KNX: child2.plugs listen on and init with 2/4/11 -- __init__.py:parse_item:244 2014-06-19 15:09:32,914 DEBUG Main KNX: Temperatur listen on 0/3/20 -- __init__.py:parse_item:235 2014-06-19 15:09:32,932 DEBUG Main KNX: Fensterkontakt listen on 0/1/20 -- __init__.py:parse_item:235 2014-06-19 15:09:32,938 DEBUG Main KNX: Fensterkontakt listen on and init with 0/1/20 -- __init__.py:parse_item:244 2014-06-19 15:09:32,944 DEBUG Main Item child2: no type specified. -- item.py:__init__:242 2014-06-19 15:09:32,959 DEBUG Main KNX: day reply to 0/2/20 -- __init__.py:parse_item:267 2014-06-19 15:09:32,980 DEBUG Main Triggering day - by: Init source: None dest: None value: {'caller': 'Init', 'value': 0} -- scheduler.py:trigger:162 2014-06-19 15:09:32,992 INFO Main Start Plugins -- plugin.py:start:65 2014-06-19 15:09:33,013 INFO Main Start Logics -- logic.py:__init__:33 2014-06-19 15:09:33,019 DEBUG Main Reading Logics from /usr/smarthome/lib/env/logic_conf -- logic.py:_read_logics:64 2014-06-19 15:09:33,027 DEBUG ebus eBusd next time: 2014-06-19 15:09:35+02:00 -- scheduler.py:_next_time:289 2014-06-19 15:09:33,048 DEBUG Main Reading Logics from /usr/smarthome/etc/logic.conf -- logic.py:_read_logics:64 2014-06-19 15:09:33,058 DEBUG Main Logic: env_init -- logic.py:__init__:44 2014-06-19 15:09:33,118 DEBUG Main Logic: env_stat -- logic.py:__init__:44 2014-06-19 15:09:33,142 DEBUG Main env_stat next time: 2014-06-19 15:09:48+02:00 -- scheduler.py:_next_time:289 2014-06-19 15:09:33,148 DEBUG Main Logic: env_loc -- logic.py:__init__:44 2014-06-19 15:09:33,520 DEBUG Connections KNX: connected to 127.0.0.1:6720 -- connection.py:connect:386 2014-06-19 15:09:33,527 DEBUG Connections KNX: enable group monitor -- __init__.py:handle_connect:117 2014-06-19 15:09:33,532 DEBUG Connections KNX: init read -- __init__.py:handle_connect:123 2014-06-19 15:09:33,563 DEBUG Connections WebSocket: binding to 0.0.0.0:2424 (TCP) -- connection.py:connect:161 2014-06-19 15:09:33,571 DEBUG Connections CLI: binding to 0.0.0.0:2323 (TCP) -- connection.py:connect:161 2014-06-19 15:09:33,584 INFO Connections Connected to localhost:8888 -- __init__.py:connect:113 2014-06-19 15:09:34,188 DEBUG Main KNX: 0.0.0 read 1/4/100 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,199 DEBUG Main KNX: 0.0.0 read 1/4/110 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,210 DEBUG Main KNX: 0.0.0 read 2/4/110 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,229 DEBUG Main KNX: 0.0.0 read 0/1/110 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,235 DEBUG Main KNX: 0.0.0 read 1/4/120 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,251 DEBUG Main KNX: 0.0.0 read 1/4/123 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,259 DEBUG Main KNX: 0.0.0 read 2/4/120 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,269 DEBUG Main KNX: 0.0.0 read 0/1/120 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,289 DEBUG Main KNX: 0.0.0 read 1/4/130 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,296 DEBUG Main KNX: 0.0.0 read 1/4/131 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,310 DEBUG Main KNX: 0.0.0 read 1/4/132 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,320 DEBUG Main KNX: 0.0.0 read 2/4/130 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,339 DEBUG Main KNX: 0.0.0 read 2/4/131 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,346 DEBUG Main KNX: 0.0.0 read 0/1/130 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,353 DEBUG Main KNX: 0.0.0 read 0/1/132 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,367 DEBUG Main KNX: 0.0.0 read 3/4/100 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,379 DEBUG Main KNX: 0.0.0 read 1/4/150 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,396 DEBUG Main KNX: 0.0.0 read 2/4/150 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,411 DEBUG Main knx: 1.1.10 set 1/4/100 to False -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,424 DEBUG Main KNX: 0.0.0 read 0/1/150 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,445 DEBUG Main KNX: 0.0.0 read 1/4/160 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,454 DEBUG Main KNX: 0.0.0 read 1/4/53 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,470 DEBUG Main KNX: 0.0.0 read 2/4/160 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,485 DEBUG Main KNX: 0.0.0 read 0/1/160 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,498 DEBUG Main KNX: 0.0.0 read 1/4/140 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,515 DEBUG Main KNX: 0.0.0 read 2/4/140 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,523 DEBUG Main KNX: 0.0.0 read 0/1/140 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,537 DEBUG Main knx: 1.1.13 set 2/4/110 to True -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,551 DEBUG Main Item laundry.plugs = True via KNX [URL="http://snom:2342@192.168.1.52/command.htm?number=111324110"]1.1.13 2/4/110[/URL] -- item.py:__update:363 2014-06-19 15:09:34,565 DEBUG Main KNX: 0.0.0 read 1/4/30 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,571 DEBUG Main KNX: 0.0.0 read 2/4/1 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,577 DEBUG Main KNX: 0.0.0 read 1/4/20 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,586 DEBUG Main KNX: 0.0.0 read 2/4/11 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,593 DEBUG Main knx: 1.1.11 set 1/4/110 to False -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,600 DEBUG Main KNX: 0.0.0 read 0/1/20 -- __init__.py:parse_telegram:203 2014-06-19 15:09:34,611 DEBUG Main knx: 1.1.31 set 0/1/110 to False -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,618 DEBUG Main knx: 1.1.13 set 1/4/123 to False -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,629 DEBUG Main knx: 1.1.21 set 1/4/130 to False -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,636 DEBUG Main knx: 1.1.31 set 0/1/132 to False -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,643 DEBUG Main knx: 1.1.14 set 2/4/150 to False -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,650 DEBUG Main knx: 1.1.21 set 1/4/131 to False -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,659 DEBUG Main knx: 1.1.31 set 0/1/20 to False -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,666 DEBUG Main knx: 1.1.11 set 1/4/160 to True -- __init__.py:parse_telegram:190 2014-06-19 15:09:34,674 DEBUG Main Item base_corridor.light = True via KNX [URL="http://snom:2342@192.168.1.52/command.htm?number=111114160"]1.1.11 1/4/160[/URL] -- item.py:__update:363 2014-06-19 15:09:35,943 DEBUG Scheduler eBusd next time: 2014-06-19 15:13:35+02:00 -- scheduler.py:_next_time:289 2014-06-19 15:09:36,440 DEBUG eBusd REQUEST: get ac temp_basic temp_vl -- __init__.py:request:79 2014-06-19 15:09:36,822 DEBUG eBusd ANSWER: [URL="http://snom:2342@192.168.1.52/command.htm?number=31000000"]31.000000[/URL] -- __init__.py:request:87 2014-06-19 15:09:36,830 DEBUG eBusd Item ebus.flow_temp = 31.0 via eBus refresh None -- item.py:__update:363 2014-06-19 15:09:36,856 DEBUG Main knx: 0.0.0 set 0/3/200 to 0e0e -- __init__.py:parse_telegram:181 2014-06-19 15:09:37,854 DEBUG eBusd REQUEST: get ac temp_basic temp_rl -- __init__.py:request:79 2014-06-19 15:09:38,009 DEBUG eBusd ANSWER: [URL="http://snom:2342@192.168.1.52/command.htm?number=30000000"]30.000000[/URL] -- __init__.py:request:87 2014-06-19 15:09:38,018 DEBUG eBusd Item ebus.return_temp = 30.0 via eBus refresh None -- item.py:__update:363 2014-06-19 15:09:38,033 DEBUG Main knx: 0.0.0 set 0/3/201 to 0ddc -- __init__.py:parse_telegram:181 2014-06-19 15:09:38,575 DEBUG env_init Item env.core.version = 1.0-35-gf62db45 via Logic None None -- item.py:__update:363 2014-06-19 15:09:38,579 DEBUG env_loc Item env.location.sunrise = 2014-06-20 04:51:22.166312+02:00 via Logic None None -- item.py:__update:363 2014-06-19 15:09:38,577 DEBUG sh.gc Garbage collector: collected 0 objects. -- smarthome.py:_garbage_collection:498 2014-06-19 15:09:38,607 DEBUG env_init Item env.core.start = 2014-06-19 15:09:38.592732+02:00 via Logic None None -- item.py:__update:363 2014-06-19 15:09:38,649 DEBUG env_init Item env.system.name = smarthome.local via Logic None None -- item.py:__update:363 2014-06-19 15:09:38,669 DEBUG env_loc Item env.location.sunset = 2014-06-19 21:51:[URL="http://snom:2342@192.168.1.52/command.htm?number=49318892"]49.318892[/URL]+02:00 via Logic None None -- item.py:__update:363 2014-06-19 15:09:38,711 DEBUG env_init Item env.system.start = 2014-06-18 13:36:[URL="http://snom:2342@192.168.1.52/command.htm?number=55705006"]55.705006[/URL]+02:00 via Logic None None -- item.py:__update:363 2014-06-19 15:09:38,800 DEBUG env_loc Item env.location.moonrise = 2014-06-20 01:15:[URL="http://snom:2342@192.168.1.52/command.htm?number=43141463"]43.141463[/URL]+02:00 via Logic None None -- item.py:__update:363 2014-06-19 15:09:38,908 DEBUG env_loc Item env.location.moonset = 2014-06-20 14:19:[URL="http://snom:2342@192.168.1.52/command.htm?number=41787820"]41.787820[/URL]+02:00 via Logic None None -- item.py:__update:363 2014-06-19 15:09:38,964 DEBUG env_loc Item env.location.moonphase = 6 via Logic None None -- item.py:__update:363 2014-06-19 15:09:38,993 DEBUG sh.gc Object references: 8658 -- smarthome.py:_maintenance:490 2014-06-19 15:09:39,040 DEBUG env_loc Item env.location.day = True via Logic None None -- item.py:__update:363 2014-06-19 15:09:39,054 DEBUG env_loc Triggering day - by: Logic source: None dest: None value: {'source': 'env.location.day', 'value': -- scheduler.py:trigger:162 2014-06-19 15:09:39,045 DEBUG eBusd REQUEST: get ac temp_basic temp_au -- __init__.py:request:79 2014-06-19 15:09:39,085 DEBUG day Item day = 1 via Eval env.location.day None -- item.py:__update:363 2014-06-19 15:09:39,124 DEBUG Main knx: 0.0.0 set 0/2/20 to 01 -- __init__.py:parse_telegram:181 2014-06-19 15:09:39,191 DEBUG Scheduler env_loc next time: 2014-06-19 15:39:39+02:00 -- scheduler.py:_next_time:289 2014-06-19 15:09:39,207 DEBUG eBusd ANSWER: 18.437500 -- __init__.py:request:87 2014-06-19 15:09:39,215 DEBUG eBusd Item ebus.out_temp = 18.4375 via eBus refresh None -- item.py:__update:363 2014-06-19 15:09:39,243 DEBUG Scheduler sh.gc next time: 2014-06-20 02:04:00+02:00 -- scheduler.py:_next_time:289 2014-06-19 15:09:39,254 DEBUG Main knx: 0.0.0 set 0/3/202 to 0733 -- __init__.py:parse_telegram:181 2014-06-19 15:09:40,262 DEBUG eBusd REQUEST: get ac temp_basic temp_ww -- __init__.py:request:79 2014-06-19 15:09:40,449 DEBUG eBusd ANSWER: [URL="http://snom:2342@192.168.1.52/command.htm?number=51000000"]51.000000[/URL] -- __init__.py:request:87 2014-06-19 15:09:40,462 DEBUG eBusd Item ebus.water_temp = 51.0 via eBus refresh None -- item.py:__update:363 2014-06-19 15:09:40,465 DEBUG Main knx: 1.1.110 set 0/3/110 to 22.2 -- __init__.py:parse_telegram:190 2014-06-19 15:09:40,484 DEBUG Main Item laundry.temp = 22.2 via KNX [URL="http://snom:2342@192.168.1.52/command.htm?number=1111003110"]1.1.110 0/3/110[/URL] -- item.py:__update:363 2014-06-19 15:09:40,507 DEBUG Main knx: 0.0.0 set 0/3/203 to 14fb -- __init__.py:parse_telegram:181 2014-06-19 15:09:48,407 DEBUG env_stat Item env.core.memory = 15400960 via Logic None None -- item.py:__update:363 2014-06-19 15:09:48,422 DEBUG env_stat Item env.system.load = 0.13 via Logic None None -- item.py:__update:363 2014-06-19 15:09:48,437 DEBUG env_stat Item env.location.moonlight = 53 via Logic None None -- item.py:__update:363 2014-06-19 15:09:48,842 DEBUG Scheduler env_stat next time: 2014-06-19 15:14:48+02:00 -- scheduler.py:_next_time:289 2014-06-19 15:10:30,705 DEBUG Main knx: 1.1.150 set 0/3/140 to 21.1 -- __init__.py:parse_telegram:190 2014-06-19 15:10:30,716 DEBUG Main Item guests.temp = 21.1 via KNX [URL="http://snom:2342@192.168.1.52/command.htm?number=1115003140"]1.1.150 0/3/140[/URL] -- item.py:__update:363 2014-06-19 15:10:38,062 DEBUG Main knx: 1.1.205 set 0/3/30 to 20.7 -- __init__.py:parse_telegram:190 2014-06-19 15:10:38,069 DEBUG Main Item dressing_room.temp = 20.7 via KNX [URL="http://snom:2342@192.168.1.52/command.htm?number=112050330"]1.1.205 0/3/30[/URL] -- item.py:__update:363 2014-06-19 15:10:41,063 DEBUG Main knx: 1.1.170 set 0/3/160 to 20.7 -- __init__.py:parse_telegram:190 2014-06-19 15:10:41,071 DEBUG Main Item base_corridor.temp = 20.7 via KNX [URL="http://snom:2342@192.168.1.52/command.htm?number=1117003160"]1.1.170 0/3/160[/URL] -- item.py:__update:363 2014-06-19 15:10:47,187 DEBUG Main knx: 1.1.210 set 0/3/10 to 0c24 -- __init__.py:parse_telegram:181
Einen Kommentar schreiben:
-
Hallo,
noch als Ergänzung das Problem hat nichts mit sunrise/sunset/crontab zu tun. Die Zeiten werden ja korrekt berechnet. Nur der Ausführungszeitpunkt ist falsch. Also die Referernzzeit von SH.py ist falsch.
Das kann z.B. der Fall sein, wenn die Systemzeit auf Europe/Berlin steht, SH.py aber mit UTC läuft.
Bis bald
Marcus
Einen Kommentar schreiben:
-
Hallo,
es wäre nur schön wenn wir die Informationen einem nicht aus der Nase ziehen müssen. Siehe: https://knx-user-forum.de/smarthome-...rbehebung.html
Was liefert denn das Debuglog und was liefert ein
auf der Commandozeile?Code:date +%FT%T%z
Oder verwende das Pi-Image dort passt die Umgebung.
Bis bald
Marcus
Einen Kommentar schreiben:
-
Okay, das sollte passen. Versuchs mal mit crontab. Das sollte gehen. Die day und night Items habe ich noch nie verwendet, daher kann ich zu denen nichts sagen.
Einen Kommentar schreiben:
-
Deine Zeitzone hast du aber in der Konfiguration schon gesetzt, oder?
Einen Kommentar schreiben:
-
OK, wird heute ausprobiert! :-)
Gibt es noch eine bessere als die von mir beschriebene Testmöglichkeit (Systemzeit ändern, Restart, warten)?
BTW: Ich hatte mich mit der Erstellung des Items an folgendem HowTo orientiert: https://github.com/mknx/smarthome/wiki/Tag-Nacht
Ist das für einen anderen Einsatzzweck gedacht, oder sollte man das ggf. etwas umschreiben?
Einen Kommentar schreiben:
-
Na also, dann nimm crontab mit sunrise und sunset dafür!Zitat von chriscrown Beitrag anzeigenIch möchte ein day-Item haben, dass bei Sonnenuntergang auf 0 gesetzt wird und bei Sonnenaufgang wieder auf 1. Dieses Item steuert Helligkeiten an den Schaltern usw. Es soll zu den realen Sonnenauf- und untergangszeiten ausgeführt werden. Aktuell passiert das mit einem Offset von 2 Stunden, d.h. um ca. 23:50 geht die Sonne unter und um 6:50 geht sie wieder auf...
Einen Kommentar schreiben:
-
Ich möchte ein day-Item haben, dass bei Sonnenuntergang auf 0 gesetzt wird und bei Sonnenaufgang wieder auf 1. Dieses Item steuert Helligkeiten an den Schaltern usw. Es soll zu den realen Sonnenauf- und untergangszeiten ausgeführt werden. Aktuell passiert das mit einem Offset von 2 Stunden, d.h. um ca. 23:50 geht die Sonne unter und um 6:50 geht sie wieder auf...
@Stefan:
Ich achte extremst darauf höflich zu sein und werde niemals jemanden angreifen oder bloßstellen, weil er bei irgendetwas nicht Bescheid weiß, die Suchfunktion nicht bedienen kann, nicht richtig schreiben kann usw.Du hast Deine Fragestellung mit dem "Böse" Smiley markiert. Böse auf ein kostenloses Produkt? Schonmal darüber nachgedacht, wie sich das auf das Gemüt desjenigen auswirkt, der Euch seine Zeit und sein Wissen kostenlos zur Verfügung stellt? Zumal dies der zweite "Böse" Smiley in 3 Tagen ist?
Ich bin absolut dankbar für ALLES was auf dieser Plattform passiert. Ich habe teilweise sogar schon Entwickler angeschrieben und mich einfach nur für die unglaublichen, in der Freizeit erbrachten Leistungen bedankt.
Ein böser Smiley bezieht sich bei mir auf ein persönliches Problem, dass ich auch nach 2 Stunden Rumprobieren nicht lösen konnte, sonst würde ich mich hier auch gar nicht melden. Ich ärgere mich über mein python-technisches Unvermögen und dass mir mein Informatikstudium hauptsächlich JAVA-Erfahrungen mitgegeben hat. Falls es irgendwo auch ein ungeschriebenes Gesetz gibt, dass der böse Smiley sich auf das Produkt über welches diskutiert wird bezieht, so ist mir diese Zuordnung leider nicht bekannt gewesen und ich entschuldige mich ausdrücklich für diese fehlerhafte Verwendung.
Des weiteren konnte ich auch eine Verwendung von einem bösen Smiley in den letzten Tagen nicht nachvollziehen, meine letzte Meldung hier war am 22.4.14 wenn ich nicht irre?
Einen Kommentar schreiben:


Einen Kommentar schreiben: