komplexe Rule via Blockly für KWL-Lüftersteuerung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Galadriel13
Beiträge: 222
Registriert: 30. Dez 2019 20:29
Answers: 0

komplexe Rule via Blockly für KWL-Lüftersteuerung

Beitrag von Galadriel13 »

Guten Abend zusammen,

ich bräuchte bitte einmal den Support der erfahrenen Rule-Ersteller.
Ich möchte folgendes umsetzen:

Ich habe eine Zehnder Wohnraumlüftung,die ich schon via ComfoAir-Binding manuell steuern kann.
Leider muss ich immer ein Auge auf die Außentemperatur haben, damit die Lüftung, gerade im Sommer nicht die warme Luft einbläst, sondern abgeschaltet wird.

Die Lüfterstufe 0=Away / 1 /2 /3 soll abhängig von der Außentemperatur (dem Wert des Temperatursensors der Lüftung) schalten.

- Switch / Itemfür Hand/Auto: Hand_Auto_Lueftung
- Item für die Temperaturmessung: ComfoAirWohnraumluftung_Aussenlufttemperatur
- Temperatur >/= 24°C --> Lüfterstufe soll auf "Away" schalten
- Temperatur < 24°C --> Lüfterstufe soll auf Stufe "1" schalten
- Temperatur < 24°C und Auto und 22:00 - 06:00 --> Lüfterstufe soll auf Stufe "2" schalten

Ich habe schon mal via Blockly versucht, das umzusetzen, komme aber nicht so richtig weiter (s. Bild bzw. Code anbei).

Code: Alles auswählen

if (itemRegistry.getItem('ComfoAirWohnraumluftung_Aussenlufttemperatur').getState() >= '22') {
}
Es wäre super, wenn ihr mir etwas weiterhelfen könntet.
Besten Dank.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Hausautomation zu 95% mit Siemens Logo! (5x 0BA8).
Gartenbewässerung, Rollosteuerung, Lichtsteuerung, etc.
Abfrage von Temperaturen, Helligkeit, Füllstand Zisterne Leistung Photovoltaik.

openHAB 4.1.3 mit folgenden Bindings:

- Bosch Indego Binding
- Tankerkönig Binding
- iCalendar Binding
- iCloud Binding
- Anwesenheit via iCloud
- ComfoAir Binding (Zehnder AirComfort A350)
- SolarEdge Binding (PV)
- OpenWeatherMap Binding
- DWD Pollenflug Binding
- DWD Unwetter Binding
- FritzBox TR064 Binding
- PLCLogo Binding
- WIFI LED Binding
- Luxtronikheatpump (Novelan-WP)
- BEOK Raumthermostate
- myenergi

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: komplexe Rule via Blockly für KWL-Lüftersteuerung

Beitrag von udo1toni »

es fehlt noch das Item für die Lüfterstufe.

Du musst die Aufgaben in Teilaufgaben zerlegen.
Schritt 1: Du holst Dir die Temperatur und speicherst sie lokal in einer Variablen, als Float Value.
Schritt 2: Du vergleichst den Wert mit den Grenzwerten und setzt entsprechend 0 oder 1
Schritt 3: Falls in Schritt 2 auf 1 gesetzt wurde prüfst Du die Uhrzeit und setzt den Wert gegebenenfalls auf 2
Schritt 4: Du prüfst, ob die neu errechnete Betriebsstufe von der aktuellen abweicht. Ist das der Fall, setzt Du die neue Stufe.

Als DSL Rule sieht das so aus:

Code: Alles auswählen

rule "Lüfter steuern"
when
    Item ComfoAirWohnraumluftung_Aussenlufttemperatur changed
then
    var Integer iSoll = 1
    var Number nTemp = 20
    if(newState instanceof Number)
        nTemp = (newState as Number).floatValue
    if(nTemp >= 24)
        iSoll = 0
    if(nTemp == 1 && Hand_Auto_Lueftung.state == ON && (now.getHour < 6 || now.getHour > 21))
        iSoll = 2
    if((Lueftung_Stufe.state as Number) != iSoll)
        Lueftung_Stufe.sendCommand(iSoll)
end
Wobei es natürlich einen Haken gibt, denn wenn die Temperatur sehr genau 24 °C beträgt, wird der Temperatursensor mutmaßlich ständig zwischen den Werten hin- und her springen. Es wäre dann besser, mit einer Hysterese zu arbeiten. Dazu definierst Du dann iSoll als aktuellen Wert von Lueftung_Stufe und setzt nur dann eine 1, wenn der Wert leicht unter 24 ist (also z.B. < 23.9)
Auf diese Weise wird die Lüftung dann nicht "flatternd" schalten.

Mit Blockly beschäftige ich mich nicht, die Rule kann aber mehr oder weniger exakt so auch in Blockly programmiert werden. Wichtig ist dabei der Schritt, auf Float zu wandeln, oder man muss beachten, ob der Sensor den nackten Zahlenwert liefert, oder vielleicht die Einheit °C mit liefert. 24 ist etwas anderes als 24 °C, und openHAB weigert sich korrekt, das miteinander zu vergleichen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Galadriel13
Beiträge: 222
Registriert: 30. Dez 2019 20:29
Answers: 0

Re: komplexe Rule via Blockly für KWL-Lüftersteuerung

Beitrag von Galadriel13 »

Vielen Dank udo1toni für deine Unterstützung.
Ich teste das morgen mal und gebe eine Rückmeldung.

Schönen Abend.
Hausautomation zu 95% mit Siemens Logo! (5x 0BA8).
Gartenbewässerung, Rollosteuerung, Lichtsteuerung, etc.
Abfrage von Temperaturen, Helligkeit, Füllstand Zisterne Leistung Photovoltaik.

openHAB 4.1.3 mit folgenden Bindings:

- Bosch Indego Binding
- Tankerkönig Binding
- iCalendar Binding
- iCloud Binding
- Anwesenheit via iCloud
- ComfoAir Binding (Zehnder AirComfort A350)
- SolarEdge Binding (PV)
- OpenWeatherMap Binding
- DWD Pollenflug Binding
- DWD Unwetter Binding
- FritzBox TR064 Binding
- PLCLogo Binding
- WIFI LED Binding
- Luxtronikheatpump (Novelan-WP)
- BEOK Raumthermostate
- myenergi

Antworten