Ankündigung

Einklappen
Keine Ankündigung bisher.

Grundlegende Fragen zu Logiken

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

    Grundlegende Fragen zu Logiken

    Hab den Tag heute genutzt mich mit dem Thema Logiken zu beschäftigen und jetzt einige grundlegende Fragen, da ich hier nicht weiterkomme.

    1. Logiken triggern mit Visu

    Meine Logik hab ich testweise folgendermaßen definiert:
    Code:
    [develop]
    	filename = logic_develop.py
    	visu_acl = true
    	watch_item = EG.Develop
    Item.conf:
    Code:
    [EG]
        [[Develop]]
            type = bool
            visu_acl = rw
    Dann die Visu:
    {{ basic.button('Develop', 'EG.Develop','press')}}

    Beim Klick auf den Button wird die Logik sauber getriggert. Dann hab ich folgendes in der Doku gefunden:

    Entsprechend Doku 1.0 gibt es das "visu_acl" Attribut ja auch für Logiken.

    logic.conf
    You could specify the visu_acl attribute to every logic in your logic.conf. This way you could trigger the logic via the interface.

    [dialog]
    filename = 'dialog.py'
    visu_acl = true
    Kann ich denn die Logik auch direkt auf den Button legen, also ohne die item.conf?

    2. Zugriff auf Logik Eigenschaften / Methoden

    Entsprechend Doku:
    logic
    This object provides access to the current logic object. It is possible to change logic attributes (crontab, cycle, ...) during runtime. They will be lost after restarting SmartHome.py. while logic.alive: creates an endless loop. This way SmartHome.py could stop the loop at shutdown. Next section (trigger) describes the special function logic.trigger(). Predefined attributs of the logic object:

    logic.name: with the name of the logic as specified in logic.conf
    logic.last_time(): this function provides the last run of this logic (before the recent one)
    logic.prio: read and set of the current priority of this logic.
    Demnach hab ich versucht mit logic.develop die Logik manuell über die interactive console zu triggern. Allerdings ohne Erfolg. Wie kann ich oben genanntes anwenden?

    3. Timer setzen
    Bei Änderung des Items EG.Buero.Fenster triggere ich meine Logik [window_alert] und möchte dann einen autotimer setzen. Sollte das Fenster nach 10min immer noch offen sein, soll ein Alarm gesetzt werden.
    Hierzu hab ich mit sh.EG.Buero.Fenster.autotimer('10m',1) versucht die Logik erneut zu triggern. Hat allerdings nicht geklappt. Wie geht man hier am besten vor?

    Danke und Gruß

    #2
    Hallo Thomas,

    1. ja. {{ basic.trigger('item-t', 'develop', 'item.name', '', 'item') }}

    2. die Logik (develop) ist innerhalb des Logik-Files über 'logic' anzusprechen.
    In Deinem Fall steht in logic.name 'develop'

    3. autotimer aktualisiert das Item und triggert nicht zwingend die Logik. Ich würde die Logik mit logic.trigger(dt) aufrufen. dt ist dabei ein Datetime-Objekt mit der richtigen Zeit. Siehe auch Logics ? SmartHome.py 1.0 documentation

    Bis bald

    Marcus

    Kommentar


      #3
      Hallo,

      1. klappt. Danke

      2. Klappt. Danke

      3. Klappt noch nicht. Folgendes versucht:

      Code:
       
      zeit = sh.now() + datetime.timedelta(minutes=10)
      print (zeit)
       
      logic.trigger(zeit)
      Mit dem print Befehl wird die aktuelle Zeit + 10 Minuten richtig angezeigt. Die logic.trigger Anweisung führt aber zu einer Endlosschleife.

      Danke und Gruß

      Kommentar


        #4
        Hi,

        logic.trigger(dt=zeit)

        Bis bald

        Marcus

        Kommentar


          #5
          Coole Sache. Läuft.

          Nächste Frage.

          Trigger wieder löschen. Ich hab versucht:

          Code:
          sh.scheduler.change('develop', active=False)
          Log:
          Code:
          2014-01-09 21:58:49,400 INFO     develop      Deactivating logic: develop -- scheduler.py:change:249
          Getriggert wird dann aber dennoch.

          Kommentar


            #6
            Trigger löschen geht nicht. Benutze die SuFu für mehr Informationen.

            Kommentar


              #7
              Oder einfach mal hier rein schauen
              https://knx-user-forum.de/smarthome-...ttelbar-2.html

              Kommentar

              Lädt...
              X