Ankündigung

Einklappen
Keine Ankündigung bisher.

Verstrichene Zeit eines Timers auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Verstrichene Zeit eines Timers auslesen

    Hallo Zusammen,

    ich lese schon seit einiger Zeit in dem Forum mit und bin zum begeisterten Fan von smarthome.py geworden. Danke für die tolle Arbeit.

    Ich bin auf der Suche nach einer Lösung, wie ich von einem Timer die nach Auslösen des Timer-Triggers verstrichene Zeit auslesen kann, um diese verstrichene Zeit in der smartvisu darzustellen.

    Gibts da was in der Trickkiste? Ich habe schon mal in der item.py und scheduler.py rumgestöbert, bin aber als python-Laie nicht fündig geworden.
    Und über die Sufu konnte ich auch nix finden.

    Danke schon mal für die Hilfe
    ciao
    Marco

    #2
    Hi Marco,

    Ich habe es leider noch nicht ganz verstanden, kannst du deinen Anwendungsfall etwas mehr konkretisieren?
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    Kommentar


      #3
      Hallo,

      Ich verstehe das ganze so, er hat einen Timer den er Triggert, und will jetzt die zeit angezeigt haben, die der Timer läuft.
      Würde mich auch interessieren.
      Hab da einen ausschalttimer für meinen Fernseher, der läuft 45min.
      Da wärs auch nicht schlecht, wenn man mal nachschauen könnte, wie lang er noch läuft.

      Oder versteh ich das falsch?

      Gruß Wolfi

      Kommentar


        #4
        Hi Niko,

        der Anwendungsfall ist, dass ich über das smartvisu widget device.shutter mir den Zustand meines Garagentors bzw. Rolladens anzeigen lassen will. Meine Aktoren sind von Eldat und nutzen das EasyWave-Protokoll zur Signalübertragung. Ich habe auch ein EasyWave-KNX Gateway, so dass ich die Aktoren über KNX-Triggern kann. Leider bekomme ich keine Statusmeldung zurück, so dass ich die Status-Anzeige im device.shutter über die Zeit steuern muss.
        Es gab zu vergleichbarer Problematik hier im Forum von Accelle eine Lösung:
        https://knx-user-forum.de/smarthome-...eber-zeit.html bzw. https://knx-user-forum.de/smarthome-...tionieren.html
        Leider funzt die bei mir nicht - sprich Rolladenposition wird nicht aktualisiert.

        Was ich mir vorgestellt habe, wäre soetwas wie ein Item, das, sobald angetriggert, jede Sekunde (oder andere Zeiteinheit) die verstrichene Zeit ab Triggerzeitpunkt auf den Bus sendet. Und zwar solange bis ein Stop-Signal kommt oder der Grenzwert erreicht ist. Funktion wäre ähnlich einer Stoppuhr.

        @Wolfi, ja genau so. Plus die Funktion, den Timer auch vorzeigt stoppen zu können.

        Danke schon mal im voraus für die Hilfe
        ciao
        Marco

        Kommentar


          #5
          Also die verstrichene Zeit wirst du vom Scheduler nicht bekommen, da sich dieser nicht merkt, wann etwas zum Scheduler hinzugefügt wird sondern nur, wann er es das nächste mal ausführen muss. Du müsstest dir also eine Logik bauen, die dir den Startzeitpunkt eines Timers in ein Item schreibt.

          Wie lange ein Timer noch läuft ist relativ einfach. Der Scheduler hat eine Methode return_next die als Parameter einen Namen bekommt. Darüber kann man abfragen, wann der Scheduler eine Logik/Methode etc. als nächstes triggert. Also einfach den Namen des Timers angeben (musst mal im Code schauen wie Timer Items dem Scheduler übergeben werden) und dann die aktuelle Uhrzeit von der zurückgegebenen abziehen.

          Stoppen kann man einen Timer über die change Methode mit active = False.
          Mit freundlichen Grüßen
          Niko Will

          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

          Kommentar


            #6
            danke für den Tip, Niko.

            Jetzt hab ich noch einen gedanklichen Knoten: gibt es noch einen Kniff, wie ich für jede Sekunde in dem Zeitraum, in dem der Timer aktiv ist, einen Trigger zum starten der Logik bekomme?
            Oder aber muss ich mit 2 Logiken arbeiten:
            Logik 1 (getriggert durch einen Move-Befehl) läuft in einer endlos Schleife solange der timer aktiv und der Zeitpunkt return_next noch nicht erreicht ist. Diese Logik ändert dabei einmal pro Sekunden den Wert eines Postion items.
            Logik 2 (wird getriggert durch Stop Taste) setzt den timer in den Status inaktiv, was dann auch einen Abbruch von Logik 1 zur Folge hat.

            Bin auf Deine / Eure Empfehlung gespannt.
            ciao
            Marco

            Kommentar


              #7
              Hi,

              ich würde eine Logik nehmen, die durch irgendwas getriggert wird.
              Dann würde ich mit scheduler.change cycle ändern.
              Wenn alles soweit durch ist würde ich den cycle wieder auf None setzen.

              Viele Spaß beim umsetzen.

              Bis bald

              Marcus

              Kommentar


                #8
                cool - Danke Marcus. Dein und Niko's Tip haben mir erstmal auf's Pferd geholfen.

                Ich habe erst wieder am Wochenende Zugriff auf meine Anlage. Melde mich sobald etwas Vorzeigbares läuft - oder falls etwas klemmt.
                ciao
                Marco

                Kommentar


                  #9
                  Hallo Zusammen,

                  irgendwie bekomme ich das mit dem scheduler.change () nicht hin: es kommt immer eine Fehlermeldung, wenn ich cycle einen neuen Wert zuweise. Hier ist was ich getan habe:

                  In logic.conf
                  Code:
                  [rollpos]
                    filename = rollpos.py
                    name = rollpos
                  [rollctrl]
                    filename = rollctrl.py
                    name = rollctrl
                    watch_item = *.move | *.stop
                  In rollctrl.py
                  Code:
                  if str(sh.return_item(trigger['source'])).endswith(".move"):
                    if 'rollpos' in sh.scheduler:
                      sh.scheduler.change(name='rollpos', cycle=1)
                    else:
                      sh.scheduler.add(name='rollpos', cycle=1)
                  else:
                    sh.scheduler.change(name='rollpos', cycle = None)
                  Sobald der Wert von cycle über die Visu auf 1 gesetzt wird erscheint folgende Fehlermeldung:
                  Code:
                  2014-06-29 12:42:04,831 INFO     Main         Start SmartHome.py 1.0-5-g5300605+ -- smarthome.py:__init__:231
                  2014-06-29 12:42:04,836 DEBUG    Main         Python 3.2.3 -- smarthome.py:__init__:232
                  2014-06-29 12:42:04,843 INFO     Main         Init Scheduler -- scheduler.py:__init__:86
                  2014-06-29 12:42:04,850 INFO     Main         Init Plugins -- smarthome.py:start:274
                  2014-06-29 12:42:04,866 DEBUG    Scheduler    creating 5 workers -- scheduler.py:run:93
                  2014-06-29 12:42:04,876 DEBUG    Main         Plugin: knx -- plugin.py:__init__:43
                  2014-06-29 12:42:04,906 DEBUG    Main         Plugin: visu -- plugin.py:__init__:43
                  2014-06-29 12:42:05,004 DEBUG    Main         Plugin: cli -- plugin.py:__init__:43
                  2014-06-29 12:42:05,017 DEBUG    Main         Plugin: sql -- plugin.py:__init__:43
                  2014-06-29 12:42:05,053 DEBUG    Main         SQLite 3.7.13 -- __init__.py:__init__:62
                  2014-06-29 12:42:05,337 DEBUG    Main         SQLite: database integrity ok -- __init__.py:__init__:78
                  2014-06-29 12:42:05,367 DEBUG    Main         SQLite pack next time: 2014-06-30 03:02:00+02:00 -- scheduler.py:_next_time:290
                  2014-06-29 12:42:05,375 INFO     Main         Init Items -- smarthome.py:start:280
                  2014-06-29 12:42:05,498 DEBUG    Main         Item DG.Rollo: no type specified. -- item.py:__init__:242
                  2014-06-29 12:42:05,503 DEBUG    Main         Item DG: no type specified. -- item.py:__init__:242
                  2014-06-29 12:42:05,624 DEBUG    Main         Item env.core.memory = 15876096.0 via SQLite None None -- item.py:set:457
                  2014-06-29 12:42:05,723 DEBUG    Main         Item env.core.threads = 7.0 via SQLite None None -- item.py:set:457
                  2014-06-29 12:42:05,823 DEBUG    Main         Item env.core.garbage = 0.0 via SQLite None None -- item.py:set:457
                  2014-06-29 12:42:05,831 DEBUG    Main         Item env.core: no type specified. -- item.py:__init__:242
                  2014-06-29 12:42:05,897 DEBUG    Main         Item env.location: no type specified. -- item.py:__init__:242
                  2014-06-29 12:42:06,009 DEBUG    Main         Item env.system.load = 0.16 via SQLite None None -- item.py:set:457
                  2014-06-29 12:42:06,024 DEBUG    Main         Item env.system: no type specified. -- item.py:__init__:242
                  2014-06-29 12:42:06,029 DEBUG    Main         Item env: no type specified. -- item.py:__init__:242
                  2014-06-29 12:42:06,044 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.move.dir - by: Init source: None dest: None value: {'caller': 'Init'} -- scheduler.py:trigger:162
                  2014-06-29 12:42:06,049 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.moveup_ew - by: Init source: None dest: None value: {'caller': 'Init'} -- scheduler.py:trigger:162
                  2014-06-29 12:42:06,055 DEBUG    DG.Rollo.Rollo_Giebel.move.dir Item DG.Rollo.Rollo_Giebel.move.dir = -1 via Init None None -- item.py:__update:363
                  2014-06-29 12:42:06,060 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.movedown_ew - by: Init source: None dest: None value: {'caller': 'Init'} -- scheduler.py:trigger:162
                  2014-06-29 12:42:06,081 DEBUG    DG.Rollo.Rollo_Giebel.movedown_ew Item DG.Rollo.Rollo_Giebel.movedown_ew = True via Init None None -- item.py:__update:363
                  2014-06-29 12:42:06,086 INFO     Main         Start Plugins -- plugin.py:start:65
                  2014-06-29 12:42:06,147 INFO     Main         Start Logics -- logic.py:__init__:33
                  2014-06-29 12:42:06,152 DEBUG    Main         Reading Logics from /usr/smarthome/lib/env/logic_conf -- logic.py:_read_logics:64
                  2014-06-29 12:42:06,178 DEBUG    Main         Reading Logics from /usr/smarthome/etc/logic.conf -- logic.py:_read_logics:64
                  2014-06-29 12:42:06,212 DEBUG    Main         Logic: rollpos -- logic.py:__init__:44
                  2014-06-29 12:42:06,270 DEBUG    Main         Logic: rollctrl -- logic.py:__init__:44
                  2014-06-29 12:42:06,289 DEBUG    Main         Logic: env_init -- logic.py:__init__:44
                  2014-06-29 12:42:06,302 DEBUG    Main         Logic: env_stat -- logic.py:__init__:44
                  2014-06-29 12:42:06,319 DEBUG    Main         env_stat next time: 2014-06-29 12:42:18+02:00 -- scheduler.py:_next_time:290
                  2014-06-29 12:42:06,324 DEBUG    Main         Logic: env_loc -- logic.py:__init__:44
                  2014-06-29 12:42:06,565 DEBUG    Connections  KNX: connected to 192.168.77.27:6720 -- connection.py:connect:384
                  2014-06-29 12:42:06,570 DEBUG    Connections  KNX: enable group monitor -- __init__.py:handle_connect:117
                  2014-06-29 12:42:06,579 DEBUG    Connections  WebSocket: binding to 192.168.77.27:2424 (TCP) -- connection.py:connect:160
                  2014-06-29 12:42:06,586 DEBUG    Connections  CLI: binding to 192.168.77.27:2323 (TCP) -- connection.py:connect:160
                  2014-06-29 12:42:11,547 DEBUG    env_loc      Item env.location.sunrise = 2014-06-30 05:20:21.143431+02:00 via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:11,552 DEBUG    env_init     Item env.core.version = 1.0-5-g5300605+ via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:11,626 DEBUG    sh.gc        Garbage collector: collected 0 objects. -- smarthome.py:_garbage_collection:498
                  2014-06-29 12:42:11,687 DEBUG    env_loc      Item env.location.sunset = 2014-06-29 21:50:25.955376+02:00 via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:11,713 DEBUG    env_init     Item env.core.start = 2014-06-29 12:42:11.680701+02:00 via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:11,790 DEBUG    env_init     Item env.system.name = rpi via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:11,860 DEBUG    env_init     Item env.system.start = 2014-06-29 11:03:37.855712+02:00 via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:11,868 DEBUG    env_loc      Item env.location.moonrise = 2014-06-30 08:41:34.454143+02:00 via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:12,037 DEBUG    env_loc      Item env.location.moonset = 2014-06-29 22:40:06.041287+02:00 via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:12,152 DEBUG    env_loc      Item env.location.moonphase = 1 via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:12,334 DEBUG    sh.gc        Object references: 9272 -- smarthome.py:_maintenance:490
                  2014-06-29 12:42:12,347 DEBUG    env_loc      Item env.location.day = True via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:12,346 DEBUG    Scheduler    env_loc next time: 2014-06-29 13:12:12+02:00 -- scheduler.py:_next_time:290
                  2014-06-29 12:42:12,443 DEBUG    Scheduler    sh.gc next time: 2014-06-30 02:04:00+02:00 -- scheduler.py:_next_time:290
                  2014-06-29 12:42:12,985 INFO     rollpos      Test -- rollpos.py:<module>:15
                  2014-06-29 12:42:18,587 DEBUG    env_stat     Item env.system.load = 0.13 via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:18,607 DEBUG    env_stat     Item env.location.moonlight = 4 via Logic None None -- item.py:__update:363
                  2014-06-29 12:42:19,017 DEBUG    Scheduler    env_stat next time: 2014-06-29 12:47:19+02:00 -- scheduler.py:_next_time:290
                  2014-06-29 12:42:28,227 DEBUG    Main         WebSocket: incoming connection from 192.168.77.26:63640 to 192.168.77.27:2424 -- connection.py:accept:187
                  2014-06-29 12:42:28,528 DEBUG    Main         192.168.77.26:63640 sent '{"cmd":"proto","ver":3}' -- __init__.py:json_parse:269
                  2014-06-29 12:42:28,539 DEBUG    Main         192.168.77.26:63640 sent '{"cmd":"monitor","items":["DG.Rollo.Rollo_Giebel.move","DG.Rollo.Rollo_Giebel.pos","DG.Rollo.Rollo_Giebel.stop"]}' -- __init__.py:json_parse:269
                  2014-06-29 12:42:31,880 DEBUG    Main         192.168.77.26:63640 sent '{"cmd":"item","id":"DG.Rollo.Rollo_Giebel.move","val":"0"}' -- __init__.py:json_parse:269
                  2014-06-29 12:42:31,888 DEBUG    Main         Triggering rollctrl - by: Item source: DG.Rollo.Rollo_Giebel.move dest: None value: False -- scheduler.py:trigger:162
                  2014-06-29 12:42:31,893 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.move.dir - by: Visu source: 192.168.77.26:63640 dest: None value: {'source': 'DG.Rollo.Rollo_Giebel.move', -- scheduler.py:trigger:162
                  2014-06-29 12:42:31,905 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.moveup_ew - by: Visu source: 192.168.77.26:63640 dest: None value: {'source': 'DG.Rollo.Rollo_Giebel.move', -- scheduler.py:trigger:162
                  2014-06-29 12:42:31,925 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.movedown_ew - by: Visu source: 192.168.77.26:63640 dest: None value: {'source': 'DG.Rollo.Rollo_Giebel.move', -- scheduler.py:trigger:162
                  2014-06-29 12:42:31,935 ERROR    rollctrl     Logic: rollctrl, File: /usr/smarthome/lib/scheduler.py, Line: 271, Method: _next_time, Exception: 'int' object has no attribute 'keys' -- scheduler.py:_task:335
                  Traceback (most recent call last):
                    File "/usr/smarthome/lib/scheduler.py", line 328, in _task
                      exec(obj.bytecode)
                    File "/usr/smarthome/logics/rollctrl.py", line 26, in <module>
                      sh.scheduler.change(name='rollpos', cycle=1)
                    File "/usr/smarthome/lib/scheduler.py", line 255, in change
                      self._next_time(name)
                    File "/usr/smarthome/lib/scheduler.py", line 271, in _next_time
                      cycle = list(job['cycle'].keys())[0]
                  AttributeError: 'int' object has no attribute 'keys'
                  2014-06-29 12:42:31,955 INFO     Main         knx: 0.0.0 set 2/3/0 to 00 -- __init__.py:parse_telegram:181
                  2014-06-29 12:42:31,976 INFO     Main         knx: 0.0.0 set 2/3/2 to 01 -- __init__.py:parse_telegram:181
                  2014-06-29 12:42:37,682 DEBUG    Main         192.168.77.26:63640 sent '{"cmd":"item","id":"DG.Rollo.Rollo_Giebel.stop","val":"0"}' -- __init__.py:json_parse:269
                  2014-06-29 12:42:37,690 DEBUG    Main         Triggering rollctrl - by: Item source: DG.Rollo.Rollo_Giebel.stop dest: None value: False -- scheduler.py:trigger:162
                  2014-06-29 12:42:37,697 INFO     rollctrl     arrived in *.stop -- rollctrl.py:<module>:34
                  2014-06-29 12:42:37,707 INFO     Main         knx: 0.0.0 set 2/3/1 to 00 -- __init__.py:parse_telegram:181
                  2014-06-29 12:42:41,649 INFO     Main         Number of Threads: 6 -- smarthome.py:stop:348
                  2014-06-29 12:42:41,654 INFO     Main         Stop Plugins -- plugin.py:stop:70
                  2014-06-29 12:42:41,659 DEBUG    Main         WebSocketHandler: closing socket 192.168.77.26:63640 -- connection.py:close:302
                  2014-06-29 12:42:42,262 DEBUG    Main         KNX: closing socket 192.168.77.27:6720 -- connection.py:close:302
                  2014-06-29 12:42:42,269 INFO     Main         SmartHome.py stopped -- smarthome.py:stop:372
                  Hat jemand eine Idee, was ich falsch mache?

                  Danke & ciao
                  Marco

                  Kommentar


                    #10
                    Hi Marco,

                    Du machst (fast) nichts falsch.

                    Probier mal

                    Code:
                    sh.scheduler.add(name='rollpos', cycle={'cycle': 1})
                    Das müsste helfen, dann würde ich allerdings den Code noch einmal anpacken damit der einfache/offensichtliche Ansatz funktioniert.

                    Davon abgesehen darf man
                    Code:
                     sh.scheduler.change(name='rollpos', cycle = None)
                    nicht schreiben. Die Leerzeichen sind falsch. Richtig:
                    Code:
                    sh.scheduler.change(name='rollpos', cycle=None)
                    Bis bald

                    Marcus

                    Kommentar


                      #11
                      Danke Marcus,

                      es ging ein bisschen weiter. Wie empfohlen, habe ich folgendes geändert:
                      rollctrl.py
                      Code:
                      if 'rollpos' in sh.scheduler:
                          sh.scheduler.change(name='rollpos', cycle={'cycle': 1})
                        else:
                          sh.scheduler.add(name='rollpos', cycle={'cycle': 1})
                      else:
                        sh.scheduler.change(name='rollpos', cycle=None)
                      Dann bekomme ich aber einen anderen Fehler:
                      Code:
                      2014-06-29 14:51:54,115 INFO     Main         Start SmartHome.py 1.0-5-g5300605+ -- smarthome.py:__init__:231
                      2014-06-29 14:51:54,121 DEBUG    Main         Python 3.2.3 -- smarthome.py:__init__:232
                      2014-06-29 14:51:54,127 INFO     Main         Init Scheduler -- scheduler.py:__init__:86
                      2014-06-29 14:51:54,134 INFO     Main         Init Plugins -- smarthome.py:start:274
                      2014-06-29 14:51:54,150 DEBUG    Scheduler    creating 5 workers -- scheduler.py:run:93
                      2014-06-29 14:51:54,160 DEBUG    Main         Plugin: knx -- plugin.py:__init__:43
                      2014-06-29 14:51:54,190 DEBUG    Main         Plugin: visu -- plugin.py:__init__:43
                      2014-06-29 14:51:54,291 DEBUG    Main         Plugin: cli -- plugin.py:__init__:43
                      2014-06-29 14:51:54,304 DEBUG    Main         Plugin: sql -- plugin.py:__init__:43
                      2014-06-29 14:51:54,339 DEBUG    Main         SQLite 3.7.13 -- __init__.py:__init__:62
                      2014-06-29 14:51:54,622 DEBUG    Main         SQLite: database integrity ok -- __init__.py:__init__:78
                      2014-06-29 14:51:54,653 DEBUG    Main         SQLite pack next time: 2014-06-30 03:02:00+02:00 -- scheduler.py:_next_time:290
                      2014-06-29 14:51:54,662 INFO     Main         Init Items -- smarthome.py:start:280
                      2014-06-29 14:51:54,792 DEBUG    Main         Item DG.Rollo: no type specified. -- item.py:__init__:242
                      2014-06-29 14:51:54,797 DEBUG    Main         Item DG: no type specified. -- item.py:__init__:242
                      2014-06-29 14:51:54,924 DEBUG    Main         Item env.core.memory = 15879168.440321887 via SQLite None None -- item.py:set:457
                      2014-06-29 14:51:55,025 DEBUG    Main         Item env.core.threads = 7.0 via SQLite None None -- item.py:set:457
                      2014-06-29 14:51:55,125 DEBUG    Main         Item env.core.garbage = 0.0 via SQLite None None -- item.py:set:457
                      2014-06-29 14:51:55,133 DEBUG    Main         Item env.core: no type specified. -- item.py:__init__:242
                      2014-06-29 14:51:55,206 DEBUG    Main         Item env.location: no type specified. -- item.py:__init__:242
                      2014-06-29 14:51:55,317 DEBUG    Main         Item env.system.load = 0.15935905579575027 via SQLite None None -- item.py:set:457
                      2014-06-29 14:51:55,332 DEBUG    Main         Item env.system: no type specified. -- item.py:__init__:242
                      2014-06-29 14:51:55,337 DEBUG    Main         Item env: no type specified. -- item.py:__init__:242
                      2014-06-29 14:51:55,351 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.move.dir - by: Init source: None dest: None value: {'caller': 'Init'} -- scheduler.py:trigger:162
                      2014-06-29 14:51:55,357 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.moveup_ew - by: Init source: None dest: None value: {'caller': 'Init'} -- scheduler.py:trigger:162
                      2014-06-29 14:51:55,368 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.movedown_ew - by: Init source: None dest: None value: {'caller': 'Init'} -- scheduler.py:trigger:162
                      2014-06-29 14:51:55,363 DEBUG    DG.Rollo.Rollo_Giebel.move.dir Item DG.Rollo.Rollo_Giebel.move.dir = -1 via Init None None -- item.py:__update:363
                      2014-06-29 14:51:55,389 INFO     Main         Start Plugins -- plugin.py:start:65
                      2014-06-29 14:51:55,396 DEBUG    DG.Rollo.Rollo_Giebel.movedown_ew Item DG.Rollo.Rollo_Giebel.movedown_ew = True via Init None None -- item.py:__update:363
                      2014-06-29 14:51:55,460 INFO     Main         Start Logics -- logic.py:__init__:33
                      2014-06-29 14:51:55,465 DEBUG    Main         Reading Logics from /usr/smarthome/lib/env/logic_conf -- logic.py:_read_logics:64
                      2014-06-29 14:51:55,504 DEBUG    Main         Reading Logics from /usr/smarthome/etc/logic.conf -- logic.py:_read_logics:64
                      2014-06-29 14:51:55,535 DEBUG    Main         Logic: rollpos -- logic.py:__init__:44
                      2014-06-29 14:51:55,583 DEBUG    Main         Logic: rollctrl -- logic.py:__init__:44
                      2014-06-29 14:51:55,602 DEBUG    Main         Logic: env_init -- logic.py:__init__:44
                      2014-06-29 14:51:55,615 DEBUG    Main         Logic: env_stat -- logic.py:__init__:44
                      2014-06-29 14:51:55,632 DEBUG    Main         env_stat next time: 2014-06-29 14:52:08+02:00 -- scheduler.py:_next_time:290
                      2014-06-29 14:51:55,638 DEBUG    Main         Logic: env_loc -- logic.py:__init__:44
                      2014-06-29 14:51:55,849 DEBUG    Connections  KNX: connected to 192.168.77.27:6720 -- connection.py:connect:384
                      2014-06-29 14:51:55,855 DEBUG    Connections  KNX: enable group monitor -- __init__.py:handle_connect:117
                      2014-06-29 14:51:55,862 DEBUG    Connections  WebSocket: binding to 192.168.77.27:2424 (TCP) -- connection.py:connect:160
                      2014-06-29 14:51:55,869 DEBUG    Connections  CLI: binding to 192.168.77.27:2323 (TCP) -- connection.py:connect:160
                      2014-06-29 14:52:00,828 DEBUG    env_init     Item env.core.version = 1.0-5-g5300605+ via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:00,920 DEBUG    sh.gc        Garbage collector: collected 0 objects. -- smarthome.py:_garbage_collection:498
                      2014-06-29 14:52:00,917 DEBUG    env_loc      Item env.location.sunrise = 2014-06-30 05:20:21.143431+02:00 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:00,939 DEBUG    env_init     Item env.core.start = 2014-06-29 14:52:00.933452+02:00 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:01,048 DEBUG    env_loc      Item env.location.sunset = 2014-06-29 21:50:25.955391+02:00 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:01,125 DEBUG    env_init     Item env.system.name = rpi via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:01,189 DEBUG    env_loc      Item env.location.moonrise = 2014-06-30 08:41:34.454143+02:00 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:01,217 DEBUG    env_init     Item env.system.start = 2014-06-29 14:27:39.212126+02:00 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:01,351 DEBUG    env_loc      Item env.location.moonset = 2014-06-29 22:40:06.041287+02:00 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:01,456 DEBUG    env_loc      Item env.location.moonphase = 1 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:01,614 DEBUG    env_loc      Item env.location.day = True via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:01,644 DEBUG    Scheduler    env_loc next time: 2014-06-29 15:22:01+02:00 -- scheduler.py:_next_time:290
                      2014-06-29 14:52:01,654 DEBUG    sh.gc        Object references: 9186 -- smarthome.py:_maintenance:490
                      2014-06-29 14:52:01,739 DEBUG    Scheduler    sh.gc next time: 2014-06-30 02:04:00+02:00 -- scheduler.py:_next_time:290
                      2014-06-29 14:52:02,271 INFO     rollpos      Test -- rollpos.py:<module>:15
                      2014-06-29 14:52:08,390 DEBUG    env_stat     Item env.core.memory = 15884288 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:08,403 DEBUG    env_stat     Item env.system.load = 0.14 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:08,415 DEBUG    env_stat     Item env.location.moonlight = 5 via Logic None None -- item.py:__update:363
                      2014-06-29 14:52:08,830 DEBUG    Scheduler    env_stat next time: 2014-06-29 14:57:08+02:00 -- scheduler.py:_next_time:290
                      2014-06-29 14:52:16,434 DEBUG    Main         WebSocket: incoming connection from 192.168.77.26:64736 to 192.168.77.27:2424 -- connection.py:accept:187
                      2014-06-29 14:52:16,726 DEBUG    Main         192.168.77.26:64736 sent '{"cmd":"proto","ver":3}' -- __init__.py:json_parse:269
                      2014-06-29 14:52:16,737 DEBUG    Main         192.168.77.26:64736 sent '{"cmd":"monitor","items":["DG.Rollo.Rollo_Giebel.move","DG.Rollo.Rollo_Giebel.pos","DG.Rollo.Rollo_Giebel.stop"]}' -- __init__.py:json_parse:269
                      2014-06-29 14:52:23,361 DEBUG    Main         192.168.77.26:64736 sent '{"cmd":"item","id":"DG.Rollo.Rollo_Giebel.move","val":"0"}' -- __init__.py:json_parse:269
                      2014-06-29 14:52:23,368 DEBUG    Main         Triggering rollctrl - by: Item source: DG.Rollo.Rollo_Giebel.move dest: None value: False -- scheduler.py:trigger:162
                      2014-06-29 14:52:23,374 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.move.dir - by: Visu source: 192.168.77.26:64736 dest: None value: {'source': 'DG.Rollo.Rollo_Giebel.move', -- scheduler.py:trigger:162
                      2014-06-29 14:52:23,389 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.moveup_ew - by: Visu source: 192.168.77.26:64736 dest: None value: {'source': 'DG.Rollo.Rollo_Giebel.move', -- scheduler.py:trigger:162
                      2014-06-29 14:52:23,408 DEBUG    Main         Triggering DG.Rollo.Rollo_Giebel.movedown_ew - by: Visu source: 192.168.77.26:64736 dest: None value: {'source': 'DG.Rollo.Rollo_Giebel.move', -- scheduler.py:trigger:162
                      2014-06-29 14:52:23,433 INFO     Main         knx: 0.0.0 set 2/3/0 to 00 -- __init__.py:parse_telegram:181
                      2014-06-29 14:52:23,403 ERROR    rollctrl     Logic: rollctrl, File: /usr/smarthome/lib/scheduler.py, Line: 276, Method: _next_time, Exception: unsupported type for timedelta seconds component: str -- scheduler.py:_task:335
                      Traceback (most recent call last):
                        File "/usr/smarthome/lib/scheduler.py", line 328, in _task
                          exec(obj.bytecode)
                        File "/usr/smarthome/logics/rollctrl.py", line 26, in <module>
                          sh.scheduler.change(name='rollpos', cycle={'cycle': 1})
                        File "/usr/smarthome/lib/scheduler.py", line 255, in change
                          self._next_time(name)
                        File "/usr/smarthome/lib/scheduler.py", line 276, in _next_time
                          next_time = now + datetime.timedelta(seconds=offset)
                      TypeError: unsupported type for timedelta seconds component: str
                      2014-06-29 14:52:23,464 INFO     Main         knx: 0.0.0 set 2/3/2 to 01 -- __init__.py:parse_telegram:181
                      2014-06-29 14:52:27,992 INFO     Main         Number of Threads: 6 -- smarthome.py:stop:348
                      2014-06-29 14:52:27,997 INFO     Main         Stop Plugins -- plugin.py:stop:70
                      2014-06-29 14:52:28,002 DEBUG    Main         WebSocketHandler: closing socket 192.168.77.26:64736 -- connection.py:close:302
                      2014-06-29 14:52:28,677 DEBUG    Main         KNX: closing socket 192.168.77.27:6720 -- connection.py:close:302
                      2014-06-29 14:52:28,685 INFO     Main         SmartHome.py stopped -- smarthome.py:stop:372
                      Ich hab mal ein bisschen 'rumgeloggt' und es schaut so aus, also ob in der scheduler.py in Zeile 274 die Variable offset den string cycle' zugewiesen bekommt (anstatt einem Zahlenwert). Über schedulder.change kann ich aber der _next_time() keinen Offset mitgeben. Hast Du eine Empfehlung, wie ich das in den Griff bekommen kann?

                      Könntest Du mir bitte auch auf die Sprünge helfen, was Du mit
                      .... dann würde ich allerdings den Code noch einmal anpacken damit der einfache/offensichtliche Ansatz funktioniert.
                      meinst?

                      Vielen Dank für Deinen Support
                      ciao
                      Marco

                      Kommentar


                        #12
                        Hi Marco,

                        ich meinte damit das ich den Code verbessere damit es für Euch Benutzer einfacher bzw. überhaupt funktioniert.

                        Ich muss das bei mir mal nachstellen, momentan ist es nur ein bisschen eng.
                        Vllt. heute Abend nach Niederlande gegen Mexiko.

                        Bis bald

                        Marcus

                        Kommentar


                          #13
                          Hallo,

                          ich habe mir das gerade mal näher angesehen.
                          Um die cycle-Zeit zu ändern, muss man momentan leider
                          Code:
                          sh.scheduler.change('NameDerLogik', cycle={1.5: None})
                          aufrufen um die Logik alle 1,5 Sekunden laufen zu lassen.

                          Das ist leider nicht schön und daher nicht leicht vermittelbar => ich muss da noch mal ran und dort ein bisschen was umstellen damit es einfacher für einen Benutzer wird cycle und auch crontab zu ändern.

                          Bis bald

                          Marcus

                          Kommentar


                            #14
                            Hi Marcus,

                            danke, jetzt funzt es. Das bringt mich einen entscheidenden Schritt weiter.

                            Muss noch ein paar Features einbauen wie Stop des Timers an den Endpositionen bzw. einer Zielposition etc. Aber das packe ich wohl besser in einen anderen Thread. Werde die Lösung vorstellen, sobald fertig. Komme aber leider nur an den Wochenenden zum "basteln"

                            ciao
                            Marco

                            Kommentar


                              #15
                              Hallo,

                              gibts von der Rolladen Position schon etwas neues zu berichten ?
                              Wie ist der aktuelle Entwicklungsstand
                              Gruß

                              Guido

                              Kommentar

                              Lädt...
                              X