INSIDETecBaseWebUISkript-BibiliothekEntfeuchter sinnvoll ansteuern

Entfeuchter sinnvoll ansteuern

Ein Entfeuchter soll bei Feuchtigkeit eingeschaltet, bei Trockenheit wieder ausgeschaltet werden. Um den Kompressor zu schonen, soll das Gerät dabei stets mindestens 45 Minuten ein- bzw. ausgeschaltet sein. Die Messung der Luftfeuchtigkeit erfolgt durch Abfrage des Raumthermostaten der Heizung. Der Enfeuchter selber wird dabei über einen Zwischenstecker angesteuert.

Um das Skript auszulösen, ist ein neues Programm zu schreiben, dass im "Wenn"-Abschnitt auf Änderungen der Luftfeuchtigkeit reagiert. In der dazugehörigen "Dann"-Anweisung, ist der Typ "Skript" auszuwählen und folgender Quellcode einzugeben:
! Name des Raums - bei mir sind alle Kanäle
! nach dem Schema Raum.Funktion.Kanal benannt
string raum = "Haushaltskeller";

! "raum".Entfeuchter
object Entfeuchter =
dom.GetObject("BidCos-RF." # dom.GetObject(raum # ".Entfeuchter").Address() # ".STATE");

! "raum".Heizung.Messwerte
object Feuchtigkeit =
dom.GetObject("BidCos-RF." # dom.GetObject(raum # ".Heizung.Messwerte").Address() # ".HUMIDITY");

time timestamp = Entfeuchter.Timestamp(); ! wann wurde zuletzt geschaltet?
time now = system.Date("%Y-%m-%d %H:%M:%S").ToTime(); ! wie spät ist es jetzt?

integer diff = now.ToInteger() - timestamp.ToInteger();

! letzte Aktion länger als 45 Minuten her?
if (diff > 2700) {
    if ((Feuchtigkeit.Value() > 45) && (Entfeuchter.Value() == 0)) {
        Entfeuchter.State(1);
    }
    if ((Feuchtigkeit.Value() < 45) && (Entfeuchter.Value() == 1)) {
        Entfeuchter.State(0);
    }
}
Zunächst werden die beiden benötigten Geräte (Zwischenstecker und Raumthermostat) in je eine Variable gelesen. Zur Ermittlung der Adresse wird folgende Namenkonvention verwendet:

"Raum.Funktion.Kanal" (Kanal ist optional)

Um also die richtigen Objekte zu erhalten, muss der Zwischenstecker in diesem Beispiel "Haushaltskeller.Entfeuchter" und das Raumthermostat "Haushaltskeller.Heizung.Messwerte" heißen (kann natürlich entsprechend eigenen Bedürfnissen angepasst werden). Um nun an die Luftfeuchtigkeit des Raumthermostats heranzukommen, ist der Knotenpunkt "HUMIDITY" zu verwenden. Anschließend werden zwei Zeitwerte berechnet:

1) Wan wurde der Entfeuchter (Zwischenstecker) zuletzt geschaltet (über die Eigenschaft TimeStamp) und
2) Wie spät ist es jetzt (also die aktuelle Uhrzeit)

In der nachfolgenden Abfrage wird nun geprüft, ob der letzte Schaltvorgang mindestens 45 Minuten her ist. Dazu werden die beiden ermittelten Zeitwerte voneinander subtrahiert und man erhält die Differenz in Sekunden (2700 / 60 = 45).

Wurde eine Luftfeuchtigkeit > 45 % ermittelt und der Entfeuchter ist ausgeschaltet, wird dieses nun eingeschaltet. Bei einer Luftfeuchtigkeit < 45 % wird er entsprechend wieder ausgeschaltet.

Neue Kommentare:

  • Hallo zusammen, ich versuche seit Tagen verzweifelt, für die Einbindung von FS20 Komponenten an der Homematic Zentrale (1.505), den CUL-Stick (V3.3) von BUSWARE zu konfigurieren. Ich bin streng nach Anleitung aus dem Net... Weiter lesen
  • Hallo, ich habe nun den cux Daemon installiert und die Firmware des CUL geschrieben, bei Status wird folgendes angezeigt: ======================================== USB 1-2 - {CUX} CUL868 [COMM] - /dev/ttyACM0 - V 1.44 CUL... Weiter lesen
  • Hallo, ich habe bei mir den Dimmer HM-LC-Dim1TPBU-FM in Betrieb. Soweit funktioniert alles.Wie komme ich aber an die weiteren Känäle des Dimmers. Bei mir werden in den Geräteeinstellungen die Kanäle Ch:2 und Ch:3 nicht a... Weiter lesen
Kommentare