KWL Fränkische Rohrwerke Profi-Air 400 Touch steuern

Begonnen von ds__, 28 Juli 2019, 20:34:11

Vorheriges Thema - Nächstes Thema

ds__

Hallo zusammen,

ich habe mir ein kleines Perl-Skript gehackt, um meine Lüftungsanlage bei Abwesenheit kurzzeitig auf Stufe 4 zu schalten, damit das Haus in Abwesenheit gelüftet wird.

Falls jemand Interesse an der Steuerung der Profi-Air 400 Touch hat, bitte melden. Evtl. könnte man ein entsprechendes Modul erstellen.

ch.eick

Hallo ds__

es wäre besser, wenn Du das ganze hier mal vorstellen würdest, dann lesen auch andere mit, die nicht umbedingt diese Anlage haben. Mit diesem Aufruf wirst Du nicht unbedingt Erfolg haben.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ds__

Zitat von: ch.eick am 29 Juli 2019, 09:10:48
es wäre besser, wenn Du das ganze hier mal vorstellen würdest, dann lesen auch andere mit, die nicht umbedingt diese Anlage haben. Mit diesem Aufruf wirst Du nicht unbedingt Erfolg haben.

Eigentlich habe ich nicht viel gemacht.
Mittels Fritzbox und Presence stelle ich fest, ob alle das Haus verlassen haben. Falls das der Fall ist, rufe ich meine Perl-Funktion alleAbwesend() auf. Wenn jemand anwesend ist, wird lueftungNormal() aufgerufen.
Die Funktion alleAbwesend() schaltet die Lüftung für 20 Minuten auf die höchste Stufe. Hierbei gibt es allerdings ein paar Ausnahmen:

  • Keine Starklüftung, wenn innerhalb der letzten 5 Stunden bereits gelüftet wurde.
  • Am Abend und nachts wird keine Lüftung durchgeführt. Die Lüftung wird auf Stufe 1 geschaltet.
  • Wenn eine bestimmte Außentemperatur überschritten wird, wird ebenfalls keine Lüftung durchgeführt. Die Außentemperatur lese ich aus meiner Wärmepumpe aus.
Wenn eine der genannten Ausnahmen greift, wird die Lüftung auf niedrigster Stufe gefahren.

Die Funktion lueftungNormal() schaltet die Lüftung auf Stufe 2. Bei Hitze und am Abend wird Stufe 1 gefahren. Nachts wird auf Stufe 3 geschaltet.

Das Schalten der Lüftungsanlage erfolgt über ein HTTP-Get auf http://[IP-Lüftung]/stufe.cgi?stufe=[Stufe]".


{
    my $letzterLauf = 0;

    sub alleAbwesend() {

       my $hour = (localtime())[2];

       my $aktZeit = time();
       my $zeitdiff = $aktZeit -$letzterLauf;

       if (!isGrosseHitze() && $hour<18 && $hour >10 && ($letzterLauf == 0 || $zeitdiff>(3600*5))) {
           get("http://[IP-Lüftung]/stufe.cgi?stufe=4");
           Log 1, "Alle Abwesend: Lüftung auf Stufe 4";
           $letzterLauf = time();
       } elsif ($zeitdiff>60*20) {
          get("http://[IP-Lüftung]/stufe.cgi?stufe=1");
          Log 1, "Lüftung: Stufe 1 wegen Abwesenheit";
       }
    }
}

sub isGrosseHitze() {
    return ReadingsVal("waermepumpe", "ambientTemperature", 0)>25;
}

sub lueftungNormal() {

my $hour = (localtime())[2];

if (isGrosseHitze()) {
   Log 1, "Lüftung: Stufe 1 (Hitze)";
} elsif ($hour >= 0 && $hour <8) {
      get("http://[IP-Lüftung]/stufe.cgi?stufe=3");
      Log 1, "Lüftung: Stufe 3";
} elsif ($hour>=19 && $hour<=23) {
   get("http://[IP-Lüftung]/stufe.cgi?stufe=1");
   Log 1, "Lüftung: Stufe 1";
} else {
   get("http://[IP-Lüftung]/stufe.cgi?stufe=2");
   Log 1, "Lüftung: Stufe 2";
}
}


Der Code ist nicht perfekt. Es gibt noch Verbesserungsmöglichkeiten.

ch.eick

Hallo nochmal.

Vielen Dank für den Code Einblick. Das kann ich eventuell auch für meine Vallox verwenden.

Gruß Christian

Gesendet von meinem SM-G930F mit Tapatalk

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick