Ankündigung

Einklappen
Keine Ankündigung bisher.

Diskussion zu "Alltagsprobleme und deren Lösungen mit dem OpenKNX-Logikmodul"

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

    OK I try, manchmal hilft es mir auch schon allein hier etwas zu posten und danach denke ich mir, ach warum hast du das noch nicht probiert oder vorher gesehen. Z.B. das ich "Wert für aus senden" auch abschalten kann. So kann ich die Logiken klein stückeln. Zeitschaltuhr habe ich jetzt auch eine erstellt. Jetzt noch die "Und" Logik angehen. Ich werde berichten 🙃

    Kommentar


      Hi Theees,

      gehen wir mal Deine Aussagen durch, da sind ein paar Sachen, die so nicht sein können/sollten:
      Zitat von Theees Beitrag anzeigen
      Der VEML gibt eh unter 46lux nichts raus und springt danach direkt auf 0.
      Das kann nicht sein. Ich bekomme Werte bis 1 Lux ohne Probleme. Wie hast Du das getestet? Ich habe den VEML vor allem deswegen implementiert, weil er sehr lichtempfindlich ist und eben feine Helligkeitsunterschiede erkennen kann.

      Zitat von Theees Beitrag anzeigen
      OK scheinbar funktioniert das mit dem Senden bei Abweichung nicht.
      Auch das macht mich stutzig. Erneut: Wie hast Du das getestet?

      Sorry, aber ich kann das so nicht stehen lassen. Wenn Du recht hast, dann ist das ein Fehler, der korrigiert werden muss. Und wenn nicht, dann denkt hier jeder, der das liest, dass da Fehler sind, obwohl alles funktioniert.

      Bei den anderen Sachen hat Bernhard ja schon was gesagt:
      1. Damit nicht wiederholt wird, musst Du bei der Logik (beim OR) auf "nur bei Änderung" stellen
      2. Um zu bestimmten Zeiten was zu machen, musst Du Zeitschaltuhren verwenden
      3. Um mehrere Aussagen zu verbinden, musst Du logische Verknüpfungen machen, in diesem Fall wahrscheinlich ein UND. Eine Logikfunktion "verwursten" hab ich nicht .
      Und ganz im Allgemeinen: Bei Logiken muss man immer beide Signalwege verfolgen: Den EINschaltweg (das machen alle) und den AUSschaltweg (das machen nur wenige).

      Wir machen übrigens Anfang April ein OpenKNX-User-Treff in Wiesbaden, da wird das Logikmodul sicher auch ein Thema sein .

      Gruß, Waldemar

      OpenKNX www.openknx.de

      Kommentar


        Hallo Waldemar,

        Zitat von mumpf Beitrag anzeigen
        Das kann nicht sein. Ich bekomme Werte bis 1 Lux ohne Probleme. Wie hast Du das getestet?
        Danke für den Hinweis. Es hatte mich auch sehr verwundert und jetzt habe ich die Werte mit dem Busmonitor abgeglichen. Ich muss viel mehr mit dem Busmonitor arbeiten! Ich hatte das immer in der EasyKNX App nachgeschaut und dort den falschen Datentyp verwendet 🤦‍♂️

        Zitat von mumpf Beitrag anzeigen
        Auch das macht mich stutzig. Erneut: Wie hast Du das getestet?
        Ich kann nicht genau sagen warum das heute früh nicht geklappt hatte. Heute mittag ging es dann mit dem senden. Evtl hab ich hier auch wieder etwas falsch eingestellt oder nicht richtig übertragen. Ich habe das raus editiert denn nachher hatte es problemlos geklappt. Sorry ich achte zukünftig drauf sowas direkt klar zu stellen. Dafür powert ihr hier zuviel Arbeit rein

        Zitat von mumpf Beitrag anzeigen
        "nur bei Änderung"
        Du meinst im Logik-Trigger auf "nur bei geändertem Ergebnis"?

        Mit den Zeitschaltuhren und dem UND teste ich mich mal ran.
        Das mit dem Treffen habe ich schon gesehen, aber Wiesbaden ist ein gutes Stückchen weg 🙁

        Kommentar


          Zitat von Theees Beitrag anzeigen
          aber Wiesbaden ist ein gutes Stückchen weg 🙁
          Berliner Umland aber noch weiter weg als NRW und sowas lass ich mir nicht entgehen.
          ----------------------------------------------------------------------------------
          "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
          Albert Einstein

          Kommentar


            Hallöchen,

            ich habe mal wieder eine Aufgabe an der ich irgendwie scheitere.

            Ziel ist folgendes:
            Wenn in einem Raum (Raum1) eine bestimmte Szene aktiviert ist (GA 16/2/1 - Szene 1) und in einem weiteren Raum (Raum 2) von einer bestimmten Szene (GA 16/2/2 - Szene 5) auf eine andere bestimmte Szene (GA 16/2/2 - Szene 3) gewechselt per Toogle-Taster gewechselt wird, dann soll statt der Szene 3 die Szene 4 auf GA 1/1/2 aktiviert werden.

            Wenn die UND Logik aus Raum1 mit Szene 1 und Raum2 mit Szene 5 nicht erfüllt ist, soll in Raum 2 "normal" von Szene 5 auf Szene 3 gewechselt werden.

            Ich hoffe das war jetzt nicht ganz zu verwirrend

            Meine erste Idee war, das Ganze mit mehreren Logikkanälen abzubilden.
            Einmal ein UND für die Szenen in den beiden Räumen, welche wahr ist wenn Eingang 1 > Szene 1 (GA 16/2/1) hat und Eingang 2 > Szene 5 (GA 6/2/2)
            Eine weitere Logik die den Toogle von Szene 5 auf Szene 3 auswertet -> hier fehlt mir aber die Fantasie mit welcher Logik ich das realisieren kann
            Und zum Schluss eine TOR Logik die an Eingang 1 die Szene 4 "wartend" hat und an Eingang 2 dann das Tor geöffnet wird wenn der Google von 5 auf 3 erfolgt und Logik 1 Wahr ist.

            aber keine Ahnung ob das so überhaupt klappt mit den Szenen.
            Zuletzt geändert von shortyle; 07.03.2025, 10:51. Grund: GA korrigiert, damit in folgenden Posts diese schlüssig sind
            Gruß David

            Kommentar


              Ok, was hast Du denn bisher versucht umzusetzen und dann mit dem Gruppenmonitor kontrolliert?
              Das ist tatsächlich der beste Weg die Logiken kennenzulernen und das Gewünschte schrittweise weiterzuentwickeln.

              Eine einfache Möglichkeit einer Szenenersetzung (ein Baustein Deiner Logik) ist es am Ausgang eines UND bei z.B. False den Wert von Eingang1 senden zu lassen (Szene vom Eingang1 wird unverändert) und bei True am Ausgang eine feste andere Szene als Ersatz zu senden. Wann diese gesendet wird entscheidet die Auswertung der Szenen am Eingang1.
              Zuletzt geändert von willisurf; 06.03.2025, 22:30. Grund: Edit Szenenersetzung invertiert
              Gruß Bernhard

              Kommentar


                Noch ein Hinweis.

                Szenen abhängig von aktuellen Szenen in anderen Räumen zu wechseln mag durchaus sinnvoll sein und ist auch mit dem Logikmodul gut umsetzbar.

                Wenn jedoch Sequenzen von Szenen ausgewertet werden sollen, halte ich das in der Praxis für sehr instabil (Initalisierung, manuelle Betätigungen,…) und vor allem mit dem Logikmodul nur noch sehr schwer und vor allem unübersichtlich umsetzbar.
                Gruß Bernhard

                Kommentar


                  Zitat von willisurf Beitrag anzeigen
                  Eine einfache Möglichkeit einer Szenenersetzung (ein Baustein Deiner Logik) ist es am Ausgang eines UND bei z.B. False den Wert von Eingang1 senden zu lassen (Szene vom Eingang1 wird unverändert) und bei True am Ausgang eine feste andere Szene als Ersatz zu senden. Wann diese gesendet wird entscheidet die Auswertung der Szenen am Eingang1.
                  Also ich hab mich jetzt mal daran versucht, denn dieser Hinweis hat mich glaube ich auf die richtige Spur gebracht. Ich komme schon recht weit mit einer einzelnen einfachen UND Logik.

                  Das Einzige was noch nicht so recht klappt ist, wenn beide Eingänge wahr sind und Eingang 1 vor Eingang 2 auf false geschaltet wird, dann soll im Anschluss die Logik quasi nicht mehr auswerten wenn Eingang 2 auf false geschaltet wird.

                  GAs
                  Bildschirmfoto 2025-03-07 um 10.57.28.png

                  Logik
                  Bildschirmfoto 2025-03-07 um 10.47.03.png

                  Eingang 1 -> toogle zwischen Szene 1 und 2 (andere GA als Eingang2)
                  Bildschirmfoto 2025-03-07 um 10.37.31.png


                  Eingang 2 -> toogle zwischen Szene 1 und 2 (andere GA als Eingang1)
                  Bildschirmfoto 2025-03-07 um 10.37.48.png


                  Ausgang
                  Bildschirmfoto 2025-03-07 um 10.38.19.png
                  Gruß David

                  Kommentar


                    Zitat von shortyle Beitrag anzeigen
                    Das Einzige was noch nicht so recht klappt ist, wenn beide Eingänge wahr sind und Eingang 1 vor Eingang 2 auf false geschaltet wird, dann soll im Anschluss die Logik quasi nicht mehr auswerten wenn Eingang 2 auf false geschaltet wird.
                    Sehr schön!

                    Du kannst für solch eine Sequenzauswertung von Botschaften ein TOR verwenden. Das wird aber wie angekündigt etwas kompliziert.
                    In Stichworten: Eine Botschaft am Dateneingang kommt durch, wenn nicht vorher eine Botschaft am Toreingang das Tor gesperrt hat. Soweit noch halbwegs überschaubar.
                    Du musst aber mit einem Timeout das Tor auch wieder freigeben, dazu könntest Du einen weiteren Logikkanal mit Treppenlicht nutzen.

                    Ich würde Dir empfehlen, das mal mit Test GAs auszuprobieren. Du wirst dabei viel lernen.
                    Ob es am Ende sinnvoll ist das so zu tun, wirst Du dann herausfinden.
                    Zuletzt geändert von willisurf; 07.03.2025, 12:28.
                    Gruß Bernhard

                    Kommentar


                      Zitat von shortyle Beitrag anzeigen
                      Das Einzige was noch nicht so recht klappt ist, wenn beide Eingänge wahr sind und Eingang 1 vor Eingang 2 auf false geschaltet wird, dann soll im Anschluss die Logik quasi nicht mehr auswerten wenn Eingang 2 auf false geschaltet wird.
                      Hmmm, und warum wertest Du die Aussage nicht einfach in Deiner Logik aus? Da oben steht, dass Du - wenn Eingang 2 triggert - ein E1=TRUE und ein E2=FALSE haben willst. Wobei Du dann A=FALSE haben willst.

                      Wertetabelle:
                      E1 E2 A
                      F F T
                      F T T
                      T F F
                      T T T
                      Ergebnis ist eine OR-Logik mit invertiertem E1. Rest bleibt gleich.

                      Gruß, Waldemar

                      P.S.: Immer gleich an Sequenzen zu denken ist insofern schlecht, weil man dann auch an die Zeiten zwischen den Ereignissen denken muss. Das macht vieles komplizierter.
                      OpenKNX www.openknx.de

                      Kommentar


                        Hallo zusammen,

                        ich suche die Vergleicherfunktion im OpenKNX Logikmodul.

                        Ich möchte im 7 Uhr die Rollos auf 30% hochfahren aber sie sollen nicht wieder zurück auf 30% fahren wenn sie offen sind. Nach meiner Recherche man man das mit einem Vergleicher. Der mir dann aufgrund des Rollostatus dann entweder ne 1 oder ne 0 schickt. Aber ich finde es einfach nicht.

                        zeitschaltuhr für 7Uhr als Schritt eins, der mir ne 1 sendet aber dann weis ich leider nicht weiter, welchen Operator man verwendet.

                        Kann mir jemand nen Schubbs geben?

                        Kommentar


                          Beim Eingang kannst du doch Bereiche Festlegen, die aus dem Prozentwert eine 1 oder 0 machen.
                          Zusätzlich eine Und Verknüpfung mit dem Ausgang der Zeitschaltuhr.

                          Kommentar


                            Genau, jeder Eingang vom Logikmodul hat einen Eingangskonverter, der aus einem DPTx einen booleschen Wert macht. Bei Dir würde Wertintervall 31-100 Sinn machen. Wertintervall repräsentiert einen Vergleicher mit Konstanten Werten. Mit einem Differenzintervall kann man dann auch 2 Werte vom Bus miteinander vergleichen.

                            Gruß, Waldemar

                            OpenKNX www.openknx.de

                            Kommentar


                              Hallo,
                              ich habe das Zählermodul in der Version 0.4.1 Beta im Einsatz und möchte neben dem Auslesen eines SML-Zählers zusätzlich noch die Betriebsminuten meiner Heizungspumpen ermitteln. Das klappt auch soweit.
                              Der Betriebsstundenzähler schickt nur bei Eingangsänderung die Betriebszeit auf dem Bus. Nachdem zumindest eine Pumpe zumindest in der Heizperiode ziemlich den ganzen Tag läuft, möchte ich bei eingeschalteter Pumpe alle 15 min einen ReadRequest auf die entsprechende GA machen. (auch zum Üben im Umgang mit Logiken).

                              Ich habe 2 Logiken definiert.

                              Logik 1 mit ZSU, die jede Minuten eine 1 sendet. Meine Frage hier: Wie stelle ich ein, dass nur alle 15min eine 1 gesendet wird? Müsste ich 4 Schaltpunkte definieren, mit jeder Stunde und 15min, 30min, 45min und 00 min?

                              Das zweite ist eine UND Logik wobei E1 der Trigger der ZSU aus Logik 1 ist und E2 der Schaltzustand der Pumpe. Ausgang ist dann ein ReadRequest mit dem DPT der Pumpenlaufzeit (DPT 12). Das klappt auch, außer das 2 Antworten kommen, einmal mit 0 und dann die richtige Laufzeit.

                              image.png

                              image.png

                              Mhhh.
                              Was mache ich falsch?

                              Danke Euch?

                              Kommentar


                                Du musst das L-Flag vom ReadRequest-KO (108) wegnehmen, das antwortet eben auch .

                                Und das mit alle 15 Minuten - gibt viele Möglichkeiten. Die einfachste ist, den Ausgang der Logik auf zyklisch senden alle 15 Minuten zu setzen und den Eingang mit AUS vorbelegen und invertiert auf eine OR-Logik zu legen, der triggert dann beim Neustart (ist noch ein Bug, dass ein EIN nicht beim Neustart triggert, ich hab da noch nicht gesucht).
                                Wenn es bestimmte 15 Minute sein sollen (also z.B. 5, 20, 35, 50) dann sind entweder 4 Schaltzeiten oder eine Start-Schaltzeit und wieder zyklisch senden.

                                Gruß, Waldemar
                                OpenKNX www.openknx.de

                                Kommentar

                                Lädt...
                                X