Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Diskussion zu "Alltagsprobleme und deren Lösungen mit dem OpenKNX-Logikmodul"
Du kannst beide verhalten parametrisieren.
Allgemein ist knx aber Zustandsbasiert.
Einen Zustand bleibt so lange gültig, bis ein neues Telegramm kommt.
Der Zustand Weihnachten würde also so lange gültig bleiben, bis Ostern kommt 😄
Wie Hendrik schon sagt, kannst Du bei der Zeitschaltuhr ja angeben, wann sie EIN und wann sie AUS senden soll. Es passiert nichts automatisch, außer es ist in der Applikation so beschrieben. Eine Zeitschaltuhr, die jede Stunde ein EIN senden soll, wird jede Stunde ein EIN senden, ohne ein AUS dazuwischen. Und wenn Du dem dahinter geschalteten Ausgang sagst, dass EIN-Wiederholugen nicht durchgelassen werden sollen, dann wird so eine Zeitschaltuhr nur genau ein EIN senden, nämlich dar erste EIN.
Hallo Waldemar,
mein Logikwunsch geht in die gleiche Richtung wie in Beitrag #15. Ich würde die Raffstores um 19:00 Uhr gerne zum Sichtschutz runterfahren und die Lamelle ein Stück weit auf lassen. Sollte die Sonne um 19:00 aber bereits untergegangen sein, möchte ich zum vorherigen Sonnenuntergang die Raffstores vollständig schließen.
Meine Idee wäre entsprechend:
Fahre um 19:00 Position X an
Aber nur wenn um 19:00 noch nicht Sonnenuntergang (oder noch schöner wäre Sonnenuntergang + x Minuten)
Falls 2. falsch (also um 19 Uhr bereits Sonnenuntergang), dann fahre Position Y an
Oder anders formuliert
Fahre Position Y an
Aber nur wenn um 19:00 Uhr bereits Sonnenuntergang (oder noch schöner wäre Sonnenuntergang + x Minuten)
Falls 2 falsch, dann fahre um 19:00 Position X an
Ist einer der beiden Ansätze sinnvoll und wie (bzw. ob überhaupt) setze ich das in deinem Logikmodul um?
ich plane auch eben eine Lüftungssteuerung umzusetzen, die jedoch in Teilen der von jorues abweicht bzw. auch noch etwas weiter geht.
Bei mir ist eine dezentrale Aerex Wohnraumbelüftung ohne Wäremrückgewinnung installiert. Es gibt ein zentrales Absauggerät mit Hauptschalter und 4stufigem Gebläse. Stufe 4 ist eigentlich nicht für den Standardbetriebe gedacht, sondern für eine "Bedarfslüftung" wo das Gerät mit maximaler Leistung läuft. Dieses Gerät steuere ich über einen FanCoil Aktor an, kann also manuell die Anlage ein und ausschalten und die Gebläsestufen manuell wechseln. Die Luft wird über Deckenventile aus den Räumen gesaugt und strömt über sog. Fresh-Ventile durch in den Wänden wieder zu. Die Fresh-Ventile haben keine Sensorik oder Aktorik, sondern nur manuell justierbare Drosselklappen und Luftfilter.
Nachdem ich nun in neue Präsenszmelder verbaut habe (MDT SCN-KP360K301.03), die mir Werte für VOC, CO², rel Feuchte und Temperatur liefern, möchte ich die Lüftung bedarfsgerecht steuern. Erreichen möchte ich, dass anhand von individuellen Schwellwerten je Messwert die Gebläsestufe erhöht oder abgesenkt wird. Wenn ich keinen Denkfehler mache, führte der Weg dahin über die Ermittlung des Maximalwertes für jede Messgröße. Als nächtes braucht es dann Schwellwerte je Messgröße für die Lüfterstufen 1 bis 3, anhand derer die Punkte zum rauf-/runterschalten definiert werden. Damit dürften dann für jede Messgröße eine aktuell erforderliche Lüfterstufe ermittelt werden. Aus diesen drei Werten muss dann noch die aktuell höchste erforderliche Lüfterstufe bestimmt werden, die dann an den FanCoil Aktor übermittelt wird.
Die Aussenluftfeuchtigkeit und Temperatur spielt bei einer Lüftungungregelung per rel F innen zwar eine Rolle, die Komplexität dieses Zusammenhangs sprengt aber aktuell noch mein gedankliches Konstrukt. Ich würde mich vermutlich bei der Luftfeuchte auch erstmal darauf beschränken, das Beispiel aus dem openKNX Wiki zur Duscherkennung über kurzfristig stark ansteigende Luftfeuchte für beide Duschen zu verwenden. Das habe ich auch schon nachgebaut, jedoch nich nicht getestet.
Wie löse ich sowas möglichst elegant (ressourcenschonend)? Über kaskadierte Eingänge/Logiken? Oder doch besser mittels Benutzerformel?
Ich sehe im Moment vor zu viele Möglichkeiten den elegantesten Weg einfach nicht.
Beste Grüße und vielen Dank im Voraus für jede Idee und jeden Hinweis
Axel
Ich würde die Ermittlung der Schaltstufe über drei Benutzerformeln machen.
Es gibt dort die Möglichkeit if-then-else Strukturen zu schachteln.
Diese Formel gibt z.B. abhängig vom Eingangswert bis 6, bis 9, ..12, 15, 18, 21, 24
die Werte 27, 26.5, 26, 25.5, 25, 24.5, 24 oder 23 zurück (nur am Rand, das ist der Sollwert einer elektrischen FBH abhängig von der Tageshöchsttemperatur)
In gleicher Art kannst Du für CO2 und VOC getrennt in zwei Formeln die Lüfterstufe ermitteln und nachher in einem 3. Kanal daraus den Maxwert bilden (Benutzerformel Max).
Zu Benutzerformeln siehe auch https://github.com/OpenKNX/OFM-Logic...enutzerformeln
Da ist auch beschrieben, wie Du die aus der ETS testen kannst (programmieren vorher nicht vergessen).
Am besten fängst Du erstmal klein an und hangelst Dich dann weiter.
Ich nehme für solche Sachen immer ein Textfile um parallel die Formeln weiter zu entwickeln und dann halt copy/paste.
Zuletzt geändert von willisurf; 09.11.2024, 23:54.
hier eine kurze Rückmeldung zu den Ratschlägen von Bernhard (Danke dafür!). Nachdem ich mit den Vergleicherlogiken und der Luftgütesteuerung der MDT Präsenzmelder keine verlässlich Steuerung hinbekommen habe, bin ich wie oben beschrieben vorgegangen. Ich habe Benutzerformeln für CO², relF und VOC hergenommen, deren Max-Ergebnisse ausgewertet und bekomme so die höchste Schaltstufe aus allen Messwertkategorien. Damit rufe ich die entsprechende Lüfterstufe auf. Bisher scheint dies zu funktionieren.
Code:
rel Feuchte, CO² und VOC:
if(E1<52,0,if(E1<57,1,if(E1<62,2,if(E1<68,3,4))))
if(E1<800,0,if(E1<1100,1,if(E1<1400,2,if(E1<1700,3,4))))
if(E1<1400,0,if(E1<3300,1,if(E1<4500,2,if(E1<6000,3,4))))
In wie weit die Schwellwerte sinnvoll sind, und wie die Lüftung sich ohne Hysterese verhält muss ich noch beobachten und die Werte ggf. noch anpassen. Dazu werde ich mal das Umschalten der Schaltstufen mit einem Zeitstempel protokollieren.
Hi zusammen,
mir geht es um das Thema Tagesphasen.
In einem Raum arbeite ich mit 3 Tagesphasen. Davon sind 2 über Zeitschaltuhren geregelt und 1 über eine Vergleichslogik.
Wenn die Vergleichslogik positiv ist, dann wird diese Tagesphasen aktiviert. Sollte anschließend die Vergleichslogik negativ sein, hätte ich gern das die dann gültige Tagesphase aus den Zeitschaltuhren aktiv wird.
Keine Lösung wäre es ja, die Zeitschaltuhren ihre Werte bei jedem Eingangstelegram zu senden, denn das würde ja die möglicherweise positive Vergleichslogik überschreiben.
Am besten machst Du Dir dazu eine Wahrheitstabelle mit allen relevanten Eingangszuständen inkl. der ZSU (interne Verknüpfungen nutzen). Drei Logikkanäle schalten dann mit entsprechenden Bedingungen das gleiche Ausgangs KO (das geht ja inzwischen über die Angabe eines entsprechenden Ausgangs KOs. Die Kanäle senden nur, wenn die Bedingungen wahr sind.
Du solltest dabei darauf achten, das sich die Bedingungen so ausschließen, das immer nur ein Kanal aktiv ist (also für die Informatiker: Das die Bedingungen disjunkt sind).
Aber das siehst Du gut an der Wahrheitstabelle.
Zuletzt geändert von willisurf; 06.12.2024, 07:08.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar