Ankündigung

Einklappen
Keine Ankündigung bisher.

Zustandsautomaten

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

    #31
    Hi Jörg,

    hast du die Videos schon gesehen? Mir ist nach dem Anschauen einiges klarer gewesen.

    Gruß
    Thomas

    Kommentar


      #32
      Hi,

      ja hab mir beide heute noch mal angeguckt. Hat auch ein bisschen geholfen, aber bei dem Item Selektor bin ich damit auch nicht weiter gekommen...

      Gruß
      Jörg

      Kommentar


        #33
        Hi Jörg,

        die Antworten würde mich auch interessieren.


        Wofür genau brauche ich den Item Selektor, und was für einen Einfluss hat der Item Selektor ?

        aus der Hilfe

        "Jeder Zustandsautomat wird mit einem Item verknüpft. Dieses Item nimmt dabei den Wert des aktuellen Zustandes an. Dies funktioniert auch in die andere Richtung, über setzen des Itemwertes kann man den aktiven Zustand des Automaten wählen."

        Ich interpretiere wenn das Falsch ist bitte korrigieren.

        Über das Itemselektor verbindest du dem Zustandautomaten mit einem bestimmten Item. Über diese Item kannst du von aussen den Zustand setzten (wird bei KNX Szenen benutzt) damit kann dann also ein bestimmter Zustand angewählt werden.

        Ein Zustand kann aber auch durch erfüllen einer Eintrittsbedingungen erreicht werden. Dann wird das Selektortem mit dem Wert gesetzt. (wenn es eine Wert gibt) was drinn steht wenn keiner gesetzt ist weiss ich nicht.

        Viele Grüsse
        Jürgen

        Kommentar


          #34
          Hi Jörg,

          dafür sind wir ja da - um zu helfen:

          Zitat von Krukie83 Beitrag anzeigen
          Wofür genau brauche ich den Item Selektor, und was für einen Einfluss hat der Item Selektor ? Brauche ich den zwingend ?
          Ein Zustandsautomat (StateMachine, im weiteren als SM bezeichnet) braucht immer ein Item, das dessen Zustand speichert. Abstrakt gesehen "hängt" die ganze SM an diesem Item. Auch alle relativen Item-Adressen innerhalb der SM gehen von diesem Item aus. Insofern: Ja, Du brauchst es zwingend!
          Ein tolles Feature vom Markus SM ist die Möglichkeit, die GLEICHE SM an mehrere Items zu hängen. Technisch gibt es dann mehrere Instanzen, die alle gleich definiert sind. Beispiel: Eine Veschattungs-SM, die bei mir an 17 Rolladen-Items hängt. Dies ist der Grund, warum es ein Item-Selektor ist (also etwas, was mehrere Items referenzieren kann). Würde man nur eine SM an ein Item gebunden werden können, würde eine "normale" Item-Referenz reichen. Mit dem Feature, 1 SM an viele Items binden zu können, muss es da einen Item-Selektor geben (über den man natürlich auch ein einzelnes Item auswählen kann).

          Zitat von Krukie83 Beitrag anzeigen
          Müssen das zwingend alle Beteiligten Items rein oder kann mann dafür auch einen Dummy anlegen ?
          Die Items im Item-Selektor sind NICHT die, die in den Zuständen vorkommen, falls Du das gedacht hast. Wie oben beschrieben, für die meisten einfachen Aufgaben steht da genau ein Item, das den Zustand der SM hält.

          Zitat von Krukie83 Beitrag anzeigen
          Und was für einen Einfluss hat der Wert dem ich einen Zustand geben kann ?
          Normalerweise hat das Item, an dem die SM "hängt", als Wert den Namen des Zustandes. Wenn Du also Zustände mit den Namen "Morgen", "Mittag", "Abend" hast, würde das Item für die SM vom Typ string sein müssen und diese Werte annehmen, wenn die SM in dem entsprechenden Zustand ist.
          Nehmen wir aber an, dass Du die SM an ein Item hängst, dass eine Dunstabzugshaube steuert, und die Dunstabzugshaube braucht Zahlen (int) im Bereich von 0-4. Jetzt gibt es die Möglichkeit, die Namen der Zustände "0", "1", "2", "3" und "4" zu nennen. Das ist aber nicht besonders sprechend. Besser lesbar wäre z.B. "Turbo", "Schnell", "Normal", "Langsam", "Aus". Das sind aber keine Werte, die Du an den Aktor schicken kannst. Also bietet Marcus direkt ein "Mapping" an. Du kannst dem Zustand einen Wert zuweisen, und dann wird dieser Wert in das Item, an dem die SM "hängt", eingetragen. Im obigen Beispiel würde man also dem Zustand "Schnell" den Wert 3 zuweisen, "Aus" die 0 etc. und dann würde immer noch alles funktionieren und man hätte gut lesbare Zustände.
          Lesbare Zustände sind deswegen interessant, weil man in der SM selbst wieder auf Zustände referenzieren kann, und da ist ein Text besser zu verstehen als eine Zahl. Vor allem wenn man nach ein paar Monaten wieder was an der SM ändern will, ist Klartext immer vorzuziehen.
          Ein anderer Vorteil vom Mapping über Werte ist, dass man mehr Zustände haben kann als Werte. Im obigen Beispiel könnte ich z.B. einen Zustand "Pause" einführen, der auch den Wert 0 trägt (Dunstabzugshaube geht aus), der ist aber im Gegensatz zu "Aus" so eingestellt, dass er nach 2 Minuten wieder verlassen wird (ok, ist etwas an der Haaren herbeigezogen, es soll nur die Möglichkeit aufzeigen).

          Zitat von Krukie83 Beitrag anzeigen
          Ganz allgemein tue ich mich noch ein bisschen schwer mit den Automaten, was aber glaube ich an meiner Denkweise liegt
          Frag ruhig, ich glaube ich habe die SM sehr gut verstanden und helfe gerne. Eigentlich sind die SM deswegen relativ einfach, weil man nur eine Folge von Regeln formulieren muss und alles funktioniert dann...

          Gruß, Waldemar

          OpenKNX www.openknx.de

          Kommentar


            #35
            Ich sag mal so...danke Waldemar !

            Nee, mal im ernst ! Vielen dank für diese ausführliche Erklärung, das hat mich ein ganzes stück weiter gebracht !

            Gruß
            Jörg

            Kommentar


              #36
              Zitat von gaert Beitrag anzeigen
              1. Der Sourcecode der Logikbausteine ist frei verfügbar
              2. Wer sagt denn, dass GPL = öffentlicher Sourcecode bedeutet?
              Die GPL ... GPL3 (Siehe "Lizenzhinweis.txt in install/EDOMI/var/edomi-backups/_public ) besagt gleich im zweiten Abschnitt:

              "When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things."

              Hast du die GPL überhaupt schon mal gelesen?

              MfG

              Kommentar


                #37
                Hallo Benedikt,

                Ich habe die Diskussion, zu dem GPL Verstoß von Edomi, in dessen Forum getragen: #15

                Bis bald

                Marcus

                Kommentar

                Lädt...
                X