ems-esp MQTT

Begonnen von moustic999, 01 November 2019, 23:23:52

Vorheriges Thema - Nächstes Thema

Franz Tenbrock

Hallo
da der thread aktiv ist hake ichmich mal ein
habe einige Jahre nichts mit FHEM gemacht lief ja alles was ich brauchte
bin also nicht im Thema drin
habe eine Panasonoc heisha
das heishamon Bauteil habe ich heute eingebaut und es auch im wlan gefunden und dann auch in meinem wlan Netz eingebunden,

ich hatte vor 5 Jahren mal einen ESP Abstandssensor für meine Zisterne, hat irgendwann den Geist aufgegeben
damals wurde das so definiert:

define mqttServer MQTT 127.0.0.1:1883
attr mqttServer room MQTT

define ESP1_D1 MQTT_DEVICE
attr ESP1_D1 IODev mqttServer
attr ESP1_D1 room MQTT
attr ESP1_D1 stateFormat Abstand
attr ESP1_D1 subscribeReading_Abstand /fhem/ESP1/1/Abstand
attr ESP1_D1 userReadings USensor:Abstand:.* { ReadingsVal($name,"Abstand",0)-30 }
#### -40 ist der Abstand zwischen Sensor und maximalem Wasserstand = 160

hab das nun so definiert:

define mqttServer MQTT 127.0.0.1:1883
setuuid mqttServer 637536bc-f33f-132e-a1e4-8d7cd044cac336f5
attr mqttServer room MQTT
define Heisha MQTT_DEVICE
setuuid Heisha 6375441e-f33f-132e-d74a-5ac36fc7b79aaba0
attr Heisha IODev mqttServer
attr Heisha room MQTT

ich habe natürlihc im Wiki nachgeschaut dort wird es nun heute anders definiert.
define m2s MQTT2_SERVER 1883 global

wenn ich das aber in der Art definiere, meckert FHEM und meint 1883 wäre schon besetzt
wenn ich das mqtt device über fhem lösche und dann ncoh einmal probiere, das Gleiche

MQTT" ist sicher das neuere Modul wie aber mache ich den port wieder frei
???
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Beta-User

Der Thread ist vielleicht aktiv, aber er ist mAn. nicht dazu da, allgemeine Fragen zu MQTT zu diskutieren. Bitte ggf. zu Panasonic Heisha einen gesonderten Thread aufmachen, das hat doch nichts mit diesem Interface hier zu tun, oder täuscht mich das?

Ansonsten gibt es schon eine Ladung Threads zum Umstieg von MQTT "alt" auf MQTT2. Die einfachste: Definiere einen (MQTT2-) Server mit einem anderen Port und lasse das neue Gerät dahin senden.
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

h3llsp4wn

Hallo zusammen,

nachdem ich nun meine neue GB 172i.2 mit dem ems-esp laufen habe, stellt sich mir noch die Frage nach den Wochenprogrammen - hat hier schon jemand etwas gebaut bzw. realisiert? Ich hatte für die alte Therme und FTUI was gebastelt, so dass man die Programme ändern und schreiben konnte (klar - dann eben etliche male Befehle senden und schauen, dass alles angekommen ist).

Cheers,

h3ll

eckhard scholz

Hallo Leute ,

habe euren Thema gelesen und bin etwa auf dem selben Stand wie maddhin.
Mit dem Lesen der Daten von dem EMS-ESP (V3.6.4.) bin ich ganz zufrieden.
Was ich aber nicht hin bekomme ist das beschreiben z.B: wwseltemp.
attr MQTT2_ems_esp setList wwseltemp:46,48,50,52,54 boiler_data_ww/ems_esp/wwseltemp set $EVTPART1
Was mache ich da falsch?
Was fehlt ev. noch?

Gruß
Eckhard

einen Thema habe ich auch schon am laufen
mein Thema hier
aber das Problem was ich habe würde eigentlich auch hier rein passen.
F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,

fz55

