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

  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • mgeramb
    antwortet
    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • mgeramb
    antwortet
    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.

    Einen Kommentar schreiben:


  • mgeramb
    antwortet
    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?

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • mgeramb
    antwortet
    Zitat von mumpf Beitrag anzeigen
    Ja, jeder gespeicherte Wert triggert nach dem Neustart normal den Logikeingang, an dem er gespeichert wurde. Führt also genau zum gleichen Verhalten, als wenn der Wert über das Eingangs-KO gesendet worden wäre.
    Danke, ich habs jetzt hinbekommen und es klappt auch mit GA die Byte Werte haben 😀 Das Logik Modul ist echt super, man braucht nur etwas Phantasie!
    1. TOR Logik, Tor geht sofort wieder zu, Beim öffnen von Tor wird "Eingangswert gesendet"
    2. Eingang 1 als Byte, Eingangswert speichern, nicht vorbelegt, Eingangskonverter ist egal
    3. Eingang 2 als Bit, Nicht speichern, vorbelegt mit 1
    4. Ausgang als Byte, Wert für EIN senden "Ja, von Eingang 1", Wert für AUS senden "Ja, von Eingang 1"
    5. Eingang 1 und Ausgang mit der selben GA verbinden die gespeichert werden soll
    6. Eingang 2 bleibt unverbunden.
    Nun wird der Wert der auf der GA vom Bus kommt gespeichert, nach einem Busspannungsausfall schickt die Logik den gespeicherten Wert auf den Bus. Etwas kompliziert aber es geht!!!

    Wenn du nicht planst das speichern als eigene Logik in einer künftigen Version anzubieten, wäre die Beschreibung in der Doku super aufgehoben. Soll ich einen PR machen?



    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Genauer gesagt: Bei Stromausfall, vor einer Neuprogrammierung oder vor einem "Gerät neu starten" durch die ETS. Rein nach dem Motto: So selten wie möglich, so oft wie nötig. Ein Reset über die Reset-Taste oder der Watchdog führt nicht zum speichern, weil wir vorher keine kontrolle bekommen.

    Zitat von mgeramb Beitrag anzeigen
    Kann man die Logik so programmieren, dass ein gespeicherter Wert nach einem Stromausfall auf den Bus gesendet wird?
    Ja, jeder gespeicherte Wert triggert nach dem Neustart normal den Logikeingang, an dem er gespeichert wurde. Führt also genau zum gleichen Verhalten, als wenn der Wert über das Eingangs-KO gesendet worden wäre.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • traxanos
    antwortet
    gespeichert wird bei stromausfall.

    Einen Kommentar schreiben:


  • mgeramb
    antwortet
    Ich habe 2 Fragen zum Speichern eines Eingang-KO:

    Wir jedes Eingangsdiagramm sofort im Flash persistiert oder erst bei Bus-Stromausfall (Ich mache mir nämlich Sorgen den Flash durch zuviele Schreibvorgänge zu zerstören)?

    Kann man die Logik so programmieren, dass ein gespeicherter Wert nach einem Stromausfall auf den Bus gesendet wird?

    Liebe Grüße, Michael

    Einen Kommentar schreiben:


  • stonie2oo4
    antwortet
    Vielen Dank für die ausführliche Erklärung, das erleichtert es mir erheblich .

    Einen Kommentar schreiben:


  • willisurf
    antwortet
    Zitat von mumpf Beitrag anzeigen
    das ist fast richtig
    Ja genau, die meinte ich. Die Grundrechenarten und viele Boole Operationen sind ja bereits hinterlegt.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Danke willisurf, das ist fast richtig

    Hier sollten nicht die Benutzerdefinierten Formeln genutzt werden, sondern die Standardformeln. Benutzerdefinierte Formeln erfordern ein Compilieren eines eigenen Logikmoduls, und das ist für simple Summen nicht nötig, das ist schon implementiert.

    Zitat von stonie2oo4 Beitrag anzeigen
    Jetzt hab ich mich aber trotzdem gefragt wie man mit dem Logikmodul rechnen kann.
    Rechnen findest Du in der Augangsebene des Logikmoduls. Grundidee vom Logikmodul ist immer, dass neben der Logikoperation auch noch der Ausgangswert verändert werden kann. Man kann also statt einfach nur ein EIN (DPT1) auch ein 33% (DPT5.001) ausgeben. Oder eben die Summe aus beiden Eingängen.
    Im allgemeinen kann man sagen, dass Du mit jedem Kanal "bedingt" rechnen kannst. Das was Du bisher genutzt hast, ist eben ein +0.

    Was Du machen musst:
    Eingang 1/2: DPT9 (später dann DPT14), Wertintervall [-100;5000], Logik OR mit einem Eingang, Ausgang DPT9, Summe E1 und E2.

    Über die ganzen restlichen Einstellungen kannst Du all die Spielereien wie Treppenlicht, verzögertes Senden (kann bei komplexen Formeln sinnvoll sein), Wiederholen etc. machen.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • stonie2oo4
    antwortet
    Dankeschön, ja ich sollte wohl erstmal ein bisschen mehr lesen 😅. Sorry.
    Habs gefunden.

    Einen Kommentar schreiben:

Lädt...
X