...
Eine Umstellung der Lüftungsstufen sollte jetzt nicht mehr notwendig sein, da der Luftstrom auf Grund der Luftqualität linear angepasst wird .
4. Komfortfunktionen
Mit dem Einsatz von Bausteinen können die Informationen und Funktionen des Maico KWL noch besser ausgenutzt werden.
Dieses Projekt wird als Beispiel zur Verfügung gestellt und wird in den weiteren Abschnitten genauer beschrieben.
4.1 Wartung der Filter
Das KWL Gerät verfügt über Luftfilter für die Zuluft und Abluft. Diese müssen in definierten Intervallen ausgewechselt werden. Diese Intervalle werden in den Einstellungen des KWL Geräts eingestellt und mit den effektiven Betriebszeiten überwacht. Wenn diese Zeit abläuft, soll nun auch der Anwender über Loxone informiert werden. Zusätzliche kann der optionale Aussenfilter und/oder der optionale Raumfilter auch überwacht werden.
Dazu kann man ein einfachen Statusbaustein verwenden, um den Ablauf der Standzeiten der Filter zu überwachen. Ein Auswechseln des Filters wird mit einem Aktorbefehl quittiert und damit die Standzeit des entsprechenden Filters neu gesetzt. Dazu kann zum Status „Filterwechsel“ auch die virtuellen Taster für die Rücksetzung der Filter direkt verlinken als „verlinkte Bausteine“.
4.2 Hinweise und Fehlermeldungen
Das KWL Gerät liefert Hinweise zum Betriebszustand und Fehlermeldungen über Betriebsstörungen. Diese Hinweise und Fehlermeldungen sind in einem Bitmuster abgelegt, wobei jedes Bit einen Hinweis oder eine Fehlermeldung umfasst. Die Bedeutung dieser Bit ist in der Tabelle der Modbus Register abgelegt.
Die Umsetzung mit einem Baustein mit einzelnen Bit und Statusmeldungen wird sehr umfangreich. Eine Lösung mit einem Pico-C Programm ist dagegen eher eine schlanke Lösung und kommt mit nur drei Bausteinen zurecht,
Mit dem Programm Baustein im Beispielprogramm kann dieser Fehler decodiert und als Text dargestellt werden. Dazu wird ein einfaches Pico-C Programm verwendet:
Codeblock | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
// write program here in PicoC
#define BIT0 0x01
#define BIT1 0x02
#define BIT2 0x04
#define BIT3 0x08
#define BIT4 0x10
#define BIT5 0x20
#define BIT6 0x40
#define BIT7 0x80
#define BIT8 0x100
#define BIT9 0x200
#define BIT10 0x400
#define BIT11 0x800
#define BIT12 0x1000
#define BIT13 0x2000
#define BIT14 0x4000
#define BIT15 0x8000
char szFehler[512];
char szHinweis[512];
int nFL,nFH,nHL,nHH;
int nEvents;
setoutputtext(0,"Keine Fehlermeldung");
setoutputtext(1,"Kein Hinweis");
while(TRUE){
nEvents = getinputevent();
// Anzeige Fehlermeldungen
if (nEvents & 0x18){
nFL = getinput(0);
nFH = getinput(1);
if ((nFL == 0) && (nFH == 0)){
szFehler = "Keine Fehlermeldung";
} else {
szFehler = "";
if (nFL & BIT0) strcat(szFehler," (0) Ventilator Zuluft");
if (nFL & BIT1) strcat(szFehler," (1) Ventilator Abluft");
if (nFL & BIT2) strcat(szFehler," (2) Sensor T-Lufteintritt");
if (nFL & BIT3) strcat(szFehler," (3) Sensor T-Zuluft");
if (nFL & BIT4) strcat(szFehler," (4) Sensor T-Fortluft");
if (nFL & BIT5) strcat(szFehler," (5) Sensor T-Raum BDE");
if (nFL & BIT6) strcat(szFehler," (6) Sensor T-Raum");
if (nFL & BIT7) strcat(szFehler," (7) Sensor T-Aussenluft vor EWT");
if (nFL & BIT8) strcat(szFehler," (8) Bypass");
if (nFL & BIT9) strcat(szFehler," (9) Zonenklappe");
if (nFL & BIT10) strcat(szFehler," (10) Kombisensor");
if (nFL & BIT11) strcat(szFehler," (11) Frostschutz");
if (nFL & BIT12) strcat(szFehler," (12) Externe Vorheizung");
if (nFL & BIT13) strcat(szFehler," (13) Zuluft zu kalt");
if (nFL & BIT14) strcat(szFehler," (14) Abluft zu kalt");
if (nFL & BIT15) strcat(szFehler," (15) Sensor T-Raum Bus");
if (nFH & BIT0) strcat(szFehler," (16) Kommunikation ZP1");
if (nFH & BIT1) strcat(szFehler," (17) Kommunikation ZP2");
if (nFH & BIT3) strcat(szFehler," (19) Kommunikation BDE");
if (nFH & BIT4) strcat(szFehler," (20) Systemspeicher");
if (nFH & BIT5) strcat(szFehler," (21) Systembus");
if (nFH & BIT3) strcat(szFehler," (22) unbekannt");
}
setoutputtext(0,szFehler);
}
// Anzeige Hinweise
if (nEvents & 0x60){
nHL = getinput(2);
nHH = getinput(3);
if ((nHL == 0) && (nHH == 0)){
szHinweis = "Kein Hinweis";
} else {
szHinweis = "";
if (nHL & BIT0) strcat(szHinweis," (0) Sole-Ewt Kühlleistung zu gering");
if (nHL & BIT1) strcat(szHinweis," (1) Kommunikation EnOcean");
if (nHL & BIT2) strcat(szHinweis," (2) Kommunikation KNX");
if (nHL & BIT3) strcat(szHinweis," (3) Kommunikation air@home");
if (nHL & BIT4) strcat(szHinweis," (4) Bypass aktiv");
if (nHL & BIT5) strcat(szHinweis," (5) Zonenlüftung aktiv");
if (nHL & BIT6) strcat(szHinweis," (6) Frostschutz aktiv");
if (nHL & BIT7) strcat(szHinweis," (7) Volumenstromreduzierung");
if (nHL & BIT8) strcat(szHinweis," (8) Tstensperre aktiv");
if (nHL & BIT9) strcat(szHinweis," (9) Filtermeldung Gerätefilter");
if (nHL & BIT10) strcat(szHinweis," (10) Filtermeldung Aussenfilter");
if (nHL & BIT11) strcat(szHinweis," (11) Filtermeldung Raumfilter");
if (nHL & BIT12) strcat(szHinweis," (12) Volumenstrommessung aktiv");
if (nHL & BIT13) strcat(szHinweis," (13) Überfeuchtungsschutz aktiv");
if (nHL & BIT14) strcat(szHinweis," (14) Nacherwärmung aktiv");
if (nHL & BIT15) strcat(szHinweis," (15) Türkontaktschalter ausgelöst");
if (nHH & BIT0) strcat(szHinweis," (16) Betriebsunterbrechung");
if (nHH & BIT2) strcat(szHinweis," (17) Zwangslauf aktiv");
if (nHH & BIT3) strcat(szHinweis," (18) Kommunikation Modbus");
if (nHH & BIT4) strcat(szHinweis," (19) Schalttest aktiv");
if (nHH & BIT5) strcat(szHinweis," (20) Initialisierung aktiv");
if (nHH & BIT6) strcat(szHinweis," (21) Sollwert Druckkonstanz nicht erreicht");
}
setoutputtext(1,szHinweis);
}
sleep(100);
} |
Dazu wird einfach der Programmbaustein im Beispielprogramm in die aktuelle Konfiguration kopiert und die 4 Register der Fehlermeldungen und Hinweise mit dem Baustein verbunden.
Fehlermeldungen müssen nach der Behebung der Fehlerursache zurückgesetzt werden. Dazu kann man den virtuellen Eingangstaster mit dem Reset Aktor verbinden. Ich habe diese Taster auch direkt mit der Fehlernmeldung verlinkt, so dass der Reset Taster gleichzeitig mit der Fehlermeldung auf der Loxone App erscheint.