Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenKNX-Logikmodul release

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

    Viele Wege führen nach Rom... einfacher:

    Eingang 1 (z.B. DPT5), Wertintervall (alle Werte liegen im Intervall), ODER, Ausgang DPT5, Wert von Eingang 1 senden.

    Oder der einfachste Weg: Am KO von Eingang 1 das L- und das Ü-Flag setzen. In diesem Fall wird aber nicht die Kanalwartezeit des Logikkanals berücksichtigt.

    Gruß, Waldemar
    OpenKNX www.openknx.de

    Kommentar


      Zitat von mumpf Beitrag anzeigen
      Viele Wege führen nach Rom... einfacher:
      Danke für den Tipp, viel einfacher!

      Kommentar


        Zitat von mumpf Beitrag anzeigen
        Eingang 1 (z.B. DPT5), Wertintervall (alle Werte liegen im Intervall), ODER, Ausgang DPT5, Wert von Eingang 1 senden.
        Habs noch nicht probiert, aber sendet der Ausgang dann nicht auch bei jeder Wertänderung?

        Kommentar


          mumpf
          Ich habe einen möglichen Bug im Treppenlicht gefunden, kann aber auch sein, dass es so gewollt ist:

          Logik 1 sendet 1
          Logik 2 nimmt Ausgang Logik 1 als Eingang und hat "Nur bei geänderten Ergebnis" definiert mit Treppenlicht 10 Sekunden
          Logik 2 geht auf 1 und wie gewünscht nach 10 Sekunden auf 0
          Logik 1 sendet nochmals 1

          -> da damit das Treppenlicht seinen Ausgang von 0 auf 1 ändern sollte, hätte ich vermutet das die Einstellung "Nur bei geänderten Ergebnis" das Treppenlicht schaltet lässt. Das passiert aber nicht, erst wenn Logik 1 einmal auf 0 geht aktiviert sich beim nächsten 1 das Treppenlicht wieder.

          Mit "bei jedem Eingangstelegramm" funktioniert die Logik wie gewünscht.

          Kommentar


            Hi,

            vielleicht hab ich das missverständlich formuliert. Es ist nicht das Ergebnis des Logikausgangs gemeint, sondern das Ergebnis der Eingangskonverter. Manchmal ist man betriebsblind... ich werde das in "Bei einer Änderung vom Eingangstelegramm" ändern. Applikationsänderungen dauern aber eine Weile...

            Anders gesagt: Es soll so funktionieren und für Deinen Fall ist "bei jedem Eingangstelegramm" richtig. Und falls Du nur mit 1 triggern willst, müsstest Du entweder ein Logikkanal als Filter (nur 1 durchlassen) davorschalten oder Deine Logik 2 (falls sie sonst nichts macht außer Treppenlicht) als TOR definieren, das am Dateneingang konstant eine 1 hat und der Toreingang auf Impulssteuerung steht. Dann wird auch nur mit 1 getriggert.

            Gruß, Waldemar

            OpenKNX www.openknx.de

            Kommentar


              Zitat von mumpf Beitrag anzeigen
              "Bei einer Änderung vom Eingangstelegramm" ändern. Applikationsänderungen dauern aber eine Weile...
              Alles klar, ist auch nicht eilig, weil ich gut damit auskommen und es schon funktioniert, ist mir nur aufgefallen weil ich es ursprünglich falsch benutzt habe weil bei den MDT Logiken es ja immer den Modus gibt nur bei Ausgangsänderung Telegram senden. Ich weiß dass das bereits mit deiner Logik geht, hat mich aber auf die falsche Fährte gebracht.

              Der Baustein ist jedenfalls Megamäßig cool und übernimmt schon einige wichtige Aufgaben:
              - Jalousienautomatik automatisch nach deaktivierung in der Nacht aktivieren
              - Bewässerung nach Sonnenaufgang und vor Untergang mit Vorwässermodus
              - Speicherung von Min- und Max- Temperatur

              Ansonsten sammle ich fleißig an Ideen die vielleicht praktisch sein könnten und diskutiert werden sollten:

              - Eigene Logik für Wert speichern, das geht zwar aktuell, ist aber doch recht umständlich zu definieren
              - Flip-Flop bei dem jeder Eingang Ein- bzw. Aus- Schalten kann, sprich das letzte Telegram entscheidet ob ein- oder ausgeschalten wird
              - So wie bei TOR sofort schließen, würde ich mir diese Funktion generell für Eingänge wünsche, die sollen einmalig triggern, dann sich aber selber sofort wieder rücksetzten (Auf den Default-Wert) können.
              - Bei Schaltuhren könnten die Eingänge für Sperren oder Freischalten benutzt werden

              Kommentar


                Zitat von mgeramb Beitrag anzeigen
                - Bei Schaltuhren könnten die Eingänge für Sperren oder Freischalten benutzt werden
                Dazu kann ich schon jetzt was sagen: Bei Zeitschaltuhren gibt es keine Eingänge! Der Grund ist ganz einfach... die Definition der Schaltzeiten liegt exakt im gleichen Speicherbereich, in den die definitionen für die Eingänge liegen (Memory-Overlay). Es kann also nur das Eine oder das Andere geben.

                Gruß, Waldemar
                OpenKNX www.openknx.de

                Kommentar


                  Zitat von mgeramb Beitrag anzeigen
                  - Flip-Flop bei dem jeder Eingang Ein- bzw. Aus- Schalten kann, sprich das letzte Telegram entscheidet ob ein- oder ausgeschalten wird
                  Da musste ich grinsen, das geht natürlich schon. Nimm eine Logik mit einem Eingang und verbinde 2 GA mit diesem Eingang. Jede GA kann einschalten, jede auch ausschalten. Oder anders gesagt: Das ist das Standardverhalten von KNX .

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    Zitat von mumpf Beitrag anzeigen
                    Da musste ich grinsen, das geht natürlich schon.
                    Ich wollte dir schon zustimmen, habe jetzt meinen Anwendungsfall nochmal geprüft. Da wären 2 Kanalausgänge und ein Eingang mit eben so einem Flip-Flop zu verschalten, mit deinem Ansatz muss ich die Ausgänge alle auf den Bus schicken obwohl ich sie nicht wirklich dort brauche. Ich könnte natürlich auch wieder mit dem K-Flag das verhindern, habs aktuell aber ohnedies schon über eine zusätzliche Logik gebaut.

                    Kommentar


                      Zitat von mumpf Beitrag anzeigen
                      Dazu kann ich schon jetzt was sagen: Bei Zeitschaltuhren gibt es keine Eingänge! Der Grund ist ganz einfach... die Definition der Schaltzeiten liegt exakt im gleichen Speicherbereich, in den die definitionen für die Eingänge liegen (Memory-Overlay).
                      Na ja, auch gut, dann weiß ich wenigsten dass ich keinen Speicher unnötig verbrate wenn ich eine Zusätzliche Logik dahinter hänge

                      Kommentar


                        Zitat von mgeramb Beitrag anzeigen
                        Ich wollte dir schon zustimmen, habe jetzt meinen Anwendungsfall nochmal geprüft. Da wären 2 Kanalausgänge und ein Eingang mit eben so einem Flip-Flop zu verschalten, mit deinem Ansatz muss ich die Ausgänge alle auf den Bus schicken obwohl ich sie nicht wirklich dort brauche.
                        Hm, wenn Du das brauchst, dann ist das so. Dafür eine "sinnlose" Logik zu programmieren nur um ein paar Telegramme zu vermeiden halte ich nicht wirklich für erstrebenswert.

                        Gruß, Waldemar
                        OpenKNX www.openknx.de

                        Kommentar


                          Ich hätte da 2 Problemchen und frage mich ob sich das mit dem Logikmodul lösen lässt.

                          Erstens:
                          Ich hab hier 7 Modbuszähler deren Werte ich auf den KNX schreibe ( Erdgeschoss, Obergeschoss, Keller, PV, usw.). Nun würd ich mir gern eine PV-Überschuss-Logik bauen. Also erstmal alle Leistungen addieren und dann sieht man ja anhand vom Vorzeichen ob Überschuss da ist oder nicht.
                          Das wäre ein KO.
                          Ich hab das probiert, aber die Problematik die ich habe, ich weiß nicht ob ich interne KOs addieren kann?
                          Also pro Logik hab ich ja 2 Eingänge und ich weiß nicht wenn ich es intern weiterreiche ob ich damit dann rechnen kann. Ich hab 4 Logikblöcke mit Oder erstellt und nur der letzte hat am Ausgang die Rechenoperation. Muss ich da über 4 „Dummy-KOs“ gehen?
                          Wollte ich eigentlich wenn möglich vermeiden, oder hab ich nur mal wieder nen Denkfehler? 😅

                          Und im zweiten Schritt würde ich gern ein KO erstellen mit 0/1, welches 1 wird sobald Überschuss vorhanden ist.


                          Mein zweites Problem:
                          Unsere neue BWWP sendet per Modbus die Systemzeit auf den Bus, bzw. kann man sie darüber auch setzen. Nun ist mir aufgefallen, aus welchem Grund auch immer, läuft die Zeit ziemlich davon.
                          Ich würde diese gerne stündlich mit der Zeit vom Bus synchronisieren.
                          Leider hat die BWWP jeweils ein KO für Stunden und Minuten in DPT7.
                          Lässt sich die KNX Zeit DPT10 mit dem Logikmodul so zerbröseln das ich eben wie ich es bräuchte 2 extra KOs für Stunden und Minuten rausbekomme?
                          Zuletzt geändert von stonie2oo4; 20.08.2023, 13:53.
                          Gruß Ben

                          Kommentar


                            Hi Ben,

                            zu Deinem Summen-Problem: Löse das erstmal klassisch mit GA an jedem KO, bis Du sicher bist, dass es korrekt funktioniert:
                            • Logik 1: Modbus 1 + Modbus 2 = Modbus A
                            • Logik 2: Modbus 3 + Modbus A = Modbus B
                            • Logik 3: Modbus 4 + Modbus B = Modbus C
                            • Logik 4: Modbus 5 + Modbus C = Modbus D
                            • Logik 5: Modbus 6 + Modbus D = Modbus E
                            • Logik 6: Modbus 7 + Modbus E = Modbus F
                            Modbus F ist dann die gewünschte Summe. Und wenn das dann so weit funktioniert, wie Du es wünscht, dann kann man die KO intern verknüpfen und sich die jeweiligen GA für Modbus A-E sparen.

                            Zu Deinem 2. Problem: Intern ist das Logikmodul durchaus in der Lage, Bitoperationen zu machen und damit einen Binärwert zu "zerbröseln", wie Du es sagst. Technisch wird das dadurch verhindert, dass derzeit nur 1, 2 und 4 Byte als Eingang funktionieren, Zeit ist aber 3 Byte.

                            Alternative Idee: Löse das mit Zeitschaltuhren.
                            Trivial: 24 Zeitschaltuhren, die jede Stunde das Stundensignal senden, das Minutensignal ist ja immer 0.
                            Besser (weil weniger Logikkanäle): Du machst einen Zähler, der jede Stunde von einer Zeitschaltuhr getriggert wird und seinen Wert um 1 erhöht (und dann sendet). Um Mitternacht wird der Zählerwert auf 0 gesetzt und gesendet.

                            Gruß, Waldemar

                            Nachtrag: Ich habe nochmal nachgeschaut, die Logik-Eingänge können auch DPT232, das ist 3 Byte. Damit könntest Du also auch die Uhrzeit empfangen und über Bitoperationen die Zeit auf ein KO mit DPT7 schicken.
                            OpenKNX www.openknx.de

                            Kommentar


                              Vielen Dank .
                              Echt der Hammer was so alles geht.
                              Ich werd es (hoffentlich) morgen mal testen.
                              Gruß Ben

                              Kommentar


                                Also der Tipp die Berechnung erst mal mit mehreren KO's zu machen war Gold wert. Hatte nämlich noch paar kleinere Fehler drin .
                                Das rechnen scheint soweit zu funktionieren, aber ich bin immer ein bisschen daneben beim Ergebnis der ersten Logik. Das variiert von 0 Komma bis zu ein paar Watt.

                                Bei den nachfolgenden Logiken hab ich bis jetzt nur den weiteren Leistungswert aktiv, also noch nicht das Ergebnis der vorhergehenden Logik verknüpft, hier ist das Ergebnis absolut korrekt. Wobei er da ja auch mit nix (0?) addiert.

                                Als Logikoperation hab ich ODER gewählt und das bei jedem Telegramm der Wert gesendet wird. DPT = 14.

                                Ist es möglich das hier was bei der Berechnung schief geht, oder hab ich etwas vergessen zu beachten?
                                Gruß Ben

                                Kommentar

                                Lädt...
                                X