diff --git a/anlage.yaml b/anlage.yaml index 1cf5128..8d22841 100644 --- a/anlage.yaml +++ b/anlage.yaml @@ -2,7 +2,7 @@ text_sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Anlagenzustand" - id: ${name}_Anlagenzustand + id: ${lower_name}_Anlagenzustand register_type: read address: 4000 raw_encode: HEXBYTES diff --git a/austragung.yaml b/austragung.yaml index 15fe93f..3e9ac51 100644 --- a/austragung.yaml +++ b/austragung.yaml @@ -2,7 +2,7 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Fuellstand im Pelletsbehaelter" - id: ${name}_Fuellstand_im_Pelletsbehaelter + id: ${lower_name}_Fuellstand_im_Pelletsbehaelter register_type: read address: 21 unit_of_measurement: "%" @@ -14,7 +14,7 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Resetierbarer kg-Zaehler" - id: ${name}_Resetierbarer_kg_Zaehler + id: ${lower_name}_Resetierbarer_kg_Zaehler register_type: read address: 81 unit_of_measurement: "kg" @@ -23,7 +23,7 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Resetierbarer t-Zaehler" - id: ${name}_Resetierbarer_t_Zaehler + id: ${lower_name}_Resetierbarer_t_Zaehler register_type: read address: 82 unit_of_measurement: "t" @@ -32,7 +32,7 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Pelletverbrauch Gesamt" - id: ${name}_Pelletverbrauch_Gesamt + id: ${lower_name}_Pelletverbrauch_Gesamt register_type: read address: 83 unit_of_measurement: "t" @@ -44,7 +44,7 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Pelletlager Restbestand" - id: ${name}_Pelletlager_Restbestand + id: ${lower_name}_Pelletlager_Restbestand register_type: holding address: 319 unit_of_measurement: "t" diff --git a/boiler_01.yaml b/boiler_01.yaml index 90f563e..3e55bb5 100644 --- a/boiler_01.yaml +++ b/boiler_01.yaml @@ -1,19 +1,19 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} - name: "${name} Boiler 1 Temperatur oben" - id: ${name}_Boiler_1_Temperatur_oben + name: "${boiler1_name} Temperatur oben" + id: ${lower_name}_Boiler_1_Temperatur_oben register_type: read address: 1630 unit_of_measurement: "°C" - value_type: U_WORD + value_type: S_WORD filters: - multiply: 0.5 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} - name: "${name} Boiler 1 Pumpe Ansteuerung" - id: ${name}_Boiler_1_Pumpe_Ansteuerung + name: "${boiler1_name} Pumpe Ansteuerung" + id: ${lower_name}_Boiler_1_Pumpe_Ansteuerung register_type: read address: 1632 unit_of_measurement: "%" @@ -22,32 +22,32 @@ sensor: number: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} - name: "${name} Boiler 1 Gewünschte Boilertemperatur" - id: ${name}_Boiler_1_Gewuenschte_Boilertemperatur + name: "${boiler1_name} Gewünschte Boilertemperatur" + id: ${lower_name}_Boiler_1_Gewuenschte_Boilertemperatur address: 1631 unit_of_measurement: "°C" - value_type: U_WORD + value_type: S_WORD multiply: 2 min_value: 10 max_value: 100 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} - name: "${name} Boiler 1 Nachladen, wenn Boilertemperatur unter" - id: ${name}_Boiler_1_Nachladen_wenn_Boilertemperatur_unter + name: "${boiler1_name} Nachladen, wenn Boilertemperatur unter" + id: ${lower_name}_Boiler_1_Nachladen_wenn_Boilertemperatur_unter address: 1632 unit_of_measurement: "°C" - value_type: U_WORD + value_type: S_WORD multiply: 2 min_value: 1 max_value: 90 binary_sensor: - platform: template - name: "${name} Boiler 1 Pumpe Ansteuerung AN AUS" - id: ${name}_Boiler_1_Pumpe_Ansteuerung_AN_AUS + name: "${boiler1_name} Pumpe Ansteuerung AN AUS" + id: ${lower_name}_Boiler_1_Pumpe_Ansteuerung_AN_AUS lambda: |- - if (id(${name}_Boiler_1_Pumpe_Ansteuerung).state > 0) { + if (id(${lower_name}_Boiler_1_Pumpe_Ansteuerung).state > 0) { return true; } else { return false; diff --git a/fehler.yaml b/fehler.yaml new file mode 100644 index 0000000..93d271a --- /dev/null +++ b/fehler.yaml @@ -0,0 +1,2222 @@ +# To-do: Implementierung der Fehlermeldungen ohne der Kopie + +text_sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Fehler 1" + id: ${lower_name}_Fehler_1 + register_type: read + address: 3000 + raw_encode: HEXBYTES + lambda: |- + uint16_t value = modbus_controller::word_from_hex_str(x, 0); + switch (value) { + case 0: return std::string("STB gefallen oder NOT-AUS betätigt"); + case 1: return std::string("Kesseltemperaturfühler fehlerhaft"); + case 2: return std::string("Primärluftklappe blockiert"); + case 3: return std::string("Sekundärluftklappe blockiert"); + case 4: return std::string("Kessel zieht zu viel Falschluft"); + case 5: return std::string("Kontrolle von Feuerraum- Überdruckwächter durchführen"); + case 6: return std::string("Rückbrandschieber schließt nicht"); + case 7: return std::string("Rückbrandschieber öffnet nicht"); + case 8: return std::string("Rostantrieb defekt"); + case 9: return std::string("Rost Fehler"); + case 10: return std::string("Rostreinigung fehlerhaft"); + case 11: return std::string("Zündversuch ist nicht gelungen"); + case 12: return std::string("Sicherheitszeit abgelaufen Sauerstoffgehalt zu lange zu hoch"); + case 13: return std::string("Sicherheitszeit abgelaufen Abgastemperatur zu lange zu niedrig"); + case 14: return std::string("Kesseltür zu lange offen"); + case 15: return std::string("Stopfsensor für länger als 5min belegt"); + case 16: return std::string("Raumaustragung kontrollieren"); + case 17: return std::string("Lagerraum kontrollieren"); + case 18: return std::string("Rücklauftemperaturfühler fehlerhaft"); + case 19: return std::string("Rücklauftemperatur seit mehr als 30 Minuten zu niedrig"); + case 20: return std::string("Fernversteller Heizkreis 1 fehlerhaft"); + case 21: return std::string("Vorlauftemperaturfühler Heizkreis 1 fehlerhaft"); + case 22: return std::string("Fernversteller Heizkreis 2 fehlerhaft"); + case 23: return std::string("Vorlauftemperaturfühler Heizkreis 2 fehlerhaft"); + case 24: return std::string("Außentemperaturfühler fehlerhaft"); + case 25: return std::string("NOT-AUS Kontakt wurde betätigt"); + case 26: return std::string("Fernversteller Heizkreis 3 fehlerhaft"); + case 27: return std::string("Fernversteller Heizkreis 4 fehlerhaft"); + case 28: return std::string("Fernversteller Heizkreis 5 fehlerhaft"); + case 29: return std::string("Fernversteller Heizkreis 6 fehlerhaft"); + case 30: return std::string("Fernversteller Heizkreis 7 fehlerhaft"); + case 31: return std::string("Fernversteller Heizkreis 8 fehlerhaft"); + case 32: return std::string("Fernversteller Heizkreis 9 fehlerhaft"); + case 33: return std::string("Fernversteller Heizkreis 10 fehlerhaft"); + case 34: return std::string("Fernversteller Heizkreis 11 fehlerhaft"); + case 35: return std::string("Fernversteller Heizkreis 12 fehlerhaft"); + case 36: return std::string("Fernversteller Heizkreis 13 fehlerhaft"); + case 37: return std::string("Fernversteller Heizkreis 14 fehlerhaft"); + case 38: return std::string("Fernversteller Heizkreis 15 fehlerhaft"); + case 39: return std::string("Fernversteller Heizkreis 16 fehlerhaft"); + case 40: return std::string("Fernversteller Heizkreis 17 fehlerhaft"); + case 41: return std::string("Fernversteller Heizkreis 18 fehlerhaft"); + case 42: return std::string("Vorlauftemperaturfühler Heizkreis 3 fehlerhaft"); + case 43: return std::string("Vorlauftemperaturfühler Heizkreis 4 fehlerhaft"); + case 44: return std::string("Vorlauftemperaturfühler Heizkreis 5 fehlerhaft"); + case 45: return std::string("Vorlauftemperaturfühler Heizkreis 6 fehlerhaft"); + case 46: return std::string("Vorlauftemperaturfühler Heizkreis 7 fehlerhaft"); + case 47: return std::string("Vorlauftemperaturfühler Heizkreis 8 fehlerhaft"); + case 48: return std::string("Vorlauftemperaturfühler Heizkreis 9 fehlerhaft"); + case 49: return std::string("Vorlauftemperaturfühler Heizkreis 10 fehlerhaft"); + case 50: return std::string("Vorlauftemperaturfühler Heizkreis 11 fehlerhaft"); + case 51: return std::string("Vorlauftemperaturfühler Heizkreis 12 fehlerhaft"); + case 52: return std::string("Vorlauftemperaturfühler Heizkreis 13 fehlerhaft"); + case 53: return std::string("Vorlauftemperaturfühler Heizkreis 14 fehlerhaft"); + case 54: return std::string("Vorlauftemperaturfühler Heizkreis 15 fehlerhaft"); + case 55: return std::string("Vorlauftemperaturfühler Heizkreis 16 fehlerhaft"); + case 56: return std::string("Vorlauftemperaturfühler Heizkreis 17 fehlerhaft"); + case 57: return std::string("Vorlauftemperaturfühler Heizkreis 18 fehlerhaft"); + case 58: return std::string("Vor dem Stromausfall ist ein Busmodul ausgefallen"); + case 59: return std::string("Saugzug dreht sich nicht, trotz voller Ansteuerung"); + case 60: return std::string("Fühler im Boiler 01 fehlerhaft"); + case 61: return std::string("Kommunikation zum Pelletsmodul fehlerhaft"); + case 62: return std::string(""); + case 63: return std::string("001 EEPROM Lesefehler"); + case 64: return std::string("002 EEPROM Prüfsumme Null"); + case 65: return std::string("003 EEPROM Lesefehler"); + case 66: return std::string("004 EEPROM SW-Version falsch"); + case 67: return std::string("005 EEPROM Parameterlänge falsch"); + case 68: return std::string("006 EEPROM Lesefehler"); + case 69: return std::string("007 EEPROM Prüfsumme falsch"); + case 70: return std::string("008 EEPROM Schreibfehler"); + case 71: return std::string("009 EEPROM Schreibfehler"); + case 72: return std::string("010 Konfig. Listenfehler"); + case 73: return std::string("Fühler im Boiler 02 fehlerhaft"); + case 74: return std::string("Fühler im Boiler 03 fehlerhaft"); + case 75: return std::string("Fühler im Boiler 04 fehlerhaft"); + case 76: return std::string("Fühler im Boiler 05 fehlerhaft"); + case 77: return std::string("Fühler im Boiler 06 fehlerhaft"); + case 78: return std::string("Fühler im Boiler 07 fehlerhaft"); + case 79: return std::string("Fühler im Boiler 08 fehlerhaft"); + case 80: return std::string("Fühler Solarreferenz im Boiler 01 fehlerhaft"); + case 81: return std::string("Fühler Solarreferenz im Boiler 02 fehlerhaft"); + case 82: return std::string("Fühler Solarreferenz im Boiler 03 fehlerhaft"); + case 83: return std::string("Fühler Solarreferenz im Boiler 04 fehlerhaft"); + case 84: return std::string("Fühler Solarreferenz im Boiler 05 fehlerhaft"); + case 85: return std::string("Fühler Solarreferenz im Boiler 06 fehlerhaft"); + case 86: return std::string("Fühler Solarreferenz im Boiler 07 fehlerhaft"); + case 87: return std::string("Fühler Solarreferenz im Boiler 08 fehlerhaft"); + case 88: return std::string("Fühler oben im Puffer 1 fehlerhaft"); + case 89: return std::string("Fühler oben im Puffer 2 fehlerhaft"); + case 90: return std::string("Fühler oben im Puffer 3 fehlerhaft"); + case 91: return std::string("Fühler oben im Puffer 4 fehlerhaft"); + case 92: return std::string("Fühler Mitte im Puffer 1 fehlerhaft"); + case 93: return std::string("Fühler Mitte im Puffer 2 fehlerhaft"); + case 94: return std::string("Fühler Mitte im Puffer 3 fehlerhaft"); + case 95: return std::string("Fühler Mitte im Puffer 4 fehlerhaft"); + case 96: return std::string("Fühler unten im Puffer 1 fehlerhaft"); + case 97: return std::string("Fühler unten im Puffer 2 fehlerhaft"); + case 98: return std::string("Fühler unten im Puffer 3 fehlerhaft"); + case 99: return std::string("Fühler unten im Puffer 4 fehlerhaft"); + case 100: return std::string("Fühler im Zweitkessel fehlerhaft"); + case 101: return std::string("Kollektor-Überhitzung oder Kollektorfühler unterbrochen"); + case 102: return std::string("Fühler im Zusatzkessel fehlerhaft"); + case 103: return std::string("Der Füllstand kann nicht richtig interpretiert werden"); + case 104: return std::string("Die Bypassklappe konnte nicht öffnen"); + case 105: return std::string("Die Bypassklappe konnte nicht geschlossen werden"); + case 106: return std::string("Die Laufzeit zum Füllen wurde überschritten"); + case 107: return std::string("Die Austragsschnecke stopft an der Saugstelle"); + case 108: return std::string("Die Bypassklappe konnte weder öffnen noch schließen"); + case 109: return std::string("Zündversuch nicht gelungen von Hand Anheizen!"); + case 110: return std::string("Motorschutzschalter Saugzug gefallen"); + case 111: return std::string("Motorschutzschalter Stoker gefallen"); + case 112: return std::string("Motorschutzschalter Förderschnecke gefallen"); + case 113: return std::string("Rückbrandklappe öffnet zu schnell"); + case 114: return std::string("Rückbrandklappe schließt zu schnell"); + case 115: return std::string("Keine/Beide Endlagen der Rückbrandklappe aktiv"); + case 116: return std::string("Motorschutzschalter Zellradschleuse gefallen"); + case 117: return std::string("Lambdasonde defekt"); + case 118: return std::string("Abgastemperaturfühler defekt"); + case 119: return std::string("Feuerraumtemperaturfühler defekt"); + case 120: return std::string("LS im Fallschacht defekt"); + case 121: return std::string("Fallschachtdeckel offen"); + case 122: return std::string("Kesseltür zu lange offen oder Unterdruckmessdose defekt"); + case 123: return std::string("Rost öffnet nicht"); + case 124: return std::string("Sicherheitszeit wegen Füllstandsensor im Saugzyklon abgelaufen."); + case 125: return std::string("Motorschutz der Austragsschnecke gefallen"); + case 126: return std::string("Stoker hat zu wenig Material"); + case 127: return std::string("Austragsschnecke Fehler"); + case 128: return std::string("GEFÄHRLICHER Zustand möglich"); + case 129: return std::string("Hackgutmodul ausgefallen -> Sofortabschaltung"); + case 130: return std::string("Saugmodul ausgefallen \n-> Sofortabschaltung"); + case 131: return std::string("Brennstoff lt. Anleitung einlegen"); + case 132: return std::string("RL Fühler für Netzpumpe fehlerhaft"); + case 133: return std::string("LS im Fallschacht der Austragsschnecke defekt (Voll)"); + case 134: return std::string("Fallschachtdeckel der Austragsschnecke offen"); + case 135: return std::string("Motorschutzschalter Austragsschnecke gefallen"); + case 136: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Voll)"); + case 137: return std::string("Fallschachtdeckel der Zwischenschnecke 1 offen"); + case 138: return std::string("Motorschutzschalter der Zwischenschnecke 1 gefallen"); + case 139: return std::string("Brenner reinigen und kontrollieren"); + case 140: return std::string("Rost schließt nicht"); + case 141: return std::string("Rückbrandklappe schließt nicht"); + case 142: return std::string("Rückbrandklappe öffnet nicht"); + case 143: return std::string("Zu oft Überstrom Zellradschleuse"); + case 144: return std::string("Zu oft Überstrom Stokerschnecke"); + case 145: return std::string("Zu oft Überstrom Förderschnecke"); + case 146: return std::string("Steuerung neu gestartet"); + case 147: return std::string("Rücklauffühler für Verteiler 1 fehlerhaft"); + case 148: return std::string("Rücklauffühler für Verteiler 2 fehlerhaft"); + case 149: return std::string("Rücklauffühler für Verteiler 3 fehlerhaft"); + case 150: return std::string("Rücklauffühler für Verteiler 4 fehlerhaft"); + case 151: return std::string("maximaler Einschub nach Änderung neu berechnet und begrenzt"); + case 152: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Leer)"); + case 153: return std::string("LS im Fallschacht der Austragsschnecke defekt (Leer)"); + case 154: return std::string("Absperrschieber blockiert"); + case 155: return std::string("Fehler Kessel und Brennstoffauswahl"); + case 156: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 157: return std::string("Kesselundichtheit festgestellt aufgrund Einschuberkennung"); + case 158: return std::string("Kesselundichtheit festgestellt aufgrund O2 Überwachung"); + case 159: return std::string("Fühler für Zirkulationspumpe fehlerhaft"); + case 160: return std::string("Fühler für Solar WT sek. Vorlauf fehlerhaft"); + case 161: return std::string("Fühler für Solar Kollektor Rücklauf fehlerhaft"); + case 162: return std::string("Lambdasonde defekt"); + case 163: return std::string("Fehlerbehebung wurde abgebrochen"); + case 164: return std::string("Wärmequellen Fühler des Differenzregler defekt"); + case 165: return std::string("Wärmesenken Fühler des Differenzregler defekt"); + case 166: return std::string("Variante 3, es wurde ein Puffer und ein Verteiler mit der selben Nummer aktiviert"); + case 167: return std::string("Sondenumschaltung aufgrund Pelletsmangel oder Stopfsensor"); + case 168: return std::string("Vorratsbehälter leer, bitte Pellets Nachfüllen"); + case 169: return std::string("Aschebox voll, bitte entleeren"); + case 170: return std::string("Rostantrieb hat Überstrom, bitte 5 min warten"); + case 171: return std::string("Fühler 1 fehlerhaft"); + case 172: return std::string("Puffer Solarreferenz Fühler Fehlerhaft"); + case 173: return std::string("Aschebox voll, bitte entleeren"); + case 174: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 175: return std::string("Breitbandsonde nicht angesteckt oder Heizung der Sonde defekt"); + case 176: return std::string("Sensorelement der Breitbandsonde Fehlerhaft oder Kurzschluss"); + case 177: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 178: return std::string("Förderschnecke nicht angesteckt oder funktioniert nicht"); + case 179: return std::string("Aschebox zu lange offen, bzw. entfernt"); + case 180: return std::string("Unterdruck im VORBEREITEN zu gering"); + case 181: return std::string("Luftklappe blockiert"); + case 182: return std::string("Rücklaufanhebung und Boiler mittels HKP0 ist nicht möglich (gleicher Fühler)"); + case 183: return std::string("Frequenzumformer fehlerhaft"); + case 184: return std::string("Temperaturüberwachung des Saugzuges hat angesprochen (Klixon)"); + case 185: return std::string("linker Teil des Rostes schließt nicht"); + case 186: return std::string("rechter Teil des Rostes schließt nicht"); + case 187: return std::string("linker Teil des Rostes öffnet nicht"); + case 188: return std::string("rechter Teil des Rostes öffnet nicht"); + case 189: return std::string("Motorschutz des VBL hat angesprochen"); + case 190: return std::string("Motorschutz der Kesselladepumpe hat angesprochen"); + case 191: return std::string("Zu oft Überstrom Austragschnecke"); + case 192: return std::string("Zu oft Überstrom Zwischenschnecke"); + case 193: return std::string("Automatische Raumluftklappe öffnet nicht"); + case 194: return std::string("Luftzufuhr Fehlerhaft oder verschlossen"); + case 195: return std::string("Sicherheitszeit wegen Minsensor im Saugzyklon abgelaufen."); + case 196: return std::string("Saugzugschalter nicht auf AUTO"); + case 197: return std::string("Motorschutzschalter Schubboden hat angesprochen"); + case 198: return std::string("Niveau für Hydrauliköl bei Schubboden zu niedrig"); + case 199: return std::string("Temperatur des Hydrauliköls für den Schubboden zu hoch"); + case 200: return std::string("Schlüsselschalter für Hydraulikraum nicht auf AUTO"); + case 201: return std::string("Sicherheitsendschalter für Schubboden hat angesprochen"); + case 202: return std::string("Wassertemperatur im Pelletsbrenner (F1) zu hoch"); + case 203: return std::string("WOS Antrieb ist blockiert oder nicht angeschlossen"); + case 204: return std::string("Luftdurchsatz zu gering oder Luftzufuhr fehlerhaft"); + case 205: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 206: return std::string("Überfüllsicherung der ZRS hat angesprochen"); + case 207: return std::string("Zellradschleuse nicht angesteckt oder funktioniert nicht"); + case 208: return std::string("eingestellte Anzahl der Zwangszyklen am Schubboden überschritten"); + case 209: return std::string("Kesselstandardwerte nicht gesetzt (Menü Einstellen --> Allg. Einst.)"); + case 210: return std::string("Unterrostthermostat hat ausgelöst"); + case 211: return std::string("Unterdruck im VORBEREITEN zu hoch"); + case 212: return std::string("Rostantrieb meldet beide Endlagen aktiv"); + case 213: return std::string("Austragung kontrollieren"); + case 214: return std::string("Modul-Update fehlgeschlagen, bitte Pelletsmodul tauschen"); + case 215: return std::string("Messbereitschaft konnte nicht hergestellt werden"); + case 216: return std::string("Messbereitschaft konnte nicht aufrecht erhalten werden"); + case 217: return std::string("Eingestellter Mindestbestand im Pelletlager unterschritten"); + case 218: return std::string("Ungültige Parametrierung der Austragung"); + case 219: return std::string("Lichtschranke dauerhaft belegt oder defekt"); + case 220: return std::string("Temperaturüberschreitung am Wärmetauscher"); + case 221: return std::string("Motorschutzschalter vom Rührwerk gefallen"); + case 222: return std::string("FU Betriebssignal vom AGR-Gebläse abgefallen"); + case 223: return std::string("Sicherheitsschalter E-Filter geöffnet"); + case 224: return std::string("Fehler Wassersensor E-Filter"); + case 225: return std::string("Übertemperatur HV-Box"); + case 226: return std::string("Kommunikationsfehler E-Filter"); + case 227: return std::string("HV-Fehler E-Filter"); + case 228: return std::string("Betriebssignal vom Saugzug FU fehlerhaft"); + case 229: return std::string("Störung der DBBK Pumpe"); + case 230: return std::string("Motorschutzschalter Der Schnecke 1 auf LS gefallen"); + case 231: return std::string("Motorschutzschalter Der Schnecke 2 auf LS gefallen"); + case 232: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 24)"); + case 233: return std::string("Displaymodul mit der Adresse 1 ist ausgefallen (DA 25)"); + case 234: return std::string("Displaymodul mit der Adresse 2 ist ausgefallen (DA 26)"); + case 235: return std::string("Displaymodul mit der Adresse 3 ist ausgefallen (DA 27)"); + case 236: return std::string("Displaymodul mit der Adresse 4 ist ausgefallen (DA 28)"); + case 237: return std::string("Displaymodul mit der Adresse 5 ist ausgefallen (DA 29)"); + case 238: return std::string("Displaymodul mit der Adresse 6 ist ausgefallen (DA 30)"); + case 239: return std::string("Displaymodul mit der Adresse 7 ist ausgefallen (DA 31)"); + case 240: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 243)"); + case 241: return std::string("Heizkreismodul mit der Adresse 0 ist ausgefallen (DA 32)"); + case 242: return std::string("Heizkreismodul mit der Adresse 1 ist ausgefallen (DA 33)"); + case 243: return std::string("Heizkreismodul mit der Adresse 2 ist ausgefallen (DA 34)"); + case 244: return std::string("Heizkreismodul mit der Adresse 3 ist ausgefallen (DA 35)"); + case 245: return std::string("Heizkreismodul mit der Adresse 4 ist ausgefallen (DA 36)"); + case 246: return std::string("Heizkreismodul mit der Adresse 5 ist ausgefallen (DA 37)"); + case 247: return std::string("Heizkreismodul mit der Adresse 6 ist ausgefallen (DA 38)"); + case 248: return std::string("Heizkreismodul mit der Adresse 7 ist ausgefallen (DA 39)"); + case 249: return std::string("Hydraulikmodul mit der Adresse 0 ist ausgefallen (DA 40)"); + case 250: return std::string("Hydraulikmodul mit der Adresse 1 ist ausgefallen (DA 41)"); + case 251: return std::string("Hydraulikmodul mit der Adresse 2 ist ausgefallen (DA 42)"); + case 252: return std::string("Hydraulikmodul mit der Adresse 3 ist ausgefallen (DA 43)"); + case 253: return std::string("Hydraulikmodul mit der Adresse 4 ist ausgefallen (DA 44)"); + case 254: return std::string("Hydraulikmodul mit der Adresse 5 ist ausgefallen (DA 45)"); + case 255: return std::string("Hydraulikmodul mit der Adresse 6 ist ausgefallen (DA 46)"); + case 256: return std::string("Hydraulikmodul mit der Adresse 7 ist ausgefallen (DA 47)"); + case 257: return std::string("Digitalmodul mit der Adresse 0 ist ausgefallen (DA 48)"); + case 258: return std::string("Digitalmodul mit der Adresse 1 ist ausgefallen (DA 49)"); + case 259: return std::string("Digitalmodul mit der Adresse 2 ist ausgefallen (DA 50)"); + case 260: return std::string("Digitalmodul mit der Adresse 3 ist ausgefallen (DA 51)"); + case 261: return std::string("Digitalmodul mit der Adresse 4 ist ausgefallen (DA 52)"); + case 262: return std::string("Digitalmodul mit der Adresse 5 ist ausgefallen (DA 53)"); + case 263: return std::string("Digitalmodul mit der Adresse 6 ist ausgefallen (DA 54)"); + case 264: return std::string("Digitalmodul mit der Adresse 7 ist ausgefallen (DA 55)"); + case 265: return std::string("Kaskadenmodul mit der Adresse 0 ist ausgefallen (DA 56)"); + case 266: return std::string("Kaskadenmodul mit der Adresse 1 ist ausgefallen (DA 57)"); + case 267: return std::string("Kaskadenmodul mit der Adresse 2 ist ausgefallen (DA 58)"); + case 268: return std::string("Kaskadenmodul mit der Adresse 3 ist ausgefallen (DA 59)"); + case 269: return std::string("Kaskadenmodul mit der Adresse 4 ist ausgefallen (DA 60)"); + case 270: return std::string("Kaskadenmodul mit der Adresse 5 ist ausgefallen (DA 61)"); + case 271: return std::string("Kaskadenmodul mit der Adresse 6 ist ausgefallen (DA 62)"); + case 272: return std::string("Kaskadenmodul mit der Adresse 7 ist ausgefallen (DA 63)"); + case 273: return std::string("Analogmodul mit der Adresse 0 ist ausgefallen (DA 64)"); + case 274: return std::string("Analogmodul mit der Adresse 1 ist ausgefallen (DA 65)"); + case 275: return std::string("Analogmodul mit der Adresse 2 ist ausgefallen (DA 66)"); + case 276: return std::string("Analogmodul mit der Adresse 3 ist ausgefallen (DA 67)"); + case 277: return std::string("Analogmodul mit der Adresse 4 ist ausgefallen (DA 68)"); + case 278: return std::string("Analogmodul mit der Adresse 5 ist ausgefallen (DA 69)"); + case 279: return std::string("Analogmodul mit der Adresse 6 ist ausgefallen (DA 70)"); + case 280: return std::string("Analogmodul mit der Adresse 7 ist ausgefallen (DA 71)"); + case 281: return std::string("Touch Display mit der Adresse 0 ist ausgefallen (DA 72)"); + case 282: return std::string("Touch Display mit der Adresse 1 ist ausgefallen (DA 73)"); + case 283: return std::string("Touch Display mit der Adresse 2 ist ausgefallen (DA 74)"); + case 284: return std::string("Touch Display mit der Adresse 3 ist ausgefallen (DA 75)"); + case 285: return std::string("Touch Display mit der Adresse 4 ist ausgefallen (DA 76)"); + case 286: return std::string("Touch Display mit der Adresse 5 ist ausgefallen (DA 77)"); + case 287: return std::string("Touch Display mit der Adresse 6 ist ausgefallen (DA 78)"); + case 288: return std::string("Touch Display mit der Adresse 7 ist ausgefallen (DA 79)"); + case 289: return std::string("Austragungsmodul mit der Adresse 0 ist ausgefallen (DA 80)"); + case 290: return std::string("Austragungsmodul mit der Adresse 1 ist ausgefallen (DA 81)"); + case 291: return std::string("Austragungsmodul mit der Adresse 2 ist ausgefallen (DA 82)"); + case 292: return std::string("Austragungsmodul mit der Adresse 3 ist ausgefallen (DA 83)"); + case 293: return std::string("Austragungsmodul mit der Adresse 4 ist ausgefallen (DA 84)"); + case 294: return std::string("Austragungsmodul mit der Adresse 5 ist ausgefallen (DA 85)"); + case 295: return std::string("Austragungsmodul mit der Adresse 6 ist ausgefallen (DA 86)"); + case 296: return std::string("Austragungsmodul mit der Adresse 7 ist ausgefallen (DA 87)"); + case 297: return std::string("Pelletsmodul mit der Adresse 0 ist ausgefallen (DA 240)"); + case 298: return std::string("Hackgutmodul mit der Adresse 0 ist ausgefallen (DA 241)"); + case 299: return std::string("Saugmodul mit der Adresse 0 ist ausgefallen (DA 242)"); + case 300: return std::string("Breitband Sonden Modul 0 ist ausgefallen (DA 244)"); + case 301: return std::string("Rücklaufmischermodul 0 ist ausgefallen (DA 245)"); + case 302: return std::string("Fühler für Solarreferenz Puffer oben fehlerhaft"); + case 303: return std::string("Fühler für Solarreferenz Puffer unten fehlerhaft"); + case 304: return std::string("MIN Unterdruck im Feuerraum unterschritten"); + case 305: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 1 gefallen"); + case 306: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 2 gefallen"); + case 307: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 1"); + case 308: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 2"); + case 309: return std::string("Schnecke 1 auf LS nicht angesteckt oder funktioniert nicht"); + case 310: return std::string("Schnecke 2 auf LS nicht angesteckt oder funktioniert nicht"); + case 311: return std::string("Saugschnecke von Zyklon 1 nicht angesteckt oder funktioniert nicht"); + case 312: return std::string("Saugschnecke von Zyklon 2 nicht angesteckt oder funktioniert nicht"); + case 313: return std::string("Rührwerk nicht angesteckt oder funktioniert nicht"); + case 314: return std::string("Zu oft Überstrom der Schnecke 1 auf LS"); + case 315: return std::string("Zu oft Überstrom der Schnecke 2 auf LS"); + case 316: return std::string("Falsche oder fehlerhafte Kesselauswahl"); + case 317: return std::string("Falsche oder fehlerhafte Brennstoffauswahl"); + case 318: return std::string("Temperaturüberschreitung am Stokerrohr"); + case 319: return std::string("Kombiantrieb blockiert"); + case 320: return std::string("AGR-Aktivierungsklappe schließt nicht"); + case 321: return std::string("HK1 - Vorlauf-Temperatur zu lange zu hoch"); + case 322: return std::string("HK2 - Vorlauf-Temperatur zu lange zu hoch"); + case 323: return std::string("HK3 - Vorlauf-Temperatur zu lange zu hoch"); + case 324: return std::string("HK4 - Vorlauf-Temperatur zu lange zu hoch"); + case 325: return std::string("HK5 - Vorlauf-Temperatur zu lange zu hoch"); + case 326: return std::string("HK6 - Vorlauf-Temperatur zu lange zu hoch"); + case 327: return std::string("HK7 - Vorlauf-Temperatur zu lange zu hoch"); + case 328: return std::string("HK8 - Vorlauf-Temperatur zu lange zu hoch"); + case 329: return std::string("HK9- Vorlauf-Temperatur zu lange zu hoch"); + case 330: return std::string("HK10- Vorlauf-Temperatur zu lange zu hoch"); + case 331: return std::string("HK11 - Vorlauf-Temperatur zu lange zu hoch"); + case 332: return std::string("HK12 - Vorlauf-Temperatur zu lange zu hoch"); + case 333: return std::string("HK13 - Vorlauf-Temperatur zu lange zu hoch"); + case 334: return std::string("HK14 - Vorlauf-Temperatur zu lange zu hoch"); + case 335: return std::string("HK15 - Vorlauf-Temperatur zu lange zu hoch"); + case 336: return std::string("HK16 - Vorlauf-Temperatur zu lange zu hoch"); + case 337: return std::string("HK17 - Vorlauf-Temperatur zu lange zu hoch"); + case 338: return std::string("HK18 - Vorlauf-Temperatur zu lange zu hoch"); + case 339: return std::string("Boiler Solarreferenz Fühler Fehlerhaft"); + case 340: return std::string("AGR-Druckregelklappe blockiert"); + case 341: return std::string("Druck im AGR-Druckkanal zu lange außerhalb des erlaubten Bereichs"); + case 342: return std::string("Rost-Differenzdruck zu lange zu niedrig"); + case 343: return std::string("Übertemperatur Durchbrandbogenkühlung"); + case 344: return std::string("Ansteuerung des Saugers defekt, bitte Pelletsmodul tauschen"); + case 345: return std::string("Kipprost 1 schließt nicht"); + case 346: return std::string("Kipprost 1 öffnet nicht"); + case 347: return std::string("Rostantrieb 1 meldet beide Endlagen aktiv"); + case 348: return std::string("Kipprost 2 schließt nicht"); + case 349: return std::string("Kipprost 2 öffnet nicht"); + case 350: return std::string("Rostantrieb 2 meldet beide Endlagen aktiv"); + case 351: return std::string("Temperaturanstieg am Fühler 1 ist zu gering"); + case 352: return std::string("AGR-Primärluftklappe blockiert"); + case 353: return std::string("AGR-Sekundärluftklappe blockiert"); + case 354: return std::string("Raumfühler Heizkreis 1 fehlerhaft"); + case 355: return std::string("Raumfühler Heizkreis 2 fehlerhaft"); + case 356: return std::string("Raumfühler Heizkreis 3 fehlerhaft"); + case 357: return std::string("Raumfühler Heizkreis 4 fehlerhaft"); + case 358: return std::string("Raumfühler Heizkreis 5 fehlerhaft"); + case 359: return std::string("Raumfühler Heizkreis 6 fehlerhaft"); + case 360: return std::string("Raumfühler Heizkreis 7 fehlerhaft"); + case 361: return std::string("Raumfühler Heizkreis 8 fehlerhaft"); + case 362: return std::string("Raumfühler Heizkreis 9 fehlerhaft"); + case 363: return std::string("Raumfühler Heizkreis 10 fehlerhaft"); + case 364: return std::string("Raumfühler Heizkreis 11 fehlerhaft"); + case 365: return std::string("Raumfühler Heizkreis 12 fehlerhaft"); + case 366: return std::string("Raumfühler Heizkreis 13 fehlerhaft"); + case 367: return std::string("Raumfühler Heizkreis 14 fehlerhaft"); + case 368: return std::string("Raumfühler Heizkreis 15 fehlerhaft"); + case 369: return std::string("Raumfühler Heizkreis 16 fehlerhaft"); + case 370: return std::string("Raumfühler Heizkreis 17 fehlerhaft"); + case 371: return std::string("Raumfühler Heizkreis 18 fehlerhaft"); + case 372: return std::string("011 EEPROM Prüfsumme 2 falsch"); + case 373: return std::string("STB, min. Druck, max. Druck oder Wassermangelsicherung ausgelöst."); + case 374: return std::string("AGR-Klappe blockiert"); + case 375: return std::string("Rücklauftemperatur zu hoch"); + case 376: return std::string("Kesseltür offen oder Unterdruckmessdose defekt"); + case 377: return std::string("Saugzug dreht sich ohne Ansteuerung"); + case 378: return std::string("Bitte den Kessel jetzt zur Vorbereitung für die Kaminkehrermessung anheizen!"); + case 379: return std::string("Rücklauftemperatur zu lange über Kesseltemperatur"); + case 380: return std::string("Ansaugöffnung kontrollieren"); + case 381: return std::string("Kondensatabfluss kontrollieren"); + case 382: return std::string("Unterdruck zu niedrig"); + case 383: return std::string("Laufrichtung Absperrschieber kontrollieren."); + case 384: return std::string("Aschebehälter voll oder WOS blockiert - Noch 20h Heizbetrieb möglich"); + case 385: return std::string("Stokerantrieb zieht Strom ohne Ansteuerung"); + case 386: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 387: return std::string("Kipprost 3 schließt nicht"); + case 388: return std::string("Kipprost 3 öffnet nicht"); + case 389: return std::string("Rostantrieb 3 meldet beide Endlagen aktiv"); + case 390: return std::string("Fühler Durchbrandbogen fehlerhaft"); + case 391: return std::string("Fühler 2 im Puffer 1 fehlerhaft"); + case 392: return std::string("Fühler 2 im Puffer 2 fehlerhaft"); + case 393: return std::string("Fühler 2 im Puffer 3 fehlerhaft"); + case 394: return std::string("Fühler 2 im Puffer 4 fehlerhaft"); + case 395: return std::string("Rostmotor konnte Endlage nicht halten"); + case 396: return std::string("Unterdruck im VORBEREITEN gering - Reinigungszustand des Kessels prüfen!"); + case 397: return std::string("Unzulässiger Temperaturanstieg am Stoker"); + case 398: return std::string("Motorschutz der Ascheschnecke gefallen."); + case 399: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Restsauerstoff nicht stabil"); + case 400: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abgastemperatur zu niedrig"); + case 401: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Feuerraumtemp. zu gering"); + case 402: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Leistungsabnahme zu gering"); + case 403: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abscheideleistung zu gering"); + case 404: return std::string("Fühler 3 im Puffer 1 fehlerhaft"); + case 405: return std::string("Fühler 3 im Puffer 2 fehlerhaft"); + case 406: return std::string("Fühler 3 im Puffer 3 fehlerhaft"); + case 407: return std::string("Fühler 3 im Puffer 4 fehlerhaft"); + case 408: return std::string("Saugschnecke 1 nicht angesteckt oder funktioniert nicht"); + case 409: return std::string("Saugschnecke 2 nicht angesteckt oder funktioniert nicht"); + case 410: return std::string("Saugschnecke 3 nicht angesteckt oder funktioniert nicht"); + case 411: return std::string("Zu oft Überstrom der Saugschnecke 1"); + case 412: return std::string("Zu oft Überstrom der Saugschnecke 2"); + case 413: return std::string("Zu oft Überstrom der Saugschnecke 3"); + case 414: return std::string("Motorschutzschalter der Saugschnecke 1 gefallen"); + case 415: return std::string("Motorschutzschalter der Saugschnecke 2 gefallen"); + case 416: return std::string("Motorschutzschalter der Saugschnecke 3 gefallen"); + case 417: return std::string("Ist ein Wärmequellenfüher vorhanden?"); + case 418: return std::string("Drehzahlprüfung im Vorbereiten fehlgeschlagen"); + case 419: return std::string("Unterdruck im Vorbereiten gering – Brenner reinigen!"); + case 420: return std::string("Unterdruck im Vorbereiten zu gering"); + case 421: return std::string("Zündversuch ist nicht gelungen. - ACHTUNG! Werden Maßnahmen nicht befolgt, kann eine gefährliche Situation eintreten - LEBENSGEFAHR!"); + case 422: return std::string("Fühler in der STB Hülse fehlerhaft"); + case 423: return std::string("Überdruck vor Zyklonabscheider erkannt"); + case 424: return std::string("Kesseltemperaturfühler 2 fehlerhaft"); + case 425: return std::string("Fühler 4 im Puffer 1 fehlerhaft"); + case 426: return std::string("Fühler 5 im Puffer 1 fehlerhaft"); + case 427: return std::string("Fühler 6 im Puffer 1 fehlerhaft"); + case 428: return std::string("Fühler 7 im Puffer 1 fehlerhaft"); + case 429: return std::string("Vorlauffühler für Wärmemengenerfassung des Kessels fehlerhaft"); + default: return std::string("----"); + } + return x; + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Fehler 2" + id: ${lower_name}_Fehler_2 + register_type: read + address: 3001 + raw_encode: HEXBYTES + lambda: |- + uint16_t value = modbus_controller::word_from_hex_str(x, 0); + switch (value) { + case 0: return std::string("STB gefallen oder NOT-AUS betätigt"); + case 1: return std::string("Kesseltemperaturfühler fehlerhaft"); + case 2: return std::string("Primärluftklappe blockiert"); + case 3: return std::string("Sekundärluftklappe blockiert"); + case 4: return std::string("Kessel zieht zu viel Falschluft"); + case 5: return std::string("Kontrolle von Feuerraum- Überdruckwächter durchführen"); + case 6: return std::string("Rückbrandschieber schließt nicht"); + case 7: return std::string("Rückbrandschieber öffnet nicht"); + case 8: return std::string("Rostantrieb defekt"); + case 9: return std::string("Rost Fehler"); + case 10: return std::string("Rostreinigung fehlerhaft"); + case 11: return std::string("Zündversuch ist nicht gelungen"); + case 12: return std::string("Sicherheitszeit abgelaufen Sauerstoffgehalt zu lange zu hoch"); + case 13: return std::string("Sicherheitszeit abgelaufen Abgastemperatur zu lange zu niedrig"); + case 14: return std::string("Kesseltür zu lange offen"); + case 15: return std::string("Stopfsensor für länger als 5min belegt"); + case 16: return std::string("Raumaustragung kontrollieren"); + case 17: return std::string("Lagerraum kontrollieren"); + case 18: return std::string("Rücklauftemperaturfühler fehlerhaft"); + case 19: return std::string("Rücklauftemperatur seit mehr als 30 Minuten zu niedrig"); + case 20: return std::string("Fernversteller Heizkreis 1 fehlerhaft"); + case 21: return std::string("Vorlauftemperaturfühler Heizkreis 1 fehlerhaft"); + case 22: return std::string("Fernversteller Heizkreis 2 fehlerhaft"); + case 23: return std::string("Vorlauftemperaturfühler Heizkreis 2 fehlerhaft"); + case 24: return std::string("Außentemperaturfühler fehlerhaft"); + case 25: return std::string("NOT-AUS Kontakt wurde betätigt"); + case 26: return std::string("Fernversteller Heizkreis 3 fehlerhaft"); + case 27: return std::string("Fernversteller Heizkreis 4 fehlerhaft"); + case 28: return std::string("Fernversteller Heizkreis 5 fehlerhaft"); + case 29: return std::string("Fernversteller Heizkreis 6 fehlerhaft"); + case 30: return std::string("Fernversteller Heizkreis 7 fehlerhaft"); + case 31: return std::string("Fernversteller Heizkreis 8 fehlerhaft"); + case 32: return std::string("Fernversteller Heizkreis 9 fehlerhaft"); + case 33: return std::string("Fernversteller Heizkreis 10 fehlerhaft"); + case 34: return std::string("Fernversteller Heizkreis 11 fehlerhaft"); + case 35: return std::string("Fernversteller Heizkreis 12 fehlerhaft"); + case 36: return std::string("Fernversteller Heizkreis 13 fehlerhaft"); + case 37: return std::string("Fernversteller Heizkreis 14 fehlerhaft"); + case 38: return std::string("Fernversteller Heizkreis 15 fehlerhaft"); + case 39: return std::string("Fernversteller Heizkreis 16 fehlerhaft"); + case 40: return std::string("Fernversteller Heizkreis 17 fehlerhaft"); + case 41: return std::string("Fernversteller Heizkreis 18 fehlerhaft"); + case 42: return std::string("Vorlauftemperaturfühler Heizkreis 3 fehlerhaft"); + case 43: return std::string("Vorlauftemperaturfühler Heizkreis 4 fehlerhaft"); + case 44: return std::string("Vorlauftemperaturfühler Heizkreis 5 fehlerhaft"); + case 45: return std::string("Vorlauftemperaturfühler Heizkreis 6 fehlerhaft"); + case 46: return std::string("Vorlauftemperaturfühler Heizkreis 7 fehlerhaft"); + case 47: return std::string("Vorlauftemperaturfühler Heizkreis 8 fehlerhaft"); + case 48: return std::string("Vorlauftemperaturfühler Heizkreis 9 fehlerhaft"); + case 49: return std::string("Vorlauftemperaturfühler Heizkreis 10 fehlerhaft"); + case 50: return std::string("Vorlauftemperaturfühler Heizkreis 11 fehlerhaft"); + case 51: return std::string("Vorlauftemperaturfühler Heizkreis 12 fehlerhaft"); + case 52: return std::string("Vorlauftemperaturfühler Heizkreis 13 fehlerhaft"); + case 53: return std::string("Vorlauftemperaturfühler Heizkreis 14 fehlerhaft"); + case 54: return std::string("Vorlauftemperaturfühler Heizkreis 15 fehlerhaft"); + case 55: return std::string("Vorlauftemperaturfühler Heizkreis 16 fehlerhaft"); + case 56: return std::string("Vorlauftemperaturfühler Heizkreis 17 fehlerhaft"); + case 57: return std::string("Vorlauftemperaturfühler Heizkreis 18 fehlerhaft"); + case 58: return std::string("Vor dem Stromausfall ist ein Busmodul ausgefallen"); + case 59: return std::string("Saugzug dreht sich nicht, trotz voller Ansteuerung"); + case 60: return std::string("Fühler im Boiler 01 fehlerhaft"); + case 61: return std::string("Kommunikation zum Pelletsmodul fehlerhaft"); + case 62: return std::string(""); + case 63: return std::string("001 EEPROM Lesefehler"); + case 64: return std::string("002 EEPROM Prüfsumme Null"); + case 65: return std::string("003 EEPROM Lesefehler"); + case 66: return std::string("004 EEPROM SW-Version falsch"); + case 67: return std::string("005 EEPROM Parameterlänge falsch"); + case 68: return std::string("006 EEPROM Lesefehler"); + case 69: return std::string("007 EEPROM Prüfsumme falsch"); + case 70: return std::string("008 EEPROM Schreibfehler"); + case 71: return std::string("009 EEPROM Schreibfehler"); + case 72: return std::string("010 Konfig. Listenfehler"); + case 73: return std::string("Fühler im Boiler 02 fehlerhaft"); + case 74: return std::string("Fühler im Boiler 03 fehlerhaft"); + case 75: return std::string("Fühler im Boiler 04 fehlerhaft"); + case 76: return std::string("Fühler im Boiler 05 fehlerhaft"); + case 77: return std::string("Fühler im Boiler 06 fehlerhaft"); + case 78: return std::string("Fühler im Boiler 07 fehlerhaft"); + case 79: return std::string("Fühler im Boiler 08 fehlerhaft"); + case 80: return std::string("Fühler Solarreferenz im Boiler 01 fehlerhaft"); + case 81: return std::string("Fühler Solarreferenz im Boiler 02 fehlerhaft"); + case 82: return std::string("Fühler Solarreferenz im Boiler 03 fehlerhaft"); + case 83: return std::string("Fühler Solarreferenz im Boiler 04 fehlerhaft"); + case 84: return std::string("Fühler Solarreferenz im Boiler 05 fehlerhaft"); + case 85: return std::string("Fühler Solarreferenz im Boiler 06 fehlerhaft"); + case 86: return std::string("Fühler Solarreferenz im Boiler 07 fehlerhaft"); + case 87: return std::string("Fühler Solarreferenz im Boiler 08 fehlerhaft"); + case 88: return std::string("Fühler oben im Puffer 1 fehlerhaft"); + case 89: return std::string("Fühler oben im Puffer 2 fehlerhaft"); + case 90: return std::string("Fühler oben im Puffer 3 fehlerhaft"); + case 91: return std::string("Fühler oben im Puffer 4 fehlerhaft"); + case 92: return std::string("Fühler Mitte im Puffer 1 fehlerhaft"); + case 93: return std::string("Fühler Mitte im Puffer 2 fehlerhaft"); + case 94: return std::string("Fühler Mitte im Puffer 3 fehlerhaft"); + case 95: return std::string("Fühler Mitte im Puffer 4 fehlerhaft"); + case 96: return std::string("Fühler unten im Puffer 1 fehlerhaft"); + case 97: return std::string("Fühler unten im Puffer 2 fehlerhaft"); + case 98: return std::string("Fühler unten im Puffer 3 fehlerhaft"); + case 99: return std::string("Fühler unten im Puffer 4 fehlerhaft"); + case 100: return std::string("Fühler im Zweitkessel fehlerhaft"); + case 101: return std::string("Kollektor-Überhitzung oder Kollektorfühler unterbrochen"); + case 102: return std::string("Fühler im Zusatzkessel fehlerhaft"); + case 103: return std::string("Der Füllstand kann nicht richtig interpretiert werden"); + case 104: return std::string("Die Bypassklappe konnte nicht öffnen"); + case 105: return std::string("Die Bypassklappe konnte nicht geschlossen werden"); + case 106: return std::string("Die Laufzeit zum Füllen wurde überschritten"); + case 107: return std::string("Die Austragsschnecke stopft an der Saugstelle"); + case 108: return std::string("Die Bypassklappe konnte weder öffnen noch schließen"); + case 109: return std::string("Zündversuch nicht gelungen von Hand Anheizen!"); + case 110: return std::string("Motorschutzschalter Saugzug gefallen"); + case 111: return std::string("Motorschutzschalter Stoker gefallen"); + case 112: return std::string("Motorschutzschalter Förderschnecke gefallen"); + case 113: return std::string("Rückbrandklappe öffnet zu schnell"); + case 114: return std::string("Rückbrandklappe schließt zu schnell"); + case 115: return std::string("Keine/Beide Endlagen der Rückbrandklappe aktiv"); + case 116: return std::string("Motorschutzschalter Zellradschleuse gefallen"); + case 117: return std::string("Lambdasonde defekt"); + case 118: return std::string("Abgastemperaturfühler defekt"); + case 119: return std::string("Feuerraumtemperaturfühler defekt"); + case 120: return std::string("LS im Fallschacht defekt"); + case 121: return std::string("Fallschachtdeckel offen"); + case 122: return std::string("Kesseltür zu lange offen oder Unterdruckmessdose defekt"); + case 123: return std::string("Rost öffnet nicht"); + case 124: return std::string("Sicherheitszeit wegen Füllstandsensor im Saugzyklon abgelaufen."); + case 125: return std::string("Motorschutz der Austragsschnecke gefallen"); + case 126: return std::string("Stoker hat zu wenig Material"); + case 127: return std::string("Austragsschnecke Fehler"); + case 128: return std::string("GEFÄHRLICHER Zustand möglich"); + case 129: return std::string("Hackgutmodul ausgefallen -> Sofortabschaltung"); + case 130: return std::string("Saugmodul ausgefallen \n-> Sofortabschaltung"); + case 131: return std::string("Brennstoff lt. Anleitung einlegen"); + case 132: return std::string("RL Fühler für Netzpumpe fehlerhaft"); + case 133: return std::string("LS im Fallschacht der Austragsschnecke defekt (Voll)"); + case 134: return std::string("Fallschachtdeckel der Austragsschnecke offen"); + case 135: return std::string("Motorschutzschalter Austragsschnecke gefallen"); + case 136: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Voll)"); + case 137: return std::string("Fallschachtdeckel der Zwischenschnecke 1 offen"); + case 138: return std::string("Motorschutzschalter der Zwischenschnecke 1 gefallen"); + case 139: return std::string("Brenner reinigen und kontrollieren"); + case 140: return std::string("Rost schließt nicht"); + case 141: return std::string("Rückbrandklappe schließt nicht"); + case 142: return std::string("Rückbrandklappe öffnet nicht"); + case 143: return std::string("Zu oft Überstrom Zellradschleuse"); + case 144: return std::string("Zu oft Überstrom Stokerschnecke"); + case 145: return std::string("Zu oft Überstrom Förderschnecke"); + case 146: return std::string("Steuerung neu gestartet"); + case 147: return std::string("Rücklauffühler für Verteiler 1 fehlerhaft"); + case 148: return std::string("Rücklauffühler für Verteiler 2 fehlerhaft"); + case 149: return std::string("Rücklauffühler für Verteiler 3 fehlerhaft"); + case 150: return std::string("Rücklauffühler für Verteiler 4 fehlerhaft"); + case 151: return std::string("maximaler Einschub nach Änderung neu berechnet und begrenzt"); + case 152: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Leer)"); + case 153: return std::string("LS im Fallschacht der Austragsschnecke defekt (Leer)"); + case 154: return std::string("Absperrschieber blockiert"); + case 155: return std::string("Fehler Kessel und Brennstoffauswahl"); + case 156: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 157: return std::string("Kesselundichtheit festgestellt aufgrund Einschuberkennung"); + case 158: return std::string("Kesselundichtheit festgestellt aufgrund O2 Überwachung"); + case 159: return std::string("Fühler für Zirkulationspumpe fehlerhaft"); + case 160: return std::string("Fühler für Solar WT sek. Vorlauf fehlerhaft"); + case 161: return std::string("Fühler für Solar Kollektor Rücklauf fehlerhaft"); + case 162: return std::string("Lambdasonde defekt"); + case 163: return std::string("Fehlerbehebung wurde abgebrochen"); + case 164: return std::string("Wärmequellen Fühler des Differenzregler defekt"); + case 165: return std::string("Wärmesenken Fühler des Differenzregler defekt"); + case 166: return std::string("Variante 3, es wurde ein Puffer und ein Verteiler mit der selben Nummer aktiviert"); + case 167: return std::string("Sondenumschaltung aufgrund Pelletsmangel oder Stopfsensor"); + case 168: return std::string("Vorratsbehälter leer, bitte Pellets Nachfüllen"); + case 169: return std::string("Aschebox voll, bitte entleeren"); + case 170: return std::string("Rostantrieb hat Überstrom, bitte 5 min warten"); + case 171: return std::string("Fühler 1 fehlerhaft"); + case 172: return std::string("Puffer Solarreferenz Fühler Fehlerhaft"); + case 173: return std::string("Aschebox voll, bitte entleeren"); + case 174: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 175: return std::string("Breitbandsonde nicht angesteckt oder Heizung der Sonde defekt"); + case 176: return std::string("Sensorelement der Breitbandsonde Fehlerhaft oder Kurzschluss"); + case 177: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 178: return std::string("Förderschnecke nicht angesteckt oder funktioniert nicht"); + case 179: return std::string("Aschebox zu lange offen, bzw. entfernt"); + case 180: return std::string("Unterdruck im VORBEREITEN zu gering"); + case 181: return std::string("Luftklappe blockiert"); + case 182: return std::string("Rücklaufanhebung und Boiler mittels HKP0 ist nicht möglich (gleicher Fühler)"); + case 183: return std::string("Frequenzumformer fehlerhaft"); + case 184: return std::string("Temperaturüberwachung des Saugzuges hat angesprochen (Klixon)"); + case 185: return std::string("linker Teil des Rostes schließt nicht"); + case 186: return std::string("rechter Teil des Rostes schließt nicht"); + case 187: return std::string("linker Teil des Rostes öffnet nicht"); + case 188: return std::string("rechter Teil des Rostes öffnet nicht"); + case 189: return std::string("Motorschutz des VBL hat angesprochen"); + case 190: return std::string("Motorschutz der Kesselladepumpe hat angesprochen"); + case 191: return std::string("Zu oft Überstrom Austragschnecke"); + case 192: return std::string("Zu oft Überstrom Zwischenschnecke"); + case 193: return std::string("Automatische Raumluftklappe öffnet nicht"); + case 194: return std::string("Luftzufuhr Fehlerhaft oder verschlossen"); + case 195: return std::string("Sicherheitszeit wegen Minsensor im Saugzyklon abgelaufen."); + case 196: return std::string("Saugzugschalter nicht auf AUTO"); + case 197: return std::string("Motorschutzschalter Schubboden hat angesprochen"); + case 198: return std::string("Niveau für Hydrauliköl bei Schubboden zu niedrig"); + case 199: return std::string("Temperatur des Hydrauliköls für den Schubboden zu hoch"); + case 200: return std::string("Schlüsselschalter für Hydraulikraum nicht auf AUTO"); + case 201: return std::string("Sicherheitsendschalter für Schubboden hat angesprochen"); + case 202: return std::string("Wassertemperatur im Pelletsbrenner (F1) zu hoch"); + case 203: return std::string("WOS Antrieb ist blockiert oder nicht angeschlossen"); + case 204: return std::string("Luftdurchsatz zu gering oder Luftzufuhr fehlerhaft"); + case 205: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 206: return std::string("Überfüllsicherung der ZRS hat angesprochen"); + case 207: return std::string("Zellradschleuse nicht angesteckt oder funktioniert nicht"); + case 208: return std::string("eingestellte Anzahl der Zwangszyklen am Schubboden überschritten"); + case 209: return std::string("Kesselstandardwerte nicht gesetzt (Menü Einstellen --> Allg. Einst.)"); + case 210: return std::string("Unterrostthermostat hat ausgelöst"); + case 211: return std::string("Unterdruck im VORBEREITEN zu hoch"); + case 212: return std::string("Rostantrieb meldet beide Endlagen aktiv"); + case 213: return std::string("Austragung kontrollieren"); + case 214: return std::string("Modul-Update fehlgeschlagen, bitte Pelletsmodul tauschen"); + case 215: return std::string("Messbereitschaft konnte nicht hergestellt werden"); + case 216: return std::string("Messbereitschaft konnte nicht aufrecht erhalten werden"); + case 217: return std::string("Eingestellter Mindestbestand im Pelletlager unterschritten"); + case 218: return std::string("Ungültige Parametrierung der Austragung"); + case 219: return std::string("Lichtschranke dauerhaft belegt oder defekt"); + case 220: return std::string("Temperaturüberschreitung am Wärmetauscher"); + case 221: return std::string("Motorschutzschalter vom Rührwerk gefallen"); + case 222: return std::string("FU Betriebssignal vom AGR-Gebläse abgefallen"); + case 223: return std::string("Sicherheitsschalter E-Filter geöffnet"); + case 224: return std::string("Fehler Wassersensor E-Filter"); + case 225: return std::string("Übertemperatur HV-Box"); + case 226: return std::string("Kommunikationsfehler E-Filter"); + case 227: return std::string("HV-Fehler E-Filter"); + case 228: return std::string("Betriebssignal vom Saugzug FU fehlerhaft"); + case 229: return std::string("Störung der DBBK Pumpe"); + case 230: return std::string("Motorschutzschalter Der Schnecke 1 auf LS gefallen"); + case 231: return std::string("Motorschutzschalter Der Schnecke 2 auf LS gefallen"); + case 232: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 24)"); + case 233: return std::string("Displaymodul mit der Adresse 1 ist ausgefallen (DA 25)"); + case 234: return std::string("Displaymodul mit der Adresse 2 ist ausgefallen (DA 26)"); + case 235: return std::string("Displaymodul mit der Adresse 3 ist ausgefallen (DA 27)"); + case 236: return std::string("Displaymodul mit der Adresse 4 ist ausgefallen (DA 28)"); + case 237: return std::string("Displaymodul mit der Adresse 5 ist ausgefallen (DA 29)"); + case 238: return std::string("Displaymodul mit der Adresse 6 ist ausgefallen (DA 30)"); + case 239: return std::string("Displaymodul mit der Adresse 7 ist ausgefallen (DA 31)"); + case 240: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 243)"); + case 241: return std::string("Heizkreismodul mit der Adresse 0 ist ausgefallen (DA 32)"); + case 242: return std::string("Heizkreismodul mit der Adresse 1 ist ausgefallen (DA 33)"); + case 243: return std::string("Heizkreismodul mit der Adresse 2 ist ausgefallen (DA 34)"); + case 244: return std::string("Heizkreismodul mit der Adresse 3 ist ausgefallen (DA 35)"); + case 245: return std::string("Heizkreismodul mit der Adresse 4 ist ausgefallen (DA 36)"); + case 246: return std::string("Heizkreismodul mit der Adresse 5 ist ausgefallen (DA 37)"); + case 247: return std::string("Heizkreismodul mit der Adresse 6 ist ausgefallen (DA 38)"); + case 248: return std::string("Heizkreismodul mit der Adresse 7 ist ausgefallen (DA 39)"); + case 249: return std::string("Hydraulikmodul mit der Adresse 0 ist ausgefallen (DA 40)"); + case 250: return std::string("Hydraulikmodul mit der Adresse 1 ist ausgefallen (DA 41)"); + case 251: return std::string("Hydraulikmodul mit der Adresse 2 ist ausgefallen (DA 42)"); + case 252: return std::string("Hydraulikmodul mit der Adresse 3 ist ausgefallen (DA 43)"); + case 253: return std::string("Hydraulikmodul mit der Adresse 4 ist ausgefallen (DA 44)"); + case 254: return std::string("Hydraulikmodul mit der Adresse 5 ist ausgefallen (DA 45)"); + case 255: return std::string("Hydraulikmodul mit der Adresse 6 ist ausgefallen (DA 46)"); + case 256: return std::string("Hydraulikmodul mit der Adresse 7 ist ausgefallen (DA 47)"); + case 257: return std::string("Digitalmodul mit der Adresse 0 ist ausgefallen (DA 48)"); + case 258: return std::string("Digitalmodul mit der Adresse 1 ist ausgefallen (DA 49)"); + case 259: return std::string("Digitalmodul mit der Adresse 2 ist ausgefallen (DA 50)"); + case 260: return std::string("Digitalmodul mit der Adresse 3 ist ausgefallen (DA 51)"); + case 261: return std::string("Digitalmodul mit der Adresse 4 ist ausgefallen (DA 52)"); + case 262: return std::string("Digitalmodul mit der Adresse 5 ist ausgefallen (DA 53)"); + case 263: return std::string("Digitalmodul mit der Adresse 6 ist ausgefallen (DA 54)"); + case 264: return std::string("Digitalmodul mit der Adresse 7 ist ausgefallen (DA 55)"); + case 265: return std::string("Kaskadenmodul mit der Adresse 0 ist ausgefallen (DA 56)"); + case 266: return std::string("Kaskadenmodul mit der Adresse 1 ist ausgefallen (DA 57)"); + case 267: return std::string("Kaskadenmodul mit der Adresse 2 ist ausgefallen (DA 58)"); + case 268: return std::string("Kaskadenmodul mit der Adresse 3 ist ausgefallen (DA 59)"); + case 269: return std::string("Kaskadenmodul mit der Adresse 4 ist ausgefallen (DA 60)"); + case 270: return std::string("Kaskadenmodul mit der Adresse 5 ist ausgefallen (DA 61)"); + case 271: return std::string("Kaskadenmodul mit der Adresse 6 ist ausgefallen (DA 62)"); + case 272: return std::string("Kaskadenmodul mit der Adresse 7 ist ausgefallen (DA 63)"); + case 273: return std::string("Analogmodul mit der Adresse 0 ist ausgefallen (DA 64)"); + case 274: return std::string("Analogmodul mit der Adresse 1 ist ausgefallen (DA 65)"); + case 275: return std::string("Analogmodul mit der Adresse 2 ist ausgefallen (DA 66)"); + case 276: return std::string("Analogmodul mit der Adresse 3 ist ausgefallen (DA 67)"); + case 277: return std::string("Analogmodul mit der Adresse 4 ist ausgefallen (DA 68)"); + case 278: return std::string("Analogmodul mit der Adresse 5 ist ausgefallen (DA 69)"); + case 279: return std::string("Analogmodul mit der Adresse 6 ist ausgefallen (DA 70)"); + case 280: return std::string("Analogmodul mit der Adresse 7 ist ausgefallen (DA 71)"); + case 281: return std::string("Touch Display mit der Adresse 0 ist ausgefallen (DA 72)"); + case 282: return std::string("Touch Display mit der Adresse 1 ist ausgefallen (DA 73)"); + case 283: return std::string("Touch Display mit der Adresse 2 ist ausgefallen (DA 74)"); + case 284: return std::string("Touch Display mit der Adresse 3 ist ausgefallen (DA 75)"); + case 285: return std::string("Touch Display mit der Adresse 4 ist ausgefallen (DA 76)"); + case 286: return std::string("Touch Display mit der Adresse 5 ist ausgefallen (DA 77)"); + case 287: return std::string("Touch Display mit der Adresse 6 ist ausgefallen (DA 78)"); + case 288: return std::string("Touch Display mit der Adresse 7 ist ausgefallen (DA 79)"); + case 289: return std::string("Austragungsmodul mit der Adresse 0 ist ausgefallen (DA 80)"); + case 290: return std::string("Austragungsmodul mit der Adresse 1 ist ausgefallen (DA 81)"); + case 291: return std::string("Austragungsmodul mit der Adresse 2 ist ausgefallen (DA 82)"); + case 292: return std::string("Austragungsmodul mit der Adresse 3 ist ausgefallen (DA 83)"); + case 293: return std::string("Austragungsmodul mit der Adresse 4 ist ausgefallen (DA 84)"); + case 294: return std::string("Austragungsmodul mit der Adresse 5 ist ausgefallen (DA 85)"); + case 295: return std::string("Austragungsmodul mit der Adresse 6 ist ausgefallen (DA 86)"); + case 296: return std::string("Austragungsmodul mit der Adresse 7 ist ausgefallen (DA 87)"); + case 297: return std::string("Pelletsmodul mit der Adresse 0 ist ausgefallen (DA 240)"); + case 298: return std::string("Hackgutmodul mit der Adresse 0 ist ausgefallen (DA 241)"); + case 299: return std::string("Saugmodul mit der Adresse 0 ist ausgefallen (DA 242)"); + case 300: return std::string("Breitband Sonden Modul 0 ist ausgefallen (DA 244)"); + case 301: return std::string("Rücklaufmischermodul 0 ist ausgefallen (DA 245)"); + case 302: return std::string("Fühler für Solarreferenz Puffer oben fehlerhaft"); + case 303: return std::string("Fühler für Solarreferenz Puffer unten fehlerhaft"); + case 304: return std::string("MIN Unterdruck im Feuerraum unterschritten"); + case 305: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 1 gefallen"); + case 306: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 2 gefallen"); + case 307: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 1"); + case 308: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 2"); + case 309: return std::string("Schnecke 1 auf LS nicht angesteckt oder funktioniert nicht"); + case 310: return std::string("Schnecke 2 auf LS nicht angesteckt oder funktioniert nicht"); + case 311: return std::string("Saugschnecke von Zyklon 1 nicht angesteckt oder funktioniert nicht"); + case 312: return std::string("Saugschnecke von Zyklon 2 nicht angesteckt oder funktioniert nicht"); + case 313: return std::string("Rührwerk nicht angesteckt oder funktioniert nicht"); + case 314: return std::string("Zu oft Überstrom der Schnecke 1 auf LS"); + case 315: return std::string("Zu oft Überstrom der Schnecke 2 auf LS"); + case 316: return std::string("Falsche oder fehlerhafte Kesselauswahl"); + case 317: return std::string("Falsche oder fehlerhafte Brennstoffauswahl"); + case 318: return std::string("Temperaturüberschreitung am Stokerrohr"); + case 319: return std::string("Kombiantrieb blockiert"); + case 320: return std::string("AGR-Aktivierungsklappe schließt nicht"); + case 321: return std::string("HK1 - Vorlauf-Temperatur zu lange zu hoch"); + case 322: return std::string("HK2 - Vorlauf-Temperatur zu lange zu hoch"); + case 323: return std::string("HK3 - Vorlauf-Temperatur zu lange zu hoch"); + case 324: return std::string("HK4 - Vorlauf-Temperatur zu lange zu hoch"); + case 325: return std::string("HK5 - Vorlauf-Temperatur zu lange zu hoch"); + case 326: return std::string("HK6 - Vorlauf-Temperatur zu lange zu hoch"); + case 327: return std::string("HK7 - Vorlauf-Temperatur zu lange zu hoch"); + case 328: return std::string("HK8 - Vorlauf-Temperatur zu lange zu hoch"); + case 329: return std::string("HK9- Vorlauf-Temperatur zu lange zu hoch"); + case 330: return std::string("HK10- Vorlauf-Temperatur zu lange zu hoch"); + case 331: return std::string("HK11 - Vorlauf-Temperatur zu lange zu hoch"); + case 332: return std::string("HK12 - Vorlauf-Temperatur zu lange zu hoch"); + case 333: return std::string("HK13 - Vorlauf-Temperatur zu lange zu hoch"); + case 334: return std::string("HK14 - Vorlauf-Temperatur zu lange zu hoch"); + case 335: return std::string("HK15 - Vorlauf-Temperatur zu lange zu hoch"); + case 336: return std::string("HK16 - Vorlauf-Temperatur zu lange zu hoch"); + case 337: return std::string("HK17 - Vorlauf-Temperatur zu lange zu hoch"); + case 338: return std::string("HK18 - Vorlauf-Temperatur zu lange zu hoch"); + case 339: return std::string("Boiler Solarreferenz Fühler Fehlerhaft"); + case 340: return std::string("AGR-Druckregelklappe blockiert"); + case 341: return std::string("Druck im AGR-Druckkanal zu lange außerhalb des erlaubten Bereichs"); + case 342: return std::string("Rost-Differenzdruck zu lange zu niedrig"); + case 343: return std::string("Übertemperatur Durchbrandbogenkühlung"); + case 344: return std::string("Ansteuerung des Saugers defekt, bitte Pelletsmodul tauschen"); + case 345: return std::string("Kipprost 1 schließt nicht"); + case 346: return std::string("Kipprost 1 öffnet nicht"); + case 347: return std::string("Rostantrieb 1 meldet beide Endlagen aktiv"); + case 348: return std::string("Kipprost 2 schließt nicht"); + case 349: return std::string("Kipprost 2 öffnet nicht"); + case 350: return std::string("Rostantrieb 2 meldet beide Endlagen aktiv"); + case 351: return std::string("Temperaturanstieg am Fühler 1 ist zu gering"); + case 352: return std::string("AGR-Primärluftklappe blockiert"); + case 353: return std::string("AGR-Sekundärluftklappe blockiert"); + case 354: return std::string("Raumfühler Heizkreis 1 fehlerhaft"); + case 355: return std::string("Raumfühler Heizkreis 2 fehlerhaft"); + case 356: return std::string("Raumfühler Heizkreis 3 fehlerhaft"); + case 357: return std::string("Raumfühler Heizkreis 4 fehlerhaft"); + case 358: return std::string("Raumfühler Heizkreis 5 fehlerhaft"); + case 359: return std::string("Raumfühler Heizkreis 6 fehlerhaft"); + case 360: return std::string("Raumfühler Heizkreis 7 fehlerhaft"); + case 361: return std::string("Raumfühler Heizkreis 8 fehlerhaft"); + case 362: return std::string("Raumfühler Heizkreis 9 fehlerhaft"); + case 363: return std::string("Raumfühler Heizkreis 10 fehlerhaft"); + case 364: return std::string("Raumfühler Heizkreis 11 fehlerhaft"); + case 365: return std::string("Raumfühler Heizkreis 12 fehlerhaft"); + case 366: return std::string("Raumfühler Heizkreis 13 fehlerhaft"); + case 367: return std::string("Raumfühler Heizkreis 14 fehlerhaft"); + case 368: return std::string("Raumfühler Heizkreis 15 fehlerhaft"); + case 369: return std::string("Raumfühler Heizkreis 16 fehlerhaft"); + case 370: return std::string("Raumfühler Heizkreis 17 fehlerhaft"); + case 371: return std::string("Raumfühler Heizkreis 18 fehlerhaft"); + case 372: return std::string("011 EEPROM Prüfsumme 2 falsch"); + case 373: return std::string("STB, min. Druck, max. Druck oder Wassermangelsicherung ausgelöst."); + case 374: return std::string("AGR-Klappe blockiert"); + case 375: return std::string("Rücklauftemperatur zu hoch"); + case 376: return std::string("Kesseltür offen oder Unterdruckmessdose defekt"); + case 377: return std::string("Saugzug dreht sich ohne Ansteuerung"); + case 378: return std::string("Bitte den Kessel jetzt zur Vorbereitung für die Kaminkehrermessung anheizen!"); + case 379: return std::string("Rücklauftemperatur zu lange über Kesseltemperatur"); + case 380: return std::string("Ansaugöffnung kontrollieren"); + case 381: return std::string("Kondensatabfluss kontrollieren"); + case 382: return std::string("Unterdruck zu niedrig"); + case 383: return std::string("Laufrichtung Absperrschieber kontrollieren."); + case 384: return std::string("Aschebehälter voll oder WOS blockiert - Noch 20h Heizbetrieb möglich"); + case 385: return std::string("Stokerantrieb zieht Strom ohne Ansteuerung"); + case 386: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 387: return std::string("Kipprost 3 schließt nicht"); + case 388: return std::string("Kipprost 3 öffnet nicht"); + case 389: return std::string("Rostantrieb 3 meldet beide Endlagen aktiv"); + case 390: return std::string("Fühler Durchbrandbogen fehlerhaft"); + case 391: return std::string("Fühler 2 im Puffer 1 fehlerhaft"); + case 392: return std::string("Fühler 2 im Puffer 2 fehlerhaft"); + case 393: return std::string("Fühler 2 im Puffer 3 fehlerhaft"); + case 394: return std::string("Fühler 2 im Puffer 4 fehlerhaft"); + case 395: return std::string("Rostmotor konnte Endlage nicht halten"); + case 396: return std::string("Unterdruck im VORBEREITEN gering - Reinigungszustand des Kessels prüfen!"); + case 397: return std::string("Unzulässiger Temperaturanstieg am Stoker"); + case 398: return std::string("Motorschutz der Ascheschnecke gefallen."); + case 399: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Restsauerstoff nicht stabil"); + case 400: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abgastemperatur zu niedrig"); + case 401: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Feuerraumtemp. zu gering"); + case 402: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Leistungsabnahme zu gering"); + case 403: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abscheideleistung zu gering"); + case 404: return std::string("Fühler 3 im Puffer 1 fehlerhaft"); + case 405: return std::string("Fühler 3 im Puffer 2 fehlerhaft"); + case 406: return std::string("Fühler 3 im Puffer 3 fehlerhaft"); + case 407: return std::string("Fühler 3 im Puffer 4 fehlerhaft"); + case 408: return std::string("Saugschnecke 1 nicht angesteckt oder funktioniert nicht"); + case 409: return std::string("Saugschnecke 2 nicht angesteckt oder funktioniert nicht"); + case 410: return std::string("Saugschnecke 3 nicht angesteckt oder funktioniert nicht"); + case 411: return std::string("Zu oft Überstrom der Saugschnecke 1"); + case 412: return std::string("Zu oft Überstrom der Saugschnecke 2"); + case 413: return std::string("Zu oft Überstrom der Saugschnecke 3"); + case 414: return std::string("Motorschutzschalter der Saugschnecke 1 gefallen"); + case 415: return std::string("Motorschutzschalter der Saugschnecke 2 gefallen"); + case 416: return std::string("Motorschutzschalter der Saugschnecke 3 gefallen"); + case 417: return std::string("Ist ein Wärmequellenfüher vorhanden?"); + case 418: return std::string("Drehzahlprüfung im Vorbereiten fehlgeschlagen"); + case 419: return std::string("Unterdruck im Vorbereiten gering – Brenner reinigen!"); + case 420: return std::string("Unterdruck im Vorbereiten zu gering"); + case 421: return std::string("Zündversuch ist nicht gelungen. - ACHTUNG! Werden Maßnahmen nicht befolgt, kann eine gefährliche Situation eintreten - LEBENSGEFAHR!"); + case 422: return std::string("Fühler in der STB Hülse fehlerhaft"); + case 423: return std::string("Überdruck vor Zyklonabscheider erkannt"); + case 424: return std::string("Kesseltemperaturfühler 2 fehlerhaft"); + case 425: return std::string("Fühler 4 im Puffer 1 fehlerhaft"); + case 426: return std::string("Fühler 5 im Puffer 1 fehlerhaft"); + case 427: return std::string("Fühler 6 im Puffer 1 fehlerhaft"); + case 428: return std::string("Fühler 7 im Puffer 1 fehlerhaft"); + case 429: return std::string("Vorlauffühler für Wärmemengenerfassung des Kessels fehlerhaft"); + default: return std::string("----"); + } + return x; + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Fehler 3" + id: ${lower_name}_Fehler_3 + register_type: read + address: 3002 + raw_encode: HEXBYTES + lambda: |- + uint16_t value = modbus_controller::word_from_hex_str(x, 0); + switch (value) { + case 0: return std::string("STB gefallen oder NOT-AUS betätigt"); + case 1: return std::string("Kesseltemperaturfühler fehlerhaft"); + case 2: return std::string("Primärluftklappe blockiert"); + case 3: return std::string("Sekundärluftklappe blockiert"); + case 4: return std::string("Kessel zieht zu viel Falschluft"); + case 5: return std::string("Kontrolle von Feuerraum- Überdruckwächter durchführen"); + case 6: return std::string("Rückbrandschieber schließt nicht"); + case 7: return std::string("Rückbrandschieber öffnet nicht"); + case 8: return std::string("Rostantrieb defekt"); + case 9: return std::string("Rost Fehler"); + case 10: return std::string("Rostreinigung fehlerhaft"); + case 11: return std::string("Zündversuch ist nicht gelungen"); + case 12: return std::string("Sicherheitszeit abgelaufen Sauerstoffgehalt zu lange zu hoch"); + case 13: return std::string("Sicherheitszeit abgelaufen Abgastemperatur zu lange zu niedrig"); + case 14: return std::string("Kesseltür zu lange offen"); + case 15: return std::string("Stopfsensor für länger als 5min belegt"); + case 16: return std::string("Raumaustragung kontrollieren"); + case 17: return std::string("Lagerraum kontrollieren"); + case 18: return std::string("Rücklauftemperaturfühler fehlerhaft"); + case 19: return std::string("Rücklauftemperatur seit mehr als 30 Minuten zu niedrig"); + case 20: return std::string("Fernversteller Heizkreis 1 fehlerhaft"); + case 21: return std::string("Vorlauftemperaturfühler Heizkreis 1 fehlerhaft"); + case 22: return std::string("Fernversteller Heizkreis 2 fehlerhaft"); + case 23: return std::string("Vorlauftemperaturfühler Heizkreis 2 fehlerhaft"); + case 24: return std::string("Außentemperaturfühler fehlerhaft"); + case 25: return std::string("NOT-AUS Kontakt wurde betätigt"); + case 26: return std::string("Fernversteller Heizkreis 3 fehlerhaft"); + case 27: return std::string("Fernversteller Heizkreis 4 fehlerhaft"); + case 28: return std::string("Fernversteller Heizkreis 5 fehlerhaft"); + case 29: return std::string("Fernversteller Heizkreis 6 fehlerhaft"); + case 30: return std::string("Fernversteller Heizkreis 7 fehlerhaft"); + case 31: return std::string("Fernversteller Heizkreis 8 fehlerhaft"); + case 32: return std::string("Fernversteller Heizkreis 9 fehlerhaft"); + case 33: return std::string("Fernversteller Heizkreis 10 fehlerhaft"); + case 34: return std::string("Fernversteller Heizkreis 11 fehlerhaft"); + case 35: return std::string("Fernversteller Heizkreis 12 fehlerhaft"); + case 36: return std::string("Fernversteller Heizkreis 13 fehlerhaft"); + case 37: return std::string("Fernversteller Heizkreis 14 fehlerhaft"); + case 38: return std::string("Fernversteller Heizkreis 15 fehlerhaft"); + case 39: return std::string("Fernversteller Heizkreis 16 fehlerhaft"); + case 40: return std::string("Fernversteller Heizkreis 17 fehlerhaft"); + case 41: return std::string("Fernversteller Heizkreis 18 fehlerhaft"); + case 42: return std::string("Vorlauftemperaturfühler Heizkreis 3 fehlerhaft"); + case 43: return std::string("Vorlauftemperaturfühler Heizkreis 4 fehlerhaft"); + case 44: return std::string("Vorlauftemperaturfühler Heizkreis 5 fehlerhaft"); + case 45: return std::string("Vorlauftemperaturfühler Heizkreis 6 fehlerhaft"); + case 46: return std::string("Vorlauftemperaturfühler Heizkreis 7 fehlerhaft"); + case 47: return std::string("Vorlauftemperaturfühler Heizkreis 8 fehlerhaft"); + case 48: return std::string("Vorlauftemperaturfühler Heizkreis 9 fehlerhaft"); + case 49: return std::string("Vorlauftemperaturfühler Heizkreis 10 fehlerhaft"); + case 50: return std::string("Vorlauftemperaturfühler Heizkreis 11 fehlerhaft"); + case 51: return std::string("Vorlauftemperaturfühler Heizkreis 12 fehlerhaft"); + case 52: return std::string("Vorlauftemperaturfühler Heizkreis 13 fehlerhaft"); + case 53: return std::string("Vorlauftemperaturfühler Heizkreis 14 fehlerhaft"); + case 54: return std::string("Vorlauftemperaturfühler Heizkreis 15 fehlerhaft"); + case 55: return std::string("Vorlauftemperaturfühler Heizkreis 16 fehlerhaft"); + case 56: return std::string("Vorlauftemperaturfühler Heizkreis 17 fehlerhaft"); + case 57: return std::string("Vorlauftemperaturfühler Heizkreis 18 fehlerhaft"); + case 58: return std::string("Vor dem Stromausfall ist ein Busmodul ausgefallen"); + case 59: return std::string("Saugzug dreht sich nicht, trotz voller Ansteuerung"); + case 60: return std::string("Fühler im Boiler 01 fehlerhaft"); + case 61: return std::string("Kommunikation zum Pelletsmodul fehlerhaft"); + case 62: return std::string(""); + case 63: return std::string("001 EEPROM Lesefehler"); + case 64: return std::string("002 EEPROM Prüfsumme Null"); + case 65: return std::string("003 EEPROM Lesefehler"); + case 66: return std::string("004 EEPROM SW-Version falsch"); + case 67: return std::string("005 EEPROM Parameterlänge falsch"); + case 68: return std::string("006 EEPROM Lesefehler"); + case 69: return std::string("007 EEPROM Prüfsumme falsch"); + case 70: return std::string("008 EEPROM Schreibfehler"); + case 71: return std::string("009 EEPROM Schreibfehler"); + case 72: return std::string("010 Konfig. Listenfehler"); + case 73: return std::string("Fühler im Boiler 02 fehlerhaft"); + case 74: return std::string("Fühler im Boiler 03 fehlerhaft"); + case 75: return std::string("Fühler im Boiler 04 fehlerhaft"); + case 76: return std::string("Fühler im Boiler 05 fehlerhaft"); + case 77: return std::string("Fühler im Boiler 06 fehlerhaft"); + case 78: return std::string("Fühler im Boiler 07 fehlerhaft"); + case 79: return std::string("Fühler im Boiler 08 fehlerhaft"); + case 80: return std::string("Fühler Solarreferenz im Boiler 01 fehlerhaft"); + case 81: return std::string("Fühler Solarreferenz im Boiler 02 fehlerhaft"); + case 82: return std::string("Fühler Solarreferenz im Boiler 03 fehlerhaft"); + case 83: return std::string("Fühler Solarreferenz im Boiler 04 fehlerhaft"); + case 84: return std::string("Fühler Solarreferenz im Boiler 05 fehlerhaft"); + case 85: return std::string("Fühler Solarreferenz im Boiler 06 fehlerhaft"); + case 86: return std::string("Fühler Solarreferenz im Boiler 07 fehlerhaft"); + case 87: return std::string("Fühler Solarreferenz im Boiler 08 fehlerhaft"); + case 88: return std::string("Fühler oben im Puffer 1 fehlerhaft"); + case 89: return std::string("Fühler oben im Puffer 2 fehlerhaft"); + case 90: return std::string("Fühler oben im Puffer 3 fehlerhaft"); + case 91: return std::string("Fühler oben im Puffer 4 fehlerhaft"); + case 92: return std::string("Fühler Mitte im Puffer 1 fehlerhaft"); + case 93: return std::string("Fühler Mitte im Puffer 2 fehlerhaft"); + case 94: return std::string("Fühler Mitte im Puffer 3 fehlerhaft"); + case 95: return std::string("Fühler Mitte im Puffer 4 fehlerhaft"); + case 96: return std::string("Fühler unten im Puffer 1 fehlerhaft"); + case 97: return std::string("Fühler unten im Puffer 2 fehlerhaft"); + case 98: return std::string("Fühler unten im Puffer 3 fehlerhaft"); + case 99: return std::string("Fühler unten im Puffer 4 fehlerhaft"); + case 100: return std::string("Fühler im Zweitkessel fehlerhaft"); + case 101: return std::string("Kollektor-Überhitzung oder Kollektorfühler unterbrochen"); + case 102: return std::string("Fühler im Zusatzkessel fehlerhaft"); + case 103: return std::string("Der Füllstand kann nicht richtig interpretiert werden"); + case 104: return std::string("Die Bypassklappe konnte nicht öffnen"); + case 105: return std::string("Die Bypassklappe konnte nicht geschlossen werden"); + case 106: return std::string("Die Laufzeit zum Füllen wurde überschritten"); + case 107: return std::string("Die Austragsschnecke stopft an der Saugstelle"); + case 108: return std::string("Die Bypassklappe konnte weder öffnen noch schließen"); + case 109: return std::string("Zündversuch nicht gelungen von Hand Anheizen!"); + case 110: return std::string("Motorschutzschalter Saugzug gefallen"); + case 111: return std::string("Motorschutzschalter Stoker gefallen"); + case 112: return std::string("Motorschutzschalter Förderschnecke gefallen"); + case 113: return std::string("Rückbrandklappe öffnet zu schnell"); + case 114: return std::string("Rückbrandklappe schließt zu schnell"); + case 115: return std::string("Keine/Beide Endlagen der Rückbrandklappe aktiv"); + case 116: return std::string("Motorschutzschalter Zellradschleuse gefallen"); + case 117: return std::string("Lambdasonde defekt"); + case 118: return std::string("Abgastemperaturfühler defekt"); + case 119: return std::string("Feuerraumtemperaturfühler defekt"); + case 120: return std::string("LS im Fallschacht defekt"); + case 121: return std::string("Fallschachtdeckel offen"); + case 122: return std::string("Kesseltür zu lange offen oder Unterdruckmessdose defekt"); + case 123: return std::string("Rost öffnet nicht"); + case 124: return std::string("Sicherheitszeit wegen Füllstandsensor im Saugzyklon abgelaufen."); + case 125: return std::string("Motorschutz der Austragsschnecke gefallen"); + case 126: return std::string("Stoker hat zu wenig Material"); + case 127: return std::string("Austragsschnecke Fehler"); + case 128: return std::string("GEFÄHRLICHER Zustand möglich"); + case 129: return std::string("Hackgutmodul ausgefallen -> Sofortabschaltung"); + case 130: return std::string("Saugmodul ausgefallen \n-> Sofortabschaltung"); + case 131: return std::string("Brennstoff lt. Anleitung einlegen"); + case 132: return std::string("RL Fühler für Netzpumpe fehlerhaft"); + case 133: return std::string("LS im Fallschacht der Austragsschnecke defekt (Voll)"); + case 134: return std::string("Fallschachtdeckel der Austragsschnecke offen"); + case 135: return std::string("Motorschutzschalter Austragsschnecke gefallen"); + case 136: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Voll)"); + case 137: return std::string("Fallschachtdeckel der Zwischenschnecke 1 offen"); + case 138: return std::string("Motorschutzschalter der Zwischenschnecke 1 gefallen"); + case 139: return std::string("Brenner reinigen und kontrollieren"); + case 140: return std::string("Rost schließt nicht"); + case 141: return std::string("Rückbrandklappe schließt nicht"); + case 142: return std::string("Rückbrandklappe öffnet nicht"); + case 143: return std::string("Zu oft Überstrom Zellradschleuse"); + case 144: return std::string("Zu oft Überstrom Stokerschnecke"); + case 145: return std::string("Zu oft Überstrom Förderschnecke"); + case 146: return std::string("Steuerung neu gestartet"); + case 147: return std::string("Rücklauffühler für Verteiler 1 fehlerhaft"); + case 148: return std::string("Rücklauffühler für Verteiler 2 fehlerhaft"); + case 149: return std::string("Rücklauffühler für Verteiler 3 fehlerhaft"); + case 150: return std::string("Rücklauffühler für Verteiler 4 fehlerhaft"); + case 151: return std::string("maximaler Einschub nach Änderung neu berechnet und begrenzt"); + case 152: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Leer)"); + case 153: return std::string("LS im Fallschacht der Austragsschnecke defekt (Leer)"); + case 154: return std::string("Absperrschieber blockiert"); + case 155: return std::string("Fehler Kessel und Brennstoffauswahl"); + case 156: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 157: return std::string("Kesselundichtheit festgestellt aufgrund Einschuberkennung"); + case 158: return std::string("Kesselundichtheit festgestellt aufgrund O2 Überwachung"); + case 159: return std::string("Fühler für Zirkulationspumpe fehlerhaft"); + case 160: return std::string("Fühler für Solar WT sek. Vorlauf fehlerhaft"); + case 161: return std::string("Fühler für Solar Kollektor Rücklauf fehlerhaft"); + case 162: return std::string("Lambdasonde defekt"); + case 163: return std::string("Fehlerbehebung wurde abgebrochen"); + case 164: return std::string("Wärmequellen Fühler des Differenzregler defekt"); + case 165: return std::string("Wärmesenken Fühler des Differenzregler defekt"); + case 166: return std::string("Variante 3, es wurde ein Puffer und ein Verteiler mit der selben Nummer aktiviert"); + case 167: return std::string("Sondenumschaltung aufgrund Pelletsmangel oder Stopfsensor"); + case 168: return std::string("Vorratsbehälter leer, bitte Pellets Nachfüllen"); + case 169: return std::string("Aschebox voll, bitte entleeren"); + case 170: return std::string("Rostantrieb hat Überstrom, bitte 5 min warten"); + case 171: return std::string("Fühler 1 fehlerhaft"); + case 172: return std::string("Puffer Solarreferenz Fühler Fehlerhaft"); + case 173: return std::string("Aschebox voll, bitte entleeren"); + case 174: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 175: return std::string("Breitbandsonde nicht angesteckt oder Heizung der Sonde defekt"); + case 176: return std::string("Sensorelement der Breitbandsonde Fehlerhaft oder Kurzschluss"); + case 177: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 178: return std::string("Förderschnecke nicht angesteckt oder funktioniert nicht"); + case 179: return std::string("Aschebox zu lange offen, bzw. entfernt"); + case 180: return std::string("Unterdruck im VORBEREITEN zu gering"); + case 181: return std::string("Luftklappe blockiert"); + case 182: return std::string("Rücklaufanhebung und Boiler mittels HKP0 ist nicht möglich (gleicher Fühler)"); + case 183: return std::string("Frequenzumformer fehlerhaft"); + case 184: return std::string("Temperaturüberwachung des Saugzuges hat angesprochen (Klixon)"); + case 185: return std::string("linker Teil des Rostes schließt nicht"); + case 186: return std::string("rechter Teil des Rostes schließt nicht"); + case 187: return std::string("linker Teil des Rostes öffnet nicht"); + case 188: return std::string("rechter Teil des Rostes öffnet nicht"); + case 189: return std::string("Motorschutz des VBL hat angesprochen"); + case 190: return std::string("Motorschutz der Kesselladepumpe hat angesprochen"); + case 191: return std::string("Zu oft Überstrom Austragschnecke"); + case 192: return std::string("Zu oft Überstrom Zwischenschnecke"); + case 193: return std::string("Automatische Raumluftklappe öffnet nicht"); + case 194: return std::string("Luftzufuhr Fehlerhaft oder verschlossen"); + case 195: return std::string("Sicherheitszeit wegen Minsensor im Saugzyklon abgelaufen."); + case 196: return std::string("Saugzugschalter nicht auf AUTO"); + case 197: return std::string("Motorschutzschalter Schubboden hat angesprochen"); + case 198: return std::string("Niveau für Hydrauliköl bei Schubboden zu niedrig"); + case 199: return std::string("Temperatur des Hydrauliköls für den Schubboden zu hoch"); + case 200: return std::string("Schlüsselschalter für Hydraulikraum nicht auf AUTO"); + case 201: return std::string("Sicherheitsendschalter für Schubboden hat angesprochen"); + case 202: return std::string("Wassertemperatur im Pelletsbrenner (F1) zu hoch"); + case 203: return std::string("WOS Antrieb ist blockiert oder nicht angeschlossen"); + case 204: return std::string("Luftdurchsatz zu gering oder Luftzufuhr fehlerhaft"); + case 205: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 206: return std::string("Überfüllsicherung der ZRS hat angesprochen"); + case 207: return std::string("Zellradschleuse nicht angesteckt oder funktioniert nicht"); + case 208: return std::string("eingestellte Anzahl der Zwangszyklen am Schubboden überschritten"); + case 209: return std::string("Kesselstandardwerte nicht gesetzt (Menü Einstellen --> Allg. Einst.)"); + case 210: return std::string("Unterrostthermostat hat ausgelöst"); + case 211: return std::string("Unterdruck im VORBEREITEN zu hoch"); + case 212: return std::string("Rostantrieb meldet beide Endlagen aktiv"); + case 213: return std::string("Austragung kontrollieren"); + case 214: return std::string("Modul-Update fehlgeschlagen, bitte Pelletsmodul tauschen"); + case 215: return std::string("Messbereitschaft konnte nicht hergestellt werden"); + case 216: return std::string("Messbereitschaft konnte nicht aufrecht erhalten werden"); + case 217: return std::string("Eingestellter Mindestbestand im Pelletlager unterschritten"); + case 218: return std::string("Ungültige Parametrierung der Austragung"); + case 219: return std::string("Lichtschranke dauerhaft belegt oder defekt"); + case 220: return std::string("Temperaturüberschreitung am Wärmetauscher"); + case 221: return std::string("Motorschutzschalter vom Rührwerk gefallen"); + case 222: return std::string("FU Betriebssignal vom AGR-Gebläse abgefallen"); + case 223: return std::string("Sicherheitsschalter E-Filter geöffnet"); + case 224: return std::string("Fehler Wassersensor E-Filter"); + case 225: return std::string("Übertemperatur HV-Box"); + case 226: return std::string("Kommunikationsfehler E-Filter"); + case 227: return std::string("HV-Fehler E-Filter"); + case 228: return std::string("Betriebssignal vom Saugzug FU fehlerhaft"); + case 229: return std::string("Störung der DBBK Pumpe"); + case 230: return std::string("Motorschutzschalter Der Schnecke 1 auf LS gefallen"); + case 231: return std::string("Motorschutzschalter Der Schnecke 2 auf LS gefallen"); + case 232: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 24)"); + case 233: return std::string("Displaymodul mit der Adresse 1 ist ausgefallen (DA 25)"); + case 234: return std::string("Displaymodul mit der Adresse 2 ist ausgefallen (DA 26)"); + case 235: return std::string("Displaymodul mit der Adresse 3 ist ausgefallen (DA 27)"); + case 236: return std::string("Displaymodul mit der Adresse 4 ist ausgefallen (DA 28)"); + case 237: return std::string("Displaymodul mit der Adresse 5 ist ausgefallen (DA 29)"); + case 238: return std::string("Displaymodul mit der Adresse 6 ist ausgefallen (DA 30)"); + case 239: return std::string("Displaymodul mit der Adresse 7 ist ausgefallen (DA 31)"); + case 240: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 243)"); + case 241: return std::string("Heizkreismodul mit der Adresse 0 ist ausgefallen (DA 32)"); + case 242: return std::string("Heizkreismodul mit der Adresse 1 ist ausgefallen (DA 33)"); + case 243: return std::string("Heizkreismodul mit der Adresse 2 ist ausgefallen (DA 34)"); + case 244: return std::string("Heizkreismodul mit der Adresse 3 ist ausgefallen (DA 35)"); + case 245: return std::string("Heizkreismodul mit der Adresse 4 ist ausgefallen (DA 36)"); + case 246: return std::string("Heizkreismodul mit der Adresse 5 ist ausgefallen (DA 37)"); + case 247: return std::string("Heizkreismodul mit der Adresse 6 ist ausgefallen (DA 38)"); + case 248: return std::string("Heizkreismodul mit der Adresse 7 ist ausgefallen (DA 39)"); + case 249: return std::string("Hydraulikmodul mit der Adresse 0 ist ausgefallen (DA 40)"); + case 250: return std::string("Hydraulikmodul mit der Adresse 1 ist ausgefallen (DA 41)"); + case 251: return std::string("Hydraulikmodul mit der Adresse 2 ist ausgefallen (DA 42)"); + case 252: return std::string("Hydraulikmodul mit der Adresse 3 ist ausgefallen (DA 43)"); + case 253: return std::string("Hydraulikmodul mit der Adresse 4 ist ausgefallen (DA 44)"); + case 254: return std::string("Hydraulikmodul mit der Adresse 5 ist ausgefallen (DA 45)"); + case 255: return std::string("Hydraulikmodul mit der Adresse 6 ist ausgefallen (DA 46)"); + case 256: return std::string("Hydraulikmodul mit der Adresse 7 ist ausgefallen (DA 47)"); + case 257: return std::string("Digitalmodul mit der Adresse 0 ist ausgefallen (DA 48)"); + case 258: return std::string("Digitalmodul mit der Adresse 1 ist ausgefallen (DA 49)"); + case 259: return std::string("Digitalmodul mit der Adresse 2 ist ausgefallen (DA 50)"); + case 260: return std::string("Digitalmodul mit der Adresse 3 ist ausgefallen (DA 51)"); + case 261: return std::string("Digitalmodul mit der Adresse 4 ist ausgefallen (DA 52)"); + case 262: return std::string("Digitalmodul mit der Adresse 5 ist ausgefallen (DA 53)"); + case 263: return std::string("Digitalmodul mit der Adresse 6 ist ausgefallen (DA 54)"); + case 264: return std::string("Digitalmodul mit der Adresse 7 ist ausgefallen (DA 55)"); + case 265: return std::string("Kaskadenmodul mit der Adresse 0 ist ausgefallen (DA 56)"); + case 266: return std::string("Kaskadenmodul mit der Adresse 1 ist ausgefallen (DA 57)"); + case 267: return std::string("Kaskadenmodul mit der Adresse 2 ist ausgefallen (DA 58)"); + case 268: return std::string("Kaskadenmodul mit der Adresse 3 ist ausgefallen (DA 59)"); + case 269: return std::string("Kaskadenmodul mit der Adresse 4 ist ausgefallen (DA 60)"); + case 270: return std::string("Kaskadenmodul mit der Adresse 5 ist ausgefallen (DA 61)"); + case 271: return std::string("Kaskadenmodul mit der Adresse 6 ist ausgefallen (DA 62)"); + case 272: return std::string("Kaskadenmodul mit der Adresse 7 ist ausgefallen (DA 63)"); + case 273: return std::string("Analogmodul mit der Adresse 0 ist ausgefallen (DA 64)"); + case 274: return std::string("Analogmodul mit der Adresse 1 ist ausgefallen (DA 65)"); + case 275: return std::string("Analogmodul mit der Adresse 2 ist ausgefallen (DA 66)"); + case 276: return std::string("Analogmodul mit der Adresse 3 ist ausgefallen (DA 67)"); + case 277: return std::string("Analogmodul mit der Adresse 4 ist ausgefallen (DA 68)"); + case 278: return std::string("Analogmodul mit der Adresse 5 ist ausgefallen (DA 69)"); + case 279: return std::string("Analogmodul mit der Adresse 6 ist ausgefallen (DA 70)"); + case 280: return std::string("Analogmodul mit der Adresse 7 ist ausgefallen (DA 71)"); + case 281: return std::string("Touch Display mit der Adresse 0 ist ausgefallen (DA 72)"); + case 282: return std::string("Touch Display mit der Adresse 1 ist ausgefallen (DA 73)"); + case 283: return std::string("Touch Display mit der Adresse 2 ist ausgefallen (DA 74)"); + case 284: return std::string("Touch Display mit der Adresse 3 ist ausgefallen (DA 75)"); + case 285: return std::string("Touch Display mit der Adresse 4 ist ausgefallen (DA 76)"); + case 286: return std::string("Touch Display mit der Adresse 5 ist ausgefallen (DA 77)"); + case 287: return std::string("Touch Display mit der Adresse 6 ist ausgefallen (DA 78)"); + case 288: return std::string("Touch Display mit der Adresse 7 ist ausgefallen (DA 79)"); + case 289: return std::string("Austragungsmodul mit der Adresse 0 ist ausgefallen (DA 80)"); + case 290: return std::string("Austragungsmodul mit der Adresse 1 ist ausgefallen (DA 81)"); + case 291: return std::string("Austragungsmodul mit der Adresse 2 ist ausgefallen (DA 82)"); + case 292: return std::string("Austragungsmodul mit der Adresse 3 ist ausgefallen (DA 83)"); + case 293: return std::string("Austragungsmodul mit der Adresse 4 ist ausgefallen (DA 84)"); + case 294: return std::string("Austragungsmodul mit der Adresse 5 ist ausgefallen (DA 85)"); + case 295: return std::string("Austragungsmodul mit der Adresse 6 ist ausgefallen (DA 86)"); + case 296: return std::string("Austragungsmodul mit der Adresse 7 ist ausgefallen (DA 87)"); + case 297: return std::string("Pelletsmodul mit der Adresse 0 ist ausgefallen (DA 240)"); + case 298: return std::string("Hackgutmodul mit der Adresse 0 ist ausgefallen (DA 241)"); + case 299: return std::string("Saugmodul mit der Adresse 0 ist ausgefallen (DA 242)"); + case 300: return std::string("Breitband Sonden Modul 0 ist ausgefallen (DA 244)"); + case 301: return std::string("Rücklaufmischermodul 0 ist ausgefallen (DA 245)"); + case 302: return std::string("Fühler für Solarreferenz Puffer oben fehlerhaft"); + case 303: return std::string("Fühler für Solarreferenz Puffer unten fehlerhaft"); + case 304: return std::string("MIN Unterdruck im Feuerraum unterschritten"); + case 305: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 1 gefallen"); + case 306: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 2 gefallen"); + case 307: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 1"); + case 308: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 2"); + case 309: return std::string("Schnecke 1 auf LS nicht angesteckt oder funktioniert nicht"); + case 310: return std::string("Schnecke 2 auf LS nicht angesteckt oder funktioniert nicht"); + case 311: return std::string("Saugschnecke von Zyklon 1 nicht angesteckt oder funktioniert nicht"); + case 312: return std::string("Saugschnecke von Zyklon 2 nicht angesteckt oder funktioniert nicht"); + case 313: return std::string("Rührwerk nicht angesteckt oder funktioniert nicht"); + case 314: return std::string("Zu oft Überstrom der Schnecke 1 auf LS"); + case 315: return std::string("Zu oft Überstrom der Schnecke 2 auf LS"); + case 316: return std::string("Falsche oder fehlerhafte Kesselauswahl"); + case 317: return std::string("Falsche oder fehlerhafte Brennstoffauswahl"); + case 318: return std::string("Temperaturüberschreitung am Stokerrohr"); + case 319: return std::string("Kombiantrieb blockiert"); + case 320: return std::string("AGR-Aktivierungsklappe schließt nicht"); + case 321: return std::string("HK1 - Vorlauf-Temperatur zu lange zu hoch"); + case 322: return std::string("HK2 - Vorlauf-Temperatur zu lange zu hoch"); + case 323: return std::string("HK3 - Vorlauf-Temperatur zu lange zu hoch"); + case 324: return std::string("HK4 - Vorlauf-Temperatur zu lange zu hoch"); + case 325: return std::string("HK5 - Vorlauf-Temperatur zu lange zu hoch"); + case 326: return std::string("HK6 - Vorlauf-Temperatur zu lange zu hoch"); + case 327: return std::string("HK7 - Vorlauf-Temperatur zu lange zu hoch"); + case 328: return std::string("HK8 - Vorlauf-Temperatur zu lange zu hoch"); + case 329: return std::string("HK9- Vorlauf-Temperatur zu lange zu hoch"); + case 330: return std::string("HK10- Vorlauf-Temperatur zu lange zu hoch"); + case 331: return std::string("HK11 - Vorlauf-Temperatur zu lange zu hoch"); + case 332: return std::string("HK12 - Vorlauf-Temperatur zu lange zu hoch"); + case 333: return std::string("HK13 - Vorlauf-Temperatur zu lange zu hoch"); + case 334: return std::string("HK14 - Vorlauf-Temperatur zu lange zu hoch"); + case 335: return std::string("HK15 - Vorlauf-Temperatur zu lange zu hoch"); + case 336: return std::string("HK16 - Vorlauf-Temperatur zu lange zu hoch"); + case 337: return std::string("HK17 - Vorlauf-Temperatur zu lange zu hoch"); + case 338: return std::string("HK18 - Vorlauf-Temperatur zu lange zu hoch"); + case 339: return std::string("Boiler Solarreferenz Fühler Fehlerhaft"); + case 340: return std::string("AGR-Druckregelklappe blockiert"); + case 341: return std::string("Druck im AGR-Druckkanal zu lange außerhalb des erlaubten Bereichs"); + case 342: return std::string("Rost-Differenzdruck zu lange zu niedrig"); + case 343: return std::string("Übertemperatur Durchbrandbogenkühlung"); + case 344: return std::string("Ansteuerung des Saugers defekt, bitte Pelletsmodul tauschen"); + case 345: return std::string("Kipprost 1 schließt nicht"); + case 346: return std::string("Kipprost 1 öffnet nicht"); + case 347: return std::string("Rostantrieb 1 meldet beide Endlagen aktiv"); + case 348: return std::string("Kipprost 2 schließt nicht"); + case 349: return std::string("Kipprost 2 öffnet nicht"); + case 350: return std::string("Rostantrieb 2 meldet beide Endlagen aktiv"); + case 351: return std::string("Temperaturanstieg am Fühler 1 ist zu gering"); + case 352: return std::string("AGR-Primärluftklappe blockiert"); + case 353: return std::string("AGR-Sekundärluftklappe blockiert"); + case 354: return std::string("Raumfühler Heizkreis 1 fehlerhaft"); + case 355: return std::string("Raumfühler Heizkreis 2 fehlerhaft"); + case 356: return std::string("Raumfühler Heizkreis 3 fehlerhaft"); + case 357: return std::string("Raumfühler Heizkreis 4 fehlerhaft"); + case 358: return std::string("Raumfühler Heizkreis 5 fehlerhaft"); + case 359: return std::string("Raumfühler Heizkreis 6 fehlerhaft"); + case 360: return std::string("Raumfühler Heizkreis 7 fehlerhaft"); + case 361: return std::string("Raumfühler Heizkreis 8 fehlerhaft"); + case 362: return std::string("Raumfühler Heizkreis 9 fehlerhaft"); + case 363: return std::string("Raumfühler Heizkreis 10 fehlerhaft"); + case 364: return std::string("Raumfühler Heizkreis 11 fehlerhaft"); + case 365: return std::string("Raumfühler Heizkreis 12 fehlerhaft"); + case 366: return std::string("Raumfühler Heizkreis 13 fehlerhaft"); + case 367: return std::string("Raumfühler Heizkreis 14 fehlerhaft"); + case 368: return std::string("Raumfühler Heizkreis 15 fehlerhaft"); + case 369: return std::string("Raumfühler Heizkreis 16 fehlerhaft"); + case 370: return std::string("Raumfühler Heizkreis 17 fehlerhaft"); + case 371: return std::string("Raumfühler Heizkreis 18 fehlerhaft"); + case 372: return std::string("011 EEPROM Prüfsumme 2 falsch"); + case 373: return std::string("STB, min. Druck, max. Druck oder Wassermangelsicherung ausgelöst."); + case 374: return std::string("AGR-Klappe blockiert"); + case 375: return std::string("Rücklauftemperatur zu hoch"); + case 376: return std::string("Kesseltür offen oder Unterdruckmessdose defekt"); + case 377: return std::string("Saugzug dreht sich ohne Ansteuerung"); + case 378: return std::string("Bitte den Kessel jetzt zur Vorbereitung für die Kaminkehrermessung anheizen!"); + case 379: return std::string("Rücklauftemperatur zu lange über Kesseltemperatur"); + case 380: return std::string("Ansaugöffnung kontrollieren"); + case 381: return std::string("Kondensatabfluss kontrollieren"); + case 382: return std::string("Unterdruck zu niedrig"); + case 383: return std::string("Laufrichtung Absperrschieber kontrollieren."); + case 384: return std::string("Aschebehälter voll oder WOS blockiert - Noch 20h Heizbetrieb möglich"); + case 385: return std::string("Stokerantrieb zieht Strom ohne Ansteuerung"); + case 386: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 387: return std::string("Kipprost 3 schließt nicht"); + case 388: return std::string("Kipprost 3 öffnet nicht"); + case 389: return std::string("Rostantrieb 3 meldet beide Endlagen aktiv"); + case 390: return std::string("Fühler Durchbrandbogen fehlerhaft"); + case 391: return std::string("Fühler 2 im Puffer 1 fehlerhaft"); + case 392: return std::string("Fühler 2 im Puffer 2 fehlerhaft"); + case 393: return std::string("Fühler 2 im Puffer 3 fehlerhaft"); + case 394: return std::string("Fühler 2 im Puffer 4 fehlerhaft"); + case 395: return std::string("Rostmotor konnte Endlage nicht halten"); + case 396: return std::string("Unterdruck im VORBEREITEN gering - Reinigungszustand des Kessels prüfen!"); + case 397: return std::string("Unzulässiger Temperaturanstieg am Stoker"); + case 398: return std::string("Motorschutz der Ascheschnecke gefallen."); + case 399: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Restsauerstoff nicht stabil"); + case 400: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abgastemperatur zu niedrig"); + case 401: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Feuerraumtemp. zu gering"); + case 402: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Leistungsabnahme zu gering"); + case 403: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abscheideleistung zu gering"); + case 404: return std::string("Fühler 3 im Puffer 1 fehlerhaft"); + case 405: return std::string("Fühler 3 im Puffer 2 fehlerhaft"); + case 406: return std::string("Fühler 3 im Puffer 3 fehlerhaft"); + case 407: return std::string("Fühler 3 im Puffer 4 fehlerhaft"); + case 408: return std::string("Saugschnecke 1 nicht angesteckt oder funktioniert nicht"); + case 409: return std::string("Saugschnecke 2 nicht angesteckt oder funktioniert nicht"); + case 410: return std::string("Saugschnecke 3 nicht angesteckt oder funktioniert nicht"); + case 411: return std::string("Zu oft Überstrom der Saugschnecke 1"); + case 412: return std::string("Zu oft Überstrom der Saugschnecke 2"); + case 413: return std::string("Zu oft Überstrom der Saugschnecke 3"); + case 414: return std::string("Motorschutzschalter der Saugschnecke 1 gefallen"); + case 415: return std::string("Motorschutzschalter der Saugschnecke 2 gefallen"); + case 416: return std::string("Motorschutzschalter der Saugschnecke 3 gefallen"); + case 417: return std::string("Ist ein Wärmequellenfüher vorhanden?"); + case 418: return std::string("Drehzahlprüfung im Vorbereiten fehlgeschlagen"); + case 419: return std::string("Unterdruck im Vorbereiten gering – Brenner reinigen!"); + case 420: return std::string("Unterdruck im Vorbereiten zu gering"); + case 421: return std::string("Zündversuch ist nicht gelungen. - ACHTUNG! Werden Maßnahmen nicht befolgt, kann eine gefährliche Situation eintreten - LEBENSGEFAHR!"); + case 422: return std::string("Fühler in der STB Hülse fehlerhaft"); + case 423: return std::string("Überdruck vor Zyklonabscheider erkannt"); + case 424: return std::string("Kesseltemperaturfühler 2 fehlerhaft"); + case 425: return std::string("Fühler 4 im Puffer 1 fehlerhaft"); + case 426: return std::string("Fühler 5 im Puffer 1 fehlerhaft"); + case 427: return std::string("Fühler 6 im Puffer 1 fehlerhaft"); + case 428: return std::string("Fühler 7 im Puffer 1 fehlerhaft"); + case 429: return std::string("Vorlauffühler für Wärmemengenerfassung des Kessels fehlerhaft"); + default: return std::string("----"); + } + return x; + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Fehler 4" + id: ${lower_name}_Fehler_4 + register_type: read + address: 3003 + raw_encode: HEXBYTES + lambda: |- + uint16_t value = modbus_controller::word_from_hex_str(x, 0); + switch (value) { + case 0: return std::string("STB gefallen oder NOT-AUS betätigt"); + case 1: return std::string("Kesseltemperaturfühler fehlerhaft"); + case 2: return std::string("Primärluftklappe blockiert"); + case 3: return std::string("Sekundärluftklappe blockiert"); + case 4: return std::string("Kessel zieht zu viel Falschluft"); + case 5: return std::string("Kontrolle von Feuerraum- Überdruckwächter durchführen"); + case 6: return std::string("Rückbrandschieber schließt nicht"); + case 7: return std::string("Rückbrandschieber öffnet nicht"); + case 8: return std::string("Rostantrieb defekt"); + case 9: return std::string("Rost Fehler"); + case 10: return std::string("Rostreinigung fehlerhaft"); + case 11: return std::string("Zündversuch ist nicht gelungen"); + case 12: return std::string("Sicherheitszeit abgelaufen Sauerstoffgehalt zu lange zu hoch"); + case 13: return std::string("Sicherheitszeit abgelaufen Abgastemperatur zu lange zu niedrig"); + case 14: return std::string("Kesseltür zu lange offen"); + case 15: return std::string("Stopfsensor für länger als 5min belegt"); + case 16: return std::string("Raumaustragung kontrollieren"); + case 17: return std::string("Lagerraum kontrollieren"); + case 18: return std::string("Rücklauftemperaturfühler fehlerhaft"); + case 19: return std::string("Rücklauftemperatur seit mehr als 30 Minuten zu niedrig"); + case 20: return std::string("Fernversteller Heizkreis 1 fehlerhaft"); + case 21: return std::string("Vorlauftemperaturfühler Heizkreis 1 fehlerhaft"); + case 22: return std::string("Fernversteller Heizkreis 2 fehlerhaft"); + case 23: return std::string("Vorlauftemperaturfühler Heizkreis 2 fehlerhaft"); + case 24: return std::string("Außentemperaturfühler fehlerhaft"); + case 25: return std::string("NOT-AUS Kontakt wurde betätigt"); + case 26: return std::string("Fernversteller Heizkreis 3 fehlerhaft"); + case 27: return std::string("Fernversteller Heizkreis 4 fehlerhaft"); + case 28: return std::string("Fernversteller Heizkreis 5 fehlerhaft"); + case 29: return std::string("Fernversteller Heizkreis 6 fehlerhaft"); + case 30: return std::string("Fernversteller Heizkreis 7 fehlerhaft"); + case 31: return std::string("Fernversteller Heizkreis 8 fehlerhaft"); + case 32: return std::string("Fernversteller Heizkreis 9 fehlerhaft"); + case 33: return std::string("Fernversteller Heizkreis 10 fehlerhaft"); + case 34: return std::string("Fernversteller Heizkreis 11 fehlerhaft"); + case 35: return std::string("Fernversteller Heizkreis 12 fehlerhaft"); + case 36: return std::string("Fernversteller Heizkreis 13 fehlerhaft"); + case 37: return std::string("Fernversteller Heizkreis 14 fehlerhaft"); + case 38: return std::string("Fernversteller Heizkreis 15 fehlerhaft"); + case 39: return std::string("Fernversteller Heizkreis 16 fehlerhaft"); + case 40: return std::string("Fernversteller Heizkreis 17 fehlerhaft"); + case 41: return std::string("Fernversteller Heizkreis 18 fehlerhaft"); + case 42: return std::string("Vorlauftemperaturfühler Heizkreis 3 fehlerhaft"); + case 43: return std::string("Vorlauftemperaturfühler Heizkreis 4 fehlerhaft"); + case 44: return std::string("Vorlauftemperaturfühler Heizkreis 5 fehlerhaft"); + case 45: return std::string("Vorlauftemperaturfühler Heizkreis 6 fehlerhaft"); + case 46: return std::string("Vorlauftemperaturfühler Heizkreis 7 fehlerhaft"); + case 47: return std::string("Vorlauftemperaturfühler Heizkreis 8 fehlerhaft"); + case 48: return std::string("Vorlauftemperaturfühler Heizkreis 9 fehlerhaft"); + case 49: return std::string("Vorlauftemperaturfühler Heizkreis 10 fehlerhaft"); + case 50: return std::string("Vorlauftemperaturfühler Heizkreis 11 fehlerhaft"); + case 51: return std::string("Vorlauftemperaturfühler Heizkreis 12 fehlerhaft"); + case 52: return std::string("Vorlauftemperaturfühler Heizkreis 13 fehlerhaft"); + case 53: return std::string("Vorlauftemperaturfühler Heizkreis 14 fehlerhaft"); + case 54: return std::string("Vorlauftemperaturfühler Heizkreis 15 fehlerhaft"); + case 55: return std::string("Vorlauftemperaturfühler Heizkreis 16 fehlerhaft"); + case 56: return std::string("Vorlauftemperaturfühler Heizkreis 17 fehlerhaft"); + case 57: return std::string("Vorlauftemperaturfühler Heizkreis 18 fehlerhaft"); + case 58: return std::string("Vor dem Stromausfall ist ein Busmodul ausgefallen"); + case 59: return std::string("Saugzug dreht sich nicht, trotz voller Ansteuerung"); + case 60: return std::string("Fühler im Boiler 01 fehlerhaft"); + case 61: return std::string("Kommunikation zum Pelletsmodul fehlerhaft"); + case 62: return std::string(""); + case 63: return std::string("001 EEPROM Lesefehler"); + case 64: return std::string("002 EEPROM Prüfsumme Null"); + case 65: return std::string("003 EEPROM Lesefehler"); + case 66: return std::string("004 EEPROM SW-Version falsch"); + case 67: return std::string("005 EEPROM Parameterlänge falsch"); + case 68: return std::string("006 EEPROM Lesefehler"); + case 69: return std::string("007 EEPROM Prüfsumme falsch"); + case 70: return std::string("008 EEPROM Schreibfehler"); + case 71: return std::string("009 EEPROM Schreibfehler"); + case 72: return std::string("010 Konfig. Listenfehler"); + case 73: return std::string("Fühler im Boiler 02 fehlerhaft"); + case 74: return std::string("Fühler im Boiler 03 fehlerhaft"); + case 75: return std::string("Fühler im Boiler 04 fehlerhaft"); + case 76: return std::string("Fühler im Boiler 05 fehlerhaft"); + case 77: return std::string("Fühler im Boiler 06 fehlerhaft"); + case 78: return std::string("Fühler im Boiler 07 fehlerhaft"); + case 79: return std::string("Fühler im Boiler 08 fehlerhaft"); + case 80: return std::string("Fühler Solarreferenz im Boiler 01 fehlerhaft"); + case 81: return std::string("Fühler Solarreferenz im Boiler 02 fehlerhaft"); + case 82: return std::string("Fühler Solarreferenz im Boiler 03 fehlerhaft"); + case 83: return std::string("Fühler Solarreferenz im Boiler 04 fehlerhaft"); + case 84: return std::string("Fühler Solarreferenz im Boiler 05 fehlerhaft"); + case 85: return std::string("Fühler Solarreferenz im Boiler 06 fehlerhaft"); + case 86: return std::string("Fühler Solarreferenz im Boiler 07 fehlerhaft"); + case 87: return std::string("Fühler Solarreferenz im Boiler 08 fehlerhaft"); + case 88: return std::string("Fühler oben im Puffer 1 fehlerhaft"); + case 89: return std::string("Fühler oben im Puffer 2 fehlerhaft"); + case 90: return std::string("Fühler oben im Puffer 3 fehlerhaft"); + case 91: return std::string("Fühler oben im Puffer 4 fehlerhaft"); + case 92: return std::string("Fühler Mitte im Puffer 1 fehlerhaft"); + case 93: return std::string("Fühler Mitte im Puffer 2 fehlerhaft"); + case 94: return std::string("Fühler Mitte im Puffer 3 fehlerhaft"); + case 95: return std::string("Fühler Mitte im Puffer 4 fehlerhaft"); + case 96: return std::string("Fühler unten im Puffer 1 fehlerhaft"); + case 97: return std::string("Fühler unten im Puffer 2 fehlerhaft"); + case 98: return std::string("Fühler unten im Puffer 3 fehlerhaft"); + case 99: return std::string("Fühler unten im Puffer 4 fehlerhaft"); + case 100: return std::string("Fühler im Zweitkessel fehlerhaft"); + case 101: return std::string("Kollektor-Überhitzung oder Kollektorfühler unterbrochen"); + case 102: return std::string("Fühler im Zusatzkessel fehlerhaft"); + case 103: return std::string("Der Füllstand kann nicht richtig interpretiert werden"); + case 104: return std::string("Die Bypassklappe konnte nicht öffnen"); + case 105: return std::string("Die Bypassklappe konnte nicht geschlossen werden"); + case 106: return std::string("Die Laufzeit zum Füllen wurde überschritten"); + case 107: return std::string("Die Austragsschnecke stopft an der Saugstelle"); + case 108: return std::string("Die Bypassklappe konnte weder öffnen noch schließen"); + case 109: return std::string("Zündversuch nicht gelungen von Hand Anheizen!"); + case 110: return std::string("Motorschutzschalter Saugzug gefallen"); + case 111: return std::string("Motorschutzschalter Stoker gefallen"); + case 112: return std::string("Motorschutzschalter Förderschnecke gefallen"); + case 113: return std::string("Rückbrandklappe öffnet zu schnell"); + case 114: return std::string("Rückbrandklappe schließt zu schnell"); + case 115: return std::string("Keine/Beide Endlagen der Rückbrandklappe aktiv"); + case 116: return std::string("Motorschutzschalter Zellradschleuse gefallen"); + case 117: return std::string("Lambdasonde defekt"); + case 118: return std::string("Abgastemperaturfühler defekt"); + case 119: return std::string("Feuerraumtemperaturfühler defekt"); + case 120: return std::string("LS im Fallschacht defekt"); + case 121: return std::string("Fallschachtdeckel offen"); + case 122: return std::string("Kesseltür zu lange offen oder Unterdruckmessdose defekt"); + case 123: return std::string("Rost öffnet nicht"); + case 124: return std::string("Sicherheitszeit wegen Füllstandsensor im Saugzyklon abgelaufen."); + case 125: return std::string("Motorschutz der Austragsschnecke gefallen"); + case 126: return std::string("Stoker hat zu wenig Material"); + case 127: return std::string("Austragsschnecke Fehler"); + case 128: return std::string("GEFÄHRLICHER Zustand möglich"); + case 129: return std::string("Hackgutmodul ausgefallen -> Sofortabschaltung"); + case 130: return std::string("Saugmodul ausgefallen \n-> Sofortabschaltung"); + case 131: return std::string("Brennstoff lt. Anleitung einlegen"); + case 132: return std::string("RL Fühler für Netzpumpe fehlerhaft"); + case 133: return std::string("LS im Fallschacht der Austragsschnecke defekt (Voll)"); + case 134: return std::string("Fallschachtdeckel der Austragsschnecke offen"); + case 135: return std::string("Motorschutzschalter Austragsschnecke gefallen"); + case 136: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Voll)"); + case 137: return std::string("Fallschachtdeckel der Zwischenschnecke 1 offen"); + case 138: return std::string("Motorschutzschalter der Zwischenschnecke 1 gefallen"); + case 139: return std::string("Brenner reinigen und kontrollieren"); + case 140: return std::string("Rost schließt nicht"); + case 141: return std::string("Rückbrandklappe schließt nicht"); + case 142: return std::string("Rückbrandklappe öffnet nicht"); + case 143: return std::string("Zu oft Überstrom Zellradschleuse"); + case 144: return std::string("Zu oft Überstrom Stokerschnecke"); + case 145: return std::string("Zu oft Überstrom Förderschnecke"); + case 146: return std::string("Steuerung neu gestartet"); + case 147: return std::string("Rücklauffühler für Verteiler 1 fehlerhaft"); + case 148: return std::string("Rücklauffühler für Verteiler 2 fehlerhaft"); + case 149: return std::string("Rücklauffühler für Verteiler 3 fehlerhaft"); + case 150: return std::string("Rücklauffühler für Verteiler 4 fehlerhaft"); + case 151: return std::string("maximaler Einschub nach Änderung neu berechnet und begrenzt"); + case 152: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Leer)"); + case 153: return std::string("LS im Fallschacht der Austragsschnecke defekt (Leer)"); + case 154: return std::string("Absperrschieber blockiert"); + case 155: return std::string("Fehler Kessel und Brennstoffauswahl"); + case 156: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 157: return std::string("Kesselundichtheit festgestellt aufgrund Einschuberkennung"); + case 158: return std::string("Kesselundichtheit festgestellt aufgrund O2 Überwachung"); + case 159: return std::string("Fühler für Zirkulationspumpe fehlerhaft"); + case 160: return std::string("Fühler für Solar WT sek. Vorlauf fehlerhaft"); + case 161: return std::string("Fühler für Solar Kollektor Rücklauf fehlerhaft"); + case 162: return std::string("Lambdasonde defekt"); + case 163: return std::string("Fehlerbehebung wurde abgebrochen"); + case 164: return std::string("Wärmequellen Fühler des Differenzregler defekt"); + case 165: return std::string("Wärmesenken Fühler des Differenzregler defekt"); + case 166: return std::string("Variante 3, es wurde ein Puffer und ein Verteiler mit der selben Nummer aktiviert"); + case 167: return std::string("Sondenumschaltung aufgrund Pelletsmangel oder Stopfsensor"); + case 168: return std::string("Vorratsbehälter leer, bitte Pellets Nachfüllen"); + case 169: return std::string("Aschebox voll, bitte entleeren"); + case 170: return std::string("Rostantrieb hat Überstrom, bitte 5 min warten"); + case 171: return std::string("Fühler 1 fehlerhaft"); + case 172: return std::string("Puffer Solarreferenz Fühler Fehlerhaft"); + case 173: return std::string("Aschebox voll, bitte entleeren"); + case 174: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 175: return std::string("Breitbandsonde nicht angesteckt oder Heizung der Sonde defekt"); + case 176: return std::string("Sensorelement der Breitbandsonde Fehlerhaft oder Kurzschluss"); + case 177: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 178: return std::string("Förderschnecke nicht angesteckt oder funktioniert nicht"); + case 179: return std::string("Aschebox zu lange offen, bzw. entfernt"); + case 180: return std::string("Unterdruck im VORBEREITEN zu gering"); + case 181: return std::string("Luftklappe blockiert"); + case 182: return std::string("Rücklaufanhebung und Boiler mittels HKP0 ist nicht möglich (gleicher Fühler)"); + case 183: return std::string("Frequenzumformer fehlerhaft"); + case 184: return std::string("Temperaturüberwachung des Saugzuges hat angesprochen (Klixon)"); + case 185: return std::string("linker Teil des Rostes schließt nicht"); + case 186: return std::string("rechter Teil des Rostes schließt nicht"); + case 187: return std::string("linker Teil des Rostes öffnet nicht"); + case 188: return std::string("rechter Teil des Rostes öffnet nicht"); + case 189: return std::string("Motorschutz des VBL hat angesprochen"); + case 190: return std::string("Motorschutz der Kesselladepumpe hat angesprochen"); + case 191: return std::string("Zu oft Überstrom Austragschnecke"); + case 192: return std::string("Zu oft Überstrom Zwischenschnecke"); + case 193: return std::string("Automatische Raumluftklappe öffnet nicht"); + case 194: return std::string("Luftzufuhr Fehlerhaft oder verschlossen"); + case 195: return std::string("Sicherheitszeit wegen Minsensor im Saugzyklon abgelaufen."); + case 196: return std::string("Saugzugschalter nicht auf AUTO"); + case 197: return std::string("Motorschutzschalter Schubboden hat angesprochen"); + case 198: return std::string("Niveau für Hydrauliköl bei Schubboden zu niedrig"); + case 199: return std::string("Temperatur des Hydrauliköls für den Schubboden zu hoch"); + case 200: return std::string("Schlüsselschalter für Hydraulikraum nicht auf AUTO"); + case 201: return std::string("Sicherheitsendschalter für Schubboden hat angesprochen"); + case 202: return std::string("Wassertemperatur im Pelletsbrenner (F1) zu hoch"); + case 203: return std::string("WOS Antrieb ist blockiert oder nicht angeschlossen"); + case 204: return std::string("Luftdurchsatz zu gering oder Luftzufuhr fehlerhaft"); + case 205: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 206: return std::string("Überfüllsicherung der ZRS hat angesprochen"); + case 207: return std::string("Zellradschleuse nicht angesteckt oder funktioniert nicht"); + case 208: return std::string("eingestellte Anzahl der Zwangszyklen am Schubboden überschritten"); + case 209: return std::string("Kesselstandardwerte nicht gesetzt (Menü Einstellen --> Allg. Einst.)"); + case 210: return std::string("Unterrostthermostat hat ausgelöst"); + case 211: return std::string("Unterdruck im VORBEREITEN zu hoch"); + case 212: return std::string("Rostantrieb meldet beide Endlagen aktiv"); + case 213: return std::string("Austragung kontrollieren"); + case 214: return std::string("Modul-Update fehlgeschlagen, bitte Pelletsmodul tauschen"); + case 215: return std::string("Messbereitschaft konnte nicht hergestellt werden"); + case 216: return std::string("Messbereitschaft konnte nicht aufrecht erhalten werden"); + case 217: return std::string("Eingestellter Mindestbestand im Pelletlager unterschritten"); + case 218: return std::string("Ungültige Parametrierung der Austragung"); + case 219: return std::string("Lichtschranke dauerhaft belegt oder defekt"); + case 220: return std::string("Temperaturüberschreitung am Wärmetauscher"); + case 221: return std::string("Motorschutzschalter vom Rührwerk gefallen"); + case 222: return std::string("FU Betriebssignal vom AGR-Gebläse abgefallen"); + case 223: return std::string("Sicherheitsschalter E-Filter geöffnet"); + case 224: return std::string("Fehler Wassersensor E-Filter"); + case 225: return std::string("Übertemperatur HV-Box"); + case 226: return std::string("Kommunikationsfehler E-Filter"); + case 227: return std::string("HV-Fehler E-Filter"); + case 228: return std::string("Betriebssignal vom Saugzug FU fehlerhaft"); + case 229: return std::string("Störung der DBBK Pumpe"); + case 230: return std::string("Motorschutzschalter Der Schnecke 1 auf LS gefallen"); + case 231: return std::string("Motorschutzschalter Der Schnecke 2 auf LS gefallen"); + case 232: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 24)"); + case 233: return std::string("Displaymodul mit der Adresse 1 ist ausgefallen (DA 25)"); + case 234: return std::string("Displaymodul mit der Adresse 2 ist ausgefallen (DA 26)"); + case 235: return std::string("Displaymodul mit der Adresse 3 ist ausgefallen (DA 27)"); + case 236: return std::string("Displaymodul mit der Adresse 4 ist ausgefallen (DA 28)"); + case 237: return std::string("Displaymodul mit der Adresse 5 ist ausgefallen (DA 29)"); + case 238: return std::string("Displaymodul mit der Adresse 6 ist ausgefallen (DA 30)"); + case 239: return std::string("Displaymodul mit der Adresse 7 ist ausgefallen (DA 31)"); + case 240: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 243)"); + case 241: return std::string("Heizkreismodul mit der Adresse 0 ist ausgefallen (DA 32)"); + case 242: return std::string("Heizkreismodul mit der Adresse 1 ist ausgefallen (DA 33)"); + case 243: return std::string("Heizkreismodul mit der Adresse 2 ist ausgefallen (DA 34)"); + case 244: return std::string("Heizkreismodul mit der Adresse 3 ist ausgefallen (DA 35)"); + case 245: return std::string("Heizkreismodul mit der Adresse 4 ist ausgefallen (DA 36)"); + case 246: return std::string("Heizkreismodul mit der Adresse 5 ist ausgefallen (DA 37)"); + case 247: return std::string("Heizkreismodul mit der Adresse 6 ist ausgefallen (DA 38)"); + case 248: return std::string("Heizkreismodul mit der Adresse 7 ist ausgefallen (DA 39)"); + case 249: return std::string("Hydraulikmodul mit der Adresse 0 ist ausgefallen (DA 40)"); + case 250: return std::string("Hydraulikmodul mit der Adresse 1 ist ausgefallen (DA 41)"); + case 251: return std::string("Hydraulikmodul mit der Adresse 2 ist ausgefallen (DA 42)"); + case 252: return std::string("Hydraulikmodul mit der Adresse 3 ist ausgefallen (DA 43)"); + case 253: return std::string("Hydraulikmodul mit der Adresse 4 ist ausgefallen (DA 44)"); + case 254: return std::string("Hydraulikmodul mit der Adresse 5 ist ausgefallen (DA 45)"); + case 255: return std::string("Hydraulikmodul mit der Adresse 6 ist ausgefallen (DA 46)"); + case 256: return std::string("Hydraulikmodul mit der Adresse 7 ist ausgefallen (DA 47)"); + case 257: return std::string("Digitalmodul mit der Adresse 0 ist ausgefallen (DA 48)"); + case 258: return std::string("Digitalmodul mit der Adresse 1 ist ausgefallen (DA 49)"); + case 259: return std::string("Digitalmodul mit der Adresse 2 ist ausgefallen (DA 50)"); + case 260: return std::string("Digitalmodul mit der Adresse 3 ist ausgefallen (DA 51)"); + case 261: return std::string("Digitalmodul mit der Adresse 4 ist ausgefallen (DA 52)"); + case 262: return std::string("Digitalmodul mit der Adresse 5 ist ausgefallen (DA 53)"); + case 263: return std::string("Digitalmodul mit der Adresse 6 ist ausgefallen (DA 54)"); + case 264: return std::string("Digitalmodul mit der Adresse 7 ist ausgefallen (DA 55)"); + case 265: return std::string("Kaskadenmodul mit der Adresse 0 ist ausgefallen (DA 56)"); + case 266: return std::string("Kaskadenmodul mit der Adresse 1 ist ausgefallen (DA 57)"); + case 267: return std::string("Kaskadenmodul mit der Adresse 2 ist ausgefallen (DA 58)"); + case 268: return std::string("Kaskadenmodul mit der Adresse 3 ist ausgefallen (DA 59)"); + case 269: return std::string("Kaskadenmodul mit der Adresse 4 ist ausgefallen (DA 60)"); + case 270: return std::string("Kaskadenmodul mit der Adresse 5 ist ausgefallen (DA 61)"); + case 271: return std::string("Kaskadenmodul mit der Adresse 6 ist ausgefallen (DA 62)"); + case 272: return std::string("Kaskadenmodul mit der Adresse 7 ist ausgefallen (DA 63)"); + case 273: return std::string("Analogmodul mit der Adresse 0 ist ausgefallen (DA 64)"); + case 274: return std::string("Analogmodul mit der Adresse 1 ist ausgefallen (DA 65)"); + case 275: return std::string("Analogmodul mit der Adresse 2 ist ausgefallen (DA 66)"); + case 276: return std::string("Analogmodul mit der Adresse 3 ist ausgefallen (DA 67)"); + case 277: return std::string("Analogmodul mit der Adresse 4 ist ausgefallen (DA 68)"); + case 278: return std::string("Analogmodul mit der Adresse 5 ist ausgefallen (DA 69)"); + case 279: return std::string("Analogmodul mit der Adresse 6 ist ausgefallen (DA 70)"); + case 280: return std::string("Analogmodul mit der Adresse 7 ist ausgefallen (DA 71)"); + case 281: return std::string("Touch Display mit der Adresse 0 ist ausgefallen (DA 72)"); + case 282: return std::string("Touch Display mit der Adresse 1 ist ausgefallen (DA 73)"); + case 283: return std::string("Touch Display mit der Adresse 2 ist ausgefallen (DA 74)"); + case 284: return std::string("Touch Display mit der Adresse 3 ist ausgefallen (DA 75)"); + case 285: return std::string("Touch Display mit der Adresse 4 ist ausgefallen (DA 76)"); + case 286: return std::string("Touch Display mit der Adresse 5 ist ausgefallen (DA 77)"); + case 287: return std::string("Touch Display mit der Adresse 6 ist ausgefallen (DA 78)"); + case 288: return std::string("Touch Display mit der Adresse 7 ist ausgefallen (DA 79)"); + case 289: return std::string("Austragungsmodul mit der Adresse 0 ist ausgefallen (DA 80)"); + case 290: return std::string("Austragungsmodul mit der Adresse 1 ist ausgefallen (DA 81)"); + case 291: return std::string("Austragungsmodul mit der Adresse 2 ist ausgefallen (DA 82)"); + case 292: return std::string("Austragungsmodul mit der Adresse 3 ist ausgefallen (DA 83)"); + case 293: return std::string("Austragungsmodul mit der Adresse 4 ist ausgefallen (DA 84)"); + case 294: return std::string("Austragungsmodul mit der Adresse 5 ist ausgefallen (DA 85)"); + case 295: return std::string("Austragungsmodul mit der Adresse 6 ist ausgefallen (DA 86)"); + case 296: return std::string("Austragungsmodul mit der Adresse 7 ist ausgefallen (DA 87)"); + case 297: return std::string("Pelletsmodul mit der Adresse 0 ist ausgefallen (DA 240)"); + case 298: return std::string("Hackgutmodul mit der Adresse 0 ist ausgefallen (DA 241)"); + case 299: return std::string("Saugmodul mit der Adresse 0 ist ausgefallen (DA 242)"); + case 300: return std::string("Breitband Sonden Modul 0 ist ausgefallen (DA 244)"); + case 301: return std::string("Rücklaufmischermodul 0 ist ausgefallen (DA 245)"); + case 302: return std::string("Fühler für Solarreferenz Puffer oben fehlerhaft"); + case 303: return std::string("Fühler für Solarreferenz Puffer unten fehlerhaft"); + case 304: return std::string("MIN Unterdruck im Feuerraum unterschritten"); + case 305: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 1 gefallen"); + case 306: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 2 gefallen"); + case 307: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 1"); + case 308: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 2"); + case 309: return std::string("Schnecke 1 auf LS nicht angesteckt oder funktioniert nicht"); + case 310: return std::string("Schnecke 2 auf LS nicht angesteckt oder funktioniert nicht"); + case 311: return std::string("Saugschnecke von Zyklon 1 nicht angesteckt oder funktioniert nicht"); + case 312: return std::string("Saugschnecke von Zyklon 2 nicht angesteckt oder funktioniert nicht"); + case 313: return std::string("Rührwerk nicht angesteckt oder funktioniert nicht"); + case 314: return std::string("Zu oft Überstrom der Schnecke 1 auf LS"); + case 315: return std::string("Zu oft Überstrom der Schnecke 2 auf LS"); + case 316: return std::string("Falsche oder fehlerhafte Kesselauswahl"); + case 317: return std::string("Falsche oder fehlerhafte Brennstoffauswahl"); + case 318: return std::string("Temperaturüberschreitung am Stokerrohr"); + case 319: return std::string("Kombiantrieb blockiert"); + case 320: return std::string("AGR-Aktivierungsklappe schließt nicht"); + case 321: return std::string("HK1 - Vorlauf-Temperatur zu lange zu hoch"); + case 322: return std::string("HK2 - Vorlauf-Temperatur zu lange zu hoch"); + case 323: return std::string("HK3 - Vorlauf-Temperatur zu lange zu hoch"); + case 324: return std::string("HK4 - Vorlauf-Temperatur zu lange zu hoch"); + case 325: return std::string("HK5 - Vorlauf-Temperatur zu lange zu hoch"); + case 326: return std::string("HK6 - Vorlauf-Temperatur zu lange zu hoch"); + case 327: return std::string("HK7 - Vorlauf-Temperatur zu lange zu hoch"); + case 328: return std::string("HK8 - Vorlauf-Temperatur zu lange zu hoch"); + case 329: return std::string("HK9- Vorlauf-Temperatur zu lange zu hoch"); + case 330: return std::string("HK10- Vorlauf-Temperatur zu lange zu hoch"); + case 331: return std::string("HK11 - Vorlauf-Temperatur zu lange zu hoch"); + case 332: return std::string("HK12 - Vorlauf-Temperatur zu lange zu hoch"); + case 333: return std::string("HK13 - Vorlauf-Temperatur zu lange zu hoch"); + case 334: return std::string("HK14 - Vorlauf-Temperatur zu lange zu hoch"); + case 335: return std::string("HK15 - Vorlauf-Temperatur zu lange zu hoch"); + case 336: return std::string("HK16 - Vorlauf-Temperatur zu lange zu hoch"); + case 337: return std::string("HK17 - Vorlauf-Temperatur zu lange zu hoch"); + case 338: return std::string("HK18 - Vorlauf-Temperatur zu lange zu hoch"); + case 339: return std::string("Boiler Solarreferenz Fühler Fehlerhaft"); + case 340: return std::string("AGR-Druckregelklappe blockiert"); + case 341: return std::string("Druck im AGR-Druckkanal zu lange außerhalb des erlaubten Bereichs"); + case 342: return std::string("Rost-Differenzdruck zu lange zu niedrig"); + case 343: return std::string("Übertemperatur Durchbrandbogenkühlung"); + case 344: return std::string("Ansteuerung des Saugers defekt, bitte Pelletsmodul tauschen"); + case 345: return std::string("Kipprost 1 schließt nicht"); + case 346: return std::string("Kipprost 1 öffnet nicht"); + case 347: return std::string("Rostantrieb 1 meldet beide Endlagen aktiv"); + case 348: return std::string("Kipprost 2 schließt nicht"); + case 349: return std::string("Kipprost 2 öffnet nicht"); + case 350: return std::string("Rostantrieb 2 meldet beide Endlagen aktiv"); + case 351: return std::string("Temperaturanstieg am Fühler 1 ist zu gering"); + case 352: return std::string("AGR-Primärluftklappe blockiert"); + case 353: return std::string("AGR-Sekundärluftklappe blockiert"); + case 354: return std::string("Raumfühler Heizkreis 1 fehlerhaft"); + case 355: return std::string("Raumfühler Heizkreis 2 fehlerhaft"); + case 356: return std::string("Raumfühler Heizkreis 3 fehlerhaft"); + case 357: return std::string("Raumfühler Heizkreis 4 fehlerhaft"); + case 358: return std::string("Raumfühler Heizkreis 5 fehlerhaft"); + case 359: return std::string("Raumfühler Heizkreis 6 fehlerhaft"); + case 360: return std::string("Raumfühler Heizkreis 7 fehlerhaft"); + case 361: return std::string("Raumfühler Heizkreis 8 fehlerhaft"); + case 362: return std::string("Raumfühler Heizkreis 9 fehlerhaft"); + case 363: return std::string("Raumfühler Heizkreis 10 fehlerhaft"); + case 364: return std::string("Raumfühler Heizkreis 11 fehlerhaft"); + case 365: return std::string("Raumfühler Heizkreis 12 fehlerhaft"); + case 366: return std::string("Raumfühler Heizkreis 13 fehlerhaft"); + case 367: return std::string("Raumfühler Heizkreis 14 fehlerhaft"); + case 368: return std::string("Raumfühler Heizkreis 15 fehlerhaft"); + case 369: return std::string("Raumfühler Heizkreis 16 fehlerhaft"); + case 370: return std::string("Raumfühler Heizkreis 17 fehlerhaft"); + case 371: return std::string("Raumfühler Heizkreis 18 fehlerhaft"); + case 372: return std::string("011 EEPROM Prüfsumme 2 falsch"); + case 373: return std::string("STB, min. Druck, max. Druck oder Wassermangelsicherung ausgelöst."); + case 374: return std::string("AGR-Klappe blockiert"); + case 375: return std::string("Rücklauftemperatur zu hoch"); + case 376: return std::string("Kesseltür offen oder Unterdruckmessdose defekt"); + case 377: return std::string("Saugzug dreht sich ohne Ansteuerung"); + case 378: return std::string("Bitte den Kessel jetzt zur Vorbereitung für die Kaminkehrermessung anheizen!"); + case 379: return std::string("Rücklauftemperatur zu lange über Kesseltemperatur"); + case 380: return std::string("Ansaugöffnung kontrollieren"); + case 381: return std::string("Kondensatabfluss kontrollieren"); + case 382: return std::string("Unterdruck zu niedrig"); + case 383: return std::string("Laufrichtung Absperrschieber kontrollieren."); + case 384: return std::string("Aschebehälter voll oder WOS blockiert - Noch 20h Heizbetrieb möglich"); + case 385: return std::string("Stokerantrieb zieht Strom ohne Ansteuerung"); + case 386: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 387: return std::string("Kipprost 3 schließt nicht"); + case 388: return std::string("Kipprost 3 öffnet nicht"); + case 389: return std::string("Rostantrieb 3 meldet beide Endlagen aktiv"); + case 390: return std::string("Fühler Durchbrandbogen fehlerhaft"); + case 391: return std::string("Fühler 2 im Puffer 1 fehlerhaft"); + case 392: return std::string("Fühler 2 im Puffer 2 fehlerhaft"); + case 393: return std::string("Fühler 2 im Puffer 3 fehlerhaft"); + case 394: return std::string("Fühler 2 im Puffer 4 fehlerhaft"); + case 395: return std::string("Rostmotor konnte Endlage nicht halten"); + case 396: return std::string("Unterdruck im VORBEREITEN gering - Reinigungszustand des Kessels prüfen!"); + case 397: return std::string("Unzulässiger Temperaturanstieg am Stoker"); + case 398: return std::string("Motorschutz der Ascheschnecke gefallen."); + case 399: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Restsauerstoff nicht stabil"); + case 400: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abgastemperatur zu niedrig"); + case 401: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Feuerraumtemp. zu gering"); + case 402: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Leistungsabnahme zu gering"); + case 403: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abscheideleistung zu gering"); + case 404: return std::string("Fühler 3 im Puffer 1 fehlerhaft"); + case 405: return std::string("Fühler 3 im Puffer 2 fehlerhaft"); + case 406: return std::string("Fühler 3 im Puffer 3 fehlerhaft"); + case 407: return std::string("Fühler 3 im Puffer 4 fehlerhaft"); + case 408: return std::string("Saugschnecke 1 nicht angesteckt oder funktioniert nicht"); + case 409: return std::string("Saugschnecke 2 nicht angesteckt oder funktioniert nicht"); + case 410: return std::string("Saugschnecke 3 nicht angesteckt oder funktioniert nicht"); + case 411: return std::string("Zu oft Überstrom der Saugschnecke 1"); + case 412: return std::string("Zu oft Überstrom der Saugschnecke 2"); + case 413: return std::string("Zu oft Überstrom der Saugschnecke 3"); + case 414: return std::string("Motorschutzschalter der Saugschnecke 1 gefallen"); + case 415: return std::string("Motorschutzschalter der Saugschnecke 2 gefallen"); + case 416: return std::string("Motorschutzschalter der Saugschnecke 3 gefallen"); + case 417: return std::string("Ist ein Wärmequellenfüher vorhanden?"); + case 418: return std::string("Drehzahlprüfung im Vorbereiten fehlgeschlagen"); + case 419: return std::string("Unterdruck im Vorbereiten gering – Brenner reinigen!"); + case 420: return std::string("Unterdruck im Vorbereiten zu gering"); + case 421: return std::string("Zündversuch ist nicht gelungen. - ACHTUNG! Werden Maßnahmen nicht befolgt, kann eine gefährliche Situation eintreten - LEBENSGEFAHR!"); + case 422: return std::string("Fühler in der STB Hülse fehlerhaft"); + case 423: return std::string("Überdruck vor Zyklonabscheider erkannt"); + case 424: return std::string("Kesseltemperaturfühler 2 fehlerhaft"); + case 425: return std::string("Fühler 4 im Puffer 1 fehlerhaft"); + case 426: return std::string("Fühler 5 im Puffer 1 fehlerhaft"); + case 427: return std::string("Fühler 6 im Puffer 1 fehlerhaft"); + case 428: return std::string("Fühler 7 im Puffer 1 fehlerhaft"); + case 429: return std::string("Vorlauffühler für Wärmemengenerfassung des Kessels fehlerhaft"); + default: return std::string("----"); + } + return x; + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Fehler 5" + id: ${lower_name}_Fehler_5 + register_type: read + address: 3004 + raw_encode: HEXBYTES + lambda: |- + uint16_t value = modbus_controller::word_from_hex_str(x, 0); + switch (value) { + case 0: return std::string("STB gefallen oder NOT-AUS betätigt"); + case 1: return std::string("Kesseltemperaturfühler fehlerhaft"); + case 2: return std::string("Primärluftklappe blockiert"); + case 3: return std::string("Sekundärluftklappe blockiert"); + case 4: return std::string("Kessel zieht zu viel Falschluft"); + case 5: return std::string("Kontrolle von Feuerraum- Überdruckwächter durchführen"); + case 6: return std::string("Rückbrandschieber schließt nicht"); + case 7: return std::string("Rückbrandschieber öffnet nicht"); + case 8: return std::string("Rostantrieb defekt"); + case 9: return std::string("Rost Fehler"); + case 10: return std::string("Rostreinigung fehlerhaft"); + case 11: return std::string("Zündversuch ist nicht gelungen"); + case 12: return std::string("Sicherheitszeit abgelaufen Sauerstoffgehalt zu lange zu hoch"); + case 13: return std::string("Sicherheitszeit abgelaufen Abgastemperatur zu lange zu niedrig"); + case 14: return std::string("Kesseltür zu lange offen"); + case 15: return std::string("Stopfsensor für länger als 5min belegt"); + case 16: return std::string("Raumaustragung kontrollieren"); + case 17: return std::string("Lagerraum kontrollieren"); + case 18: return std::string("Rücklauftemperaturfühler fehlerhaft"); + case 19: return std::string("Rücklauftemperatur seit mehr als 30 Minuten zu niedrig"); + case 20: return std::string("Fernversteller Heizkreis 1 fehlerhaft"); + case 21: return std::string("Vorlauftemperaturfühler Heizkreis 1 fehlerhaft"); + case 22: return std::string("Fernversteller Heizkreis 2 fehlerhaft"); + case 23: return std::string("Vorlauftemperaturfühler Heizkreis 2 fehlerhaft"); + case 24: return std::string("Außentemperaturfühler fehlerhaft"); + case 25: return std::string("NOT-AUS Kontakt wurde betätigt"); + case 26: return std::string("Fernversteller Heizkreis 3 fehlerhaft"); + case 27: return std::string("Fernversteller Heizkreis 4 fehlerhaft"); + case 28: return std::string("Fernversteller Heizkreis 5 fehlerhaft"); + case 29: return std::string("Fernversteller Heizkreis 6 fehlerhaft"); + case 30: return std::string("Fernversteller Heizkreis 7 fehlerhaft"); + case 31: return std::string("Fernversteller Heizkreis 8 fehlerhaft"); + case 32: return std::string("Fernversteller Heizkreis 9 fehlerhaft"); + case 33: return std::string("Fernversteller Heizkreis 10 fehlerhaft"); + case 34: return std::string("Fernversteller Heizkreis 11 fehlerhaft"); + case 35: return std::string("Fernversteller Heizkreis 12 fehlerhaft"); + case 36: return std::string("Fernversteller Heizkreis 13 fehlerhaft"); + case 37: return std::string("Fernversteller Heizkreis 14 fehlerhaft"); + case 38: return std::string("Fernversteller Heizkreis 15 fehlerhaft"); + case 39: return std::string("Fernversteller Heizkreis 16 fehlerhaft"); + case 40: return std::string("Fernversteller Heizkreis 17 fehlerhaft"); + case 41: return std::string("Fernversteller Heizkreis 18 fehlerhaft"); + case 42: return std::string("Vorlauftemperaturfühler Heizkreis 3 fehlerhaft"); + case 43: return std::string("Vorlauftemperaturfühler Heizkreis 4 fehlerhaft"); + case 44: return std::string("Vorlauftemperaturfühler Heizkreis 5 fehlerhaft"); + case 45: return std::string("Vorlauftemperaturfühler Heizkreis 6 fehlerhaft"); + case 46: return std::string("Vorlauftemperaturfühler Heizkreis 7 fehlerhaft"); + case 47: return std::string("Vorlauftemperaturfühler Heizkreis 8 fehlerhaft"); + case 48: return std::string("Vorlauftemperaturfühler Heizkreis 9 fehlerhaft"); + case 49: return std::string("Vorlauftemperaturfühler Heizkreis 10 fehlerhaft"); + case 50: return std::string("Vorlauftemperaturfühler Heizkreis 11 fehlerhaft"); + case 51: return std::string("Vorlauftemperaturfühler Heizkreis 12 fehlerhaft"); + case 52: return std::string("Vorlauftemperaturfühler Heizkreis 13 fehlerhaft"); + case 53: return std::string("Vorlauftemperaturfühler Heizkreis 14 fehlerhaft"); + case 54: return std::string("Vorlauftemperaturfühler Heizkreis 15 fehlerhaft"); + case 55: return std::string("Vorlauftemperaturfühler Heizkreis 16 fehlerhaft"); + case 56: return std::string("Vorlauftemperaturfühler Heizkreis 17 fehlerhaft"); + case 57: return std::string("Vorlauftemperaturfühler Heizkreis 18 fehlerhaft"); + case 58: return std::string("Vor dem Stromausfall ist ein Busmodul ausgefallen"); + case 59: return std::string("Saugzug dreht sich nicht, trotz voller Ansteuerung"); + case 60: return std::string("Fühler im Boiler 01 fehlerhaft"); + case 61: return std::string("Kommunikation zum Pelletsmodul fehlerhaft"); + case 62: return std::string(""); + case 63: return std::string("001 EEPROM Lesefehler"); + case 64: return std::string("002 EEPROM Prüfsumme Null"); + case 65: return std::string("003 EEPROM Lesefehler"); + case 66: return std::string("004 EEPROM SW-Version falsch"); + case 67: return std::string("005 EEPROM Parameterlänge falsch"); + case 68: return std::string("006 EEPROM Lesefehler"); + case 69: return std::string("007 EEPROM Prüfsumme falsch"); + case 70: return std::string("008 EEPROM Schreibfehler"); + case 71: return std::string("009 EEPROM Schreibfehler"); + case 72: return std::string("010 Konfig. Listenfehler"); + case 73: return std::string("Fühler im Boiler 02 fehlerhaft"); + case 74: return std::string("Fühler im Boiler 03 fehlerhaft"); + case 75: return std::string("Fühler im Boiler 04 fehlerhaft"); + case 76: return std::string("Fühler im Boiler 05 fehlerhaft"); + case 77: return std::string("Fühler im Boiler 06 fehlerhaft"); + case 78: return std::string("Fühler im Boiler 07 fehlerhaft"); + case 79: return std::string("Fühler im Boiler 08 fehlerhaft"); + case 80: return std::string("Fühler Solarreferenz im Boiler 01 fehlerhaft"); + case 81: return std::string("Fühler Solarreferenz im Boiler 02 fehlerhaft"); + case 82: return std::string("Fühler Solarreferenz im Boiler 03 fehlerhaft"); + case 83: return std::string("Fühler Solarreferenz im Boiler 04 fehlerhaft"); + case 84: return std::string("Fühler Solarreferenz im Boiler 05 fehlerhaft"); + case 85: return std::string("Fühler Solarreferenz im Boiler 06 fehlerhaft"); + case 86: return std::string("Fühler Solarreferenz im Boiler 07 fehlerhaft"); + case 87: return std::string("Fühler Solarreferenz im Boiler 08 fehlerhaft"); + case 88: return std::string("Fühler oben im Puffer 1 fehlerhaft"); + case 89: return std::string("Fühler oben im Puffer 2 fehlerhaft"); + case 90: return std::string("Fühler oben im Puffer 3 fehlerhaft"); + case 91: return std::string("Fühler oben im Puffer 4 fehlerhaft"); + case 92: return std::string("Fühler Mitte im Puffer 1 fehlerhaft"); + case 93: return std::string("Fühler Mitte im Puffer 2 fehlerhaft"); + case 94: return std::string("Fühler Mitte im Puffer 3 fehlerhaft"); + case 95: return std::string("Fühler Mitte im Puffer 4 fehlerhaft"); + case 96: return std::string("Fühler unten im Puffer 1 fehlerhaft"); + case 97: return std::string("Fühler unten im Puffer 2 fehlerhaft"); + case 98: return std::string("Fühler unten im Puffer 3 fehlerhaft"); + case 99: return std::string("Fühler unten im Puffer 4 fehlerhaft"); + case 100: return std::string("Fühler im Zweitkessel fehlerhaft"); + case 101: return std::string("Kollektor-Überhitzung oder Kollektorfühler unterbrochen"); + case 102: return std::string("Fühler im Zusatzkessel fehlerhaft"); + case 103: return std::string("Der Füllstand kann nicht richtig interpretiert werden"); + case 104: return std::string("Die Bypassklappe konnte nicht öffnen"); + case 105: return std::string("Die Bypassklappe konnte nicht geschlossen werden"); + case 106: return std::string("Die Laufzeit zum Füllen wurde überschritten"); + case 107: return std::string("Die Austragsschnecke stopft an der Saugstelle"); + case 108: return std::string("Die Bypassklappe konnte weder öffnen noch schließen"); + case 109: return std::string("Zündversuch nicht gelungen von Hand Anheizen!"); + case 110: return std::string("Motorschutzschalter Saugzug gefallen"); + case 111: return std::string("Motorschutzschalter Stoker gefallen"); + case 112: return std::string("Motorschutzschalter Förderschnecke gefallen"); + case 113: return std::string("Rückbrandklappe öffnet zu schnell"); + case 114: return std::string("Rückbrandklappe schließt zu schnell"); + case 115: return std::string("Keine/Beide Endlagen der Rückbrandklappe aktiv"); + case 116: return std::string("Motorschutzschalter Zellradschleuse gefallen"); + case 117: return std::string("Lambdasonde defekt"); + case 118: return std::string("Abgastemperaturfühler defekt"); + case 119: return std::string("Feuerraumtemperaturfühler defekt"); + case 120: return std::string("LS im Fallschacht defekt"); + case 121: return std::string("Fallschachtdeckel offen"); + case 122: return std::string("Kesseltür zu lange offen oder Unterdruckmessdose defekt"); + case 123: return std::string("Rost öffnet nicht"); + case 124: return std::string("Sicherheitszeit wegen Füllstandsensor im Saugzyklon abgelaufen."); + case 125: return std::string("Motorschutz der Austragsschnecke gefallen"); + case 126: return std::string("Stoker hat zu wenig Material"); + case 127: return std::string("Austragsschnecke Fehler"); + case 128: return std::string("GEFÄHRLICHER Zustand möglich"); + case 129: return std::string("Hackgutmodul ausgefallen -> Sofortabschaltung"); + case 130: return std::string("Saugmodul ausgefallen \n-> Sofortabschaltung"); + case 131: return std::string("Brennstoff lt. Anleitung einlegen"); + case 132: return std::string("RL Fühler für Netzpumpe fehlerhaft"); + case 133: return std::string("LS im Fallschacht der Austragsschnecke defekt (Voll)"); + case 134: return std::string("Fallschachtdeckel der Austragsschnecke offen"); + case 135: return std::string("Motorschutzschalter Austragsschnecke gefallen"); + case 136: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Voll)"); + case 137: return std::string("Fallschachtdeckel der Zwischenschnecke 1 offen"); + case 138: return std::string("Motorschutzschalter der Zwischenschnecke 1 gefallen"); + case 139: return std::string("Brenner reinigen und kontrollieren"); + case 140: return std::string("Rost schließt nicht"); + case 141: return std::string("Rückbrandklappe schließt nicht"); + case 142: return std::string("Rückbrandklappe öffnet nicht"); + case 143: return std::string("Zu oft Überstrom Zellradschleuse"); + case 144: return std::string("Zu oft Überstrom Stokerschnecke"); + case 145: return std::string("Zu oft Überstrom Förderschnecke"); + case 146: return std::string("Steuerung neu gestartet"); + case 147: return std::string("Rücklauffühler für Verteiler 1 fehlerhaft"); + case 148: return std::string("Rücklauffühler für Verteiler 2 fehlerhaft"); + case 149: return std::string("Rücklauffühler für Verteiler 3 fehlerhaft"); + case 150: return std::string("Rücklauffühler für Verteiler 4 fehlerhaft"); + case 151: return std::string("maximaler Einschub nach Änderung neu berechnet und begrenzt"); + case 152: return std::string("LS im Fallschacht der Zwischenschnecke 1 defekt (Leer)"); + case 153: return std::string("LS im Fallschacht der Austragsschnecke defekt (Leer)"); + case 154: return std::string("Absperrschieber blockiert"); + case 155: return std::string("Fehler Kessel und Brennstoffauswahl"); + case 156: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 157: return std::string("Kesselundichtheit festgestellt aufgrund Einschuberkennung"); + case 158: return std::string("Kesselundichtheit festgestellt aufgrund O2 Überwachung"); + case 159: return std::string("Fühler für Zirkulationspumpe fehlerhaft"); + case 160: return std::string("Fühler für Solar WT sek. Vorlauf fehlerhaft"); + case 161: return std::string("Fühler für Solar Kollektor Rücklauf fehlerhaft"); + case 162: return std::string("Lambdasonde defekt"); + case 163: return std::string("Fehlerbehebung wurde abgebrochen"); + case 164: return std::string("Wärmequellen Fühler des Differenzregler defekt"); + case 165: return std::string("Wärmesenken Fühler des Differenzregler defekt"); + case 166: return std::string("Variante 3, es wurde ein Puffer und ein Verteiler mit der selben Nummer aktiviert"); + case 167: return std::string("Sondenumschaltung aufgrund Pelletsmangel oder Stopfsensor"); + case 168: return std::string("Vorratsbehälter leer, bitte Pellets Nachfüllen"); + case 169: return std::string("Aschebox voll, bitte entleeren"); + case 170: return std::string("Rostantrieb hat Überstrom, bitte 5 min warten"); + case 171: return std::string("Fühler 1 fehlerhaft"); + case 172: return std::string("Puffer Solarreferenz Fühler Fehlerhaft"); + case 173: return std::string("Aschebox voll, bitte entleeren"); + case 174: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 175: return std::string("Breitbandsonde nicht angesteckt oder Heizung der Sonde defekt"); + case 176: return std::string("Sensorelement der Breitbandsonde Fehlerhaft oder Kurzschluss"); + case 177: return std::string("Stokermotor nicht angesteckt oder funktioniert nicht"); + case 178: return std::string("Förderschnecke nicht angesteckt oder funktioniert nicht"); + case 179: return std::string("Aschebox zu lange offen, bzw. entfernt"); + case 180: return std::string("Unterdruck im VORBEREITEN zu gering"); + case 181: return std::string("Luftklappe blockiert"); + case 182: return std::string("Rücklaufanhebung und Boiler mittels HKP0 ist nicht möglich (gleicher Fühler)"); + case 183: return std::string("Frequenzumformer fehlerhaft"); + case 184: return std::string("Temperaturüberwachung des Saugzuges hat angesprochen (Klixon)"); + case 185: return std::string("linker Teil des Rostes schließt nicht"); + case 186: return std::string("rechter Teil des Rostes schließt nicht"); + case 187: return std::string("linker Teil des Rostes öffnet nicht"); + case 188: return std::string("rechter Teil des Rostes öffnet nicht"); + case 189: return std::string("Motorschutz des VBL hat angesprochen"); + case 190: return std::string("Motorschutz der Kesselladepumpe hat angesprochen"); + case 191: return std::string("Zu oft Überstrom Austragschnecke"); + case 192: return std::string("Zu oft Überstrom Zwischenschnecke"); + case 193: return std::string("Automatische Raumluftklappe öffnet nicht"); + case 194: return std::string("Luftzufuhr Fehlerhaft oder verschlossen"); + case 195: return std::string("Sicherheitszeit wegen Minsensor im Saugzyklon abgelaufen."); + case 196: return std::string("Saugzugschalter nicht auf AUTO"); + case 197: return std::string("Motorschutzschalter Schubboden hat angesprochen"); + case 198: return std::string("Niveau für Hydrauliköl bei Schubboden zu niedrig"); + case 199: return std::string("Temperatur des Hydrauliköls für den Schubboden zu hoch"); + case 200: return std::string("Schlüsselschalter für Hydraulikraum nicht auf AUTO"); + case 201: return std::string("Sicherheitsendschalter für Schubboden hat angesprochen"); + case 202: return std::string("Wassertemperatur im Pelletsbrenner (F1) zu hoch"); + case 203: return std::string("WOS Antrieb ist blockiert oder nicht angeschlossen"); + case 204: return std::string("Luftdurchsatz zu gering oder Luftzufuhr fehlerhaft"); + case 205: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 206: return std::string("Überfüllsicherung der ZRS hat angesprochen"); + case 207: return std::string("Zellradschleuse nicht angesteckt oder funktioniert nicht"); + case 208: return std::string("eingestellte Anzahl der Zwangszyklen am Schubboden überschritten"); + case 209: return std::string("Kesselstandardwerte nicht gesetzt (Menü Einstellen --> Allg. Einst.)"); + case 210: return std::string("Unterrostthermostat hat ausgelöst"); + case 211: return std::string("Unterdruck im VORBEREITEN zu hoch"); + case 212: return std::string("Rostantrieb meldet beide Endlagen aktiv"); + case 213: return std::string("Austragung kontrollieren"); + case 214: return std::string("Modul-Update fehlgeschlagen, bitte Pelletsmodul tauschen"); + case 215: return std::string("Messbereitschaft konnte nicht hergestellt werden"); + case 216: return std::string("Messbereitschaft konnte nicht aufrecht erhalten werden"); + case 217: return std::string("Eingestellter Mindestbestand im Pelletlager unterschritten"); + case 218: return std::string("Ungültige Parametrierung der Austragung"); + case 219: return std::string("Lichtschranke dauerhaft belegt oder defekt"); + case 220: return std::string("Temperaturüberschreitung am Wärmetauscher"); + case 221: return std::string("Motorschutzschalter vom Rührwerk gefallen"); + case 222: return std::string("FU Betriebssignal vom AGR-Gebläse abgefallen"); + case 223: return std::string("Sicherheitsschalter E-Filter geöffnet"); + case 224: return std::string("Fehler Wassersensor E-Filter"); + case 225: return std::string("Übertemperatur HV-Box"); + case 226: return std::string("Kommunikationsfehler E-Filter"); + case 227: return std::string("HV-Fehler E-Filter"); + case 228: return std::string("Betriebssignal vom Saugzug FU fehlerhaft"); + case 229: return std::string("Störung der DBBK Pumpe"); + case 230: return std::string("Motorschutzschalter Der Schnecke 1 auf LS gefallen"); + case 231: return std::string("Motorschutzschalter Der Schnecke 2 auf LS gefallen"); + case 232: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 24)"); + case 233: return std::string("Displaymodul mit der Adresse 1 ist ausgefallen (DA 25)"); + case 234: return std::string("Displaymodul mit der Adresse 2 ist ausgefallen (DA 26)"); + case 235: return std::string("Displaymodul mit der Adresse 3 ist ausgefallen (DA 27)"); + case 236: return std::string("Displaymodul mit der Adresse 4 ist ausgefallen (DA 28)"); + case 237: return std::string("Displaymodul mit der Adresse 5 ist ausgefallen (DA 29)"); + case 238: return std::string("Displaymodul mit der Adresse 6 ist ausgefallen (DA 30)"); + case 239: return std::string("Displaymodul mit der Adresse 7 ist ausgefallen (DA 31)"); + case 240: return std::string("Displaymodul mit der Adresse 0 ist ausgefallen (DA 243)"); + case 241: return std::string("Heizkreismodul mit der Adresse 0 ist ausgefallen (DA 32)"); + case 242: return std::string("Heizkreismodul mit der Adresse 1 ist ausgefallen (DA 33)"); + case 243: return std::string("Heizkreismodul mit der Adresse 2 ist ausgefallen (DA 34)"); + case 244: return std::string("Heizkreismodul mit der Adresse 3 ist ausgefallen (DA 35)"); + case 245: return std::string("Heizkreismodul mit der Adresse 4 ist ausgefallen (DA 36)"); + case 246: return std::string("Heizkreismodul mit der Adresse 5 ist ausgefallen (DA 37)"); + case 247: return std::string("Heizkreismodul mit der Adresse 6 ist ausgefallen (DA 38)"); + case 248: return std::string("Heizkreismodul mit der Adresse 7 ist ausgefallen (DA 39)"); + case 249: return std::string("Hydraulikmodul mit der Adresse 0 ist ausgefallen (DA 40)"); + case 250: return std::string("Hydraulikmodul mit der Adresse 1 ist ausgefallen (DA 41)"); + case 251: return std::string("Hydraulikmodul mit der Adresse 2 ist ausgefallen (DA 42)"); + case 252: return std::string("Hydraulikmodul mit der Adresse 3 ist ausgefallen (DA 43)"); + case 253: return std::string("Hydraulikmodul mit der Adresse 4 ist ausgefallen (DA 44)"); + case 254: return std::string("Hydraulikmodul mit der Adresse 5 ist ausgefallen (DA 45)"); + case 255: return std::string("Hydraulikmodul mit der Adresse 6 ist ausgefallen (DA 46)"); + case 256: return std::string("Hydraulikmodul mit der Adresse 7 ist ausgefallen (DA 47)"); + case 257: return std::string("Digitalmodul mit der Adresse 0 ist ausgefallen (DA 48)"); + case 258: return std::string("Digitalmodul mit der Adresse 1 ist ausgefallen (DA 49)"); + case 259: return std::string("Digitalmodul mit der Adresse 2 ist ausgefallen (DA 50)"); + case 260: return std::string("Digitalmodul mit der Adresse 3 ist ausgefallen (DA 51)"); + case 261: return std::string("Digitalmodul mit der Adresse 4 ist ausgefallen (DA 52)"); + case 262: return std::string("Digitalmodul mit der Adresse 5 ist ausgefallen (DA 53)"); + case 263: return std::string("Digitalmodul mit der Adresse 6 ist ausgefallen (DA 54)"); + case 264: return std::string("Digitalmodul mit der Adresse 7 ist ausgefallen (DA 55)"); + case 265: return std::string("Kaskadenmodul mit der Adresse 0 ist ausgefallen (DA 56)"); + case 266: return std::string("Kaskadenmodul mit der Adresse 1 ist ausgefallen (DA 57)"); + case 267: return std::string("Kaskadenmodul mit der Adresse 2 ist ausgefallen (DA 58)"); + case 268: return std::string("Kaskadenmodul mit der Adresse 3 ist ausgefallen (DA 59)"); + case 269: return std::string("Kaskadenmodul mit der Adresse 4 ist ausgefallen (DA 60)"); + case 270: return std::string("Kaskadenmodul mit der Adresse 5 ist ausgefallen (DA 61)"); + case 271: return std::string("Kaskadenmodul mit der Adresse 6 ist ausgefallen (DA 62)"); + case 272: return std::string("Kaskadenmodul mit der Adresse 7 ist ausgefallen (DA 63)"); + case 273: return std::string("Analogmodul mit der Adresse 0 ist ausgefallen (DA 64)"); + case 274: return std::string("Analogmodul mit der Adresse 1 ist ausgefallen (DA 65)"); + case 275: return std::string("Analogmodul mit der Adresse 2 ist ausgefallen (DA 66)"); + case 276: return std::string("Analogmodul mit der Adresse 3 ist ausgefallen (DA 67)"); + case 277: return std::string("Analogmodul mit der Adresse 4 ist ausgefallen (DA 68)"); + case 278: return std::string("Analogmodul mit der Adresse 5 ist ausgefallen (DA 69)"); + case 279: return std::string("Analogmodul mit der Adresse 6 ist ausgefallen (DA 70)"); + case 280: return std::string("Analogmodul mit der Adresse 7 ist ausgefallen (DA 71)"); + case 281: return std::string("Touch Display mit der Adresse 0 ist ausgefallen (DA 72)"); + case 282: return std::string("Touch Display mit der Adresse 1 ist ausgefallen (DA 73)"); + case 283: return std::string("Touch Display mit der Adresse 2 ist ausgefallen (DA 74)"); + case 284: return std::string("Touch Display mit der Adresse 3 ist ausgefallen (DA 75)"); + case 285: return std::string("Touch Display mit der Adresse 4 ist ausgefallen (DA 76)"); + case 286: return std::string("Touch Display mit der Adresse 5 ist ausgefallen (DA 77)"); + case 287: return std::string("Touch Display mit der Adresse 6 ist ausgefallen (DA 78)"); + case 288: return std::string("Touch Display mit der Adresse 7 ist ausgefallen (DA 79)"); + case 289: return std::string("Austragungsmodul mit der Adresse 0 ist ausgefallen (DA 80)"); + case 290: return std::string("Austragungsmodul mit der Adresse 1 ist ausgefallen (DA 81)"); + case 291: return std::string("Austragungsmodul mit der Adresse 2 ist ausgefallen (DA 82)"); + case 292: return std::string("Austragungsmodul mit der Adresse 3 ist ausgefallen (DA 83)"); + case 293: return std::string("Austragungsmodul mit der Adresse 4 ist ausgefallen (DA 84)"); + case 294: return std::string("Austragungsmodul mit der Adresse 5 ist ausgefallen (DA 85)"); + case 295: return std::string("Austragungsmodul mit der Adresse 6 ist ausgefallen (DA 86)"); + case 296: return std::string("Austragungsmodul mit der Adresse 7 ist ausgefallen (DA 87)"); + case 297: return std::string("Pelletsmodul mit der Adresse 0 ist ausgefallen (DA 240)"); + case 298: return std::string("Hackgutmodul mit der Adresse 0 ist ausgefallen (DA 241)"); + case 299: return std::string("Saugmodul mit der Adresse 0 ist ausgefallen (DA 242)"); + case 300: return std::string("Breitband Sonden Modul 0 ist ausgefallen (DA 244)"); + case 301: return std::string("Rücklaufmischermodul 0 ist ausgefallen (DA 245)"); + case 302: return std::string("Fühler für Solarreferenz Puffer oben fehlerhaft"); + case 303: return std::string("Fühler für Solarreferenz Puffer unten fehlerhaft"); + case 304: return std::string("MIN Unterdruck im Feuerraum unterschritten"); + case 305: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 1 gefallen"); + case 306: return std::string("Motorschutzschalter der Saugschnecke vom Zyklon 2 gefallen"); + case 307: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 1"); + case 308: return std::string("Zu oft Überstrom der Saugschnecke an Zyklon 2"); + case 309: return std::string("Schnecke 1 auf LS nicht angesteckt oder funktioniert nicht"); + case 310: return std::string("Schnecke 2 auf LS nicht angesteckt oder funktioniert nicht"); + case 311: return std::string("Saugschnecke von Zyklon 1 nicht angesteckt oder funktioniert nicht"); + case 312: return std::string("Saugschnecke von Zyklon 2 nicht angesteckt oder funktioniert nicht"); + case 313: return std::string("Rührwerk nicht angesteckt oder funktioniert nicht"); + case 314: return std::string("Zu oft Überstrom der Schnecke 1 auf LS"); + case 315: return std::string("Zu oft Überstrom der Schnecke 2 auf LS"); + case 316: return std::string("Falsche oder fehlerhafte Kesselauswahl"); + case 317: return std::string("Falsche oder fehlerhafte Brennstoffauswahl"); + case 318: return std::string("Temperaturüberschreitung am Stokerrohr"); + case 319: return std::string("Kombiantrieb blockiert"); + case 320: return std::string("AGR-Aktivierungsklappe schließt nicht"); + case 321: return std::string("HK1 - Vorlauf-Temperatur zu lange zu hoch"); + case 322: return std::string("HK2 - Vorlauf-Temperatur zu lange zu hoch"); + case 323: return std::string("HK3 - Vorlauf-Temperatur zu lange zu hoch"); + case 324: return std::string("HK4 - Vorlauf-Temperatur zu lange zu hoch"); + case 325: return std::string("HK5 - Vorlauf-Temperatur zu lange zu hoch"); + case 326: return std::string("HK6 - Vorlauf-Temperatur zu lange zu hoch"); + case 327: return std::string("HK7 - Vorlauf-Temperatur zu lange zu hoch"); + case 328: return std::string("HK8 - Vorlauf-Temperatur zu lange zu hoch"); + case 329: return std::string("HK9- Vorlauf-Temperatur zu lange zu hoch"); + case 330: return std::string("HK10- Vorlauf-Temperatur zu lange zu hoch"); + case 331: return std::string("HK11 - Vorlauf-Temperatur zu lange zu hoch"); + case 332: return std::string("HK12 - Vorlauf-Temperatur zu lange zu hoch"); + case 333: return std::string("HK13 - Vorlauf-Temperatur zu lange zu hoch"); + case 334: return std::string("HK14 - Vorlauf-Temperatur zu lange zu hoch"); + case 335: return std::string("HK15 - Vorlauf-Temperatur zu lange zu hoch"); + case 336: return std::string("HK16 - Vorlauf-Temperatur zu lange zu hoch"); + case 337: return std::string("HK17 - Vorlauf-Temperatur zu lange zu hoch"); + case 338: return std::string("HK18 - Vorlauf-Temperatur zu lange zu hoch"); + case 339: return std::string("Boiler Solarreferenz Fühler Fehlerhaft"); + case 340: return std::string("AGR-Druckregelklappe blockiert"); + case 341: return std::string("Druck im AGR-Druckkanal zu lange außerhalb des erlaubten Bereichs"); + case 342: return std::string("Rost-Differenzdruck zu lange zu niedrig"); + case 343: return std::string("Übertemperatur Durchbrandbogenkühlung"); + case 344: return std::string("Ansteuerung des Saugers defekt, bitte Pelletsmodul tauschen"); + case 345: return std::string("Kipprost 1 schließt nicht"); + case 346: return std::string("Kipprost 1 öffnet nicht"); + case 347: return std::string("Rostantrieb 1 meldet beide Endlagen aktiv"); + case 348: return std::string("Kipprost 2 schließt nicht"); + case 349: return std::string("Kipprost 2 öffnet nicht"); + case 350: return std::string("Rostantrieb 2 meldet beide Endlagen aktiv"); + case 351: return std::string("Temperaturanstieg am Fühler 1 ist zu gering"); + case 352: return std::string("AGR-Primärluftklappe blockiert"); + case 353: return std::string("AGR-Sekundärluftklappe blockiert"); + case 354: return std::string("Raumfühler Heizkreis 1 fehlerhaft"); + case 355: return std::string("Raumfühler Heizkreis 2 fehlerhaft"); + case 356: return std::string("Raumfühler Heizkreis 3 fehlerhaft"); + case 357: return std::string("Raumfühler Heizkreis 4 fehlerhaft"); + case 358: return std::string("Raumfühler Heizkreis 5 fehlerhaft"); + case 359: return std::string("Raumfühler Heizkreis 6 fehlerhaft"); + case 360: return std::string("Raumfühler Heizkreis 7 fehlerhaft"); + case 361: return std::string("Raumfühler Heizkreis 8 fehlerhaft"); + case 362: return std::string("Raumfühler Heizkreis 9 fehlerhaft"); + case 363: return std::string("Raumfühler Heizkreis 10 fehlerhaft"); + case 364: return std::string("Raumfühler Heizkreis 11 fehlerhaft"); + case 365: return std::string("Raumfühler Heizkreis 12 fehlerhaft"); + case 366: return std::string("Raumfühler Heizkreis 13 fehlerhaft"); + case 367: return std::string("Raumfühler Heizkreis 14 fehlerhaft"); + case 368: return std::string("Raumfühler Heizkreis 15 fehlerhaft"); + case 369: return std::string("Raumfühler Heizkreis 16 fehlerhaft"); + case 370: return std::string("Raumfühler Heizkreis 17 fehlerhaft"); + case 371: return std::string("Raumfühler Heizkreis 18 fehlerhaft"); + case 372: return std::string("011 EEPROM Prüfsumme 2 falsch"); + case 373: return std::string("STB, min. Druck, max. Druck oder Wassermangelsicherung ausgelöst."); + case 374: return std::string("AGR-Klappe blockiert"); + case 375: return std::string("Rücklauftemperatur zu hoch"); + case 376: return std::string("Kesseltür offen oder Unterdruckmessdose defekt"); + case 377: return std::string("Saugzug dreht sich ohne Ansteuerung"); + case 378: return std::string("Bitte den Kessel jetzt zur Vorbereitung für die Kaminkehrermessung anheizen!"); + case 379: return std::string("Rücklauftemperatur zu lange über Kesseltemperatur"); + case 380: return std::string("Ansaugöffnung kontrollieren"); + case 381: return std::string("Kondensatabfluss kontrollieren"); + case 382: return std::string("Unterdruck zu niedrig"); + case 383: return std::string("Laufrichtung Absperrschieber kontrollieren."); + case 384: return std::string("Aschebehälter voll oder WOS blockiert - Noch 20h Heizbetrieb möglich"); + case 385: return std::string("Stokerantrieb zieht Strom ohne Ansteuerung"); + case 386: return std::string("Kesselüberprüfung im Vorbereiten fehlerhaft"); + case 387: return std::string("Kipprost 3 schließt nicht"); + case 388: return std::string("Kipprost 3 öffnet nicht"); + case 389: return std::string("Rostantrieb 3 meldet beide Endlagen aktiv"); + case 390: return std::string("Fühler Durchbrandbogen fehlerhaft"); + case 391: return std::string("Fühler 2 im Puffer 1 fehlerhaft"); + case 392: return std::string("Fühler 2 im Puffer 2 fehlerhaft"); + case 393: return std::string("Fühler 2 im Puffer 3 fehlerhaft"); + case 394: return std::string("Fühler 2 im Puffer 4 fehlerhaft"); + case 395: return std::string("Rostmotor konnte Endlage nicht halten"); + case 396: return std::string("Unterdruck im VORBEREITEN gering - Reinigungszustand des Kessels prüfen!"); + case 397: return std::string("Unzulässiger Temperaturanstieg am Stoker"); + case 398: return std::string("Motorschutz der Ascheschnecke gefallen."); + case 399: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Restsauerstoff nicht stabil"); + case 400: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abgastemperatur zu niedrig"); + case 401: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Feuerraumtemp. zu gering"); + case 402: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Leistungsabnahme zu gering"); + case 403: return std::string("Messbereitschaft konnte nicht hergestellt/aufrecht erhalten werden, Abscheideleistung zu gering"); + case 404: return std::string("Fühler 3 im Puffer 1 fehlerhaft"); + case 405: return std::string("Fühler 3 im Puffer 2 fehlerhaft"); + case 406: return std::string("Fühler 3 im Puffer 3 fehlerhaft"); + case 407: return std::string("Fühler 3 im Puffer 4 fehlerhaft"); + case 408: return std::string("Saugschnecke 1 nicht angesteckt oder funktioniert nicht"); + case 409: return std::string("Saugschnecke 2 nicht angesteckt oder funktioniert nicht"); + case 410: return std::string("Saugschnecke 3 nicht angesteckt oder funktioniert nicht"); + case 411: return std::string("Zu oft Überstrom der Saugschnecke 1"); + case 412: return std::string("Zu oft Überstrom der Saugschnecke 2"); + case 413: return std::string("Zu oft Überstrom der Saugschnecke 3"); + case 414: return std::string("Motorschutzschalter der Saugschnecke 1 gefallen"); + case 415: return std::string("Motorschutzschalter der Saugschnecke 2 gefallen"); + case 416: return std::string("Motorschutzschalter der Saugschnecke 3 gefallen"); + case 417: return std::string("Ist ein Wärmequellenfüher vorhanden?"); + case 418: return std::string("Drehzahlprüfung im Vorbereiten fehlgeschlagen"); + case 419: return std::string("Unterdruck im Vorbereiten gering – Brenner reinigen!"); + case 420: return std::string("Unterdruck im Vorbereiten zu gering"); + case 421: return std::string("Zündversuch ist nicht gelungen. - ACHTUNG! Werden Maßnahmen nicht befolgt, kann eine gefährliche Situation eintreten - LEBENSGEFAHR!"); + case 422: return std::string("Fühler in der STB Hülse fehlerhaft"); + case 423: return std::string("Überdruck vor Zyklonabscheider erkannt"); + case 424: return std::string("Kesseltemperaturfühler 2 fehlerhaft"); + case 425: return std::string("Fühler 4 im Puffer 1 fehlerhaft"); + case 426: return std::string("Fühler 5 im Puffer 1 fehlerhaft"); + case 427: return std::string("Fühler 6 im Puffer 1 fehlerhaft"); + case 428: return std::string("Fühler 7 im Puffer 1 fehlerhaft"); + case 429: return std::string("Vorlauffühler für Wärmemengenerfassung des Kessels fehlerhaft"); + default: return std::string("----"); + } + return x; \ No newline at end of file diff --git a/froeling.yaml b/froeling.yaml index 8dab88f..25891ec 100644 --- a/froeling.yaml +++ b/froeling.yaml @@ -26,181 +26,60 @@ web_server: substitutions: name: froeling - modbus_controller_id: froeling + friendly_name: Fröhling + device_description: "Esphome component for Fröhling Lambdatronic S3200" + modbus_controller_id: lambdatronic + hk1_name: "HK1" + hk2_name: "HK2" + hk3_name: "Erdgeschoss" + hk4_name: "1. Stock" + hk5_name: "2. Stock" + boiler1_name: "Warmwasser" + puffer1_name: "Puffer" uart: - - id: uartfroeling - - tx_pin: 1 - rx_pin: 3 - baud_rate: 57600 - data_bits: 8 - stop_bits: 1 - parity: NONE + id: mod_bus + tx_pin: 17 + rx_pin: 16 + baud_rate: 57600 + data_bits: 8 + stop_bits: 1 + parity: NONE +# debug: +# direction: BOTH modbus: id: modbus1 - uart_id: uartfroeling + uart_id: mod_bus modbus_controller: - - id: froeling - address: 2 - modbus_id: modbus1 - setup_priority: -10 - update_interval: "60s" - command_throttle: "50ms" + id: ${modbus_controller_id} + address: 0x1 + modbus_id: modbus1 + setup_priority: -10 + update_interval: 10sec + switch: - platform: restart name: "Restart ESP" packages: + # Git repo examples remote_package: - url: https://github.com/GyroGearl00se/ESPHome-Froeling-Lambdatronic_3200 + url: https://git.floriansimmer.at/Florian/Lambdatronic_S3200 + refresh: 0s ref: main - files: [austragung.yaml, boiler_01.yaml, heizkoerper.yaml, kessel.yaml, puffer_01.yaml, zirkulationspumpe.yaml] - refresh: 1d - -number: - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Bei welcher RL Temperatur an der Zirkulationsleitung soll die Pumpe ausschalten" - id: ${name}_Bei_welcher_RL_Temperatur_an_der_Zirkulationsleitung_soll_die_Pumpe_ausschalten - address: 600 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: 20 - max_value: 120 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Kessel-Solltemperatur" - id: ${name}_Kessel_Solltemperatur - address: 0 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: 70 - max_value: 90 - -text_sensor: - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Anlagenzustand" - id: ${name}_Anlagenzustand - register_type: read - address: 4000 - raw_encode: HEXBYTES - lambda: |- - uint16_t value = modbus_controller::word_from_hex_str(x, 0); - switch (value) { - case 0: return std::string("Dauerlast"); - case 1: return std::string("Brauchwasser"); - case 2: return std::string("Automatik"); - case 3: return std::string("Scheitholzbetrieb"); - case 4: return std::string("Reinigen"); - case 5: return std::string("Ausgeschaltet"); - case 6: return std::string("Extraheizen"); - case 7: return std::string("Kaminkehrer"); - case 8: return std::string("Reinigen"); - default: return std::string("----"); - } - return x; - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Kesselzustand" - id: ${name}_Kesselzustand - register_type: read - address: 4001 - raw_encode: HEXBYTES - lambda: |- - uint16_t value = modbus_controller::word_from_hex_str(x, 0); - switch (value) { - case 0: return std::string("STÖRUNG"); - case 1: return std::string("Kessel Aus"); - case 2: return std::string("Anheizen"); - case 3: return std::string("Heizen"); - case 4: return std::string("Feuererhaltung"); - case 5: return std::string("Feuer Aus"); - case 6: return std::string("Tür offen"); - case 7: return std::string("Vorbereitung"); - case 8: return std::string("Vorwärmen"); - case 9: return std::string("Zünden"); - case 10: return std::string("Abstellen Warten"); - case 11: return std::string("Abstellen Warten1"); - case 12: return std::string("Abstellen Einschub1"); - case 13: return std::string("Abstellen Warten2"); - case 14: return std::string("Abstellen Einschub2"); - case 15: return std::string("Abreinigen"); - case 16: return std::string("2h warten"); - case 17: return std::string("Saugen / Heizen"); - case 18: return std::string("Fehlzündung"); - case 19: return std::string("Betriebsbereit"); - case 20: return std::string("Rost schließen"); - case 21: return std::string("Stoker leeren"); - case 22: return std::string("Vorheizen"); - case 23: return std::string("Saugen"); - case 24: return std::string("RSE schließen"); - case 25: return std::string("RSE öffnen"); - case 26: return std::string("Rost kippen"); - case 27: return std::string("Vorwärmen-Zünden"); - case 28: return std::string("Resteinschub"); - case 29: return std::string("Stoker auffüllen"); - case 30: return std::string("Lambdasonde aufheizen"); - case 31: return std::string("Gebläsenachlauf I"); - case 32: return std::string("Gebläsenachlauf II"); - case 33: return std::string("Abgestellt"); - case 34: return std::string("Nachzünden"); - case 35: return std::string("Zünden Warten"); - case 36: return std::string("FB: RSE schließen"); - case 37: return std::string("FB: Kessel belüften"); - case 38: return std::string("FB: Zünden"); - case 39: return std::string("FB: min. Einschub"); - case 40: return std::string("RSE schließen"); - case 41: return std::string("STÖRUNG: STB/NA"); - case 42: return std::string("STÖRUNG: Kipprost"); - case 43: return std::string("STÖRUNG: FR-Überdr."); - case 44: return std::string("STÖRUNG: Türkont."); - case 45: return std::string("STÖRUNG: Saugzug"); - case 46: return std::string("STÖRUNG: Umfeld"); - case 47: return std::string("FEHLER: STB/NA"); - case 48: return std::string("FEHLER: Kipprost"); - case 49: return std::string("FEHLER: FR-Überdr."); - case 50: return std::string("FEHLER: Türkont."); - case 51: return std::string("FEHLER: Saugzug"); - case 52: return std::string("FEHLER: Umfeld"); - case 53: return std::string("FEHLER: Stoker"); - case 54: return std::string("STÖRUNG: Stoker"); - case 55: return std::string("FB: Stoker leeren"); - case 56: return std::string("Vorbelüften"); - case 57: return std::string("STÖRUNG: Hackgut"); - case 58: return std::string("FEHLER: Hackgut"); - case 59: return std::string("NB: Tür offen"); - case 60: return std::string("NB: Anheizen"); - case 61: return std::string("NB: Heizen"); - case 62: return std::string("FEHLER: STB/NA"); - case 63: return std::string("FEHLER: Allgemein"); - case 64: return std::string("NB: Feuer Aus"); - case 65: return std::string("Selbsttest aktiv"); - case 66: return std::string("Fehlerbeh. 20min"); - case 67: return std::string("FEHLER: Fallschacht"); - case 68: return std::string("STÖRUNG: Fallschacht"); - case 69: return std::string("Reinigen möglich"); - case 70: return std::string("Heizen - Reinigen"); - case 71: return std::string("SH Anheizen"); - case 72: return std::string("SH Heizen"); - case 73: return std::string("SH Heiz/Abstell"); - case 74: return std::string("STÖRUNG sicher"); - case 75: return std::string("AGR Nachlauf"); - case 76: return std::string("AGR reinigen"); - case 77: return std::string("Zündung AUS"); - case 78: return std::string("Filter reinigen"); - case 79: return std::string("Anheizassistent"); - case 80: return std::string("SH Zünden"); - case 81: return std::string("SH Störung"); - case 82: return std::string("Sensorcheck"); - default: return std::string("----"); - } - return x; + files: + - anlage.yaml + - kessel.yaml + - fehler.yaml + - austragung.yaml + - boiler_01.yaml + - heizkreis_01.yaml + - heizkreis_02.yaml + - heizkreis_03.yaml + - heizkreis_04.yaml + - heizkreis_05.yaml + - puffer_01.yaml + - zirkulationspumpe.yaml diff --git a/heizkoerper.yaml b/heizkoerper.yaml deleted file mode 100644 index 20b1a1b..0000000 --- a/heizkoerper.yaml +++ /dev/null @@ -1,132 +0,0 @@ -sensor: - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Vorlauf-Isttemperatur" - id: ${name}_HK1_Vorlauf_Isttemperatur - register_type: read - address: 1030 #Wrong ? - unit_of_measurement: "°C" - value_type: U_WORD - filters: - - multiply: 0.5 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Vorlauf-Solltemperatur" - id: ${name}_HK1_Vorlauf_Solltemperatur - register_type: read - address: 1031 #Wrong ? - unit_of_measurement: "°C" - value_type: U_WORD - filters: - - multiply: 0.5 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Aussentemperatur" - id: ${name}_Aussentemperatur - register_type: read - address: 1000 - unit_of_measurement: "°C" - value_type: U_WORD - filters: - - multiply: 0.5 - -binary_sensor: - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Pumpe AN AUS" - id: ${name}_HK1_Pumpe_AN_AUS - register_type: coil - #address: 999 # Heizkreispumpe 0 - address: 1029 # Heizkreispumpe 1 - wrong ? - -number: - # not correct yet ? - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Gewünschte Vorlauf-temperatur bei -10°C Außentemperatur" - id: ${name}_HK1_Vorlauf_Temperatur_minus_10C_Aussentemperatur - address: 1032 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: 10 - max_value: 110 - - # not correct yet ? - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Gewünschte Vorlauf-temperatur bei +10°C Außentemperatur" - id: ${name}_HK1_Vorlauf_Temperatur_10C_Aussentemperatur - address: 1031 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: 10 - max_value: 110 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Heizkreispumpe ausschalten wenn Vorlauf Soll kleiner ist als" - id: ${name}_HK1_Heizkreispumpe_ausschalten_wenn_Vorlauf_Soll_kleiner_ist_als - address: 1039 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: 10 - max_value: 30 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Absenkung der Vorlauftemperatur im Absenkbetrieb" - id: ${name}_HK1_Absenkung_der_Vorlauftemperatur_im_Absenkbetrieb - address: 1033 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: 0 - max_value: 70 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Außentemperatur, unter der die Heizkreispumpe im Heizbetrieb einschaltet" - id: ${name}_HK1_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Heizbetrieb_einschaltet - address: 1036 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: -20 - max_value: 50 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Außentemperatur, unter der die Heizkreispumpe im Absenkbetrieb einschaltet" - id: ${name}_HK1_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Absenkbetrieb_einschaltet - address: 1037 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: -20 - max_value: 50 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Frostschutztemperatur" - id: ${name}_HK1_Frostschutztemperatur - address: 1038 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: -10 - max_value: 20 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} HK1 - Temp. am Puffer oben ab der der Überhitzungsschutz aktiv wird" - id: ${name}_HK1_Temp_am_Puffer_oben_ab_der_der_Ueberhitzungsschutz_aktiv_wird - address: 1047 - unit_of_measurement: "°C" - value_type: U_WORD - min_value: 60 - max_value: 120 diff --git a/heizkreis_01.yaml b/heizkreis_01.yaml new file mode 100644 index 0000000..04d0c74 --- /dev/null +++ b/heizkreis_01.yaml @@ -0,0 +1,168 @@ +select: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Betriebsart" + id: ${lower_name}_HK1_Betriebsart + address: 8046 + value_type: U_WORD + optionsmap: + "Aus": 0 + "Automatik": 1 + "Extraheizen": 2 + "Absenken": 3 + "Dauerabsenken": 4 + "Partybetrieb": 5 + +sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Vorlauf-Isttemperatur" + id: ${lower_name}_HK1_Vorlauf_Isttemperatur + register_type: read + address: 1030 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Vorlauf-Solltemperatur" + id: ${lower_name}_HK1_Vorlauf_Solltemperatur + register_type: read + address: 1031 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Raumtemperatur" + id: ${lower_name}_HK1_Raumtemperatur + register_type: read + address: 1032 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + +binary_sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Pumpe AN AUS" + id: ${lower_name}_HK1_Pumpe_AN_AUS + register_type: coil + address: 1029 + +number: + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Gewünschte Vorlauf-temperatur bei -10°C Außentemperatur" + id: ${lower_name}_HK1_Vorlauf_Temperatur_minus_10C_Aussentemperatur + address: 1032 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Gewünschte Vorlauf-temperatur bei +10°C Außentemperatur" + id: ${lower_name}_HK1_Vorlauf_Temperatur_10C_Aussentemperatur + address: 1031 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Heizkreispumpe ausschalten wenn Vorlauf Soll kleiner ist als" + id: ${lower_name}_HK1_Heizkreispumpe_ausschalten_wenn_Vorlauf_Soll_kleiner_ist_als + address: 1039 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Absenkung der Vorlauftemperatur im Absenkbetrieb" + id: ${lower_name}_HK1_Absenkung_der_Vorlauftemperatur_im_Absenkbetrieb + address: 1033 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 0 + max_value: 70 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Gewünschte Raumtemperatur während des Heizbetriebs" + id: ${lower_name}_HK1_Gewuenschte_Raumtemperatur_waehrend_des_Heizbetriebs + address: 1035 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Gewünschte Raumtemperatur während des Absenkbetriebes" + id: ${lower_name}_HK1_Gewuenschte_Raumtemperatur_waehrend_des_Absenkbetriebes + address: 1040 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Außentemperatur, unter der die Heizkreispumpe im Heizbetrieb einschaltet" + id: ${lower_name}_HK1_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Heizbetrieb_einschaltet + address: 1036 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Außentemperatur, unter der die Heizkreispumpe im Absenkbetrieb einschaltet" + id: ${lower_name}_HK1_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Absenkbetrieb_einschaltet + address: 1037 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Frostschutztemperatur" + id: ${lower_name}_HK1_Frostschutztemperatur + address: 1038 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -10 + max_value: 20 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk1_name} - Temp. am Puffer oben ab der der Überhitzungsschutz aktiv wird" + id: ${lower_name}_HK1_Temp_am_Puffer_oben_ab_der_der_Ueberhitzungsschutz_aktiv_wird + address: 1047 + unit_of_measurement: "°C" + value_type: S_WORD + min_value: 60 + max_value: 120 diff --git a/heizkreis_02.yaml b/heizkreis_02.yaml new file mode 100644 index 0000000..96e8eb0 --- /dev/null +++ b/heizkreis_02.yaml @@ -0,0 +1,168 @@ +select: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Betriebsart" + id: ${lower_name}_HK2_Betriebsart + address: 8047 + value_type: U_WORD + optionsmap: + "Aus": 0 + "Automatik": 1 + "Extraheizen": 2 + "Absenken": 3 + "Dauerabsenken": 4 + "Partybetrieb": 5 + +sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Vorlauf-Isttemperatur" + id: ${lower_name}_HK2_Vorlauf_Isttemperatur + register_type: read + address: 1060 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Vorlauf-Solltemperatur" + id: ${lower_name}_HK2_Vorlauf_Solltemperatur + register_type: read + address: 1061 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Raumtemperatur" + id: ${lower_name}_HK2_Raumtemperatur + register_type: read + address: 1062 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + +binary_sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Pumpe AN AUS" + id: ${lower_name}_HK2_Pumpe_AN_AUS + register_type: coil + address: 1059 + +number: + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Gewünschte Vorlauf-temperatur bei +10°C Außentemperatur" + id: ${lower_name}_HK2_Vorlauf_Temperatur_10C_Aussentemperatur + address: 1061 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Gewünschte Vorlauf-temperatur bei -10°C Außentemperatur" + id: ${lower_name}_HK2_Vorlauf_Temperatur_minus_10C_Aussentemperatur + address: 1062 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Absenkung der Vorlauftemperatur im Absenkbetrieb" + id: ${lower_name}_HK2_Absenkung_der_Vorlauftemperatur_im_Absenkbetrieb + address: 1063 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 0 + max_value: 70 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Heizkreispumpe ausschalten wenn Vorlauf Soll kleiner ist als" + id: ${lower_name}_HK2_Heizkreispumpe_ausschalten_wenn_Vorlauf_Soll_kleiner_ist_als + address: 1069 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Gewünschte Raumtemperatur während des Heizbetriebs" + id: ${lower_name}_HK2_Gewuenschte_Raumtemperatur_waehrend_des_Heizbetriebs + address: 1065 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Gewünschte Raumtemperatur während des Absenkbetriebes" + id: ${lower_name}_HK2_Gewuenschte_Raumtemperatur_waehrend_des_Absenkbetriebes + address: 1070 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Außentemperatur, unter der die Heizkreispumpe im Heizbetrieb einschaltet" + id: ${lower_name}_HK2_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Heizbetrieb_einschaltet + address: 1066 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Außentemperatur, unter der die Heizkreispumpe im Absenkbetrieb einschaltet" + id: ${lower_name}_HK2_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Absenkbetrieb_einschaltet + address: 1067 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Frostschutztemperatur" + id: ${lower_name}_HK2_Frostschutztemperatur + address: 1068 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -10 + max_value: 20 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk2_name} - Temp. am Puffer oben ab der der Überhitzungsschutz aktiv wird" + id: ${lower_name}_HK2_Temp_am_Puffer_oben_ab_der_der_Ueberhitzungsschutz_aktiv_wird + address: 1078 + unit_of_measurement: "°C" + value_type: S_WORD + min_value: 60 + max_value: 120 diff --git a/heizkreis_03.yaml b/heizkreis_03.yaml new file mode 100644 index 0000000..ae9cda8 --- /dev/null +++ b/heizkreis_03.yaml @@ -0,0 +1,168 @@ +select: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Betriebsart" + id: ${lower_name}_HK3_Betriebsart + address: 8048 + value_type: U_WORD + optionsmap: + "Aus": 0 + "Automatik": 1 + "Extraheizen": 2 + "Absenken": 3 + "Dauerabsenken": 4 + "Partybetrieb": 5 + +sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Vorlauf-Isttemperatur" + id: ${lower_name}_HK3_Vorlauf_Isttemperatur + register_type: read + address: 1090 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Vorlauf-Solltemperatur" + id: ${lower_name}_HK3_Vorlauf_Solltemperatur + register_type: read + address: 1091 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Raumtemperatur" + id: ${lower_name}_HK3_Raumtemperatur + register_type: read + address: 1092 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + +binary_sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Pumpe AN AUS" + id: ${lower_name}_HK3_Pumpe_AN_AUS + register_type: coil + address: 1090 + +number: + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Gewünschte Vorlauf-temperatur bei +10°C Außentemperatur" + id: ${lower_name}_HK3_Vorlauf_Temperatur_10C_Aussentemperatur + address: 1091 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Gewünschte Vorlauf-temperatur bei -10°C Außentemperatur" + id: ${lower_name}_HK3_Vorlauf_Temperatur_minus_10C_Aussentemperatur + address: 1092 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Absenkung der Vorlauftemperatur im Absenkbetrieb" + id: ${lower_name}_HK3_Absenkung_der_Vorlauftemperatur_im_Absenkbetrieb + address: 1093 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 0 + max_value: 70 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Heizkreispumpe ausschalten wenn Vorlauf Soll kleiner ist als" + id: ${lower_name}_HK3_Heizkreispumpe_ausschalten_wenn_Vorlauf_Soll_kleiner_ist_als + address: 1099 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Gewünschte Raumtemperatur während des Heizbetriebs" + id: ${lower_name}_HK3_Gewuenschte_Raumtemperatur_waehrend_des_Heizbetriebs + address: 1095 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Gewünschte Raumtemperatur während des Absenkbetriebes" + id: ${lower_name}_HK3_Gewuenschte_Raumtemperatur_waehrend_des_Absenkbetriebes + address: 1100 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Außentemperatur, unter der die Heizkreispumpe im Heizbetrieb einschaltet" + id: ${lower_name}_HK3_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Heizbetrieb_einschaltet + address: 1096 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Außentemperatur, unter der die Heizkreispumpe im Absenkbetrieb einschaltet" + id: ${lower_name}_HK3_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Absenkbetrieb_einschaltet + address: 1097 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Frostschutztemperatur" + id: ${lower_name}_HK3_Frostschutztemperatur + address: 1098 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -10 + max_value: 20 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk3_name} - Temp. am Puffer oben ab der der Überhitzungsschutz aktiv wird" + id: ${lower_name}_HK3_Temp_am_Puffer_oben_ab_der_der_Ueberhitzungsschutz_aktiv_wird + address: 1105 + unit_of_measurement: "°C" + value_type: S_WORD + min_value: 60 + max_value: 120 diff --git a/heizkreis_04.yaml b/heizkreis_04.yaml new file mode 100644 index 0000000..61c86f3 --- /dev/null +++ b/heizkreis_04.yaml @@ -0,0 +1,168 @@ +select: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Betriebsart" + id: ${lower_name}_HK4_Betriebsart + address: 8049 + value_type: U_WORD + optionsmap: + "Aus": 0 + "Automatik": 1 + "Extraheizen": 2 + "Absenken": 3 + "Dauerabsenken": 4 + "Partybetrieb": 5 + +sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Vorlauf-Isttemperatur" + id: ${lower_name}_HK4_Vorlauf_Isttemperatur + register_type: read + address: 1120 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Vorlauf-Solltemperatur" + id: ${lower_name}_HK4_Vorlauf_Solltemperatur + register_type: read + address: 1121 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Raumtemperatur" + id: ${lower_name}_HK4_Raumtemperatur + register_type: read + address: 1122 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + +binary_sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Pumpe AN AUS" + id: ${lower_name}_HK4_Pumpe_AN_AUS + register_type: coil + address: 1120 + +number: + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Gewünschte Vorlauf-temperatur bei +10°C Außentemperatur" + id: ${lower_name}_HK4_Vorlauf_Temperatur_10C_Aussentemperatur + address: 1121 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Gewünschte Vorlauf-temperatur bei -10°C Außentemperatur" + id: ${lower_name}_HK4_Vorlauf_Temperatur_minus_10C_Aussentemperatur + address: 1122 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Absenkung der Vorlauftemperatur im Absenkbetrieb" + id: ${lower_name}_HK4_Absenkung_der_Vorlauftemperatur_im_Absenkbetrieb + address: 1123 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 0 + max_value: 70 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Heizkreispumpe ausschalten wenn Vorlauf Soll kleiner ist als" + id: ${lower_name}_HK4_Heizkreispumpe_ausschalten_wenn_Vorlauf_Soll_kleiner_ist_als + address: 1129 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Gewünschte Raumtemperatur während des Heizbetriebs" + id: ${lower_name}_HK4_Gewuenschte_Raumtemperatur_waehrend_des_Heizbetriebs + address: 1125 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Gewünschte Raumtemperatur während des Absenkbetriebes" + id: ${lower_name}_HK4_Gewuenschte_Raumtemperatur_waehrend_des_Absenkbetriebes + address: 1130 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Außentemperatur, unter der die Heizkreispumpe im Heizbetrieb einschaltet" + id: ${lower_name}_HK4_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Heizbetrieb_einschaltet + address: 1126 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Außentemperatur, unter der die Heizkreispumpe im Absenkbetrieb einschaltet" + id: ${lower_name}_HK4_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Absenkbetrieb_einschaltet + address: 1127 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Frostschutztemperatur" + id: ${lower_name}_HK4_Frostschutztemperatur + address: 1128 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -10 + max_value: 20 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk4_name} - Temp. am Puffer oben ab der der Überhitzungsschutz aktiv wird" + id: ${lower_name}_HK4_Temp_am_Puffer_oben_ab_der_der_Ueberhitzungsschutz_aktiv_wird + address: 1135 + unit_of_measurement: "°C" + value_type: S_WORD + min_value: 60 + max_value: 120 diff --git a/heizkreis_05.yaml b/heizkreis_05.yaml new file mode 100644 index 0000000..49c2eea --- /dev/null +++ b/heizkreis_05.yaml @@ -0,0 +1,168 @@ +select: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Betriebsart" + id: ${lower_name}_HK5_Betriebsart + address: 8050 + value_type: U_WORD + optionsmap: + "Aus": 0 + "Automatik": 1 + "Extraheizen": 2 + "Absenken": 3 + "Dauerabsenken": 4 + "Partybetrieb": 5 + +sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Vorlauf-Isttemperatur" + id: ${lower_name}_HK5_Vorlauf_Isttemperatur + register_type: read + address: 1150 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Vorlauf-Solltemperatur" + id: ${lower_name}_HK5_Vorlauf_Solltemperatur + register_type: read + address: 1151 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Raumtemperatur" + id: ${lower_name}_HK5_Raumtemperatur + register_type: read + address: 1152 #Wrong ? + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + +binary_sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Pumpe AN AUS" + id: ${lower_name}_HK5_Pumpe_AN_AUS + register_type: coil + address: 1150 + +number: + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Gewünschte Vorlauf-temperatur bei +10°C Außentemperatur" + id: ${lower_name}_HK5_Vorlauf_Temperatur_10C_Aussentemperatur + address: 1151 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + # not correct yet ? + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Gewünschte Vorlauf-temperatur bei -10°C Außentemperatur" + id: ${lower_name}_HK5_Vorlauf_Temperatur_minus_10C_Aussentemperatur + address: 1152 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 110 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Absenkung der Vorlauftemperatur im Absenkbetrieb" + id: ${lower_name}_HK5_Absenkung_der_Vorlauftemperatur_im_Absenkbetrieb + address: 1153 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 0 + max_value: 70 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Heizkreispumpe ausschalten wenn Vorlauf Soll kleiner ist als" + id: ${lower_name}_HK5_Heizkreispumpe_ausschalten_wenn_Vorlauf_Soll_kleiner_ist_als + address: 1159 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Gewünschte Raumtemperatur während des Heizbetriebs" + id: ${lower_name}_HK5_Gewuenschte_Raumtemperatur_waehrend_des_Heizbetriebs + address: 1155 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Gewünschte Raumtemperatur während des Absenkbetriebes" + id: ${lower_name}_HK5_Gewuenschte_Raumtemperatur_waehrend_des_Absenkbetriebes + address: 1160 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: 10 + max_value: 30 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Außentemperatur, unter der die Heizkreispumpe im Heizbetrieb einschaltet" + id: ${lower_name}_HK5_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Heizbetrieb_einschaltet + address: 1156 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Außentemperatur, unter der die Heizkreispumpe im Absenkbetrieb einschaltet" + id: ${lower_name}_HK5_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Absenkbetrieb_einschaltet + address: 1157 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -20 + max_value: 50 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Frostschutztemperatur" + id: ${lower_name}_HK5_Frostschutztemperatur + address: 1158 + unit_of_measurement: "°C" + value_type: S_WORD + multiply: 2 + min_value: -10 + max_value: 20 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${hk5_name} - Temp. am Puffer oben ab der der Überhitzungsschutz aktiv wird" + id: ${lower_name}_HK5_Temp_am_Puffer_oben_ab_der_der_Ueberhitzungsschutz_aktiv_wird + address: 1165 + unit_of_measurement: "°C" + value_type: S_WORD + min_value: 60 + max_value: 120 diff --git a/kessel.yaml b/kessel.yaml index 0488c24..1c7e542 100644 --- a/kessel.yaml +++ b/kessel.yaml @@ -1,156 +1,8 @@ -sensor: - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Kesseltemperatur" - id: ${name}_Kesseltemperatur - register_type: read - address: 0 - unit_of_measurement: "°C" - value_type: U_WORD - filters: - - multiply: 0.5 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Abgastemperatur" - id: ${name}_Abgastemperatur - register_type: read - address: 1 - unit_of_measurement: "°C" - value_type: U_WORD - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Verbleibende Heizstunden bis zur Asche entleeren Warnung" - id: ${name}_Verbleibende_Heizstunden_bis_zur_Asche_entleeren_Warnung - register_type: read - address: 86 - unit_of_measurement: "h" - value_type: U_WORD - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Saugzug - Ansteuerung" - id: ${name}_Saugzug_Ansteuerung - register_type: read - address: 13 - unit_of_measurement: "%" - value_type: U_WORD - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Saugzugdrehzahl" - id: ${name}_Saugzugdrehzahl - register_type: read - address: 6 - unit_of_measurement: "rpm" - value_type: U_WORD - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Sauerstoffregler" - id: ${name}_Sauerstoffregler - register_type: read - address: 16 - unit_of_measurement: "%" - value_type: U_WORD - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Restsauerstoffgehalt" - id: ${name}_Restsauerstoffgehalt - register_type: read - address: 3 - unit_of_measurement: "%" - accuracy_decimals: 1 - value_type: U_WORD - filters: - - multiply: 0.1 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Rücklauffühler" - id: ${name}_Ruecklauffuehler - register_type: read - address: 9 - unit_of_measurement: "°C" - value_type: U_WORD - filters: - - multiply: 0.5 - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Primärluft" - id: ${name}_Primaerluft - register_type: read - address: 11 - unit_of_measurement: "%" - value_type: U_WORD - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Sekundärluft" - id: ${name}_Sekundaerluft - register_type: read - address: 12 - unit_of_measurement: "%" - value_type: U_WORD - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Betriebsstunden" - id: ${name}_Betriebsstunden - register_type: read - address: 20 - unit_of_measurement: "h" - value_type: U_WORD - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Stunden seit letzter Wartung" - id: ${name}_Stunden_seit_letzter_Wartung - register_type: read - address: 55 - unit_of_measurement: "h" - value_type: U_WORD - - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Betriebsstunden in der Feuererhaltung" - id: ${name}_Betriebsstunden_in_der_Feuererhaltung - register_type: read - address: 24 - unit_of_measurement: "h" - value_type: U_WORD - -binary_sensor: - - platform: template - name: "${name} Kesselzustand Heizen" - id: ${name}_Kesselzustand_Heizen - lambda: |- - if (id(${name}_Kesselzustand).state == "Heizen") { - return true; - } else { - return false; - } - -number: - - platform: modbus_controller - modbus_controller_id: ${modbus_controller_id} - name: "${name} Kessel-Solltemperatur" - id: ${name}_Kessel_Solltemperatur - address: 0 - unit_of_measurement: "°C" - value_type: U_WORD - multiply: 2 - min_value: 70 - max_value: 90 - text_sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Kesselzustand" - id: ${name}_Kesselzustand + id: ${lower_name}_Kesselzustand register_type: read address: 4001 raw_encode: HEXBYTES @@ -243,3 +95,190 @@ text_sensor: default: return std::string("----"); } return x; + +sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Kesseltemperatur" + id: ${lower_name}_Kesseltemperatur + register_type: read + address: 0 + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Abgastemperatur" + id: ${lower_name}_Abgastemperatur + register_type: read + address: 1 + unit_of_measurement: "°C" + value_type: S_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Saugzug - Ansteuerung" + id: ${lower_name}_Saugzug_Ansteuerung + register_type: read + address: 13 + unit_of_measurement: "%" + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Saugzugdrehzahl" + id: ${lower_name}_Saugzugdrehzahl + register_type: read + address: 6 + unit_of_measurement: "rpm" + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Sauerstoffregler" + id: ${lower_name}_Sauerstoffregler + register_type: read + address: 16 + unit_of_measurement: "%" + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Restsauerstoffgehalt" + id: ${lower_name}_Restsauerstoffgehalt + register_type: read + address: 3 + unit_of_measurement: "%" + accuracy_decimals: 1 + value_type: U_WORD + filters: + - multiply: 0.1 + + # - platform: modbus_controller + # modbus_controller_id: ${modbus_controller_id} + # name: "${name} Rücklauffühler" + # id: ${lower_name}_Ruecklauffuehler + # register_type: read + # address: 9 + # unit_of_measurement: "°C" + # value_type: S_WORD + # filters: + # - multiply: 0.5 + + # - platform: modbus_controller + # modbus_controller_id: ${modbus_controller_id} + # name: "${name} Primärluft" + # id: ${lower_name}_Primaerluft + # register_type: read + # address: 11 + # unit_of_measurement: "%" + # value_type: U_WORD + + # - platform: modbus_controller + # modbus_controller_id: ${modbus_controller_id} + # name: "${name} Sekundärluft" + # id: ${lower_name}_Sekundaerluft + # register_type: read + # address: 12 + # unit_of_measurement: "%" + # value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Kesselstellgröße" + id: ${lower_name}_Kesselstellgroesse + register_type: read + address: 14 + unit_of_measurement: "%" + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Betriebsstunden" + id: ${lower_name}_Betriebsstunden + register_type: read + address: 20 + unit_of_measurement: "h" + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Anzahl der Brennerstarts" + id: ${lower_name}_Anzahl_der_Brennerstarts + register_type: read + address: 22 + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Betriebsstunden in der Feuererhaltung" + id: ${lower_name}_Betriebsstunden_in_der_Feuererhaltung + register_type: read + address: 24 + unit_of_measurement: "h" + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Errechnete Kesselsolltemperatur" + id: ${lower_name}_Errechnete_Kesselsolltemperatur + register_type: read + address: 27 + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Stunden seit letzter Wartung" + id: ${lower_name}_Stunden_seit_letzter_Wartung + register_type: read + address: 55 + unit_of_measurement: "h" + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Verbleibende Heizstunden bis zur Asche entleeren Warnung" + id: ${lower_name}_Verbleibende_Heizstunden_bis_zur_Asche_entleeren_Warnung + register_type: read + address: 86 + unit_of_measurement: "h" + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Aussentemperatur" + id: ${lower_name}_Aussentemperatur + register_type: read + address: 1000 + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + +binary_sensor: + - platform: template + name: "${name} Kesselzustand Heizen" + id: ${lower_name}_Kesselzustand_Heizen + lambda: |- + if (id(${lower_name}_Kesselzustand).state == "Heizen") { + return true; + } else { + return false; + } + +number: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Kessel-Solltemperatur" + id: ${lower_name}_Kessel_Solltemperatur + address: 0 + unit_of_measurement: "°C" + value_type: U_WORD + multiply: 2 + min_value: 40 + max_value: 90 diff --git a/netzpumpe.yaml b/netzpumpe.yaml new file mode 100644 index 0000000..f0b5ad0 --- /dev/null +++ b/netzpumpe.yaml @@ -0,0 +1,31 @@ +sensor: + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Drehzahl Netzpumpe" + id: ${lower_name}_Drehzahl_Netzpumpe + register_type: read + address: 700 + unit_of_measurement: "%" + value_type: U_WORD + + - platform: modbus_controller + modbus_controller_id: ${modbus_controller_id} + name: "${name} Netzrücklauf Temperatur" + id: ${lower_name}_Netzruecklauf_Temperatur + register_type: read + address: 701 + unit_of_measurement: "°C" + value_type: S_WORD + filters: + - multiply: 0.5 + +binary_sensor: + - platform: template + name: "${name} Netzpumpe AN AUS" + id: ${lower_name}_Netzpumpe_AN_AUS + lambda: |- + if (id(${lower_name}_Drehzahl_Netzpumpe).state > 0) { + return true; + } else { + return false; + } diff --git a/puffer_01.yaml b/puffer_01.yaml index f6e1e69..986bec4 100644 --- a/puffer_01.yaml +++ b/puffer_01.yaml @@ -1,41 +1,41 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} - name: "${name} Puffer 1 Temperatur oben" - id: ${name}_Puffer_1_Temperatur_oben + name: "${puffer1_name} Temperatur oben" + id: ${lower_name}_Puffer_1_Temperatur_oben register_type: read address: 2000 unit_of_measurement: "°C" - value_type: U_WORD + value_type: S_WORD filters: - multiply: 0.5 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} - name: "${name} Puffer 1 Temperatur mitte" - id: ${name}_Puffer_1_Temperatur_mitte + name: "${puffer1_name} Temperatur mitte" + id: ${lower_name}_Puffer_1_Temperatur_mitte register_type: read address: 2001 unit_of_measurement: "°C" - value_type: U_WORD + value_type: S_WORD filters: - multiply: 0.5 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} - name: "${name} Puffer 1 Temperatur unten" - id: ${name}_Puffer_1_Temperatur_unten + name: "${puffer1_name} Temperatur unten" + id: ${lower_name}_Puffer_1_Temperatur_unten register_type: read address: 2002 unit_of_measurement: "°C" - value_type: U_WORD + value_type: S_WORD filters: - multiply: 0.5 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} - name: "${name} Puffer 1 Ladezustand" - id: ${name}_Puffer_1_Ladezustand + name: "${puffer1_name} Ladezustand" + id: ${lower_name}_Puffer_1_Ladezustand register_type: read address: 2006 unit_of_measurement: "%" @@ -43,8 +43,8 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} - name: "${name} Puffer 1 Pufferpumpen Ansteuerung" - id: ${name}_Puffer_1_Pufferpumpen_Ansteuerung + name: "${puffer1_name} Pufferpumpen Ansteuerung" + id: ${lower_name}_Puffer_1_Pufferpumpen_Ansteuerung register_type: read address: 2003 unit_of_measurement: "%" @@ -52,10 +52,10 @@ sensor: binary_sensor: - platform: template - name: "${name} Puffer 1 Pufferpumpen Ansteuerung AN AUS" - id: ${name}_Puffer_1_Pufferpumpen_Ansteuerung_AN_AUS + name: "${puffer1_name} Pufferpumpen Ansteuerung AN AUS" + id: ${lower_name}_Puffer_1_Pufferpumpen_Ansteuerung_AN_AUS lambda: |- - if (id(${name}_Puffer_1_Pufferpumpen_Ansteuerung).state > 0) { + if (id(${lower_name}_Puffer_1_Pufferpumpen_Ansteuerung).state > 0) { return true; } else { return false; diff --git a/zirkulationspumpe.yaml b/zirkulationspumpe.yaml index f912fc4..92082e5 100644 --- a/zirkulationspumpe.yaml +++ b/zirkulationspumpe.yaml @@ -2,7 +2,7 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Ruecklauftemperatur an der Zirkulations Leitung" - id: ${name}_Ruecklauftemperatur_an_der_Zirkulations_Leitung + id: ${lower_name}_Ruecklauftemperatur_an_der_Zirkulations_Leitung register_type: read address: 711 unit_of_measurement: "°C" @@ -13,7 +13,7 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Strömungsschalter an der Brauchwasser Leitung" - id: ${name}_Stoemungsschalter_an_der_Brauchwasser_Leitung + id: ${lower_name}_Stoemungsschalter_an_der_Brauchwasser_Leitung register_type: read address: 600 value_type: U_WORD @@ -21,7 +21,7 @@ sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Drehzahl der Zirkulations Pumpe" - id: ${name}_Drehzahl_der_Zirkulations_Pumpe + id: ${lower_name}_Drehzahl_der_Zirkulations_Pumpe register_type: read address: 710 unit_of_measurement: "%" @@ -30,9 +30,9 @@ sensor: binary_sensor: - platform: template name: "${name} Zirkulationspumpe AN AUS" - id: ${name}_Zirkulations_Pumpe_AN_AUS + id: ${lower_name}_Zirkulations_Pumpe_AN_AUS lambda: |- - if (id(${name}_Drehzahl_der_Zirkulations_Pumpe).state > 0) { + if (id(${lower_name}_Drehzahl_der_Zirkulations_Pumpe).state > 0) { return true; } else { return false; @@ -42,7 +42,7 @@ number: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${name} Bei welcher RL Temperatur an der Zirkulationsleitung soll die Pumpe ausschalten" - id: ${name}_Bei_welcher_RL_Temperatur_an_der_Zirkulationsleitung_soll_die_Pumpe_ausschalten + id: ${lower_name}_Bei_welcher_RL_Temperatur_an_der_Zirkulationsleitung_soll_die_Pumpe_ausschalten address: 600 unit_of_measurement: "°C" value_type: U_WORD