Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - sh.scheduler.change für cron?

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

    - √ - sh.scheduler.change für cron?

    Ich habe mir gerade ein bissel die Finger wund probiert, und leider keine Lösung gefunden. Szenario: ich würde gerne auf meiner Visu einen Parameter einstellen können, dass n Minuten vor/nach dem Sonnenaufgang etwas passiert. In der Definition der Logic darf ich keine Items auswerten, da hat mir SH.py schon auf die Finger gehauen.

    Also dachte ich mir, ich schreibe eine Logic, die getriggert wird, wenn sich n via Visu verändert. Dann habe ich in der Doku sh.scheduler.change gefunden, und war fast glücklich, als ich gelesen habe, dass man damit auch den cron-Eintrag verändern kann - nur wie? Ich habe sowas hier probiert:
    Code:
    sh.scheduler.change('test_py', cron = "0 * * *")
    …nur scheint das ja nicht so gedacht zu sein - weder String, noch Liste tun - was mach ich falsch?

    #2
    Hallo Jörg,

    freut mich das Du zu SmartHome.py gefunden hast.

    Zitat von JSey Beitrag anzeigen
    Code:
    sh.scheduler.change('test_py', cron = "0 * * *")
    …nur scheint das ja nicht so gedacht zu sein - weder String, noch Liste tun - was mach ich falsch?
    es ist ein Parameter.

    Code:
    sh.scheduler.change('test_py', cro[COLOR="Red"]n="[/COLOR]0 * * *")
    Das sollte klappen.

    Bis bald

    Marcus

    Kommentar


      #3
      Hi Marcus,

      danke für's freundliche Willkommen und den schnellen Tipp. Ich war mir recht sicher, dass ich das auch schon probiert hatte. Hier die Fehlermeldung:

      Code:
      2013-05-19 11:55:37,469 change_test_py WARNING  Logic: change_test_py, File: /usr/local/smarthome/lib/scheduler.py, Line: 234, Method: _next_time, Exception: list indices must be integers, not str -- scheduler.py:_task:273
      …geändert habe ich es, wie Du vorgeschlagen hast, auf:
      Code:
      sh.scheduler.change('test_py', cron="0 * * *")

      Kommentar


        #4
        Hallo,

        da fehlt wohl noch die Doku. Kommt mit dem Release.
        Ich habe mir gerade den Code mal angesehen. Da muss ich noch etwas ändern, damit die Schnittstelle schöner wird.

        Probier mal:
        Code:
        sh.scheduler.change('test_py', cron={"0 * * *":None})
        Das muss ich demnächst ändern, damit das nicht mehr so kompliziert ist...

        Bis bald

        Marcus

        Kommentar


          #5
          Ah jetzt ja.

          Das einzige, was jetzt noch kommt, ist diese Meldung:
          Code:
          2013-05-19 18:59:07,392 SmartHome.py DEBUG    Triggering change_test_py - by: Item source: cycle destination: None value: 21 -- scheduler.py:trigger:117
          …auf was bezieht sich das „None“? Wie auch immer, der Cron-Eintrag wird jetzt geändert, danke!

          Kommentar


            #6
            ich hole das nochmal vor. Will gerne mit Skript einen Cron-Job ändern.

            Cron bei INIT:
            [hqi]
            filename=aussenbeleuchtung.py
            watch_item=feiertag.valarm
            crontab = init | 0 7 * * = 1 | 30 16 * * = 1 | 0 9 * * = 0 |0 21 * * = 0 ##Zeitfenster 7-9 und 16.30-21.00 jeweils an
            dann im Skript:
            sh.scheduler.change('hqi',cron={"30 15 * *"})
            und heraus kommt der Fehler:

            Traceback (most recent call last):
            File "/usr/local/smarthome/lib/scheduler.py", line 327, in _task
            exec(obj.bytecode)
            File "/usr/local/smarthome/logics/aussenbeleuchtung.py", line 6, in <module>
            sh.scheduler.change('hqi',cron={"30 15 * *"})
            File "/usr/local/smarthome/lib/scheduler.py", line 255, in change
            self._next_time(name)
            File "/usr/local/smarthome/lib/scheduler.py", line 285, in _next_time
            value = job['cron'][entry]
            TypeError: 'set' object is not subscriptable

            was tun? Any Ideas?
            never fummel a running system...

            Kommentar


              #7
              Das :None oben hast Du gesehen, oder? Die Zeile im Skript müsste lauten:

              Code:
              [I]sh.scheduler.change('hqi',cron={"30 15 * *":None})[/I]
              Ohne Gewähr, weil es bei mir ein String nach dem Strickmuster "sunset+5m" ist, aber im Prinzip™…

              Kommentar


                #8
                habe ich auch probiert, aber trotzdem der Fehler. Kann mir das None auch nicht erklären
                never fummel a running system...

                Kommentar


                  #9
                  AHHH, danke, das wars doch, case-sensitive ;-(((
                  never fummel a running system...

                  Kommentar


                    #10
                    Und so
                    Code:
                    sh.scheduler.change('hqi',cron="30 15 * * = 0")
                    geht es auch nicht?

                    Kommentar

                    Lädt...
                    X