Closed peclik closed 4 years ago
Is special handling of product id 95 really necessary when there is the following auto-detection code?
if (EMS_Sys_Status.emsTxStatus == EMS_TX_REV_DETECT) {
if ((length >= 5) && (telegram[length - 1] == _crcCalculator(telegram, length))) {
EMS_Sys_Status.emsTxStatus = EMS_TX_STATUS_IDLE;
EMS_Sys_Status.emsIDMask = telegram[0] & 0x80;
hi @peclik. Firstly thanks for reporting this and looking into the code to find the actual root cause. That's really helpful.
I always thought anything with a product ID of 95 (0x5F) would be a Heatronics device but now you've just disproved that with your Buderus Logamax GB062 !
And you're absolutely correct in stating the piece of code "if (EMS_Boiler.product_id == EMS_PRODUCTID_HEATRONIC)
" is now obsolete as we test the headers on the first incoming telegram. I'll remove it.
Thanks @proddy for such a great software!
My boiler is Buderus Logamax GB062. EMS-ESP won't send any telegram after boiler detection.
It seems the problem is this piece of code:
At start, emsIDMask is 0, so EMS-ESP is able correctly detect data poll for it (0x8B). After "Bosch/Heatronic" is detected, emsIDMask is set to 0x08 which ends in no more telegram transmission due to undetected poll with this code:
After commenting-out the HEATRONIC test block, EMS-ESP 1.9.2 works like a charm (tx_mode 2), correctly detecting even thermostat and mixing device (which where not in 1.8.1).
Sample handshake: