Ankündigung

Einklappen

Sammelbestellung ETS6 Vollversionen aktiv!

Sammelbestellung für ETS6 Vollversionen (Prof., Home, Lite) mit 40% Rabatt aktiv! Infos im Forum!
Mehr anzeigen
Weniger anzeigen

OpenKNX-Logikmodul release

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

  • willisurf
    antwortet
    Bei uns endet die Duschszene mit dem Öffnen des Badfensters. Passt zu 99%.
    Und wenn nicht gibt es ein Timeout.

    Einen Kommentar schreiben:


  • coko
    antwortet
    Zitat von tsb2001 Beitrag anzeigen
    Funktionen übernehmen, die bisher über Homeassistant ausgeführt wurden, damit ich soviel wie möglich auf der KNX-Seite halte. [...]

    Ziel: die Temperatur am Warmwassereingang der Dusche schaltet mit die Duschszene ein.
    1. [...]
    2. [...]
    3. [...] Duschszene starten [...] sobald die Warmwassertemperatur größer 20 Grad beträgt. In einer weiteren Benutzerformel vergleiche ich daher E1>20. Diesen benutze ich in der zweiten Logik, und möchte da aber nur ein "EIN" senden, da der Handbetrieb entweder manuell über den Taster oder per Zeitablauf zurückgesetzt wird. Die Sendung eines "AUS" über die Logik möchte ich nicht mache. [...]
    4. Schreibe ich nun über die Diagnose in das Kommunikationsobjekt in den Fühlerwert 2 Grad (entspricht 63 Grad nach der Umrechnung mit o.g. Formel), wird eine Telegramm mit "EIN" an die Spiegelheizung gesendet (läuft für 15 Minuten als Treppenlichtfunktion und geht dann von selbst aus). Soweit - so richtig.
    5. Nun wird das Wasser wieder kalt und ich schreibe über die die Diagnose den Fühlerwert 8 Grad (entspricht rund 9 Grad nach der Umrechnung mit o.g. Formel), wird der Vergleich natürlich zu einer "0", aber über den Sendefilter habe ich ja "AUS" auf nicht senden parametriert.
    Warum sendet der trotzdem ein "AUS"? Das möchte ich gar nicht:
    [...]
    Ziel: ich möchte immer nur bei einer Überschreitung des Temperaturwerts einmalig ein EIN-Telegramm senden, niemals ein "AUS"
    Solle das Ausschalten nach Zeitablauf wirklich nur vom Beginn der Temperaturüberschreitung abhängig sein? Wenn nun der gesammte Duschvorgang länger dauert als der festgelegte Timeout (z.B. wenn mehrere Personen zeitnah hintereinander duschen), dann könnte das zu einem unerwarteten Verhalten führen.

    Ich würde hier über einen kurzen Timeout nach Temperaturunterschreitung (mehr oder weniger kurz nach "Duschende") nachdenken und einen deutlich längeren Timeout nach Duschbeginn lediglich als Fallback vorsehen. Wahrscheinlich steckt da auch noch etwas mehr hinter Deiner "Duschszene" und deren automatischer und manueller Steuerung. Falls mehrere unterschiedliche Zustände existieren, dann lässt sich das mit den OpenKNX Zustandsautomaten in KNX / StateEngine​ (5 hast Du auch im RaumController) u.U. deutlich einfacher und übersichtlicher modellieren. Die oben beschriebenen verschiedenen Timeouts, oder die getrennte Auswertung von Ein-/Aus-Ereignissen wären damit direkt möglich. Bin da womöglich nicht ganz neutral, will aber auf keinen Fall so tun als wäre das pauschal der besser Weg; das muss man immer individuell auf Basis der Anforderungen prüfen (für Anwendungsfälle siehe Beispiele). Auf Basis Deiner bisherigen Beschreibung lässt sich da noch keine eindeutige Aussage treffen.

    Einen Kommentar schreiben:


  • tsb2001
    antwortet
    Zitat von Molybdean Beitrag anzeigen

    Moin,
    Kleiner möglicher Denkfehler hier.
    Je nach Montageort vom Fühler usw. Kann die "Leerlauf" Temperatur im Sommer auch bei mehr als 20° sein. Würde hier eher die WW Temperatur mit der Raumtemperatur vergleichen und bei Überschreitung auslösen.
    Nein, kein kleiner Denkfehler: das System läuft seit anderthalb Jahren exakt und genau, da die Zapfstelle für die Dusche die letzte im Kreis ist, welche auch keine Zirkulation hat. Und da wird es im Sommer auch nicht über 20 Grad.
    Vorher hatte ich es über die Raumtemperatur, da kein Sensor vorhanden war. Das war so träge, dass ich mit Duschen fast fertig war, bis die Raumtemperatur signifikant angestiegen war, um es sicher auszuwerten. War voll für den A..... Jetzt habe ich seit September 2024 einen Fühler am Warmwasser, 5cm von der Mischbatterie entfernt.

    Jetzt hat lediglich das Logikmodul die Aufgabe vom Homeassistant übernommen. Und mehr soll da auch nicht passieren.

    Einen Kommentar schreiben:


  • Molybdean
    antwortet
    Zitat von tsb2001 Beitrag anzeigen
    [*]Nun muss ich diesen vergleichen, damit ich die Duschszene starten kann. Dies soll passieren, sobald die Warmwassertemperatur größer 20 Grad beträgt.
    Moin,

    Kleiner möglicher Denkfehler hier.

    Je nach Montageort vom Fühler usw. Kann die "Leerlauf" Temperatur im Sommer auch bei mehr als 20° sein. Würde hier eher die WW Temperatur mit der Raumtemperatur vergleichen und bei Überschreitung auslösen.

    Einen Kommentar schreiben:


  • tsb2001
    antwortet
    Zitat von willisurf Beitrag anzeigen
    Welche Hardware hast Du denn?
    Das von ing-dom REG1 Basismodul.
    Ich schiebe das jetzt schnell drauf…

    EDIT: 14:07 Uhr: Erledigt und läuft...
    Zuletzt geändert von tsb2001; 07.02.2026, 14:08.

    Einen Kommentar schreiben:


  • willisurf
    antwortet
    Zitat von tsb2001 Beitrag anzeigen
    Ergibt es Sinn, eine andere Firmware aufzuspielen?
    Ja, auf jeden Fall. Die Arbeit die Du sonst da reinsteckst, könntest Du nur noch manuell (mit Hilfe des Konfigtransfer) auf einen neueren Stand übertragen, da das reine Logikmodul nicht mehr einzeln neu released wird.

    Welche Hardware hast Du denn? Aber fast egal, Empfehlung nimm die RaumController Software (aktuelles Release 5.1.13)
    Du verlierst nichts, hast aber wesentlich mehr Funktionalitäten (inkl. VPM, Statemachine, Functionsblocks,...)
    https://knx-user-forum.de/forum/proj...raumcontroller

    Einen Kommentar schreiben:


  • tsb2001
    antwortet
    Zitat von willisurf Beitrag anzeigen
    Welches Softwarerelease hast Du benutzt?
    Tatsächlich nur das Logikmodul.
    Hab zusätzlich noch das Dali-Gateway (hab grade gar keinen Anwendungsfall dafür) und noch das ETH-Modul geordert.
    Alles nur zum spielen und ausprobieren.
    Bin aber von dem Logikmodul grade so begeistert, dass das die Logiken im Homeassistant ablösen soll…

    Ergibt es Sinn, eine andere Firmware aufzuspielen? Das Ding liegt nämlich grade einfach auf dem Schreibtisch und könnte problemlos den Bus von KNX auf USB wechseln, um dann was neues zu erhalten.

    Einen Kommentar schreiben:


  • willisurf
    antwortet
    Zitat von tsb2001 Beitrag anzeigen
    ich habe gestern das Logikmodul in Funktion gebracht und bin begeistert. Es soll verschiedene Funktionen übernehmen, die bisher über Homeassistant ausgeführt wurden, damit ich soviel wie möglich auf der KNX-Seite halte.
    Guter Plan, schön zu hören.

    Welches Softwarerelease hast Du benutzt?

    Hintergrund: Das reine Logikmodul wird durch die wesentlichen umfangreicheren Module RaumController bzw. Stateengine ersetzt und daher nicht mehr neu released.
    Beide Module haben weiterhin 99 Logikkanäle, aber viele zusätzliche Möglichkeiten.
    Von der Idee her ist der RaumController mit Fokus auf die Steuerungsaufgaben eines Raumes zugeschnitten und die Stateengine fokussiert mit mehr Statemachinekanälen mehr auf zentrale Logik.

    Einen Kommentar schreiben:


  • tsb2001
    antwortet
    mumpf und traxanos : Danke für den Input. Ich war so gut im Flow mit den benutzerdefinierten Formeln, dass ich den komplizierten Weg genommen habe.
    Mit der Hysterese geht's problemlos. Ich hatte nur die Funktion nicht gefunden 😖

    Danke!!!

    Einen Kommentar schreiben:


  • traxanos
    antwortet
    Ich habs es mal versucht auf die schnelle zusammen zu klicken (ungetestet).

    Code:
    OpenKNX,cv1,0xAFFF:0x41/LOG:0x38/1§f~Name=Dusche§f~Logic=1§f~NameInput1=Temperatur§f~E1ConvertFloat=2§f~E1=1§f~E1Dpt=7§f~E1Default=1§f~E1LowDpt9:2=20§f~E1HighDpt9:2=24§f~NameOutput=Sende%20Duschszene§f~OOutputFilter=3§f~ODpt=9§f~OOnDpt17=1§f~OOffLed=0§f~OOffAll=0§;OpenKNX

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Denkfehler .
    Du triggerst den Logikkanal über den Eingang E1 mit einem Eingangskonverter, der eine 1 ergibt.
    Beim Ausgangskonverter vom Ein-Signal lässt du das Ergebnis der Benutzerformel ausgeben. Das ist 1 bei E1 >20 und 0 sonst. Also wird 0 ausgegeben.
    Du brauchst für deinen Fall gar keine Benutzerformel. Einfach beim Eingangskonverter Wertintervall 20-100 angeben. Und am Ausgang eine 1 bei Ein senden.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • traxanos
    antwortet
    ich habe es noch nicht ganz verstanden. aber warum nutzt eine benutzerformel, wenn dass eine einfach hysterese ist? das kann ein logikkanal doch auch ohne benutzerformel. grob gesagt.

    wenn wert größer als 24 ist dann EIN. wenn der wert wieder unter 20 ist dann aus. dann ein wiederholungsfilter auf EIN, damit die szene nicht immer wieder getriggert wird. auf dem ausgang sagst du dann bei EIN sende bitte die dusch szene. bei AUS halt nichts.

    Einen Kommentar schreiben:


  • tsb2001
    antwortet
    Hallo zusammen,
    ich habe gestern das Logikmodul in Funktion gebracht und bin begeistert. Es soll verschiedene Funktionen übernehmen, die bisher über Homeassistant ausgeführt wurden, damit ich soviel wie möglich auf der KNX-Seite halte. Ich habe halt immer mal wieder wegen der dutzenden Updates (Hardware, HA) Unterbrechungen in der Logik, die damit Geschichte sein sollten.

    Nun habe ich aber entweder einen Denkfehler, oder ich verstehe die Anleitung nicht.
    Ziel: die Temperatur am Warmwassereingang der Dusche schaltet mit die Duschszene ein.
    1. Ich lese mir einen Temperaturfühler über einen Temperatursensor (KTY-Fühler an Theben QUAD plus) ein, der damit leider nicht kompatibel ist und Werte aussendet, die keiner der auswählbaren Kennlinien des QUAD plus entsprechen.
    2. Diesen Wert behandele ich in der ersten Benutzerformel mit ((E1*(-1))+9)*9, welche mit auf den Ausgang tatsächlich die naheliegendste Temperatur ausgibt. Das funktioniert einwandfrei. Den Ausgang schreibe ich als Temperaturwert auf den Bus (klappt auch wunderbar)
    3. Nun muss ich diesen vergleichen, damit ich die Duschszene starten kann. Dies soll passieren, sobald die Warmwassertemperatur größer 20 Grad beträgt. In einer weiteren Benutzerformel vergleiche ich daher E1>20. Diesen benutze ich in der zweiten Logik, und möchte da aber nur ein "EIN" senden, da der Handbetrieb entweder manuell über den Taster oder per Zeitablauf zurückgesetzt wird. Die Sendung eines "AUS" über die Logik möchte ich nicht mache. Daher habe ich das so parametriert:
      Konfiguration.png
      Daher würde ich davon ausgehen, dass ein "EIN" gesendet wird, das "AUS" aber über den Sendefilter (weil "Wert für AUS senden" auf "NEIN" steht) nicht gesendet wird.
    4. Schreibe ich nun über die Diagnose in das Kommunikationsobjekt in den Fühlerwert 2 Grad (entspricht 63 Grad nach der Umrechnung mit o.g. Formel), wird eine Telegramm mit "EIN" an die Spiegelheizung gesendet (läuft für 15 Minuten als Treppenlichtfunktion und geht dann von selbst aus). Soweit - so richtig.
    5. Nun wird das Wasser wieder kalt und ich schreibe über die die Diagnose den Fühlerwert 8 Grad (entspricht rund 9 Grad nach der Umrechnung mit o.g. Formel), wird der Vergleich natürlich zu einer "0", aber über den Sendefilter habe ich ja "AUS" auf nicht senden parametriert.
    Warum sendet der trotzdem ein "AUS"? Das möchte ich gar nicht:
    Diagnose.png

    Hier die Benutzerformeln (er rechnet einwandfrei - Hintergrund der Korrektur des Messwerts ist ein KTY-Fühler, für den es keine vorgefertigte Linearisierungskennlinie im Theben-Sensor gibt), und er vergleicht auch einwandfrei:
    Formeln.png
    Nochmal das Ziel: ich möchte immer nur bei einer Überschreitung des Temperaturwerts einmalig ein EIN-Telegramm senden, niemals ein "AUS"
    Warum funktioniert das bei dem eingestellten Sendefilter nicht?

    Viele Grüße

    Einen Kommentar schreiben:


  • willisurf
    antwortet
    Zitat von knxDes Beitrag anzeigen
    Wie kann ich mit einem Logikkanal einmalig bei Gerätestart den Frostalarm in Abhängigkeit von der Außentemperatur korrekt setzen?
    Du kannst bei den Sendebedingungen auch wählen, das nur bei einer Eingangsbotschaft auf einem Kanal gesendet wird. Wenn Du dafür den 2. Eingang nutzt und dieser nicht mit einer GA verbunden ist, sondern nur mit einem Wert initialisiert wird, sollte das klappen. Lässt sich ja schnell mal mit Test GAs im Gruppenmonitor ausprobieren.image.png

    Einen Kommentar schreiben:


  • knxDes
    antwortet
    Alles klar, danke für deinen Kommentar. Die Fehlerbeschreibung "sehr komisch" ist natürlich nicht ausreichend. Ich denke, ich trenne das thematisch voneinander: Die für mich nicht nachvollziehbaren Verhalten des Logikmoduls lagere ich in ein neues Thema mit sinnvoller Beschreibung und Screenshots aus.

    Würdest du trotzdem noch etwas zu deiner oben erwähnten Funktion schreiben? Wie kann ich mit einem Logikkanal einmalig bei Gerätestart den Frostalarm in Abhängigkeit von der Außentemperatur korrekt setzen? (Also einmalig: wenn Eingang <=2°, "EIN", sonst "AUS")

    Einen Kommentar schreiben:

Lädt...
X