NEWS
Softwareunterstützung für Zustandsübergangsgraphen
-
Hi
meine Verschaltung der Alarmanlage wird nun doch immer komplexer und es ergeben sich typische ungewollte Effeckte wenn man sowas vom Hirn zum Schirm umsetzt und dabei einiges übersieht....Graue Zellen wieder aktivieren und möchte mir nun Übersicht schaffen und Zustände definieren der Anlage inkl. markante Trigger/Eingänge für Zustandsänderungen und basierend hierauf die Blocklys später umsetzen.
Papier und Stift ist gut, frage mich nur ob es hierzu mitlerweile hilfreiche Softwareunterstützung gibt die man nutzen kann um Zustandsübergangsgraphen und ggf. weitere Schritte am Monitor zu entwickeln.
Habt ihr da einen guten Tip und kennt da etwas?
Thx!
-
Es gibt einen Adapter für die selbst gebaute Alarmanlage, weiß jetzt nicht genau wie der heißt, findest du sicher schnell raus. Hatte mir das auch mal ganz kurz angesehen, hatte aber keinen richtigen gefallen daran gefunden. Ich fand meine eigene Blockly Lösung besser, weil ich das auch gern in Homekit integrieren wollte, weiß nicht ob das dort auch irgendwo vorgesehen ist.
Aber kannst du dir ja mal ansehen ob das für dich vielleicht brauchbar ist.
Zustände könntest du ja mit "Funktion" ziemlich gut abfragen, ggf. Alias.
Habe letztlich noch ein Script gesehen welches Fensterzustände im VIS ausgiebt, ähnlich kann man ja auch mit anderen Zuständen/Funktionen hantieren. -
@cinimod said in Softwareunterstützung für Zustandsübergangsgraphen:
Es gibt einen Adapter für die selbst gebaute Alarmanlage, weiß jetzt nicht genau wie der heißt, findest du sicher schnell raus. Hatte mir das auch mal ganz kurz angesehen, hatte aber keinen richtigen gefallen daran gefunden. Ich fand meine eigene Blockly Lösung besser, weil ich das auch gern in Homekit integrieren wollte, weiß nicht ob das dort auch irgendwo vorgesehen ist.
Aber kannst du dir ja mal ansehen ob das für dich vielleicht brauchbar ist.
Danke. Brauchbar ist das mit Sicherheit. Hatte mir dies auch vor Längerem angesehen, aber der Punkt ist dann immer ob man seine hochindividuellen Anforderungen und Wünsche dort abbilden kann oder ob man Kompromisse eingehen muss. Da meine Selbstbau Lösung nicht sooo komplex ist aber schon diverse Individualtäten wie verschiedenen Timer und Verzögerungen basierend auf unterschiedlichere Hardware wie Türkontakte oder BWM berücksichtigt war mir eine Blockly Lösung erst mal lieber.
Zustände könntest du ja mit "Funktion" ziemlich gut abfragen, ggf. Alias.
Habe letztlich noch ein Script gesehen welches Fensterzustände im VIS ausgiebt, ähnlich kann man ja auch mit anderen Zuständen/Funktionen hantieren.Ich bin mir nicht sicher ob wir das Gleiche meinen. Mit Zustandsgraphen meine ich solche Konstrukte:
Ich kenne sie hauptsächlich aus der Entwicklung für Mealy oder Moore Automaten. Die Zustände beschreiben hier Zustände der Alarmanlage z.B.
Z0= Anlage Aus
Z1=Anlage Scharf (kein Alarm)
Z2=Anlage Scharf (Alarm)
welche mit diversen Eingängen zB Türkontakt oder Bewegungsmelder oder Knopfdruck A,B,C in andere Zustände überführt werden. Die Zustände selbst können nacher im System zB durch die Kombination verschiedener Datenpunkte (Merker) realisiert sein.Daraus wird dann später schnell ersichtlich (in der vereinfachten Schreibweise) welche Trigger/Eingängangsgrößen in welchem Zustand überhaupt Einfluß haben.
So finde ich es sehr einfach und logisch zu ersehen wie die Blocklys und Verschaltungen dann aufzubauen sind ohne sich irgendwo mit unnötigen Dingen aufzuhalten oder zu verstricken.
Das Beispiel mit 3 Zuständen ist natürlich recht simpel und durch Timer und Verzögerungen sehe ich bei mir erheblich mehr Zustände, da ein laufender Timer/Verzögerung für mich durchaus einen eigenen Zustand darstellt der entweder bei Ablauf Folgezustände hat, aber auch durch diverse Zwischenereignisse abgebrochen werden kann.
Beispiel: Die Alarmverzögerung (Alarm ausgelöst) läuft es wird aber eine Anwesenheit detektiert oder jemand schaltet manuell die Anlage noch ab bevor die Sirene quietscht. Hieraus nur andeutungsweise zu erkennen wieviele Optionen es noch gibt.
Darum würde ich das a) gerne sauber entwickeln wollen um ein positives Ergebnis zu erzielen, aber auch b) eine gute Möglichkeit zu haben die Funktion zu dokumentieren und ggf. mal zu Erweitern bzw. Trouble-Shooten.
Darum die Frage ob es nur (wie damals) über den Papierweg geht oder es da heute hilfreiche Software-Tools gibt?
Bei meiner Suche stoße ich nur auf Skriptmaterial diverser Profs aus Universitäten etc.
-
Also ich habe bisher nichts vergleichbares hier gesehen, sorry
-
@cinimod said in Softwareunterstützung für Zustandsübergangsgraphen:
Also ich habe bisher nichts vergleichbares hier gesehen, sorry
Danke Dir.
Habe in der Zwischenzeit angefangen das mit einer Mindmapper Software zu zeichnen. Den Zweck die Gedanken zu strukturieren und die Entwicklung durchzuführen und alles zu berücksichtigen sowie die Dokumenation für später sind so schon damit erfüllt.
Aus diesen Graphen nun per Software etwas automatisch zu generieren war ja teil meiner Frage und scheint es nur in Ansätzen zu geben.
Mir erscheint diese Frage/Anspruch aber mitlerweile so universell, dass eine Software dafür so komplex sein müsste oder einfach nicht funktionieren kann und es sie darum nicht gibt
-
Ich nutze in einem anderen Projekt XState:
- Docs: https://xstate.js.org/docs/
- Visualizer: https://stately.ai/viz
Das dann in Blockly umzusetzen ist aber eine andere Baustelle, da das Projekt eigentlich für die direkte Nutzung in JavaScript gedacht ist.
-
Danke Dir! Die Visualisierung sieht ansprechend für mich aus. Von der JavaScript Programmierung verstehe ich aber überwiegend nur "Bahnhof".
Wenn das Tool hyperintuitiv bedienbar wäre, könnte man ja daran denken den Output 1:1 in IObroker zu kopieren aber ich befürchte das wird nicht gut funktionieren ohne JavaScript zu verstehen.
-
@dieter_p Leider nein, das ist eher anders herum. Du definierst die Statecharts in Code (der sich dann auch ausführen lässt) und kannst in der Visualisierung kontrollieren, was du da gerade tust.
Ich spiele schon länger mit dem Gedanken, das mit einem einfacheren Editor als weitere Alternative in den Skript-Adapter einzubauen, aber dazu fehlt mir einfach die Zeit...
-
Thx, habe mich da gerade zurück gehalten da ich auch den Eindruck hatte Dein Vorschlag funktioniert in die andere (Entwicklungs) Richtung. Nun bin ich happy doch noch ein paar mehr als die grauen Zellen zu haben
Lass es mich selbstkritisch so sagen. Wenn man mit einem Mindmapper mal das Vorhaben strukturiert hat und somit das Chaos im Kopf sortiert hat, ist der Rest auch mit vorhanden Mitteln durchaus gut umsetzbar....aus meiner Sicht.
Das Gefühl einen Zettel und Stift auszupacken für diese Sache hat mich nur dazu bewogen Alternativen zu suchen, da ich mir doch sehr "Oldschool" vorkam. Aber wie nicht das erste Mal, hat man erst mal Struktur geschafft, sei es auf dem Papier, lösen sich die Wolken im Kopf und der Rest ist eigentlich recht easy.
Für mich als Nicht-Programmierer und eher Automatisierer sind vorhandene Boardmittel also super ausreichend und keep it simple kann auch schön sein