Hallo Eckhard,

probiere mal das hier

attr MQTT2_ems_esp setList wwseltemp:46,48,50,52,54 boiler_data_ww/ems_esp/wwseltemp $EVTPART1
Ich glaube man kann auch $EVTPART1 weglassen.

Grüße
fz55

eckhard scholz

hallo fz55,

hab ich beides mal probiert aber leider ohne Erfolg.
17:51:34.378 SENT boiler_data_ww/ems_esp/wwseltemp 48
17:51:38.836 SENT boiler_data_ww/ems_esp/wwseltemp 50
MQTT traffic bringt nur diese Meldung, ändern tut sich nichts.
Kann den da noch was fehlen, das der Wert nicht im ESM-ESP übernommen wird?
F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,

fz55

Hallo Eckhard,

bist du sicher, dass boiler_data_ww/ems_esp/wwseltemp das richtige Topic zum Ändern des Temperaturwerts ist?

eckhard scholz

Hallo fz55,

nein bin ich nicht, bin auch nicht grad der Profie für MQTT.
Ich habe noch eine anderes Thema gefunden, da hat mir passibe geholfen.
https://forum.fhem.de/index.php?topic=135984.0
Bin da der Sache mit seiner Hilfe etwas näher gekommen aber noch nicht zum Erfolg.

F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,

eckhard scholz

Danke für die Hinweise,

mit noch etwas probieren und passible´s Erklärung funktioniert es so
attr MQTT2_ems_esp setList WwSollT:46,48,50,52,54 ems-esp/boiler {"cmd":"wwseltemp", "data":$EVTPART1}
alleine ohne eure Hinweise wäre ich nicht daruf gekommen. Zumal die ESM-ESP Hilfe bisschen verwirrend ist, wenn man nicht so der große Programmierer ist.

Gruß
Eckhard
F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,

stratege-0815

Hallo zusammen,
verwendet ihr hier ein bestimmtes MQTT Template für den Ems-esp? Es werden ja mehrere angeboten die passen könnten.

ems-esp_heater_device
ems-esp_boiler
ems-esp_thermostat_read-only
ems-esp_thermostat_RC35_type
ems-esp_thermostat_simple

Welches liefert mir alle Werte vom Ems-esp webinterface?

grappa24

Zitat von: stratege-0815 am 02 Dezember 2023, 08:12:09Hallo zusammen,
verwendet ihr hier ein bestimmtes MQTT Template für den Ems-esp? Es werden ja mehrere angeboten die passen könnten.
Hi, ich hab eine Bosch/Junkers Heizung (ZSB 24-5 C 23 / ST 160-2E / CW400) und steuere diese über EMS-ESP.
Boiler: Buderus GBx72/Nefit Trendline/Junkers Cerapur/Worcester Greenstar Si/27i:
  Dafür verwende ich ems-esp_boiler
Thermostat: RC300/RC310/Moduline 3000/Bosch CW400/W-B Sense II:
  Dafür verwende ich ems_esp_thermostat_data

Auslesen kann man den Boiler damit sehr gut, steuern kann ich ehrlich gesagt aktuell nur wWComfort

Beim meinem Regler lässt sich nur "desired_temp" und "mode" über EMS setzen.
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

stratege-0815

Will ich ems-esp_boiler zuweisen will erhalte ich folgenden Fehler.

Unknown command ems_esp:ems-esp/boiler_data:.*, try help.
Unknown command ems_esp:ems-esp/shower_data:.*, try help.
Unknown command ems_esp:ems-esp/mixing_data:.*, try help.
Unknown command ems_esp:ems-esp/tapwater_active:.*, try help.
Unknown command ems_esp:ems-esp/heating_active:.*, try help.
Unknown command ems_esp:ems-esp/boiler_data_ww:.*, try help.

Ich habe eine buderus gb152-24 mit einem RC35 Bedienteil.

grappa24

ich schick dir hier mal ein List meines ems-esp-boiler device:

define MQTT2_ems_esp_boiler MQTT2_DEVICE ems_esp_boiler
attr MQTT2_ems_esp_boiler IODev myBroker
attr MQTT2_ems_esp_boiler alias Brenner
attr MQTT2_ems_esp_boiler devStateIcon 1
attr MQTT2_ems_esp_boiler devStateStyle style="text-align:left"
attr MQTT2_ems_esp_boiler eventMap hot:Hot intelligent:Eco
attr MQTT2_ems_esp_boiler fp_Dachstudio 444,711,7,MQTT2_ems_esp_boiler,
attr MQTT2_ems_esp_boiler icon mqtt
attr MQTT2_ems_esp_boiler readingList heating_system/ems-esp/boiler_data:.* { json2nameValue($EVENT) }\
heating_system/ems-esp/tapwater_active:.* tapwater_active\
heating_system/ems-esp/heating_active:.* heating_active\
heating_system/ems-esp/shower_data:.* { json2nameValue($EVENT) }
attr MQTT2_ems_esp_boiler room Heizung,MQTT2_DEVICE,Raumklima
attr MQTT2_ems_esp_boiler setList wWComfort:select,Hot,Eco heating_system/ems-esp/boiler_cmd { "cmd":"comfort", "data": "$EVTPART1" }
attr MQTT2_ems_esp_boiler stateFormat Warmwasser: wWComfort
attr MQTT2_ems_esp_boiler webCmd wWComfort
#   CID        ems_esp_boiler
#   DEF        ems_esp_boiler
#   FUUID      5e2af0ed-f33f-b5ae-d2ee-99a37f886489ee6d
#   IODev      myBroker
#   LASTInputDev myBroker
#   MSGCNT     1343
#   NAME       MQTT2_ems_esp_boiler
#   NR         524
#   STATE      Warmwasser: Hot
#   TYPE       MQTT2_DEVICE
#   eventCount 1343
#   myBroker_CONN myBroker_192.168.178.79_63212
#   myBroker_MSGCNT 1343
#   myBroker_TIME 2023-12-02 19:09:49
#   READINGS:
#     2023-12-01 08:49:15   IODev           myBroker
#     2023-12-02 19:09:49   ServiceCode     
#     2023-12-02 19:09:49   ServiceCodeNumber 200
#     2023-12-02 19:09:49   UBAuptime       2382427
#     2023-12-01 09:32:24   alert           0
#     2020-02-06 08:28:54   associatedWith  MQTT2_ems_esp
#     2020-02-24 20:57:39   boilTemp        57.7
#     2023-12-02 19:09:49   burnGas         on
#     2023-12-02 19:09:49   burnStarts      107115
#     2023-12-02 19:09:49   burnWorkMin     310264
#     2023-12-02 19:09:49   curBurnPow      13
#     2023-12-02 19:09:49   curFlowTemp     64.3
#     2023-12-02 19:09:49   fanWork         on
#     2023-12-02 19:09:49   flameCurr       8.4
#     2023-12-02 19:09:49   heatPmp         on
#     2023-12-02 19:09:49   heatWorkMin     232482
#     2023-12-02 18:33:49   heating_active  1
#     2023-12-02 19:09:49   heating_temp    73
#     2023-12-02 19:09:49   ignWork         off
#     2023-11-01 03:13:00   json2nameValueErrorText error parsing (#2) 'offline'
#     2023-11-01 03:13:00   json2nameValueInput offline
#     2023-12-02 19:09:49   outdoorTemp     -3.5
#     2023-12-02 19:09:49   pumpMod         41
#     2023-12-02 19:09:49   pump_mod_max    100
#     2023-12-02 19:09:49   pump_mod_min    10
#     2023-12-02 19:09:49   selBurnPow      100
#     2023-12-02 19:09:49   selFlowTemp     64
#     2023-11-29 12:00:02   state           wWComfort
#     2020-02-19 09:43:02   switchTemp      0
#     2023-12-02 18:33:49   tapwater_active 0
#     2023-12-01 09:32:24   timer           0
#     2023-12-02 19:09:49   wWActivated     on
#     2023-12-02 19:09:49   wWCiPuMode      7
#     2023-12-02 19:09:49   wWCiPuType      255
#     2023-12-02 19:09:49   wWCirc          on
#     2023-12-02 19:09:49   wWCircPump      255
#     2023-12-02 19:09:49   wWComfort       Hot
#     2023-12-02 19:09:49   wWCurFlow       0
#     2023-12-02 19:09:49   wWCurTmp        53.1
#     2023-12-02 19:09:49   wWDesinfecting  off
#     2023-12-02 19:09:49   wWDesinfectionTemp 70
#     2020-02-19 09:43:02   wWDesiredTemp   70
#     2023-12-02 19:09:49   wWHeat          off
#     2023-12-02 19:09:49   wWOnetime       off
#     2023-12-02 19:09:49   wWReady         off
#     2023-12-02 19:09:49   wWRecharge      off
#     2023-12-02 19:09:49   wWSelTemp       56
#     2023-12-02 19:09:49   wWStarts        5000
#     2023-12-02 19:09:49   wWTempOK        on
#     2023-12-02 19:09:49   wWWorkM         77782
#     2023-12-02 19:09:49   wwStorageTemp2  53.1
#
setstate MQTT2_ems_esp_boiler Warmwasser: Hot
setstate MQTT2_ems_esp_boiler 2023-12-01 08:49:15 IODev myBroker
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 ServiceCode
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 ServiceCodeNumber 200
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 UBAuptime 2382427
setstate MQTT2_ems_esp_boiler 2023-12-01 09:32:24 alert 0
setstate MQTT2_ems_esp_boiler 2020-02-06 08:28:54 associatedWith MQTT2_ems_esp
setstate MQTT2_ems_esp_boiler 2020-02-24 20:57:39 boilTemp 57.7
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 burnGas on
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 burnStarts 107115
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 burnWorkMin 310264
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 curBurnPow 13
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 curFlowTemp 64.3
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 fanWork on
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 flameCurr 8.4
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 heatPmp on
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 heatWorkMin 232482
setstate MQTT2_ems_esp_boiler 2023-12-02 18:33:49 heating_active 1
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 heating_temp 73
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 ignWork off
setstate MQTT2_ems_esp_boiler 2023-11-01 03:13:00 json2nameValueErrorText error parsing (#2) 'offline'
setstate MQTT2_ems_esp_boiler 2023-11-01 03:13:00 json2nameValueInput offline
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 outdoorTemp -3.5
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 pumpMod 41
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 pump_mod_max 100
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 pump_mod_min 10
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 selBurnPow 100
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 selFlowTemp 64
setstate MQTT2_ems_esp_boiler 2023-11-29 12:00:02 state wWComfort
setstate MQTT2_ems_esp_boiler 2020-02-19 09:43:02 switchTemp 0
setstate MQTT2_ems_esp_boiler 2023-12-02 18:33:49 tapwater_active 0
setstate MQTT2_ems_esp_boiler 2023-12-01 09:32:24 timer 0
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWActivated on
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWCiPuMode 7
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWCiPuType 255
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWCirc on
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWCircPump 255
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWComfort Hot
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWCurFlow 0
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWCurTmp 53.1
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWDesinfecting off
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWDesinfectionTemp 70
setstate MQTT2_ems_esp_boiler 2020-02-19 09:43:02 wWDesiredTemp 70
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWHeat off
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWOnetime off
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWReady off
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWRecharge off
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWSelTemp 56
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWStarts 5000
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWTempOK on
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wWWorkM 77782
setstate MQTT2_ems_esp_boiler 2023-12-02 19:09:49 wwStorageTemp2 53.1

FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

turo

Hallo,

ich habe seit einer Woche ein Buderus GB182i.2 Heizgerät. Wird von ems-esp erkannt als: "Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2".

Die Servicecodes haben für dieses Gerät natürlich eine andere Bedeutung. Es ist wohl auch nur noch die Servicecodenummer wichtig.

Ich habe die Tabelle aus dem Installationshandbuch in eine Routine umformatiert, um den Servicecode in Text zu übersetzen. Vielleicht kann es jemand brauchen.

my %servicecodes = (
 200 => ["Wärmeerzeuger im Heizbetrieb","O"],
 201 => ["Wärmeerzeuger im WW-Betrieb","O"],
 202 => ["Gerät im Schaltoptimierungsprogramm","O"],
 203 => ["Gerät in Betriebsbereitschaft, kein Wärmebedarf vorhanden","O"],
 204 => ["Aktuelle Heizwassertemperatur des Wärmeerzeugers höher als Sollwert","O"],
 208 => ["Wärmeanforderung wegen Abgastest","O"],
 214 => ["Gebläse wird während Sicherheitszeit abgeschaltet","V"],
 224 => ["Sicherheitstemperaturbegrenzer hat ausgelöst","V"],
 227 => ["Kein Flammensignal nach Zündung","V"],
 228 => ["Flammensignal trotz nicht vorhandener Flamme","V"],
 229 => ["Flamme während Brennerbetrieb ausgefallen","B"],
 232 => ["Wärmeerzeuger durch externen Schaltkontakt verriegelt","B"],
 233 => ["Kesselidentifikationsmodul oder Geräteelektronik Störung","V"],
 234 => ["Elektrische Störung Gasarmatur","V"],
 235 => ["Versionskonflikt Geräteelektronik/Kesselidentifikationsmodul","V"],
 237 => ["Systemstörung","V"],
 238 => ["Geräteelektronik ist defekt","V"],
 242 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 243 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 244 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 245 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 246 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 247 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 248 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 249 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 250 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 251 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 252 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 253 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 254 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 255 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 256 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 257 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 258 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 259 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 260 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 261 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 262 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 263 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 265 => ["Wärmebedarf geringer als gelieferte Energie","B"],
 268 => ["Relaistest wurde aktiviert","O"],
 269 => ["Flammenüberwachung","V"],
 273 => ["Betriebsunterbrechung - Brenner und Gebläse","B"],
 281 => ["Pumpendruckerhöhung zu niedrig","B"],
 306 => ["Flammensignal nach Schließen der Brennstoffversorgung","V"],
 358 => ["Blockierschutz aktiv","O"],
 360 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 362 => ["Kesselidentifikationsmodul oder Geräteelektronik Störung","V"],
 363 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 811 => ["Warmwasserbereitung: Thermische Desinfektion misslungen","A"],
 815 => ["Temperaturfühler hydr. Weiche defekt (Pumpeneffizienzmodul)","W"],
 1000 => ["Systemkonfiguration nicht bestätigt","B"],
 1010 => ["Keine Kommunikation über BUS-Verbindung EMS","O"],
 1013 => ["Maximaler Brennzeitpunkt ist erreicht","W"],
 1017 => ["Wasserdruck zu niedrig","W"],
 1018 => ["Wartungsintervall abgelaufen","W"],
 1019 => ["Falscher Pumpentyp erkannt","W"],
 1022 => ["Speichertemperaturfühler defekt oder Kontaktprobleme","W"],
 1023 => ["Maximale Betriebsdauer einschließlich Standby-Zeit ist erreicht","W"],
 1025 => ["Rücklauftemperaturfühler ist defekt","W"],
 1037 => ["Außentemperaturfühler defekt, Ersatzbetrieb Heizung aktiv","W"],
 1038 => ["Zeit/Datum ungültiger Wert","W"],
 1039 => ["Ungemischte Heizkreise nicht für Estrichtrocknung geeignet","W"],
 1040 => ["Estrichtrocknung mit ungemischten Heizkreisen nur mit Gesamtanlage","W"],
 1041 => ["Spannungsausfall während Estrichtrocknung","B"],
 1042 => ["Interner Fehler: Zugriff auf Uhrenbaustein blockiert","B"],
 1065 => ["Wasserdruckfühler defekt oder nicht angeschlossen","W"],
 1068 => ["Außentemperaturfühler oder Lambdasonde defekt.","W"],
 1075 => ["Kurzschluss Wärmeblock-Temperaturfühler","W"],
 1076 => ["Kein Signal vom Wärmeblock-Temperaturfühler","W"],
 2085 => ["Interner Fehler","V"],
 2908 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 2910 => ["Fehler im Abgassystem","V"],
 2914 => ["Systemstörung Geräteelektronik","V"],
 2915 => ["Systemstörung Geräteelektronik","V"],
 2916 => ["Systemstörung Geräteelektronik","V"],
 2920 => ["Störung Flammenüberwachung","V"],
 2923 => ["Systemstörung Geräteelektronik","V"],
 2924 => ["Systemstörung Geräteelektronik","V"],
 2925 => ["Systemstörung Geräteelektronik","V"],
 2926 => ["Systemstörung Geräteelektronik","V"],
 2927 => ["Kein Flammenerkennungssignal während Zündung","B"],
 2928 => ["Interner Fehler","V"],
 2931 => ["Systemstörung Geräteelektronik / Basiscontroller","V"],
 2940 => ["Systemstörung Feuerungsautomat","V"],
 2946 => ["Falscher Kodierstecker erkannt","V"],
 2948 => ["Kein Flammensignal bei kleiner Leistung","B"],
 2950 => ["Kein Flammensignal nach dem Startvorgang","B"],
 2951 => ["Zu viele Flammenabrisse","V"],
 2952 => ["Interner Fehler beim Test des Ionisationssignales","V"],
 2955 => ["Eingest. Parameter f. die hydr. Konfig. werden vom Wärmeerz.nicht unterst.","B"],
 2956 => ["Hydraulische Konfiguration am Wärmeerzeuger ist aktviert","O"],
 2957 => ["Systemstörung Geräteelektronik","V"],
 2961 => ["Kein Gebläsesignal vorhanden","V"],
 2962 => ["Kein Gebläsesignal vorhanden","V"],
 2963 => ["Temperatur am Wärmeblock liegt außerh. des zulässigen Bereiches","B"],
 2965 => ["Zu hohe Vorlauftemperatur","B"],
 2966 => ["Zu schneller Temperaturanstieg der Vorlauftemperatur im Wärmeblock","B"],
 2968 => ["Heizungswasser wird nachgefüllt","O"],
 2969 => ["Maximale Anzahl von Nachfüllvorgängen errreicht","O"],
 2970 => ["Zu schneller Druckabfall im Heizsystem","B"],
 2971 => ["Betriebsdruck zu niedrig","B"],
 2972 => ["Netzspannung zu niedrig","B"],
 2980 => ["Das Gerät wurde aus Sicherheitsgründen gesperrt, nachdem mindestens fünf verriegelnde Störungen innerhalb von 15 Minuten aufgetreten sind.","V"],
 2981 => ["Das Gerät wurde bei bestehender Sicherheitssperre (Störungs-Code 2980) aus- und wieder eingeschaltet","V"]
);


###### Boilerstatus ######
sub BoilerStatus($) {
  my $servicecodenumber = shift;
  return defined($servicecodes{$servicecodenumber}) ? $servicecodes{$servicecodenumber}->[0] : "Unbekannt $servicecodenumber";
}
Benutzung im userReadings dann etwa mit:
attr MQTT2_ems_esp:servicecodenumber userReadings BoilerStatus {BoilerStatus(ReadingsVal($NAME,"servicecodenumber","-1"))}Der Hash enthält auch schon mal die "Störungsklasse" (z.B. "O" = normaler Betrieb). Da könnte man natürlich auch was draus machen.

Turo
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo