KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

State Machine im Logikeditor

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Benutzeravatar

Ersteller
Zugschlus
Reactions:
Beiträge: 373
Registriert: Di Okt 02, 2018 4:28 pm
Wohnort: St. Ilgen, Baden-Württemberg
Hat sich bedankt: 130 Mal
Danksagung erhalten: 113 Mal
Kontaktdaten:

State Machine im Logikeditor

#1

Beitrag von Zugschlus »

Hallo,

ich habe mir gerade im Büro eine neue Schreibtsichlampe an die Decke geschraubt und habe das Problem, dass ich nicht genug Schalter habe, um die auch vernünftig bedienen zu können. Mache das im Moment über die Comet Visu.

Dabei ist mir die Idee gekommen, dass ich vielleicht mit _demselben_ Schalter durch verschiedene Lichtfunktionen "durchdrücken" kann. Einmal drücken: Nur Deckenlicht. Das nächste Mal drücken: Decke und Schreibtisch. Das nächste Mal drücken: Nur Schreibtisch. Das nächste Mal drücken: Alles aus.

Dabei müsste die Logik mit _einem_ Eingang, der auch nur "Ein"-Telegramme empfängt, intern eine Statevariable pflegen (oder die Statusrückmeldungen der Aktoren auswerten) und auf jedes Ein-Telegramm mit passenden Ein- und Aus-Telegrammen an zwei Ausgängen reagieren.

Wird das im Timberwolf gehen? Wenn ja, dann wie? Hat schon jemand ein Beispiel gebaut?

Grüße
Marc
--
Marc Haber, St. Ilgen. Freier IT-Berater, Debian Developer. Kann nicht mit Webforen.
TWS 3500L ohne Insider, VPN auf Anfrage - KNX, 1Wire (13/55/54 Slaves), MQTT, Cometvisu, viel Grafana, ganz ein bisschen Logik. unfertige Anwendungsfälle für Modbus.
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1225
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 250 Mal
Danksagung erhalten: 887 Mal
Kontaktdaten:

#2

Beitrag von Chris M. »

Die CometVisu kann mit einem Toggle ( http://www.cometvisu.org/CometVisu/de/l ... index.html ) durch mehrere Zahlen sich durchiterieren. Fehlt also nur noch die Logik, die zu jeder dieser Zahl einen anderen Zustand zuweist.

Könnte das ein Multiplex machen?
Ansonsten sollte ein klassischer Szenen-Baustein das hinbekommen (der Toggle würde dann durch die Szenen-Nummern durch toggeln)
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache
Benutzeravatar

gurumeditation
Reactions:
Beiträge: 411
Registriert: Mo Aug 13, 2018 10:51 am
Wohnort: Hannover
Hat sich bedankt: 200 Mal
Danksagung erhalten: 273 Mal

#3

Beitrag von gurumeditation »

Wenn ich das richtig verstanden habe, geht es ja um die Umsetzung OHNE CometVisu auf einem klassischen Taster.

Kommt auf die Applikation deines Tasters an: eine einfache Toggle Funktion wie von Chris beschrieben sollte dort enthalten sein, dann kannst du das exakt so abbilden.
--
TWS 2500 (ID=137), PBM, Wartungs-VPN=ON, Reboot bitte nur nach Absprache
Benutzeravatar

Ersteller
Zugschlus
Reactions:
Beiträge: 373
Registriert: Di Okt 02, 2018 4:28 pm
Wohnort: St. Ilgen, Baden-Württemberg
Hat sich bedankt: 130 Mal
Danksagung erhalten: 113 Mal
Kontaktdaten:

#4

Beitrag von Zugschlus »

gurumeditation hat geschrieben: Mi Apr 24, 2019 7:35 pm Kommt auf die Applikation deines Tasters an: eine einfache Toggle Funktion wie von Chris beschrieben sollte dort enthalten sein, dann kannst du das exakt so abbilden.
Der Taster kann entweder immer "ein", immer "aus" oder abwechselnd "ein" und "aus" senden. Die CometVisu müsste also auf KNX-Telegramme reagiert. Irgendwie gehört das gefühlt eher in eine Logik, nicht in die Visu.

Grüße
Marc
--
Marc Haber, St. Ilgen. Freier IT-Berater, Debian Developer. Kann nicht mit Webforen.
TWS 3500L ohne Insider, VPN auf Anfrage - KNX, 1Wire (13/55/54 Slaves), MQTT, Cometvisu, viel Grafana, ganz ein bisschen Logik. unfertige Anwendungsfälle für Modbus.
Benutzeravatar

gurumeditation
Reactions:
Beiträge: 411
Registriert: Mo Aug 13, 2018 10:51 am
Wohnort: Hannover
Hat sich bedankt: 200 Mal
Danksagung erhalten: 273 Mal

#5

Beitrag von gurumeditation »

Vielleicht hat er deshalb auch nach dem Zustandsautomaten der Logikmaschine gefragt? :)
--
TWS 2500 (ID=137), PBM, Wartungs-VPN=ON, Reboot bitte nur nach Absprache
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1225
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 250 Mal
Danksagung erhalten: 887 Mal
Kontaktdaten:

#6

Beitrag von Chris M. »

Zugschlus hat geschrieben: Mi Apr 24, 2019 8:46 pm Der Taster kann entweder immer "ein", immer "aus" oder abwechselnd "ein" und "aus" senden. Die CometVisu müsste also auf KNX-Telegramme reagiert. Irgendwie gehört das gefühlt eher in eine Logik, nicht in die Visu.
Ich hatte überlesen, dass es um einen normalen Taster geht.

Dann ist das klar eine Aufgabe für die Logik und nicht für die CometVisu.
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache
Benutzeravatar

Ersteller
Zugschlus
Reactions:
Beiträge: 373
Registriert: Di Okt 02, 2018 4:28 pm
Wohnort: St. Ilgen, Baden-Württemberg
Hat sich bedankt: 130 Mal
Danksagung erhalten: 113 Mal
Kontaktdaten:

#7

Beitrag von Zugschlus »

gurumeditation hat geschrieben: Mi Apr 24, 2019 9:27 pm Vielleicht hat er deshalb auch nach dem Zustandsautomaten der Logikmaschine gefragt? :)
Genau.

Allerdings bin ich in der gesamten Thematik noch eher neu, bin "nur" Informatiker und deswegen vorbelastet. Das bedeutet nicht, dass meine ersten Ideen nicht doch das falsche Werkzeug berücksichtigen.

Aber nachdem wir uns hier jetzt ja einig sind, dass die Logikmaschine das richtige Werkzeug ist, könnten wir ja mal mit der eigentlichen Problemlösung anfangen ;-) ehe ich mich an meine Grundausbildung zurückbesinne und einen zwei-Bit-Binärzähler aus NAND-Bausteinen zusammenklöpple...

Grüße
Marc
--
Marc Haber, St. Ilgen. Freier IT-Berater, Debian Developer. Kann nicht mit Webforen.
TWS 3500L ohne Insider, VPN auf Anfrage - KNX, 1Wire (13/55/54 Slaves), MQTT, Cometvisu, viel Grafana, ganz ein bisschen Logik. unfertige Anwendungsfälle für Modbus.

S. Kolbinger
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 560 Mal

#8

Beitrag von S. Kolbinger »

Hallo Marc,
Zugschlus hat geschrieben: Mi Apr 24, 2019 10:39 am Dabei ist mir die Idee gekommen, dass ich vielleicht mit _demselben_ Schalter durch verschiedene Lichtfunktionen "durchdrücken" kann. Einmal drücken: Nur Deckenlicht. Das nächste Mal drücken: Decke und Schreibtisch. Das nächste Mal drücken: Nur Schreibtisch. Das nächste Mal drücken: Alles aus.

Dabei müsste die Logik mit _einem_ Eingang, der auch nur "Ein"-Telegramme empfängt, intern eine Statevariable pflegen (oder die Statusrückmeldungen der Aktoren auswerten) und auf jedes Ein-Telegramm mit passenden Ein- und Aus-Telegrammen an zwei Ausgängen reagieren.

Versuch es bitte mal mit dieser Benutzerdefinierten Logik:

