Ich werde die Feiertage nicht so schnell anpassen. Nicht weil ich nicht will, sondern weil ich intern nur 32 Bit für die Feiertage reserviert habe und es inzwischen 32 sind. Und bevor ich diese Datenstruktur verändere, muss es einen guten Grund geben. Und sorry, aber ein fester (also nichtbeweglicher) Feiertag ist für mich kein guter Grund, denn das kannst Du einfach mit einer Zeitschaltuhr lösen. Ich werde aber ein Beispiel in die Alltagsprobleme aufnehmen, damit auch andere noch Feiertage nachtragen können.
Gruß, Waldemar
Ankündigung
Einklappen
Keine Ankündigung bisher.
OpenKNX-Logikmodul release
Einklappen
X
-
Dem kann ich mich nur anschließen. Vielen Dank für die Erläuterungen.
Ich habe zuerst an Formel gedacht und damit einfach mal probiert. Vor allem, da ich noch nicht damit gearbeitet hatte, bisher. Aber gut zu wissen, dass es auch einen einfacheren Weg gibt.
Die IF-Bedingung ist halt einfach gedacht. Wenn eine Bedingung zutrifft, möchte ich das oder wenn etwas anderes zutrifft, dann was anderes. Ist direkt IF, Else
Ich werde mir Deinen Weg aber auf jeden Fall auch anschauen. Stört ja nicht, wenn man sich mit dem Modul besser auskennt.
Viele Grüße
Nils
Einen Kommentar schreiben:
-
Hallo Nils,
vielen Dank für die positive Rückmeldung und es freut mich sehr, dass es auf anhieb geklappt hat. Und es gibt natürlich viele Wege zum Ziel, aber das ist nicht der, den ich empfehlen würde, wenn man einfache logische Aussagen treffen will. Benutzerformeln sind eher für komplexere mathematische Aufgaben gedacht, wie eine Taupunktberechnung oder das Volumen einer Zisterne in abhängigkeit von der Füllhöhe oder so. Du hast hier also sozusagen "mit Kanonen auf Spatzen geschossen".
Anders gesagt, Dein Problem konnte man schon mit der ersten Version vom OpenKNX-Logikmodul von vor 2 Jahren lösen. Eine logische Bedingung kann man nicht immer nur durch ein if formulieren, warum das auch immer in den Köpfen der Leute so drin steckt.
Wenn Du Dir den Eingang eines Logikkanals anschaust und den auf DPT9 stellst, steht da ein Eingangskonverter, der eine Einstellung erlaubt, wann dieser Eingang logisch 1 werden soll. Wenn Du da beim Wertintervall 0 bis 100 wählst (für die Benutzerformel wirst Du 0 bis 200 oder so gewählt haben), ist der Eingang EIN, wenn der Wert zwischen 0 und 100 liegt, sonst ist er AUS.
Jetzt nur noch am Ausgang der Logik bei EIN den Wert vom Eingnang 1 senden, bei AUS den konstanten Wert 100 und Du hast das gewünschte Ergebnis, ganz ohne Benutzerformeln.
Hier noch das Beispiel als Transfer-String:
Bitte nicht als Kritik sehen, ich nutze solche Fragen/Beispiele auch gerne als Fortbildungsmaßnahme, um auch anderen, die hier mitlesen, die Möglichkeiten des Logikmoduls nahezubringen.Code:OpenKNX,cv1,*/LOG:0x33/*§f~Name=Filter%20Luftfeuchte%20(nicht%20mehr%20als%20100%25)§f~Logic=2§f~NameInput1=Luftfeuchte%20vom%20TP§f~E1=1§f~E1Dpt=7§f~E1HighDpt9:1=100§f~NameOutput=Gefilterte%20Luftfeuchte§f~ODpt=7§f~OOn=2§f~OOnAll=2§f~OOffDpt9=100§;OpenKNX
Gruß, Waldemar
- Likes 3
Einen Kommentar schreiben:
-
Ich habe gerade mal eine Benutzerformel getestet und wollte mal ein Feedback geben. Die Funktion hatte ich bisher nie getestet und es funktionierte beim ersten Versuch.
Der Steinel TPM sendet gerne auch mal 102% Luftfeuchtigkeit beim Duschen, worauf ich immer wieder angesprochen worden bin. Also habe ich das nun einmal auf 100% begrenzt.
Formel: if(e1>=100,100,e1)
Also wenn Eingang 1 größer oder gleich 100 ist, gib 100 aus, sonst das, was an Eingang 1 anliegt. Falls jemand fragt, mir ist auch gerade aufgefallen, dass e1>100 auch gereicht hätte, aber so ist es nun parametriert und funktioniert
Am Ausgang noch schnell auf DPT 9.xxx gestellt, Wert für EIN & Aus auf "Ja - Wert einer Funktion" und mit dem Wert "A=B1(E1,E2,A), Eingang mit der GA vom Steinel verknüpft und Ausgang mit dem GA für die Anzeige und es funktioniert.
Vorher natürlich einfach mit Diagnosemonitor getestet und mit "Benutzerformel testen", was super funktionierte.
Ich nutze es als ODER, da ich eh nur einen Eingang belege...
Tolle Funktion und sehr nützlich. Vielen Dank dafür!
So konnte ich schnell ein kleines Problem lösen, um den Feinschliff der Anzeige zu verbessern.
Viele Grüße
Nils
Einen Kommentar schreiben:
-
Auch das Logikmodul hat heute einen kleinen Fix erhalten auf 3.3.1.
Der Ausgangskonverter von irgendeiner Zahl auf DPT16 funktionierte nicht mehr. Ist irgendwann zu 1.2 kaputtgegangen, hat seitdem keiner gemerkt (ich auch nicht, weil ich es nicht mehr brauche). Ist somit sicherlich keine wichtige Funktion, wurde aber jetzt mal wieder gewünscht.
Alles zu, Release 3.3 gesagte gilt natürlich auch für die 3.3.1.
Gruß, Waldemar
- Likes 1
Einen Kommentar schreiben:
-
kleinklausi: Inzwischen gibt es ein Countdown-Beispiel im Thread zur Einführung in den Konfigurationstransfer: https://knx-user-forum.de/forum/proj...60#post1967860
Falls Du das noch nicht gesehen hast.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Man bekommt das hin, aber es ist keine fertige Funktion. Ich hab in der Doku ein Beispiel für einen Betriebsstundenzähler (der zählt aber die Sekunden). Den könnte man jetzt immer runter zählen lassen, sobald ihm ein Sekundenwert gesetzt wird und bei 0 stoppen und eine Aktion auslösen. Mit dem neusten Logikmodul 3.3 geht das noch einfacher, weil jetzt Zähler ohne Rückkopplung auf den Eingang möglich sind und so versehentliche Schleifen vermieden werden.Zitat von kleinklausi Beitrag anzeigengibt es eine Möglichkeit im Logikmodul eine Einschaltverzögerung mit berechnetem Wert (in Sekunden) zu belegen?
Also: Es wird gehen, aber man muss die passende Logik parmetrisieren und sie wird sicherlich aus mehreren Kanälen bestehen. Schau Dir das Zählerbeispiel in der Doku an und versuch es zu verstehen. Wenn Du noch Fragen hast, melde Dich einfach.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Hallo,
gibt es eine Möglichkeit im Logikmodul eine Einschaltverzögerung mit berechnetem Wert (in Sekunden) zu belegen?
Hintergrund: ich will für ein Fenstermotor Positionsfahrten nachbauen. Der Motor wird über zwei Kontakte (Impulssteuerung) Auf und Zu gesteuert. Wobei ein weiteres Auf während der Fahrt den Motor stoppt (selbes für Zu). Ich muss also anhand der letzten Position und der anzufahrenden Position die Zeit berechnen und ein weiteres Telegramm senden.
Vielen Dank und Grüße!
Einen Kommentar schreiben:
-
Naja, das Sensormodul ist nicht so sehr von Erweiterungen betroffen. Auch im aktuellen Sensormodul (RP2040-Version) ist es ein verbesserter KNX-Stack und ein verbessertes Logikmodul, die zu einem Update führen. Im Sensormodul hat sich da nichts getan (außer einem UI-Redesign). Und genau die Änderungen am "Unterbau" sind es aber, die den SAMD "sprengen", da bleibt es also bei der bisherigen Infrastruktur.Zitat von henfri Beitrag anzeigenSprich: Sensormodul v5 ohne LM aber auf SAMD.
Ich werde noch einen halbautomatischen Upgrade-Pfad für das Sensormodul anbieten (mit unserem neuen Konfigurationstransfer), wenn jemand die Hardware wechseln möchte. Und wenn noch irgendwo ein grober Bug entdeckt wird, für den es keinen Workaround gibt, dann würde ich den fixen.
Was ich nicht machen werde, ist neue Sensoren implementieren, falls das im neuen Sensormodul passieren sollte (ist nur hypothetisch, derzeit ist nichts geplant). Denn wer das SAMD-Modul verwendet, hat ja schon seine Sensoren dran, und die funktionieren ja. Und es sind recht viele möglich. Wer dann auf einen neuen Sensor wechseln will (falls es den mal gibt), müsste auch auf die neuere Hardware wechseln. Aber warum sollte man das machen? Temperatur bleibt Temperatur, egal von welcher Sensorgenaration gemessen
.
Ich hoffe, das deckt das ab, was Du wissen wolltest?
Gruß, Waldemar
- Likes 3
Einen Kommentar schreiben:
-
Genau so... aber Du hast wahrscheinlich trotzdem einen Denkfehler drin
.
Wenn Du (was wahrscheinlich ist) Kanal 1 mit Einschaltverzögerung programmiert hast, dann denkst Du, dass ein Trigger am Eingang 1 den Wert, der getriggert hat, auch speichert. Das ist aber nicht der Fall. Der Ausgangskonverter vom Kanal 1 wird z.B. nach 30 Sekunden getriggert, und dann macht er das, was in der Anleitung steht: Er gibt den Wert von Eingang 1 auf den Ausgang. Und zwar den AKTUELLEN Wert. Wenn das noch der ist, der getriggert hat, ist das prima, wenn es ein neuer Wert ist, dann gibt er diesen Wert aus. Es gibt keinen Speicher im Loigkmodul, nut die KOs, die man als Speicher nutzen kann.
Ich habe als Kanal 1 ein Tor, dass Auf- und sofort wieder Zugeht. Dadurch wird die aktuelle Luftfeuchte vom Eingang auf den Ausgang geschrieben. Das Tor wird jede Minute (per Zeitschaltuhr) getriggert, geht als jede Minute kurz auf. Damit hat man am Ausgang immer einen max. 1 Minute alten Wert.
Das Differenzintervall lasse ich nur vom Eingang der akt. Luftfeuchte triggern. Damit wird immer, wenn eine neue Luftfeuchte reinkommt, mit dem anderen Wert verglichen, der max. 1 Minute alt ist. So weißt Du, ob innerhalb der letzten Minute der Wert stark gestiegen ist.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Das verstehe ich.Zitat von mumpf Beitrag anzeigenIch werde jetzt erstmal den VPM mit der neuen Infrastruktur (und dem neuen Logikmodul) rausbringen (heute oder morgen), dann das Sensormodul (kommendes Wochenende). Beide aber nur für die RP2040-Hardware.
Die Frage ist, ob die SAMD Sensormodule mit dem alten Logikmodul weiter gepflegt werden können?
Sprich: Sensormodul v5 ohne LM aber auf SAMD.
Einen Kommentar schreiben:


Einen Kommentar schreiben: