emsesp / EMS-ESP32

ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps
https://emsesp.github.io/docs
GNU Lesser General Public License v3.0
574 stars 100 forks source link

Possibility to list all the boiler error codes #938

Closed robertek closed 1 year ago

robertek commented 1 year ago

Is your feature request related to a problem? Please describe. Sometimes the boiler may present multiple error codes. Sometimes even one error code, which is still valid, is masked with newer error code which happened after the running error but last only for a short time. This prevents investigating error codes from EMS-ESP at all and the possibility of reset them.

Describe the solution you'd like The thermostat shows all the error codes present in system. It is a question if it has memory for all of them and snoop any error notification and then present them on the duration basis (or let say missing error ending notification). Or it has some EMSs to query all the present errors. I expect the first one is more probable. On this observation the final implementation will be based.

Additional context I have a IVT AIR X HP which will need to have diagnosed the circuit between outdoor and indoor unit. Probably replace the weak circulation pump. Meanwhile this is done I'm experiencing regular defrost issues, in lower freezing temperatures it may be multiple errors. So I'm able to snoop that out and provide some information for correct implementation of diagnosis of multiple error issues. And also being able to reset them correctly.

bbqkees commented 1 year ago

AFAIK only the last error code is sent over the bus, previous ones are overwritten. EMS-ESP does not log data by itself, it passes it on to your home automation or smart home solution. If you connected the Gateway to f.i. Home Assistant you can just log it there.

proddy commented 1 year ago

that is the best solution. the ESP32 has limited memory and not enough to store historic data

elRadix commented 1 year ago

can be done in home assistant using a template sensor and a log card you need to consult the manual of your boiler to be able to add the correct error code

SmartSelect_20230130_143916_Chrome

    ## ------------------------------------------------------------------
    ## service code number text for Bosch i7000iw 
    ## ------------------------------------------------------------------
    heating_service_code_message:
      friendly_name: "Heating message"
      attribute_templates:
         service-code: "{{states('sensor.boiler_servicecodenumber')|int(0)}}"
         timestamp: "{{now().strftime('%Y-%m-%d %H:%M:%S')}}"
         date: >
             {{ now().timestamp() | timestamp_custom("%Y-%m-%d", true) }}
         time: >
            {{ now().timestamp() | timestamp_custom("%H:%M:%S", true) }}
      value_template: >-
          {% set mapper = {
              '208':'208-The device is in chimney sweep mode. Chimney sweep mode is automatically deactivated after 30 minutes',
              '200':'200-The device is in heating mode', 
              '201':'201-Device in hot water mode',
              '202':'202-Cycle lock active: The time interval for switching the burner on again has not yet been reached',
              '305':'305-Holding time: The time interval for keeping the water warm has not yet been reached',
              '283':'283-The burner is starting',
              '265':'266-The heat requirement is lower than the minimum heat output of the device. The device works in on/off mode',
              '203':'203-The device is ready for operation, there is no heat requirement',
              '284':'284-The gas valve is opened, first safety time',
              '270':'270-The device electronics are starting up',
              '204':'204-The current flow temperature is higher than the target flow temperature. The boiler is switched off',
              '357':'357-Venting function active',
              '358':'358-Blocking protection for heating pump and 3-way valve active',
              '212':'212-Gradient monitoring heating flow has responded',
              '341':'341-Gradient limitation: Temperature rise too fast in heating mode',
              '342':'342-Gradient limitation: Temperature rise too fast in hot water mode',
              '282':'282-No speed feedback from the heating pump',
              '268':'268-The device is in test mode',
              '276':'276-The temperature at the flow temperature sensor is > 95 °C',
              '359':'359-The temperature at the hot water temperature sensor is too high',
              '341':'341-Gradient limitation: temperature rise too fast in heating mode',
              '281':'281-The heating pump does not generate any pressure',
              '264':'264-Fan failed.',
              '273':'273-The burner and blower have been in continuous operation for 24 hours and will be shut down for a short time for safety checks',
              '224':'224-Heating block temperature limiter',
              '350':'350-Flow temperature sensor defective (short circuit)',
              '351':'351-Flow temperature sensor defective (interruption)',
              '227':'227-Flame is not detected. After the 4th ignition attempt, the blocking fault becomes a locking fault',
              '229':'229-No ionization signal during burner operation',
              '232':'232-Temperature monitor AT90 has tripped',
              '290':'290-Internal error',
              '217':'217-Fan is not running',
              '214':'214-The fan will be switched off during the safety time',
              '216':'216-Fan too slow',
              '215':'215-Fan too fast',
              '224':'224-Heating block temperature limiter or flue gas temperature limiter has tripped',
              '222':'222-Flow temperature sensor defective (short circuit)',
              '223':'223-Flow temperature sensor defective (interruption)',
              '227':'227-Flame not detected',
              '228':'228-Flame is detected although burner is off',
              '306':'306-After gas shutdown: Flame is detected',
              '231':'231-Mains voltage was interrupted.',
              '261':'261-First safety time error',
              '280':'280-Restart attempt timed out',
              '235':'235-KIM not compatible with basic controller BC25',
              '360':'360-KIM not recognized.',
              '230':'230-Gas valve defective.',
              '234':'234-Connection cable of gas valve or gas valve or base controller BC25 defective',
              '238':'238-Connection cable of gas valve or gas valve or basic controller BC25 defective',
              '233':'233-KIM defective',
              '259':'259-KIM or Logamatic BC25 defective', 
              '323':'323-BUS-communicatie onderbroken.' 
            }
          %}
          {% set state = states('sensor.boiler_servicecodenumber') %}
          {% set message = mapper[state] if state in mapper %}
          {{ message }}
MichaelDvP commented 1 year ago

Actual errors are send with telegram 0xBE from device and 0xBF from boiler, but only as long as the error exists. The errors logged in ems telegram 0x10 (need reset) and 0x11 (boiler tries again). 0x10 holds up to 8 last errors, 0x11 up t o 5, the newest first. EMS+ logs errors in 0xC2 with start of error and end of error, don't know how much errors really logged. It's 20byte per error, so the telegram could hold max 12 errors.

But this is a lot of redundant data, so we only read th newest error and publish it. If HA or any other system log, you have all data in history. If somthing is missing, use teminal an type read 8 C2 and you get all the boiler has logged. Needs a bit handwork to decode.

robertek commented 1 year ago

I agree that storing the past errors is not a viable way on ESP32. I probably did not specified that correctly. I always need to know all of the active errors. Unfortunately the last error may not be the last active, but it has the last starting time. In that case the lastcode may show, not active, last error, but there may be an active error in the system (with earlier start time). If the lastcode will always show the last, or the last active if any, it would probably be enough.

What I find useful is the MichaelDvP comment. I will try to dig into it in that space.

tefracky commented 1 year ago

Just for information: Here is the sensor in the new Home-Assistant template format for all status numbers for the Buderus GB192i-19 in German:

## ------------------------------------------------------------------
## Service code number text for Buderus GB192i-19
## ------------------------------------------------------------------
- name: "Heizungsstatus"
  attributes:
     service-code: "{{states('sensor.heizung_ems_esp_boiler_statusmeldungsnummer')|int(0)}}"
     timestamp: "{{now().strftime('%Y-%m-%d %H:%M:%S')}}"
     date: >
         {{ now().timestamp() | timestamp_custom("%Y-%m-%d", true) }}
     time: >
        {{ now().timestamp() | timestamp_custom("%H:%M:%S", true) }}
  state: >-
      {% set mapper = {
          '200' : '200 Das Gerät befindet sich im Heizbetrieb.',
          '201' : '201 Das Gerät befindet sich im Warmwasserbetrieb.',
          '202' : '202 Wartephase des Geräts. Wärmeanforderung durch RC-Regelgerät oder einen ON/OFF-Thermostat erfolgt in Intervallen von weniger als 10 Minuten.',
          '203' : '203 Betriebsbereitschaft.',
          '204' : '204 Wartephase des Geräts. Vorlauftemperatur ist höher als die berechnete oder eingestellte Temperatur. HBei einer außentemperaturgeführten Regelung die Heizkurve am Raumthermostat prüfen. Verkabelung und Funktion des Speichertemperaturfühlers prüfen.',
          '207' : '207 Der Betriebsdruck ist zu niedrig (weniger als 0,2 bar). Heizungsanlage bis zu 2 bar füllen. Ausdehnungsgefäß prüfen. Heizungsanlage auf undichte Stellen prüfen. Verkabelung und Funktion des Druckfühlers prüfen.',
          '208' : '208 Das Gerät befindet sich im Schornsteinfegerbe-trieb oder Servicebetrieb.',
          '2085' : '2085 Interner Fehler. Entriegeln. Anlage für 30 Sekunden spannungsfrei schalten. Feuerungsautomat ersetzen.',
          '210' : '210 Vom Abgastemperaturfühler gemessene Temperatur ist zu hoch und ist dadurch geöffnet. Funktion des Abgastemperaturfühlers prüfen. Gerät auf Verschmutzung prüfen. Gerät ggf. warten.',
          '212' : '212 Zu schneller Temperaturanstieg. Betriebsdruck prüfen. Heizungsanlage und Gerät entlüften und auf ausreichenden Wasserdurchfluss prüfen. Verkabelung und Funktion der Pumpe und des jeweiligen Temperaturfühlers prüfen.',
          '213' : '213 Zu schneller Temperaturanstieg. Betriebsdruck prüfen. Heizungsanlage und Gerät entlüften und auf ausreichenden Wasserdurchfluss prüfen. Verkabelung und Funktion der Pumpe und des jeweiligen Temperaturfühlers prüfen.',
          '214' : '214 Gebläse wird während Sicherheitszeit abgeschaltet.Verkabelung und Steckverbindungen des Gebläses, Betriebsverhalten des Geräts und Steckverbindungen des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '215' : '215 Das Gebläse läuft zu schnell. Abgasanlage prüfen, ggf. reinigen oder instandsetzen.',
          '216' : '216 Das Gebläse läuft zu langsam. Gebläsekabel mit Stecker prüfen, ggf. austauschen. Gebläse auf Verschmutzung und Blockierung prüfen, ggf. austauschen.',
          '217' : '217 Das Gebläse läuft unregelmäßig bei Hochfahrphase. Verkabelung und Steckverbindungen des Gebläses, Betriebsverhalten des Geräts und Steckverbindungen des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '218' : '218 Die vom Vorlauftemperaturfühler gemessene Temperatur ist höher als 105 °C. Betriebsdruck prüfen. Heizungsanlage und Gerät entlüften. Heizungsanlage auf ausreichenden Wasserdurchfluss, Funktion der Pumpe und des Vorlauftemperaturfühlers prüfen.',
          '219' : '219 Der Sicherheitstemperaturfühler misst eine Temperatur über 105 °C. Betriebsdruck prüfen. Heizungsanlage entlüften und auf ausreichenden Wasserdurchfluss prüfen. Funktion der Pumpe und des Sicherheitstemperaturfühlers prüfen.',
          '220' : '220 Kurzschluss des Sicherheitstemperaturfühlers oder gemessene Wassertemperatur ist höher als 130 °C.',
          '221' : '221 Die Kontakte des Sicherheitstemperaturfühlers sind unterbrochen. Stecker des Sicherheitstemperaturfühlers prüfen. Sicherheitstemperaturfühler austauschen und Betriebsverhalten des Geräts prüfen.',
          '222' : '222 Die Kontakte des Vorlauftemperaturfühlers sind kurzgeschlossen. Stecker des Vorlauftemperaturfühlers prüfen. Vorlauftemperaturfühler austauschen und Betriebsverhalten des Geräts prüfen.',
          '224' : '224 Wärmeblock-Temperaturbegrenzer oder Abgastemperaturbegrenzer hat ausgelöst. Wird verriegelnde Störung. Anlage entlüften. Heizungspumpe auf Dauerbetrieb stellen. Wärmeblock-/Abgas-Temperaturbegrenzer, Anschlusskabel und Wärmeblock prüfen.',
          '227' : '227 Unzureichende Flammenbildung (Ionisationsstrom) während des Zündungsversuchs des Brenners. Auf Verschmutzung, dynamischen Gasvordruck, Gas-Luft-Verhältnis, Steckverbindungen, Zündung, Ionisationsstrom und Zündeinrichtung auf Beschädigung prüfen.',
          '228' : '228 Flammenbildung (Ionisationsstrom) vor Brennerstart. Steckverbindung der Überwachungselektrode prüfen. Zündeinrichtung auf Beschädigung und Verschleiß prüfen.',
          '229' : '229 Unzureichende Flammenbildung (Ionisationsstrom) während des Brennerbetriebs. Dynamischen Gasvordruck, Verkabelung, Steckverbindung der Überwachungselektrode und Zündeinrichtung auf Beschädigung und Verschleiß prüfen.',
          '231' : '231 Unterbrechung der Netzspannung während einer verriegelnden Störung. Gerät erneut starten (Reset).',
          '232' : '232 Der externe Schaltkontakt ist geöffnet. Brücke am Anschluss des externen Schaltkontaktes prüfen. Externen Schaltkontakt prüfen.',
          '233' : '233 Kodierstecker nicht erkannt. Kodierstecker richtig aufstecken, ggf. austauschen.',
          '234' : '234 Die Kontakte der Gasarmatur sind unterbrochen. Verkabelung und Steckverbindung der Gasarmatur prüfen. Gasarmatur austauschen und Betriebsverhalten des Geräts prüfen.',
          '235' : '235 Falscher Kodierstecker (HCM-Modul). Kodierstecker (HCM-Modul) prüfen.',
          '237' : '237 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '238' : '238 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '239' : '239 Brennerautomat oder HCM-Modul ist defekt. Kodierstecker austauschen. Steuergerät austauschen.',
          '240' : '240 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '241' : '241 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '242' : '242 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '243' : '243 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '244' : '244 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '245' : '245 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '246' : '246 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '247' : '247 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '248' : '248 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '249' : '249 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '250' : '250 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '251' : '251 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '252' : '252 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '253' : '253 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '254' : '254 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '255' : '255 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '256' : '256 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '257' : '257 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '258' : '258 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '259' : '259 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '260' : '260 Der Vorlauftemperaturfühler misst keinen Temperaturanstieg nach einem Brennerstart. Betriebsdruck prüfen. Heizungsanlage und Gerät entlüften und auf Wasserdurchfluss, Verkabelung und Funktion der Pumpe und Vorlauftemperaturfühlers prüfen.',
          '261' : '261 Brennerautomat ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '262' : '262 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '2626' : '2626 Anlagenstörung Geräteelektronik. Geräteelektronik austauschen.',
          '263' : '263 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '264' : '264 Gebläse ausgefallen. Verkabelung und Steckverbindungen des Gebläses prüfen. Gebläse auf Verschmutzung und Blockierung prüfen, ggf. austauschen.',
          '265' : '265 Ein-/Aus-Betrieb.',
          '268' : '268 Komponententest.',
          '269' : '269 Zündeinrichtung wurde zu lange aktiviert. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '270' : '270 Das Gerät wird hochgefahren.',
          '272' : '272 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '273' : '273 Der Brenner und das Gebläse waren 24 Std. ununterbrochen in Betrieb und werden zur Sicherheitskontrolle für kurze Zeit außer Betrieb genommen.',
          '275' : '275 Wärmepumpe im Enteisungsmodus.',
          '276' : '276 Vorlauftemperatur > 95 °C. Kann auftreten, wenn alle Heizkörperventile geschlossen werden. Betriebsdruck und Anschlusskabel prüfen. Wartungshähne öffnen. Heizungspumpe auf Dauerbetrieb einstellen.',
          '280' : '280 Brennerautomat ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '281' : '281 Die Heizungspumpe erzeugt keinen Druck. Betriebsdruck der Heizungsanlage prüfen. Wartungshähne öffnen. Heizungspumpe andrehen, ggf. austauschen.',
          '282' : '282 Keine Drehzahlrückmeldung der Heizungspumpe. Verkabelung und Funktion der Heizungspumpe prüfen.',
          '283' : '283 Brennerstart.',
          '284' : '284 Erste Sicherheitszeit.',
          '290' : '290 Brennerautomat oder HCM-Modul ist defekt. Verkabelung und Steckverbindung des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '305' : '305 Das Zeitintervall für die Wasser-Warmhaltung ist noch nicht erreicht.',
          '306' : '306 Flammenbildung (Ionisationsstrom) nach Abschalten des Brenners. Wärmeblock an der Innenseite um Zündeinrichtung reinigen. Ionisationsteil sowie Gas-Luft-Verhältnis des Brenners und Öffnung der Gasarmatur auch nach Abschalten des Brenners prüfen.',
          '307' : '307 Heizungspumpe im Gerät dreht nicht. Heizungspumpe austauschen und Betriebsverhalten des Geräts prüfen.',
          '323' : '323 BUS-Kommunikation unterbrochen. Anschlusskabel BUS-Teilnehmer prüfen, ggf. austauschen.',
          '328' : '328 Kurzzeitige Unterbrechung der Netzspannung. Verkabelung des Trafos prüfen und ggf. tauschen (falls vorhanden). Prüfen, ob die Störung Folge der Störung eines Stromaggregats, Windrads oder anderer Ausrüstung ist. Elektroinstallation prüfen.',
          '330' : '330 Externer Vorlauftemperaturfühler defekt (hydraulische Weiche). Temperaturfühler und Anschlusskabel auf Kurzschluss prüfen, ggf. austauschen.',
          '331' : '331 Externer Vorlauftemperaturfühler defekt (hydraulische Weiche). Temperaturfühler und Anschlusskabel auf Unterbrechung prüfen, ggf. austauschen.',
          '341' : '341 Zu schneller Temperaturanstieg. Betriebsdruck prüfen. Heizungsanlage und Gerät entlüften und auf ausreichenden Wasserdurchfluss prüfen. Verkabelung und Funktion der Pumpe und des jeweiligen Temperaturfühlers prüfen.',
          '342' : '342 Gemessene Temperatur steigt zu schnell. Wasserdruck des Geräts prüfen und Heizungsanlage und Gerät entlüften. Prüfen, ob genügend Strömung über die Heizungsanlage möglich ist. Betriebsverhalten und Verkabelung der Pumpe und Fühler prüfen.',
          '350' : '350 Vorlauftemperaturfühler defekt (Kurzschluss). Wenn die blockierende Störung längere Zeit bestehen bleibt, wird aus der blockierenden Störung eine verriegelnde Störung. Temperaturfühler und Anschlusskabel auf Kurzschluss prüfen, ggf. austauschen.',
          '351' : '351 Vorlauftemperaturfühler defekt (Unterbrechung). Wenn die blockierende Störung längere Zeit bleibt, wird aus der blockierenden Störung eine verriegelnde Störung. Temperaturfühler und Anschlusskabel auf Unterbrechung prüfen, ggf. austauschen.',
          '356' : '356 Netzspannung niedriger als erlaubt. Prüfen, ob die Störung die Folge des Vorhandenseins eines Stromaggregats, eines Windrads oder einer anderen Ausrüstung gewesen sein könnte, die eine Unterbrechung verursachen kann. Elektroinstallation prüfen.',
          '357' : '357 Entlüftungsbetrieb.',
          '358' : '358 Blockierschutz für Heizungspumpe und 3-WegeVentil.',
          '360' : '360 Des angebrachte HCM-Modul korrespondiert nicht mit dem Brennerautomaten. HCM-Modul-Nummer kontrollieren. Anbringen des HCM-Moduls mit der korrekten HCM-Modul-Nummer.',
          '361' : '361 Der angebrachte Brennerautomat korrespondiert nicht mit dem HCM-Modul. Nummern auf dem Brennerautomaten kontrollieren. Anbringen des HCM-Moduls mit der korrekten HCM-Modul-Nummer.',
          '364' : '364 Gasarmatur schließt nicht korrekt. Verkabelung und Steckverbindung der Gasarmatur prüfen. Gasarmatur austauschen und Betriebsverhalten des Geräts prüfen.',
          '365' : '365 Gasarmatur schließt nicht korrekt. Verkabelung und Steckverbindung der Gasarmatur prüfen. Gasarmatur austauschen und Betriebsverhalten des Geräts prüfen.',
          '390' : '390 Brennerautomaten liest falschen Wert im HCMModul. HCM-Modul austauschen und Betriebsverhalten des Geräts prüfen.',
          '537' : '537 Keine Drehzahlrückmeldung vom Gebläse. Anschlussstecker am Gebläse und Feuerungsautomat (SAFe) aufstecken oder ggf. tauschen. Anschlusskabel (230 vAC) zwischen Gebläse und Feuerungsautomat (SAFe) austauschen. Feuerungsautomat (SAFe) austauschen.',
          '550' : '550 Netzspannung zu niedrig. Versorgungsspannung von mindestens 196 VAC herstellen. Feuerungsautomat (SAFe) austauschen.',
          '560' : '560 Luftdruckschalter offen. Jegliche Blockade entfernen. Luftdruckschalter wieder anschließen. Luftdruckschalter ersetzen.',
          '604' : '604 Anlagenstörung Feuerungsautomat. Feuerungsautomat (SAFe) austauschen.',
          '810' : '810 Warmwasser bleibt kalt. Ständige Warmwasserentnahme unterbinden und entlüften. Temperaturfühler richtig positionieren. Warmwasserbereitung auf „Vorrang“ einstellen. Zirkulationsleitung prüfen. Bei Abweichungen zu Tabellenwerten Fühler tauschen.',
          '811' : '811 Warmwasserbereitung.',
          '815' : '815 Temperaturfühler hydraulische Weiche defekt. Fühleranschluss prüfen. Weichenfühler auf falsche Einbauposition oder auf Bruchstelle prüfen.',
          '1011' : '1011 Vom Abgastemperaturfühler gemessene Temperatur ist zu hoch. Verkabelung des Temperaturfühlers prüfen. Temperaturfühler prüfen, ggf. austauschen. Anschlusskabel auf Unterbrechung oder Kurzschluss prüfen, ggf. austauschen.',
          '1012' : '1012 Das Gebläse läuft unregelmäßig. Verkabelung und Steckverbindungen des Gebläses, Betriebsverhalten des Geräts und Steckverbindungen des Brennerautomaten prüfen. Brennerautomaten austauschen und Betriebsverhalten des Geräts prüfen.',
          '1013' : '1013 Das Inspektionsintervall ist erreicht. Bitte Inspektion durchführen. Inspektion durchführen. Nicht blockierende Störung zurücksetzen (erforderlich).',
          '1014' : '1014 Aktuelle Ionisation ist zu niedrig. Wartung durchführen.',
          '1017' : '1017 Der Betriebsdruck ist niedrig. Heizungsanlage bis zu 2 bar füllen. Ausdehnungsgefäß prüfen. Heizungsanlage auf undichte Stellen prüfen. Verkabelung und Funktion des Druckfühlers prüfen.',
          '1018' : '1018 Service Zeit abgelaufen. Wartung durchführen.',
          '1019' : '1019 Falscher Pumpentyp detektiert. Pumpenkennfeld korrekt einstellen. Steckverbindungen und Kabelbaum auf Kontakt prüfen. Gerät ausund wieder einschalten. Pumpe austauschen und Betriebsverhalten des Geräts prüfen.',
          '1021' : '1021 Kaltwassertemperaturfühler des Schichtladespeichers defekt. Gerät ausund wieder einschalten. Verbindungsleitung zum Schichtladespeicherfühler (SLS) reparieren bzw. austauschen. Fühler austauschen.',
          '1022' : '1022 Speichertemperaturfühler defekt oder Kontaktprobleme. Angezeigte Speichertemperatur auf Plausibilität prüfen. Steckverbindungen und Kabelbaum auf Kontakt prüfen. Grundeinstellungen zurücksetzen.',
          '1023' : '1023 Eingestellte Wartungszeit ist überschritten. Wartung erforderlich. Wartung am Gerät ausführen.',
          '1025' : '1025 Rücklauftemperaturfühler ist defekt. Verbindungsleitung zum Rücklauftemperaturfühler reparieren bzw. austauschen. Fühler austauschen.',
          '1065' : '1065 Wasserdruckfühler defekt oder nicht angeschlossen. Anschlussstecker am Wasserdruckfühler korrekt aufstecken. Anschlusskabel zum Wasserdruckfühler austauschen. Wasserdruckfühler austauschen. Steuergerät austauschen.',
          '1068' : '1068 Außentemperaturfühler oder Lambdasonde defekt. Kontaktproblem beseitigen. Lambdasonde austauschen.',
          '2908' : '2908 Anlagenstörung Geräteelektronik / Basiscontroller. Bleibt die Störung nach Reset erhalten, ist der Feuerungsautomat oder Fremdbrennermodul defekt und muss ausgetauscht werden.',
          '2909' : '2909 Anlagenstörung Geräteelektronik / Basiscontroller. Bleibt die Störung nach Reset erhalten, ist der Feuerungsautomat oder Fremdbrennermodul defekt und muss ausgetauscht werden.',
          '2910' : '2910 Fehler im Abgassystem. Abgassystem montieren. Ablagerungen im Abgassystem entfernen.',
          '2911' : '2911 Kalibrierung fehlgeschlagen. Fehlerhafte Komponente ersetzen.',
          '2912' : '2912 Kein Flammensignal während der Kalibrierung. Fehlerhafte Komponente ersetzen.',
          '2913' : '2913 Flammensignal zu niedrig in der Kalibrierung. Fehlerhafte Komponente ersetzen.',
          '2914' : '2914 Anlagenstörung Geräteelektronik. Bleibt die Störung nach Reset erhalten, ist die Gerätesteuerung oder das Brennermodul defekt und muss ausgetauscht werden.',
          '2915' : '2915 Anlagenstörung Geräteelektronik. Gerät zurücksetzen. Eine Wärmeanforderung angeben. Wärmeanforderung beenden. Wenn der Fehler danach wieder auftritt, ist der Brennerregler defekt und muss ausgetauscht werden.',
          '2916' : '2916 Anlagenstörung Geräteelektronik. Gerät zurücksetzen. Eine Wärmeanforderung angeben. Wärmeanforderung beenden. Wenn der Fehler danach wieder auftritt, ist der Brennerregler defekt und muss ausgetauscht werden.',
          '2917' : '2917 Kein Flammensignal während der Überprüfung der Verbrennungsregelung. Abgasanlage auf Rezirkulation prüfen. Gerät ausschalten, Wärmeanforderung angeben, 5 Minuten warten. Gerät zurücksetzen, ohne Strom zu trennen. Brennerregler defekt.',
          '2918' : '2918 Störung in der Verbrennungsregelung. Siphon reinigen und das Gerät entwässern (Gasseite).',
          '2919' : '2919 Störung in der Verbrennungsregelung. Fehlerhafte Komponente ersetzen.',
          '2920' : '2920 Störung Flammenüberwachung. Feuerungsautomat austauschen.',
          '2921' : '2921 Geräteelektronik im Testmode. Keine Maßnahme erforderlich (Wärmeerzeuger startet automatisch).',
          '2922' : '2922 Anlagenstörung Geräteelektronik. Feuerungsautomat austauschen.',
          '2923' : '2923 Anlagenstörung Geräteelektronik. Geräteelektronik austauschen.',
          '2926' : '2926 Anlagenstörung Geräteelektronik. Geräteelektronik austauschen.',
          '2927' : '2927 Flamme während Brennerbetrieb ausgefallen. Hauptabsperreinrichtung und Geräteabsperrhahn öffnen. Gasleitung überprüfen. Überwachungselektrode, Schutzleiteranschluss (PE) im Steuergerät, Zündleitung, Anschlusskabel und Gasarmatur austauschen.',
          '2928' : '2928 Interner Fehler. Feuerungsautomat austauschen.'
        }
      %}
      {% set state = states('sensor.heizung_ems_esp_boiler_statusmeldungsnummer') %}
      {% set message = mapper[state] if state in mapper %}
      {{ message }}
proddy commented 1 year ago

Just for information: Here is the sensor in the new Home-Assistant template format for all status numbers for the Buderus GB192i-19 in German:

thanks. I've added it to the wiki - https://emsesp.github.io/docs/tips-and-tricks/#home-assistant-sensor-template-for-all-status-numbers-on-a-gb192-boiler

MichaelDvP commented 1 year ago

BTW: all codes (2019) are here: https://productslu.buderus.com/buderus/productslu.buderus.com/user/de/buderus_servicehandbuch_ems_2019.pdf

tefracky commented 1 year ago

I was not aware of the maximum sensor length of 255 chars, so I shortened some messages. I updated my answer above, but maybe you should also update the Wiki.

pswid commented 1 year ago

In my opinion, EMS_ESP should show/publish everything it can decode from the EMS bus. After all, each user can use the customization and block those entities that he does not need, right? However, I agree that decoding error numbers to text messages via EMS-ESP is not a good idea. As shown above, this can easily be done on the HomeAssiatant side.

BTW, in the new EMS+ systems (at least that's how it works in my Buderus WSW196i) you can read the entire log of the last 20 errors (the same as displayed by the RC300 controller). These errors can be read from Boiler with telegrams 0xC6 and 0xC7. The structure is similar to 0xC2. If there is room for Flash, I personally see no reason not to include it in future versions of EMS-ESP.

pswid commented 1 year ago

BTW, I found an interesting file with many error codes, descriptions and potential causes: https://github.com/bosch-thermostat/bosch-thermostat-client-python/blob/dev/bosch_thermostat_client/db/errorcodes_ivt.json

proddy commented 1 year ago

In my opinion, EMS_ESP should show/publish everything it can decode from the EMS bus. After all, each user can use the customization and block those entities that he does not need, right?

It does that now, right? Everything is published that is decyphered.

BTW, in the new EMS+ systems (at least that's how it works in my Buderus WSW196i) you can read the entire log of the last 20 errors (the same as displayed by the RC300 controller). These errors can be read from Boiler with telegrams 0xC6 and 0xC7. The structure is similar to 0xC2. If there is room for Flash, I personally see no reason not to include it in future versions of EMS-ESP.

Flash is 99% full now. The ESP32 is a tiny thing. A lot of time has gone into making the software fit within the constraints of the ESP32. It's a tiny chip, the size of your pinky's nail and only has 0.5 MB RAM and 4 MB Flash. We've optimized the hell out of the code to make it all work and still facing memory issues. Compared to something like the RC300

ESP32 image

RC300 image

If we're storing error codes in the Flash, it may fit with some compression but there will be a lot of wear with all the writes and rotation, which is never a good thing.

pswid commented 1 year ago

Yes, currently EMS-ESP decyphers all known parameters. What I meant was that it is no longer possible to add more (e.g. list of last 20 errors) due to out of memory.

The limitation here is not ESP32 itself, but FLASH and RAM. In order to free up some FLASH memory, it would be probably necessary to change the way of updating the firmware (currently ~2MB of the Flash is "wasted"!), e.g. as it is done in TASMOTA (they use "minimal" firmware during update) or drop the multilingual version and publish each language version separately (like TASMOTA). I don't like any of these ideas. Do you have any others?

I think a decision has to be made to abandon ESP32-4MB and switch to ESP32 with 16MB Flash and PSRAM. This will increase resources 4x! It would provide plenty of room for future project development. What do you think?

From what I can see most of the interfaces produced by BBQKees are based on the ESP32-WROOM module. Upgrading them would be relatively simple (for anyone who can solder and has the necessary equipment). Just replace the module with the latest WROOM-32E-N16R2 version and add a 10kohm pull-up resistor to GPIO16. This version has 16MB of flash and 2MB of PSRAM. Of course, future versions of the interface can use also e.g. (easily available) ESP32-WROVER-E-N16R8.

WROOM-32E-N16R2 is still hard to get (I saw it only in the official ESPRESSIF store on Aliexpress), so I'm currently testing using "ordinary" WROOM-32UE-N16 with soldered 8MB PSRAM chip. After enabling PSRAM (by adding heap_caps_malloc_extmem_enable(0)) I noticed no stability issues in EMS-ESP (unlike the version 4MB of Flash, no PSRAM). HEAP MAX Alloc is no longer =39kB.

image

image

proddy commented 1 year ago

you're spot on. We realized this last year and already have started coding for the larger chips S2 and S3 with more Flash and PSRAM. For the 4MB variants, there is https://github.com/emsesp/EMS-ESP32/issues/608 which is done, and works but is still experimental and needs to be explained to end-users. We adapted the concept from Tasmota and Michael did all the coding so kudos to him.

I'm still worried about the wear on the Flash though if we're constantly updating the last error codes.

tefracky commented 1 year ago

I think, it is not the question, if, but how the upgrade to 16 MB will be handled. In my case, I use a dedicated ESP-Board with an EMS-Bus converter from BBQKees. I didnt found 16 MB ESP32 Boards, which can be used directly, but only the chips. In my opinion, soldering the chip is no sufficient way.

MichaelDvP commented 1 year ago

I didnt found 16 MB ESP32 Boards, which can be used directly, but only the chips.

https://www.lilygo.cc/products/t7-s3 Works as drop-in replacement in older gateway premium. You need to compile to S3. BBQkees uses a 16MB SOC in the newer S32 gateways. ETH-is a problem with S3, i think that's the reason why proddy plans W5500 support(see #1037).

bbqkees commented 1 year ago

The S32 has had a 16MB flash chip for a long time now. The E32 has 4MB, which I cannot upgrade to 16MB in the current format. With the addition of all the languages the problem is more in the RAM of the ESP32 chip.

For the next gen S32 the choice is pretty simple. I am looking to use the S3 with 16MB flash and 8MB PSRAM. This is the biggest leap forward we can currently make on the ESP platform.

However, for reasons unknown to me, they removed the convenient hardware Ethernet support from the ESP32-S3. That's why I asked Proddy to have a look at the W5500 Ethernet chip. But this will take some time.

So for the next gen E32 I may have to do an intermediate version with an ESP32 with additional PSRAM.

pswid commented 1 year ago

I'm not convinced that abandoning the "old" ESP32 in favor of the S3 (or other "S" or "C") variants is a good idea. As you noticed variants C and S no longer have native support for Ethernet. The only option left is to connect the ethernet chip via SPI. It will certainly be a much slower (fast enough for us?) and supposedly much less stable solution (W5500 is considered not very stable). Maybe, after all, it's worth staying with the "old" ESP32 but in the version with 16MB of Flash and PSRAM?

I know thet there is no direct successor of WT32-ETH01 used in E32 (with more flash and PSRAM), but I found a nice ESP32 board with LAN8720, 16MB Flash and PSRAM - LILYGO®TTGO T-Internet-COM. It would be enough to design an EMS interface board with an edge connector that fits mini-PCIE connector (there are GPIO signals in it) and we have the successor of the E32 interface. Of course it should be also possible to design completely own PCB (even only 2-layer) with LAN8720 onboard and use ESP32 module or even discrete ESP32, Flash and RAM chips.

bbqkees commented 1 year ago

You may be right about the E32 indeed. It's a shame they removed the Ethernet support in the S3. The ESP32+LAN8720 works well, with minimal additional coding effort. For the S3 the W5500 is the only really viable Ethernet chip. The other two supported MAC chips are very expensive and hardly used. The W5500 has been around for quite some years now. For our purpose the SPI speed should be more than enough.

So maybe it's better to remain a bit longer on the ESP32+PSRAM platform for the next E32 until the official Ethernet support in the IDF for the S3 etc has matured enough. (For the next-gen S32 the S3 is still the better choice). On the other hand if I design a new E32 with the ESP32+PSRAM we have to stay on that platform for a year or two (to make the engineering effort worthwhile) but that won't be a problem as the ESP32 with PSRAM has enough resources.

The ETH01 was convenient, and that LilYGO looks nice but for the next E32 I am going for a complete board with all chips on it like as in the S32. It's a bit of a pain in the ass to source add-on modules every time. Better have a full custom PCB design I can order in volume.