Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenKNX-Logikmodul release

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

    Du musst dafür mehrere Kanäle hintereinander schalten.
    Dabei kannst du den Ausgang von dem einen mit einem internen Eingang von dem anderen verknüpfen.
    So hast du mit zwei Kanälen bis zu vier werte, die du verarbeiten kannst

    Kommentar


      Zitat von BooStar Beitrag anzeigen
      ich würde gerne den Mittelwert von mind. 3, oder 4 Eingängen auf den Ausgang senden, geht das irgendwie?
      Ist möglich durch Verkettung mehrerer Kanäle. Falls Du den Raumcontroller oder eine andere Applikation mit dem Modul Funktionsblöcke einsetzt, dann ist es einfacher dort die Aggregations-Funktion zu nutzen.
      OpenKNX www.openknx.de | StateEngine: Universelle Zustandsautomaten in KNX | OpenKNX Konfigurationstransfer

      Kommentar


        Zitat von BooStar Beitrag anzeigen
        ch würde gerne den Mittelwert von mind. 3, oder 4 Eingängen auf den Ausgang senden, geht das irgendwie?
        Am einfachsten wenn du die Funktionsblöcke benutzt, da hast du bis zu 9 Eingänge. Die Funktionsblöcke gibt es aber nicht als eigene FW, sondern die sind bei sehr vielen anderen dabei. Z.B. bei unseren neuen RaumController.

        Kommentar


          Huhu, wollte gerade mal wieder eine Logik mit Benutzerformel aufbauen. Ich bräuchte dabei aber die Möglichkeit, den Wert zu limitieren. Wollte also sowas wie "min(E1+0.25, 1)" schreiben. Nun sehe ich aber in der Liste der unterstützten Funktionen kein "min". Wäre es eventuell Möglich, min und max einzubauen?
          Man kann das natürlich mit nem if nachbauen ("if(E1+0.25 > 1, 1, E1+0.25)"), aber das ist natürlich nicht elegant, vor allem da nicht direkt ersichtlich ist, was das Ziel ist
          Chris

          Kommentar


            Achja, und direkt noch eine weitere Frage:
            Kann man verhindern, dass ein Eingang bei einem Logikkanal die Auswertung triggert? Ich habe hier zwei Eingänge, einer soll die Auswertung triggern, der andere dient nur dazu, den letzten Dimmwert vom Bus zu speichern (der dann in der Formel verändert wird und eben auf einer anderen GA gesendet). Aber aktuell löst auch jeder Empfang eines neuen Dimmwertes vom Bus ein Senden aus, weil eben dieser zweite Eingang auch immer mit als Auslöser dient.

            Ich hätte jetzt intuitiv vermutet, dass man bei der Hauptseite der Logik unter "Logik-Trigger" auswählen kann, welche Eingänge triggern. Da sehe ich aber nur allgemeine Einstellungen. Ansonsten wäre das natürlich denkbar bei den einzelnen Eingangsselektoren (z.B. inaktiv, normal/invertiert aktiv, normal/invertiert aktiv aber nicht als Trigger), würde aber logischerweise die Auswahloptionen verdoppeln. Oder dann auf den jeweiligen Einstellungsseiten der Eingänge, dort kann ich aber wohl nur kontrollieren, ob der Dimmwert als logisch falsch oder logisch wahr gewertet wird, ändert aber dann auch nichts an der Auswertung der Logik.

            Übersehe ich da noch etwas oder ist dies aktuell wirklich nicht möglich?



            Etwas konkreter als Beispiel:
            CODE]OpenKNX,cv1,0xA012:0x51/LOG:0x37/10§f~Name=Dimm%2B%20Test§f~Logic=1§f~NameInput1=Ex t.%20Trigger§f~E1=1§f~NameInput2=Dimmstatus§f~E2=1 §f~E2Dpt=3§f~E2LowDpt5001:1=0§f~I1Name=Schaltstatu s§f~I1=1§f~I1Kind=2§f~I1FunctionRel=1§f~NameOutput =Dimmwert§f~ODpt=3§f~OOn=8§f~OOnAll=8§f~OOnFunctio n=202§f~OOff=0§f~OOffAll=0§;OpenKNX[/CODE]
            Die referenzierte Logik +1 spielt inhaltlich keine Rolle. Sie liefert einfach nur eine weitere Komponente (0/1) für die logische UND-Verknüpfung.

            Letztlich will ich:
            - Eingang 2 speichert den letzten empfangenen Wert vom Bus
            - Ausgang wird nur geschrieben, wenn Logik True ergibt - also Eingang 1 und interner Eingang 1 jeweils True sind (Eingang 2 ist so definiert, dass er immer True ist) (der Teil funktioniert natürlich schon).
            - Die Logik soll aber nur ausgewertet werden, wenn auf Eingang 1 ein Wert empfangen wird - Ereignisse auf Eingang 2 oder dem internen Eingang 1 sollen *nicht* zu einer Auswertung führen.

            Aktuell ist es halt so, dass wenn Eingang 1 zuerst True wird, und danach interner Eingang 1 True, dann wird dabei schon ein Wert gesendet. Ebenso wird dann auch jedesmal ein Wert gesendet, wenn Eingang 2 den Wert ändert. Ich will aber halt nur, dass wenn Eingang 1 einen Wert empfängt (und interner Eingang 1 bereits True ist), dass dann auch ein Wert gesendet wird.
            Zuletzt geändert von Alloc; 21.12.2025, 17:43.
            Chris

            Kommentar


              Alloc https://github.com/OpenKNX/OFM-Logic...#logik-trigger - kannst dort auch individuelle Eingänge festlegen: https://github.com/OpenKNX/OFM-Logic...ngstelegrammen
              Zuletzt geändert von coko; 21.12.2025, 18:32.
              OpenKNX www.openknx.de | StateEngine: Universelle Zustandsautomaten in KNX | OpenKNX Konfigurationstransfer

              Kommentar


                Och Mensch, das hab ich doch schonmal übersehen...
                Danke dir, Cornelius.
                Chris

                Kommentar


                  Zitat von Alloc Beitrag anzeigen
                  Wäre es eventuell Möglich, min und max einzubauen?
                  Nur über ein zusätzliches Parsen, weil es in der genutzten Library nicht enthalten ist. Da es einfach über Vergleiche nachzubilden ist, lohnt es nicht den Zusatzaufwand.

                  Zitat von Alloc Beitrag anzeigen
                  vor allem da nicht direkt ersichtlich ist, was das Ziel ist
                  Dafür kann man ja die Kommentare bei der Benutzerformel nutzen
                  Zuletzt geändert von willisurf; 21.12.2025, 19:13.
                  Gruß Bernhard

                  Kommentar


                    vielleicht kann mir jemand behilflich sein.

                    aktuell nutze ich die Logic mit der Zeitschalfuhr und Feiertagsoption zum Öffnen meiner Jalousie.

                    ich würde gern noch die Schulferien integrieren. diese habe ich aktuell auf einer KNX Gruppenadresse als binär-sensor.

                    Schulferien ja -> binär 01
                    und das würde ich gern verwenden wie ein Feiertag in der Logic.

                    wie stelle ich das am besten an. danke euch

                    Kommentar


                      mxcxpx sofern nicht schon anderweitig verwendet, könntest Du das ggf. direkt über die Urlaubsbehandlung abbilden:

                      https://github.com/OpenKNX/OFM-Logic...aubsbehandlung
                      OpenKNX www.openknx.de | StateEngine: Universelle Zustandsautomaten in KNX | OpenKNX Konfigurationstransfer

                      Kommentar


                        Zitat von willisurf Beitrag anzeigen
                        Nur über ein zusätzliches Parsen, weil es in der genutzten Library nicht enthalten ist. Da es einfach über Vergleiche nachzubilden ist, lohnt es nicht den Zusatzaufwand.
                        Ah, dachte das wäre was eigenes. Dann wäre der Zusatzaufwand natürlich kaum vertretbar


                        Zitat von willisurf Beitrag anzeigen
                        Dafür kann man ja die Kommentare bei der Benutzerformel nutzen
                        Wenn ich Software entwickle dann hab ich gerne Code, der von sich aus schon direkt erkennen lässt, was er macht. Doku dann eher für den größeren Kontext
                        Aber das geht ja schon so - solange man nicht noch mehr verschachteln muss. Aber dann könnte man das natürlich auch über zwei Funktionen abbilden, oder sich sogar allgemein Benutzerfunktionen "min" und "max" bauen, die man immer wieder verwendet.
                        Chris

                        Kommentar


                          Zitat von Alloc Beitrag anzeigen
                          Benutzerfunktionen "min" und "max"
                          Wenn Du zwei feste Argumente hast, gibt es die bereits eingebaut.
                          Gruß Bernhard

                          Kommentar


                            Ich formuliere das mal so: Wenn ich wieder was an den Benutzerformeln mache, kann ich gerne mal min und max einbauen. Ich würde den Topf jetzt aber nicht "extra" dafür aufmachen, vor allem, weil Du ja schon selber einen Workaround gefunden hast. Ist also nicht abgelehnt, wird aber nicht forciert. Kann somit schon ein Langläufer werden, mit Realisierungszeiten von > 1 Jahr oder so...

                            Gruß, Waldemar
                            OpenKNX www.openknx.de

                            Kommentar


                              Ich weiß, aber das hilft halt wirklich nur, wenn man außer dem Min/Max nichts machen will
                              Chris

                              Kommentar


                                Zitat von Alloc Beitrag anzeigen
                                Ich weiß, aber das hilft halt wirklich nur, wenn man außer dem Min/Max nichts machen will
                                Wieso? Du kannst ja den Ausgang von dem Logikkanal weiter verwenden, auch in einer Benutzerformel. Bevor Benutzerformeln da waren, gingen Berechnungen ausschließlich durch Verkettung von Kanälen.

                                Gruß, Waldemar
                                OpenKNX www.openknx.de

                                Kommentar

                                Lädt...
                                X