Klimaanlage – Schimmel vermeiden durch Ventilatoren-Nachlauf

Seit 2020 kühlen bei uns Daikin-Klimageräte das Haus. Auch wenn wir von Zeit zu Zeit die Luftfilter reinigen, in einem der vier Inneneinheiten hatte sich dann doch zuletzt etwas Verschmutzung ergeben, wie ich beim letzten Desinfizieren festgestellt habe. Leider sind diese kompakten Geräte dann auch nicht so einfach zu reinigen.

Um Schimmel vorzubeugen, gab es seitens der Fachfirma die Empfehlung, idealerweise nach einem Kühlvorgang erst einige Zeit die Klimaanlage nur im Ventilatormodus laufen zu lassen, bevor man sie ausschaltet. Das soll dazu führen, dass im Gerät kondensierte Feuchtigkeit besser abtrocknet und damit Schimmel o.ä. noch weniger eine Chance hat.

Klingt soweit logisch – nur leider gibt es „out of the box“ hier keine Funktion. Das jedes Mal via Fernbedienung einzustellen ist ziemlich umständlich und nervig. Daher hilft hier nun openhab aus.

Einschub: Codeerstellung über ChatGPT

Zuerst hatte ich die Rule für ein Gerät selbst getippt, wollte es aber dann abstrakt für alle Geräte im Haus lösen. Das habe ich genutzt, um dann gleich einmal die Codeerstellung mittels ChatGPT / openAI zu testen.

Also habe ich die Rule einmal in ChatGPT eingegeben mit folgender Fragestellung:

Nach einem Kurzen Intro (Ich möchte eine openhab3 rule, die rule soll im Filesystem liegen) habe ich folgende Aufgabe übergeben:

Ich habe vier Klimaanlagen. Die Benennung der Items ist nach dem Muster „Klimaanlage_Raumname_Power“ wobei Raumname ersetzt werden muss durch Schlafzimmer, Wohnzimmer, Kinderzimmer 1 und Kinderzimmer 2. Der An-Aus-Status ist im Item Klimaanlage_Raumname_Power. Der Lüfter ist im item Klimaanlage_Raumname_Fan gespeichert. Auch hier muss wieder Raumname entsprechend ersetzt werden je konkretes Gerät. Der Betriebsmodus ist in Klimaanlage_Raumname_Mode gespeichert.
Für den Lüfter können folgende Werte gesetzt werden: AUTO und SILENCE.
Für den Betriebsmodus gibt es folgende Werte: COLD für Kühlen und FAN für Ventilator.

Wird nun ein Gerät der Gruppe der Klimaanlagen ausgeschalten, soll geprüft werden, ob das konkrete Gerät im zugehörigen Item für den Betriebsmodus auf Kühlen, also COLD stand. Ist das der Fall, soll das Gerät sofort wieder eingeschalten werden und der Betriebsmodus auf FAN gestellt werden und der Lüfter auf SILENCE. Nach 15 Minuten soll das Gerät dann automatisch ausgeschalten werden, wenn der Betriebsmodus noch der gleiche ist. Zusätzlich sollen in dem Fall Betriebsmodus nach Ausschalten wieder auf COLD sowie der Ventilator auf AUTO gestellt werden.

Ich war positiv überrascht. Copy and Paste in Visual Studio zeigte nur kleinere Fehler (Ermittlung der Namen mittels findFirst war nicht korrekt angegeben), ein Logikfehler am Ende war ihm passiert (am Schluss beim Ventilatormodus wurde statt auf FAN auf COLD geprüft. Logausgaben und eine als Variable hinterlegte Nachlaufzeit habe ich dann noch eingebaut, aber im Kern war die Rule nun fertig.

Unterstützung per Smart Home

Hier das Ergebnis – ggf. kann es jemand auch für sich ganz oder in Teilen benötigen:

Items

Es müssen drei neue Gruppen-Items erstellt werden, die jeweils die Power, Fan und Mode – Items als Mitglieder haben. Ansonsten wurde auf die standardmäßig durch das Daikin-Binding angelegten Things / Items zurückgegriffen.

Rule

val klimaanlageNachlaufInMinuten = 15
val logPrefix = "Klimaanlage Nachlauf Ventilator"

rule "Klimaanlage Nachlauf Ventilator"
when
    Member of Klimaanlage_Gruppe_Power changed from ON to OFF
then
    //Raumnamen herauslösen aus triggeringItem - Name Item Klimaanlage_<RAUMNAME>_Power
    val roomName = triggeringItem.name.split("_").get(1)

    logInfo(logPrefix, "Prüfe eventuell nötigen Nachlauf für Klimaanlage(" + roomName.toString + ")")

    // Holen Power-Item, Betriebs-Modus und Lüfterstatus
    val powerItem = Klimaanlage_Gruppe_Power.members.findFirst[x|x.name == "Klimaanlage_" + roomName + "_Power"]
    val modeItem = Klimaanlage_Gruppe_Mode.members.findFirst[x|x.name == "Klimaanlage_" + roomName + "_Mode"]
    val fanItem = Klimaanlage_Gruppe_Fan.members.findFirst[x|x.name == "Klimaanlage_" + roomName + "_Fan"]

    // Überprüfen aktueller Betriebsmodus
    if (modeItem.state == "COLD") {
        // Gerät einschalten, Modus und Lüfter auf Ventilator stellen, wenn Kühlen stattfand
        sendCommand(powerItem, ON)
        sendCommand(modeItem, "FAN")
        sendCommand(fanItem, "SILENCE")

        // Warten Sie 5 Minuten und schalten Sie das Gerät aus, wenn es noch eingeschaltet und der Modus COLD ist
        createTimer(now.plusSeconds(60 * klimaanlageNachlaufInMinuten)) [|
            // Loggen Sie die Werte der Items vor der Prüfung
            logInfo(logPrefix, "Timer abgelaufen")
            logInfo(logPrefix, "powerItem (" + roomName.toString + "): " + powerItem.state.toString)
            logInfo(logPrefix, "modeItem: (" + roomName.toString + ")" + modeItem.state.toString)
            logInfo(logPrefix, "fanItem: (" + roomName.toString + ")" + fanItem.state.toString)

            if (modeItem.state == "FAN") {
                logInfo(logPrefix, "Schalte Nachlauf Ventilator / Gerät ab. (" + roomName.toString + ")")
                sendCommand(powerItem, OFF)
                Thread::sleep(2000) // Kurzes Warten, vermeidet ggf. falsche Erkennung eines Ausschaltens nach Kühlen durch die Rule selbst
                sendCommand(modeItem, "COLD")
                sendCommand(fanItem, "AUTO")
            } else {
                logInfo(logPrefix, "Klimaanlage inzwischen nicht mehr im Mode FAN, schalte nicht ab (" + roomName.toString + ")")
            }
        ]
    }
end

Im Ergebnis: Schaltet nun jemand eine Klimaanlage aus, wird geprüft, ob sie zuvor gekühlt hat. Ist das der Fall, wird sie im Ventilatorenmodus für 15 Minuten im leisen Modus nochmal eingeschalten. Anschließend, sofern nicht zwischenzeitlich z.B. durch Fernbedienung der Betriebsmodus geändert wurde, wird sie wieder ausgeschalten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Durch die weitere Nutzung der Seite wird der Verwendung von Cookies und den Inhalten der Datenschutzerklärung zugestimmt. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen