Hallo Benedikt,
Ich habe die Diskussion, zu dem GPL Verstoß von Edomi, in dessen Forum getragen: #15
Bis bald
Marcus
Ankündigung
Einklappen
Keine Ankündigung bisher.
Zustandsautomaten
Einklappen
X
-
Die GPL ... GPL3 (Siehe "Lizenzhinweis.txt in install/EDOMI/var/edomi-backups/_public ) besagt gleich im zweiten Abschnitt:Zitat von gaert Beitrag anzeigen1. Der Sourcecode der Logikbausteine ist frei verfügbar
2. Wer sagt denn, dass GPL = öffentlicher Sourcecode bedeutet?
"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
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
Hi Jörg,
dafür sind wir ja da - um zu helfen:
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!Zitat von Krukie83 Beitrag anzeigenWofür genau brauche ich den Item Selektor, und was für einen Einfluss hat der Item Selektor ? Brauche ich den 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).
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 anzeigenMüssen das zwingend alle Beteiligten Items rein oder kann mann dafür auch einen Dummy anlegen ?
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.Zitat von Krukie83 Beitrag anzeigenUnd was für einen Einfluss hat der Wert dem ich einen Zustand geben kann ?
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).
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...Zitat von Krukie83 Beitrag anzeigenGanz allgemein tue ich mich noch ein bisschen schwer mit den Automaten, was aber glaube ich an meiner Denkweise liegt
Gruß, Waldemar
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
Hi Jörg,
hast du die Videos schon gesehen? Mir ist nach dem Anschauen einiges klarer gewesen.
Gruß
Thomas
Einen Kommentar schreiben:
-
Guten Morgen zusammen,
ich spiele jetzt schon ein paar Tage immer mal wieder mit dem Zustandsautomaten rum, allerdings gibt es so ein paar Dinge die ich noch nicht so richtig verstanden habe.
Wofür genau brauche ich den Item Selektor, und was für einen Einfluss hat der Item Selektor ? Brauche ich den zwingend ? Müssen das zwingend alle Beteiligten Items rein oder kann mann dafür auch einen Dummy anlegen ?
Und was für einen Einfluss hat der Wert dem ich einen Zustand geben kann ?
Ganz allgemein tue ich mich noch ein bisschen schwer mit den Automaten, was aber glaube ich an meiner Denkweise liegt
Gruß
Jörg
Einen Kommentar schreiben:
-
Hi Waldemar,Zitat von mumpf Beitrag anzeigenIst es das was Du willst?Code:Zustand Tag: enter: condition PM == 1 condition IstTag == 1 action Licht 1 action Dimmen 100 Zustand Nacht: enter: condition PM == 1 condition IstTag == 0 action Licht 1 action Dimmen 30 Zustand Aus: enter: condition PM == 0 action Licht 0
ja ich will aber auch Werte auch noch anlernen. Da muss dann halt nur noch eine Stateitem vergeben werden und an den stellen wo ich lernen will noch ein learn rein. So werde ich das mal ausprobieren.
VG
Jürgen
Einen Kommentar schreiben:
-
Hallo Jürgen,
ich schlage hier den Weg über ein Item vor.
Und dann bei der Szene das Item als Wert verwenden.Code:[meinitem] type = num timer = time=22:00 value=1 | time=06:00 value=0
Alternativ könnte man da auch etwas über eine Logik machen, ich finde das so aber transparenter.
Bis bald
Marcus
Einen Kommentar schreiben:
-
Hi Jürgen,
ich verstehe immer noch nicht wirklich, was Du willst. Hier mal ein Vorschlag für einen Zustandsautomaten (Pseudocode):
Ist es das was Du willst?Code:Zustand Tag: enter: condition PM == 1 condition IstTag == 1 action Licht 1 action Dimmen 100 Zustand Nacht: enter: condition PM == 1 condition IstTag == 0 action Licht 1 action Dimmen 30 Zustand Aus: enter: condition PM == 0 action Licht 0
Gruß, Waldemar
Einen Kommentar schreiben:
-
Hi,
ich habe ein gerät was nur 2 Ein Bit Szenen hat. Szene Aus / Szene An. Die Szene an möchte ich jetzt bei Tag/Nacht umschaltung auf andere Werte programmieren. Ohne diese aufzurufen.
VG
Jürgen
Einen Kommentar schreiben:
-
Hi Jürgen,
ich verstehe die Anforderung nicht. Entweder Du hast einen programmierten Wert, dann setze ihn einfach oder Du hast einen zu lernenden, dann schreibst Du "learn" rein.
Schreib doch mal, was Du genau möchtest, dann finden wir schon eine Lösung.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Hi,
ich würde gerne bei einem PM der keine Tag Nacht umschaltung da einwenig pimpen. Kann man die Szenespeicher auch programmatisch anlernen?
Viele Grüsse
Jürgen
Einen Kommentar schreiben:
-
Hallo,
die Basis-Dokumentation ist online. Feedback dazu gerne per Mail oder PN.
https://docs.callidomus.com/de/Zustandsautomaten/
Nächster Schritt: Beispiele
Bis bald
Marcus
Einen Kommentar schreiben:


Einen Kommentar schreiben: