Ankündigung

Einklappen
Keine Ankündigung bisher.

Änderung am Startverhalten

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

    Änderung am Startverhalten

    Hi,

    ich bin gerade auf den Post gestoßen.
    Den habe ich übersehen.

    Ich habe gerade in develop die Reihenfolge beim Start geändert.

    Es werden nun erst Logiken und Szenen eingelesen und dann erst die Plugins gestartet.

    Bei meinen Tests gab es keine Probleme. Aber da es eine grundlegende Änderung am Startverhalten ist und ich bei bei 3rd-Party Plugins es nicht testen kann, möchte ich das hier bekannt geben.

    Bei Problemen, einfach melden.

    Danke und bis bald

    Marcus

    #2
    Heho!

    Ist zwar nicht ganz zum Thema, aber irgendwie schon
    Ich berufe mich bei einer meiner Logiken auf env.night und andere env-Variablen. Nun ist es so, dass beim Start wohl die Logik, die darauf zurück greift (Jalousiensteuerung abhängig von Sonnenstand und Tag/Nacht) zuerst ausgeführt wird, und erst später der Wert Tag oder Nacht richtig gesetzt wird. Teilweise auch "mitten in der Logik", sodass zwar 3, 4 Jalousien falsch gesteuert werden, 1, 2 dann aber richtig

    Hättest du irgendwelche Tipps, wie ich das Problem verhindern kann? Wenn's ein Log braucht, kann ich gerne mal was posten - allerdings ist es immer mal anders.

    Kommentar


      #3
      Hallo,

      und die Trigger bei der Logik sind gesetzt?

      Bis bald

      Marcus

      Kommentar


        #4
        In der logics.conf ist ein crontab init drin, was wohl genau zu dem Problem führt. Prinzipiell kann ich für die Situation das auch weglassen - ich vermute, dass dann die erste Auslösung der Logik nach 10 Minuten erfolgen wird
        Code:
        [Sonne]
        filename = sonne.py
        crontab = init
        cycle = 600
        Die Logik selbst frägt nichts ab, sondern zieht ihre Sache einfach durch - sie wird ja eben zeitlich gesteuert oder bewusst von einem Button getriggert.

        Vielleicht bin ich eh der Einzige mit dem Problem, vielleicht auch nicht. Theoretisch wäre ein Durchlaufen der Initialisierung (env-Variablen, etc.) ganz zu Beginn aber sicher ne feine Sache, hehe.

        Kommentar


          #5
          Zitat von mknx
          fachlich falsches Zitat entfernt
          Uff, und wieder ein kleines (aber wichtiges) Puzzleteilchen mehr, das ich in der Doku überlesen habe ('init').

          Damit erledigt sich automatisch die Frage, die ich hinsichtlich der Umstellung der Startreihenfolge hatte (in Bezug auf items.conf / value). Wieder ein Knoten geplatzt, wie man es machen kann ...

          Danke Marcus!

          /tom

          Kommentar


            #6
            Oh Mann,

            was für einen Stuß ich geschrieben haben. Ich sollte die Doku besser lesen...

            So muss es aussehen:

            Code:
            watch_item = env.location.day
            crontab = init
            Bis bald

            Marcus

            Kommentar


              #7
              OK, jetzt bin ich abgehängt :-)

              Wenn ich watch_item und crontab als trigger benutze, macht dann sh.py da ein logisches Oder aus den beiden triggern?

              Kommentar


                #8
                Hi,
                was meinst du mit "logisches oder"? Es geht ja nicht um boolesche Ausdrücke...
                crontab ist ein Zeit-Trigger, der periodisch die Logik aufruft. Schlüsselwort init meint "beim Start".
                watch_item erlaubt dir auf Item-Änderungen zu reagieren.
                Beides ist unabhängig und kann natürlich in Kombination verwendet werden. Ich wäre enttäuscht wenn nicht...

                crontab = init | 1 * * *
                watch_item = abc

                wird die Logik beim Start, jede Stunde bei Minute 1 und bei jeder Änderung von abc triggern.
                Ich verwende das ab und zu...
                Gruß Waldemar
                OpenKNX www.openknx.de

                Kommentar


                  #9
                  Hallo,

                  kleine Ergänzung:

                  Zitat von mumpf Beitrag anzeigen
                  Code:
                  crontab = init | 1 * * * [COLOR="Red"]| sunrise[/COLOR]
                  watch_item = abc
                  [COLOR="red"]cycle = 60[/COLOR]
                  wird die Logik beim Start, jede Stunde bei Minute 1, alle 60 Sekunden, bei Sonnenaufgang und bei jeder Änderung von abc triggern.
                  Dann haben wir fast alles :-)

                  Bis bald

                  Marcus

                  Kommentar


                    #10
                    Vielen Dank für die Infos!

                    Nachdem das Problem ja aber gerade beim Start auftritt, müsste das crontab = init eigentlich weg. Auslösen also erst, wenn die Environment Variablen gesetzt sind. Und dann einfach per Cycle.

                    Kommentar

                    Lädt...
                    X