rvdbreemen / OTGW-firmware

A ESP8266 devkit firmware for the Nodoshop version of the Opentherm Gateway (OTGW)
MIT License
145 stars 34 forks source link

RelModLevel not sent over MQTT (but present in API) #239

Closed tino closed 5 months ago

tino commented 5 months ago

I never see anything on otgw/value/otgw/RelModLevel (and I have multiple days of all output recording).

I do see it in http://otgw.local/api/v1/otgw/otmonitor/:

  {"name": "flamestatus", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "chmodus", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "chenable", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "ch2modus", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "ch2enable", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "dhwmode", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "dhwenable", "value": "On", "unit": "", "epoch": 1706218980},
  {"name": "diagnosticindicator", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "faultindicator", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "coolingmodus", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "coolingactive", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "otcactive", "value": "Off", "unit": "", "epoch": 1706218980},
  {"name": "servicerequest", "value": "Off", "unit": "", "epoch": 1706218957},
  {"name": "lockoutreset", "value": "Off", "unit": "", "epoch": 1706218957},
  {"name": "lowwaterpressure", "value": "Off", "unit": "", "epoch": 1706218957},
  {"name": "gasflamefault", "value": "Off", "unit": "", "epoch": 1706218957},
  {"name": "airtemp", "value": "Off", "unit": "", "epoch": 1706218957},
  {"name": "waterovertemperature", "value": "Off", "unit": "", "epoch": 1706218957},
  {"name": "outsidetemperature", "value": 0.000, "unit": "°C", "epoch": 1706218903},
  {"name": "roomtemperature", "value": 18.340, "unit": "°C", "epoch": 1706218897},
  {"name": "roomsetpoint", "value": 15.000, "unit": "°C", "epoch": 1706218969},
  {"name": "remoteroomsetpoint", "value": 0.000, "unit": "°C", "epoch": 1706218963},
  {"name": "controlsetpoint", "value": 6.000, "unit": "°C", "epoch": 1706218981},
  {"name": "relmodlvl", "value": 0.000, "unit": "%", "epoch": 1706218971},   // <--- THERE
  {"name": "maxrelmodlvl", "value": 0.000, "unit": "%", "epoch": 0},
  {"name": "boilertemperature", "value": 43.500, "unit": "°C", "epoch": 1706218974},
  {"name": "returnwatertemperature", "value": 42.200, "unit": "°C", "epoch": 1706218978},
  {"name": "dhwtemperature", "value": 0.000, "unit": "°C", "epoch": 1706218900},
  {"name": "dhwsetpoint", "value": 60.000, "unit": "°C", "epoch": 1706218912},
  {"name": "maxchwatersetpoint", "value": 80.000, "unit": "°C", "epoch": 1706218915},
  {"name": "chwaterpressure", "value": 1.200, "unit": "bar", "epoch": 1706218972},
  {"name": "oemdiagnosticcode", "value": 0, "unit": "", "epoch": 1706218924},
  {"name": "oemfaultcode", "value": 255, "unit": "", "epoch": 1706218957}
]}

Any reasons why this could be?

rvdbreemen commented 5 months ago

Hi @tino

The rest api is based on a data structure which maintains the dataset so you can make calls any time you want. The timestamp indicates the last update moment.

If you never see a MQTT message then this could only be explained by the fact that the msgid only came by once or even never.

The only sure way is to monitor the debug port 23 and share that log so we can see what the OTGW is actually sending the message ID.

Just sharing this rest api result is not enough to explain what you see.

In my experience, if you never see the message on MQTT then there is no msgid being sent.

But like I said we can only validate that by looking at the logs.

Robert

tino commented 5 months ago

Hi @rvdbreemen, thanks for the quick response!

I must have missed something, as it does show up now.