Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenKNX-Logikmodul release

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

    Hallo,

    ist es möglich, zwei KOs als Ausgang zu haben?
    Als ersten Ausgang möchte ich gerne für EIN: EIN und für AUS: NICHTS senden.
    Im Falle von EIN würde ich gerne zusätzlich den auf einer anderen GA zuletzt empfangenen Wert senden (alternativ ein Read-Request auf die entsprechende GA).

    Also:
    E1=False --> tut nix
    E1=True --> Sende EIN auf A1 und sende den zuletzt empfangenen Wert auf 1/2/3 an 1/2/3 oder sende einen Read-Request auf 1/2/3

    Geht das, oder brauche ich einen weiteren Kanal?

    Gruß,
    Hendrik

    Kommentar


      Zitat von henfri Beitrag anzeigen
      Geht das, oder brauche ich einen weiteren Kanal?
      Ich denke, das geht nur mit einem zweiten Kanal.
      Aber es gibt ja 99.
      Gruß Bernhard

      Kommentar


        Es gilt immer: Pro Kanal 4 Eingänge (2 externe mit KO, 2 interne) und ein Ausgang mit KO -> 3 KO pro Kanal.
        Ergo: 2 Ausgänge -> 2 Kanäle.

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          Erstmal großes Lob und Dank an dieses Logik Modul.

          Ich könnte eine 1bit Statusmeldung auf eine 1byte (%) per Logik umwandeln für ein dali Status. Funktioniert super.

          Jalousie steuere ich nun per Zeitschaltuhr in Verbindung mit der Feiertagslogik . Auch toll

          Mal sehen für was ich es noch verwenden kann

          Kommentar


            Danke Euch!
            Zitat von willisurf Beitrag anzeigen
            Ich denke, das geht nur mit einem zweiten Kanal.
            Aber es gibt ja 99.
            Ja, aber es ist nicht so schön, dass man bei Änderungen eines Kanals auch den Anderen aktualisieren muss, und das möglicherweise vergisst. Das ist meine Sorge und der einzige Grund, weshalb ich es immer als Erstes ohne weiteren Kanal versuche.

            E1=True --> Sende EIN auf A1 und sende den zuletzt empfangenen Wert auf 1/2/3 an 1/2/3 oder sende einen Read-Request auf 1/2/3​
            Das mit dem Read-Request wird nicht gehen. Ich muss also
            E1=True --> Sende EIN auf A1 und sende den zuletzt empfangenen Wert auf 1/2/3 an 1/2/3​
            ​machen.

            Dazu könnte ich ja 1/2/3 an E2 und A1 verknüpfen und "Ja - Wert von Eingang E2" wählen.
            Aber welche Logik-Verknüpfung kann ich da wählen, um eine Schleife zu verhindern? Der Logikkanal soll sich ja nicht selbst triggern. Mit anderen Worten: Wenn an E2 etwas ankommt, soll der Wert nur gespeichert werden, aber die Logik nicht auslösen und auch nicht den Ausgang beeinflussen. Geht das?

            Ich hatte an XOR gedacht und bei E2 den Wertfilter so gesetzt, dass er immer False ist. Aber wenn ich es richtig in Erinnerung habe, triggert ein Telegram auf E2 dennoch die Verarbeitung der Logik, so dass auf A1 der Wert von E2 gesendet würde und ich eine Schleife hätte, oder?

            Edit:
            image.png
            Das kann das Problem verhindern, oder?
            (Und Logikfunktion ist ODER)

            Spricht etwas dagegen, dass der Ausgang in dieser Konstellation (Eingang 2 triggert Logik nicht) auf E2 sendet?
            image.png


            Hintergrund des Ganzen (nur falls sich jemand wundert, sonst einfach ignorieren):
            Ich nutze eine HCL Steuerung in meinem Dali-Gateway.
            Wenn ich aber bei einer Gruppe die Farbbeleuchtung aktiviere, muss ich die HCL Steuerung pausieren. Das macht ein anderer Kanal.
            Wenn ich die Gruppe abschalte, soll aber dafür gesorgt werden, dass das nächste Einschalten mit der richtigen Farbe (Weiß) und Farbtemperatur erfolgt. Dazu muss ich die zuletzt empfangene Farbtemperatur an das Gateway senden. Dadurch kennt es die nächste Farbtemperatur beim Einschalten, und dass es weiß einschalten soll (sonst schaltet es wieder den Farbkanal an, bei einem "EIN" Telegramm) und das ist meist nicht gewünscht.



            Gruß,
            Hendrik
            Zuletzt geändert von henfri; 15.02.2025, 23:52.

            Kommentar


              Zitat von henfri Beitrag anzeigen
              Ja, aber es ist nicht so schön, dass man bei Änderungen eines Kanals auch den Anderen aktualisieren muss, und das möglicherweise vergisst.
              Das hängt davon ab, wie man die Kanalabhängigkeiten gestaltet. Durch interne Verbindungen kann man ja Ein- und Ausgangsbedingungen passend abstrahieren und trennen.

              Zitat von henfri Beitrag anzeigen
              Das mit dem Read-Request wird nicht gehen
              Wieso? Man kann mit dem Logikmodul auch einen Read-Request senden.

              Zitat von henfri Beitrag anzeigen
              Das kann das Problem verhindern, oder?
              Ja, an der Stelle kannst Du einstellen, welche Eingänge die Logik triggern.

              Zitat von henfri Beitrag anzeigen
              Spricht etwas dagegen, dass der Ausgang in dieser Konstellation (Eingang 2 triggert Logik nicht) auf E2 sendet?
              Nein - es macht die Logik aber nicht gut verständlich. Was spricht dagegen, die GA 2 mal zu verknüpfen? Aber ja, Du kannst das machen. Denke daran, das S-Flag zu setzen.

              Gruß, Waldemar
              OpenKNX www.openknx.de

              Kommentar



                Hallo,

                vielen Dank, das läuft jetzt so.
                Zitat von mumpf Beitrag anzeigen
                Das hängt davon ab, wie man die Kanalabhängigkeiten gestaltet. Durch interne Verbindungen kann man ja Ein- und Ausgangsbedingungen passend abstrahieren und trennen.
                Aber ich kann einen Eingang, den ich einmal definiert habe nicht in einem zweiten Kanal verwenden (oder?).

                Zitat von mumpf Beitrag anzeigen
                Man kann mit dem Logikmodul auch einen Read-Request senden.
                Ja, aber das Dali-Gateway würde antworten, aber ja nicht auf seine eigene Antwort hören. Das wäre aber nötig.
                Zitat von mumpf Beitrag anzeigen
                Nein - es macht die Logik aber nicht gut verständlich. Was spricht dagegen, die GA 2 mal zu verknüpfen? Aber ja, Du kannst das machen. Denke daran, das S-Flag zu setzen.
                Du hast mich überzeugt.

                Gruß,
                Hendrik

                Kommentar


                  aber ja nicht auf seine eigene Antwort hören​
                  eigentlich schon. der verwendete NCN gibt die Telegramme immer direkt wieder ans Gerät zurück. Wenn also auf Applikationsebene nichts "gefiltert" wird, bekommen die Gerät ihre eigenen Telegramme wieder rein.

                  Wie das Logikmodul das handhabt kann ich gerade nicht sagen.
                  OpenKNX www.openknx.de | OpenKNX-Wiki (Beta)

                  Kommentar


                    Hier ist ja die Frage, wie das Dali GW damit umgeht.

                    Kommentar


                      Zitat von henfri Beitrag anzeigen
                      Aber ich kann einen Eingang, den ich einmal definiert habe nicht in einem zweiten Kanal verwenden (oder?).
                      Du kannst ja mit direkter KO Verknüpfung darauf zugreifen und musst die GA nur einmal verknüpfen. Wenn ich Dich richtig verstanden habe
                      Gruß Bernhard

                      Kommentar


                        Ja, das ist schon klar. Aber hinter der GA/dem KO kommt ja noch so einiges, bevor es zur Logikverarbeitung kommt. Und das muss man halt zwischen den Kanälen synchron halten. Darum ging es mir.

                        Kommentar


                          Zitat von henfri Beitrag anzeigen
                          Hier ist ja die Frage, wie das Dali GW damit umgeht.
                          da man dem telegramm nicht ansieht ob es von intern kommt oder extern, vermute ich keine extra behandlung.
                          OpenKNX www.openknx.de | OpenKNX-Wiki (Beta)

                          Kommentar


                            Zitat von henfri Beitrag anzeigen
                            Aber ich kann einen Eingang, den ich einmal definiert habe nicht in einem zweiten Kanal verwenden (oder?).
                            Das hängt davon ab, wie Du Deine Logiken gestalten/strukturieren möchtest.

                            Zitat von henfri Beitrag anzeigen
                            Aber hinter der GA/dem KO kommt ja noch so einiges, bevor es zur Logikverarbeitung kommt. Und das muss man halt zwischen den Kanälen synchron halten
                            Um Dein Beispiel leicht komplizierter zu machen (und so den Sinn des Vorgehens zu unterstreichen): Nehmen wir mal an, ich will für die Endlage meines Rollladens ein Bool-Trigger "Endlage" geschickt bekommen und über ein 2. KO eine Szene 5 auslösen.

                            2 Kanäle sind klar, die kann ich unabhängig definieren:

                            1. Kanal
                            • L: OR, 2 Eingänge, bei jedem Eingangssignal
                            • E1: DPT5.001, Wertintervall 0-5 (ich möchte die letzten 5% als Endlage haben)
                            • E2: DPT5.001, Wertintervall 95-100
                            • A: DPT1, EIN bei EIN, nichts bei AUS
                            2. Kanal
                            • L: OR, 2 Eingänge, bei jedem Eingangssignal
                            • E1: DPT5.001, Wertintervall 0-5 (ich möchte die letzten 5% als Endlage haben)
                            • E2: DPT5.001, Wertintervall 95-100
                            • A: DPT17, 5 bei EIN, nichts bei AUS
                            ​Hier hab ich das Problem, dass ich alle Eingänge aller Kanäle ändern muss, wenn ich beschließe, dass die Endlage bei 2% reicht.

                            Wenn ich aber folgendes mache:
                            1. Kanal
                            • L: OR, 2 Eingänge, bei jedem Eingangssignal
                            • E1: DPT5.001, Wertintervall 0-5 (ich möchte die letzten 5% als Endlage haben)
                            • E2: DPT5.001, Wertintervall 95-100
                            • A: DPT1, EIN bei EIN, nichts bei AUS
                            2. Kanal
                            • L: OR, ein interner Eingang, bei jedem Eingangssignal
                            • I1: Ausgang von Kanal 1
                            • A: DPT17, 5 bei EIN, nichts bei AUS
                            ​Hier nutze ich die 1. Logik und ergänze nur einen weiteren Ausgang. Das kann man auch weiter strukturieren und verteilen. Will ich z.B. den Bool zyklisch und die Szene nach 5 Sekunden haben, kann man das im ersten Beispiel über 2 Kanäle lösen, will man wiederverwendbare Teile nutzen, macht man das mit 3 Kanälen:

                            1. Kanal
                            • L: OR, 2 Eingänge, bei jedem Eingangssignal
                            • E1: DPT5.001, Wertintervall 0-5 (ich möchte die letzten 5% als Endlage haben)
                            • E2: DPT5.001, Wertintervall 95-100
                            • A: sendet nichts
                            2. Kanal
                            • L: OR, ein interner Eingang, bei jedem Eingangssignal
                            • I1: Ausgang von Kanal 1
                            • A: Einschaltverzögerung 5 Sekunden, DPT17, 5 bei EIN, nichts bei AUS
                            3. Kanal
                            • L: OR, ein interner Eingang, bei jedem Eingangssignal
                            • I1: Ausgang von Kanal 1
                            • A: Zyklisch senden alle 330 Sekunden, DPT1, EIN bei EIN, nichts bei AUS
                            und so weiter... deswegen habe ich auch relative Adressierung im Logikmodul eingeführt, so kann man Logikblöcke bauen und kopieren/verschieben, um bei Bedarf mehr Platz zu schaffen.

                            willisurf Ich denke, es war eher so was gemeint.

                            Gruß, Waldemar


                            OpenKNX www.openknx.de

                            Kommentar


                              Zitat von traxanos Beitrag anzeigen
                              da man dem telegramm nicht ansieht ob es von intern kommt oder extern, vermute ich keine extra behandlung.
                              Naja, wir wissen ja nicht, wie der knx-Stack vom DALI-Gateway funktioniert. Aber henfri, Du kannst es ja ausprobieren:
                              Setze bei dem KO, dass das Telegramm empfangen soll, nicht nur das S- sondern auch das A-Flag und mach einen ReadRequest auf die GA. Wenn das reicht, musst Du nichts mehr machen.

                              Gruß, Waldemar
                              OpenKNX www.openknx.de

                              Kommentar


                                Zitat von mumpf Beitrag anzeigen
                                Ich denke, es war eher so was gemeint.
                                Ja Danke Waldemar, so ergibt es Sinn.

                                Das ist auch ein schönes Beispiel, warum es -neben dem Zugriff auf KOs- wichtig ist, die internen Verknüpfungen zu haben.
                                Gruß Bernhard

                                Kommentar

                                Lädt...
                                X