Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: UZSU (Universelle Zeitschaltuhr)

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Steven
    antwortet
    Hallo,

    habe das plugin mal bei mir installiert, leider schaltet es nicht.

    Im Debug etc erscheinen keine Fehler..

    Eingabe im I-Modus:

    Code:
    >>>
    >>> sh.Wohnen.Decke.uzsu({'active':True, 'list':[{'value':1, 'active':True, 'rrule':'FREQ=DAILY;INTERVAL=2;COUNT=5', 'time': '21:23'}]})
    >>> sh.Wohnen.Decke.uzsu()
    {'active': True, 'list': [{'active': True, 'rrule': 'FREQ=DAILY;INTERVAL=2;COUNT=5', 'value': 1, 'time': '21:23'}]}
    Debug-Log
    Code:
    2014-08-05 21:21:14,544 DEBUG    env_stat     Item env.system.load = 0.04 via Logic None None -- item.py:__update:363
    2014-08-05 21:21:14,972 DEBUG    Scheduler    env_stat next time: 2014-08-05 21:26:14+02:00 -- scheduler.py:_next_time:289
    2014-08-05 21:21:16,993 DEBUG    Scheduler    dummy next time: 2014-08-05 21:26:16+02:00 -- scheduler.py:_next_time:289
    2014-08-05 21:21:21,311 DEBUG    Main         Item Wohnen.Decke.uzsu = {'active': True, 'list': [{'active': True, 'rrule': 'FREQ=DAILY;INTERVAL=2;COUNT=5', 'value': 1, 'time': '21:23'}]} via Logic None None -- item.py:__update:363
    2014-08-05 21:22:31,130 INFO     Main         knx: 1.1.24 set 8/0/3 to 00 -- __init__.py:parse_telegram:181
    2014-08-05 21:23:35,769 INFO     Main         knx: 1.1.27 set 8/0/1 to 0 -- __init__.py:parse_telegram:190
    Item-Conf:
    Code:
    [Wohnen]
            [[Decke]]
                type = bool
                visu_acl = rw
                knx_dpt = 1
                knx_listen = 4/0/5
                knx_send = 5/0/5
                knx_init = 4/0/5
                [[[uzsu]]]
                        type = dict
                        uzsu_item = Wohnen.Decke
                        cache = True
    Was mache ich falsch?

    Danke schonmal vorab.

    Gruß
    Steven

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Der Scheduler hat damit nur bedingt etwas zu tun. Der ist letztlich nur das ausführende Organ. Berechnet wird die nächste Schaltzeit im Plugin in der next_time Methode. Die berechnete Schaltzeit und der entsprechende Wert wird dann dem Scheduler übergeben, der zu der angegebenen Zeit den Wert dann setzt. Daraufhin wird dann wieder über next_time die nächste Schaltzeit berechnet usw.

    Einen Kommentar schreiben:


  • jonah64
    antwortet
    Danke Michael,
    das war mir schon bekannt, aber damit bekomme ich nur den Eintrag genauso wie ich ihn zuletzt an der interaktiven Konsole eingegeben habe. Ich sehe nicht, ob "COUNT=5" schon abgearbeitet worden ist beispielsweise. Deshalb meine Frage nach der Arbeitsweise des Schedulers. Wenn ich es richtig verstanden habe benutzt ja die UZSU den Scheduler. Aber genaueres ist mir über die Arbeitsweise noch nicht klar.
    Muss wohl doch noch mehr debuggen (Problem wg. Reisetätigkeit: remote debuggen ist aus dem Hotel schwierig, bekommt meine bessere Hälfte immer die Krise;-) und lesen...
    Oder jemand hat den entscheidenden Tipp..

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Hm, eventuell könntest du recht haben mit den dtstart Werten. Ich bin mir da derzeit nicht mehr ganz sicher. Ich habe die Beispiele direkt nach der Implementierung gepostet. Daher sind sie getestet und funktionierten. Einen Debugger für Python habe ich bisher nur auf der Arbeit und da werde ich die nächsten Wochen sicherlich keine Zeit haben, das näher an zu sehen. Ansonsten einfach mal selber einen Debugger und sh.py gesondert auf einem Ubuntu aufsetzen (z.B. in einer VM) und selber debuggen. Eine Anleitung dazu gibt es irgendwo hier im Forum.

    Einen Kommentar schreiben:


  • MichaelBu
    antwortet
    Hallo,
    Du kannst mit sh.dein.item.von.der.uzsu() den gespeicherten Eintrag abrufen.
    z.B. sh.OG.Flur.Nachtlicht.UZSU().

    Michael

    Einen Kommentar schreiben:


  • jonah64
    antwortet
    Hallo 2ndsky,
    Vielen Dank für die Antwort,
    Der erste Teil für 14:08 wurde mit dem 2. Teil überschrieben (nehme ich an). Deshalb ist der zweite Teil im Moment aktiviert. (Licht an15:00 Uhr)
    Folgende Fragen tun sich auf:
    ((1) Den zweiten Codeausschnitt habe ich direkt von der Doku übernommen - mit anderen Zeiten. Eventuell sollte das Beispiel dort um einen dtstart-Eintrag ergänzt werden? (Falls Andere ähnliche Probleme haben)
    (2)Trotzdem ist mir unklar, warum das Licht nicht um 16:00 Uhr wieder ausgeht. Gibts vielleicht eine einfache Erklärung?
    (3) Kann ich irgendwie sehen, was aktiv ist? D.h.
    - welcher Scheduler aktiv ist?
    ( Wie welches Item gesetzt ist kann ich ja (im interaktiven Mopdus) abfragen, aber ich weiss nicht, wie ich crontab-Eintrag /scheduler/oder ähnliches(?) abfragen kann).

    Ich hoffe ich hab mich halbwegs verständlich ausgedrückt...
    Danke schonmal

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Hängt davon ab, welche du jetzt verwendest. Bei erstem würde das Licht AFAIR jeden Tag um 14:08 Uhr eingeschaltet. Bei den rrule Sachen könnte es in Zusammenhang mit Daily, Interval und Count aber ohne dtstart Probleme geben. Denn so weiß das Plugin nicht, auf welchen Startzeitpunkt sich die rrule Angaben beziehen.

    Einen Kommentar schreiben:


  • jonah64
    antwortet
    Zwischenstand:
    Zur weiteren Analyse bin ich noch nicht gekommen, aber seit meinem letzten Versuch (22.6.) wird täglich das Licht um 15:00 Uhr eingeschaltet, aber nicht wieder um 16:00 Uhr ausgeschaltet.
    Wie ist denn eigentlich das erwartete Verhalten bei der Einstellung von meinem letzten Post? Ich verstehe das offensichtlich noch nicht so ganz...
    Danke und Gruss

    Einen Kommentar schreiben:


  • schnagges
    antwortet
    Hallo Leute!

    Sorry, dass ich mich nicht mehr gemeldet habe, war auf langer Dienstreise... Jetzt bin ich aber wieder da und es geht leider immer noch nicht :-) Werde mir zuerst die Anleitung für Fragestellungen durchlesen und dann mal meine Logs posten.

    Grüße,
    Erik

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Da wäre es evtl. sinnvoll, mal mit dem Debugger durch zu steppen. Entweder eine zweite smarthome.py Instanz auf einem extra Rechner aufsetzen, damit man lokal debuggen kann oder remote debuggen (Anleitung hat mal jemand hier im Forum gepostet).

    Einen Kommentar schreiben:


  • jonah64
    antwortet
    Bei mir funktioniert das UZSU-Plugin auch nicht. Ich habe jetzt mal etwas debuggt. Folgendes ist mir aufgefallen:
    Die Zeile
    Code:
    if next and next.date() == today and next > datetime.now(self._sh.tzinfo()):
    wird nicht ausgeführt, weil today Datum UND Uhrzeit enthält. Damit wird der Vergleich nie wahr.

    Ich habe jetzt mal die Initialisierung von today weiter oben angepasst:

    Code:
               #alt:
                today = datetime.today()
                #neu:
                today = datetime.today().date()
    Damit funktioniert zumindest die UZSU bei Initialisierung wie:

    Code:
    sh.DG.Licht.Bibo.BiboUZSU4({'active':True, 'list':[
    {'value':1, 'active':True, 'time': '14:08'}
    ]})
    aber Sachen wie:
    Code:
    sh.DG.Licht.Bibo.BiboUZSU4({'active':True, 'list':[
    {'value':1, 'active':True, 'rrule':'FREQ=DAILY;INTERVAL=2;COUNT=5', 'time': '15:00'},
    {'value':0, 'active':True, 'rrule':'FREQ=DAILY;INTERVAL=2;COUNT=5', 'time': '16:00'}
    ]})
    noch nicht. Es muss also noch mehr (im rrule-Zwieg?) kaputt sein, hab ich aber noch nicht gefunden.

    Aber die eigentliche Frage ist denke ich: wieso habe ich diese Probleme? Gibt es verschiedene Bibliotheken? Wie kann ich das prüfen?

    Ich habe aufgesetzt auf smarthome.py 1.0 und nur das UZSU-Plugin aus dem developer-Zweig dazugenommen.


    @Masterxx: Kannst Du das vielleicht nachvollziehen? Hast Du das gleiche Problem?

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Was im Log ankommt ist folgendes:

    2014-06-16 16:30:14,568 DEBUG Main Item EG.AZ.Deckenlicht.uzsu = {'active': True, 'list': [{'active': True, '': '', 'value': 1, 'time': '16:32'}, {'active': True, '': '', 'value': 0, 'time': '16:34'}]} via Logic None None -- item.py:__update:363
    Eventuell fliegt er mit den zwei leeren Einträgen auf die Nase. Ansonsten sollte das eigentlich gehen.

    Ansonsten sehen die Einrückungen in EG.AZ.Licht.conf etwas seltsam aus. Aber keine Ahnung, ob Python bei Konfig Files da genauso penibel ist wie bei Sourcecode. Trotzdem, korrigiere die zwei Sachen mal und berichte.

    Einen Kommentar schreiben:


  • Masterxx
    antwortet
    es schaltet nicht

    so ich hoffe ich hab jetzt alles.
    ist alles in der archiv.zip

    Ich hoffe Ihr könnt mir jetzt helfen

    Gruß Jens :-)
    Angehängte Dateien

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Aber klar: https://knx-user-forum.de/smarthome-...rbehebung.html

    Einen Kommentar schreiben:


  • Masterxx
    antwortet
    hab das mit der interaktiven Console überlesen.
    fehlermeldung bekomme ich jetzt keine mehr , aber schalten tuts leider auch nicht. könnte ich da noch ein bissl nachhilfe bekommen ???

    Gruß Jens

    Einen Kommentar schreiben:

Lädt...
X