Code: Alles auswählen

{
      "Level": [
        ["$Weiter","bool",false],
        ["$Null","integer",0],
        ["$Eins","integer",1],
        ["$Status","integer",0],
        ["$MaxStatus","integer",3],
        ["$ResetStatus","bool",false],
        ["$DeckenLicht","bool",false],
        ["$DeckenLicht_S0","bool",false],
        ["$DeckenLicht_S1","bool",true],
        ["$DeckenLicht_S2","bool",true],
        ["$DeckenLicht_S3","bool",false],
        ["$SchreibtischLicht","bool",false],
        ["$SchreibtischLicht_S0","bool",false],
        ["$SchreibtischLicht_S1","bool",false],
        ["$SchreibtischLicht_S2","bool",true],
        ["$SchreibtischLicht_S3","bool",true]
      ],
      "Module": [
        ["Polynomial","$Status","$Status",["$Eins","$Eins"]],
        ["Comparator","$Status","$ResetStatus","$MaxStatus"],
        ["Multiplexer",["$Status","$Null"],"$Status","$ResetStatus"],
        ["Multiplexer",["$DeckenLicht_S0","$DeckenLicht_S1","$DeckenLicht_S2","$DeckenLicht_S3"],"$DeckenLicht","$Status"],
        ["Multiplexer",["$SchreibtischLicht_S0","$SchreibtischLicht_S1","$SchreibtischLicht_S2","$SchreibtischLicht_S3"],"$SchreibtischLicht","$Status"]
      ],
      "Input": [
        ["Taster","Jeder Wert schaltet eins weiter","$Weiter","a"]
      ],
      "Output": [
        ["Decke","Schaltzustand für das Deckenlicht","$DeckenLicht","c"],
        ["Tisch","Schaltzustand für das Schreibtischlicht","$SchreibtischLicht","c"]
      ]
}
Gruß,
Stefan K.
Gruß,
Stefan K.
Benutzeravatar

Eraser
Reactions:
Beiträge: 677
Registriert: So Aug 12, 2018 1:51 pm
Hat sich bedankt: 218 Mal
Danksagung erhalten: 281 Mal

#9

Beitrag von Eraser »

Zugschlus hat geschrieben: Do Apr 25, 2019 11:56 am ehe ich mich an meine Grundausbildung zurückbesinne und einen zwei-Bit-Binärzähler aus NAND-Bausteinen zusammenklöpple...
7400 lässt grüßen... :lol:
mfg
Wolfgang

Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938
Benutzeravatar

Ersteller
Zugschlus
Reactions:
Beiträge: 373
Registriert: Di Okt 02, 2018 4:28 pm
Wohnort: St. Ilgen, Baden-Württemberg
Hat sich bedankt: 130 Mal
Danksagung erhalten: 113 Mal
Kontaktdaten:

#10

Beitrag von Zugschlus »

S. Kolbinger hat geschrieben: Do Apr 25, 2019 12:30 pm Versuch es bitte mal mit dieser Benutzerdefinierten Logik:
Tut, danke. Aber nachdem ich jetzt ein wenig darauf rumgeklickt habe komme ich zu dem Schluß, dass es wohl keine so schlaue Idee ist, den State innerhlab der Logik zu speichern: Das führt nämlich zu interessanten Ergebnissen, wenn man das Licht über explizite Schalter und Knöpfe in der Visu geschaltet hat. Die Logik weiß davon natürlich nichts und macht stumpf dort weiter, wo ihr interner State steht.

Vielleicht wäre es doch eine ganz gute Idee, die Statusrückmeldungen der Aktoren zu verwenden, damit die Logik immer weiß, in welchem Zustand die Leuchten wirklich sind.

Grüße
Marc
--
Marc Haber, St. Ilgen. Freier IT-Berater, Debian Developer. Kann nicht mit Webforen.
TWS 3500L ohne Insider, VPN auf Anfrage - KNX, 1Wire (13/55/54 Slaves), MQTT, Cometvisu, viel Grafana, ganz ein bisschen Logik. unfertige Anwendungsfälle für Modbus.
Antworten

Zurück zu „Logikengine & Logik-Editor“