Replies: 21 comments
-
Is there a special reason why adding this message? In my understanding the devices publishes on error the 0xBE/0xBF messages, the master collects them and republishes service-code/service-message. Also if pos 3 in 0xBF is set, the error is logged to 0x10, 0x11 or 0x12. We already read service-code and the logs. I think the information in BE/BF is redundant and to read it we need to register this telegrams to every device, wasting a lot of memory in poor 8266. |
Beta Was this translation helpful? Give feedback.
-
@MichaelDvP thanks for the update. Good to know the software ignores some messages due to the limitations of esp8266. I do not want to force adding new messages but would be more than cool if all messages (including unsupported as well) could be sent to MQTT. The problem: I'd like to send a push/email notification through HA if the boiler throws an error like 2951. Could you advice me how reading unsupported telegrams can be achieved? |
Beta Was this translation helpful? Give feedback.
-
A lot of messages are not read. Some because there is no new information, much more because the fields are unknown. Also in known messages not all fields can be interpreted. . Dont you get the error as status-code? What does error 2951 stands for? You can send a raw message to the bus and read the response via mqtt. Send to topic system: |
Beta Was this translation helpful? Give feedback.
-
Could you explain the data payload, please? |
Beta Was this translation helpful? Give feedback.
-
It's from emsesp |
Beta Was this translation helpful? Give feedback.
-
@partikus from the discussion on Discord, if you've moved over to V3 I can transfer this issue to the the EMS-ESP32 project and take another look |
Beta Was this translation helpful? Give feedback.
-
After serviceman visit I realized that last 10 errors are saved. So I've started looking for data I've mentioned and found this:
Then got:
After formatting, the 2 bytes after
your help is more than welcome |
Beta Was this translation helpful? Give feedback.
-
the v2 (ESP8266 version) is discontinued so moving this over to the EMS-ESP32 project as a question and possible enhancement if there is a use case that's useful for others. Note it would mean upgrading to v3. |
Beta Was this translation helpful? Give feedback.
-
I can not see the error structure in this c2 telegram, please @partikus explain the structure and what errors are stored there. As mentioned before the error log is The BE/BF telegrams are for actual reporting an error from any device and the telgrams are empty if there is no error. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Indeed, i don't have such high errorcodes in my ems1.0 system, but the three bytes before the code looks like ascii-display-code: |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
I was looking for a pattern for data offset for the error messages. Looks like the 12 bytes length (0C) offset +20 bytes.
|
Beta Was this translation helpful? Give feedback.
-
I'm trying to debug the data using the following pages: https://r12a.github.io/uniview/
|
Beta Was this translation helpful? Give feedback.
-
If you sort the telegram to 10 blocks of 20 bytes you get a set of messages:
Offset 5,6,7 are the ascii error message, 8,9 the error-number. What information to the errors is shown on the thermostat service menu? |
Beta Was this translation helpful? Give feedback.
-
call boiler info
Currently I have no any thermostat at all. Tech Controllers manages the automation. Unfortunately, they do not support EMS to control the boiler. 006+02:22:42.237 N 11: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorSlowPlus(0xE3), data: 04 00 00 00 00 00 00 00 00 00 00 01 C9 00 64 23 01 00 00 006+02:22:42.446 N 12: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 2D 2D 00 00 CB 00 01 C9 00 00 00 02 01 DC 00 00 00 00 00 00 14 00 01 C9 00 00 006+02:22:42.634 N 13: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 00 00 00 00 00 00 (offset 35) 006+02:22:42.924 N 14: [emsesp] Boiler(0x08) -> All(0x00), UBADHWStatus(0xE9), data: 28 01 75 00 00 00 00 01 75 46 00 00 00 00 00 67 EB 00 43 C4 00 00 00 00 01 006+02:22:45.523 N 15: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 01 C7 (offset 23) 006+02:22:52.277 N 16: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorSlowPlus(0xE3), data: 04 00 00 00 00 00 00 00 00 00 00 01 C9 00 64 23 01 00 00 006+02:22:52.486 N 17: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 2D 2D 00 00 CB 00 01 C9 00 00 00 02 01 DC 00 00 00 00 00 00 14 00 01 C9 00 00 006+02:22:52.675 N 18: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 00 00 00 00 00 00 (offset 35) 006+02:22:52.919 N 19: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 01 CA (offset 23) 006+02:22:53.124 N 20: [emsesp] Boiler(0x08) -> All(0x00), UBADHWStatus(0xE9), data: 28 01 76 00 00 00 00 01 76 46 00 00 00 00 00 67 EB 00 43 C4 00 00 00 00 01 006+02:22:59.168 N 21: [emsesp] Boiler(0x08) -> Me(0x0B), ?(0xBF), data: 00 00 (offset 8) 006+02:23:02.292 N 22: [emsesp] Boiler(0x08) -> All(0x00), UBADevices(0x07), data: 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 006+02:23:02.478 N 23: [emsesp] Boiler(0x08) -> All(0x00), UBAOutdoorTemp(0xD1), data: 80 00 006+02:23:02.677 N 24: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorSlowPlus(0xE3), data: 04 00 00 00 00 00 00 00 00 00 00 01 C9 00 64 23 01 00 00 006+02:23:02.906 N 25: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 2D 2D 00 00 CB 00 01 C9 00 00 00 02 01 DD 00 00 00 00 00 00 14 00 01 C9 00 00 006+02:23:03.095 N 26: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 00 00 00 00 00 00 (offset 35) 006+02:23:03.306 N 27: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorSlowPlus(0xE5), data: 01 00 40 00 00 78 00 00 00 00 00 68 4C 02 22 10 00 00 00 01 BA 25 00 24 88 00 64 006+02:23:03.571 N 28: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorSlowPlus(0xE5), data: 01 DE 30 (offset 29) 006+02:23:03.784 N 29: [emsesp] Boiler(0x08) -> All(0x00), UBADHWStatus(0xE9), data: 28 01 77 00 00 00 00 01 77 46 00 00 00 00 00 67 EB 00 43 C4 00 00 00 00 01 006+02:23:09.693 N 30: [emsesp] Boiler(0x08) -> Me(0x0B), UBATotalUptime(0x14), data: 0F 5C F1 006+02:23:09.888 N 31: [emsesp] Boiler(0x08) -> Me(0x0B), UBAParametersPlus(0xE6), data: 01 23 00 00 32 12 00 01 06 F6 03 01 05 64 01 00 00 1E 00 2D 01 01 01 00 01 00 006+02:23:10.139 N 32: [emsesp] Boiler(0x08) -> Me(0x0B), UBAParameterWWPlus(0xEA), data: 00 00 3C 08 00 01 28 00 00 00 00 00 46 00 00 01 00 00 00 00 00 5F 00 00 00 00 01 006+02:23:10.261 N 33: [emsesp] Boiler(0x08) -> Me(0x0B), UBAParameterWWPlus(0xEA), data: 01 (offset 26) 006+02:23:12.270 N 34: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorSlowPlus(0xE3), data: 04 00 00 00 00 00 00 00 00 00 00 01 C9 00 64 23 01 00 00 006+02:23:12.478 N 35: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 2D 2D 00 00 CB 00 01 C8 00 00 00 02 01 DB 00 00 00 00 00 00 14 00 01 C8 00 00 006+02:23:12.667 N 36: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 00 00 00 00 00 00 (offset 35) 006+02:23:12.872 N 37: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 01 C9 (offset 23) 006+02:23:13.076 N 38: [emsesp] Boiler(0x08) -> All(0x00), UBADHWStatus(0xE9), data: 28 01 78 00 00 00 00 01 78 46 00 00 00 00 00 67 EB 00 43 C4 00 00 00 00 01 006+02:23:17.799 N 39: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 01 CA (offset 23) 006+02:23:22.274 N 40: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorSlowPlus(0xE3), data: 04 00 00 00 00 00 00 00 00 00 00 01 C8 00 64 23 01 00 00 006+02:23:22.482 N 41: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 2D 2D 00 00 CB 00 01 C8 00 00 00 02 01 DB 00 00 00 00 00 00 14 00 01 C8 00 00 006+02:23:22.670 N 42: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 00 00 00 00 00 00 (offset 35) 006+02:23:22.900 N 43: [emsesp] Boiler(0x08) -> All(0x00), UBADHWStatus(0xE9), data: 28 01 79 00 00 00 00 01 79 46 00 00 00 00 00 67 EB 00 43 C4 00 00 00 00 01 006+02:23:23.317 N 44: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFastPlus(0xE4), data: 01 C7 (offset 23) |
Beta Was this translation helpful? Give feedback.
-
I've wrote simple JS code for parsing it. It works like you expected: function toNumber(bytes, from, length) {
// console.log('selected bytes', bytes.slice(from, from + length), 'from', bytes);
return parseInt(`${bytes.slice(from, from + length).join('')}`, 16)
}
function parseError(totalUptime, message) {
const bytes = message.split(' ');
const errorNo = toNumber(bytes, 8, 2);
const startedAtOffset = toNumber(bytes, 10, 4);
const stoppedAtOffset = toNumber(bytes, 15, 4);
const from = startedAtOffset * 60 * 1000;
const to = stoppedAtOffset * 60 * 1000;
const uptimeMinutes = totalUptime * 60 * 1000;
const launched = new Date(Date.now() - uptimeMinutes);
const startedAt = new Date(launched.getTime() + from);
const stoppedAt = new Date(launched.getTime() + to);
return { errorNo, startedAt, stoppedAt };
}
const errors = `08 EA 00 0A 09 20 2D 2D 0B 84 00 0F 3D 6A 00 00 0F 3D 6B 00
08 EA 00 0A 09 20 2D 2D 0B 84 00 0F 2F 87 00 00 0F 2F 88 00
08 EA 00 0A 09 20 2D 2D 0B 6F 00 0F 2F 07 00 00 0F 2F 08 00
08 EA 00 0A 09 20 2D 2D 0B 84 00 0F 2F 06 00 00 0F 2F 07 00
08 EA 00 0A 09 20 2D 2D 0B 86 00 0F 1A F2 00 00 0F 1A F3 00
08 EA 00 0A 09 20 2D 2D 0B 84 00 0F 1A EA 00 00 0F 1A EA 00
08 EA 00 0A 09 20 2D 2D 0B 6F 00 0F 18 CB 00 00 0F 18 CC 00
08 EA 00 0A 09 20 2D 2D 0B 84 00 0F 18 CB 00 00 0F 18 CB 00
08 EA 00 0A 09 20 2D 2D 0B 6F 00 0F 13 06 00 00 0F 13 06 00
08 EA 00 0A 09 20 2D 2D 0B 84 00 0F 13 05 00 00 0F 13 06 00`.split("\n");
errors.map(msg => parseError(1006828, msg)); which gives:
|
Beta Was this translation helpful? Give feedback.
-
I think |
Beta Was this translation helpful? Give feedback.
-
Oh, I forgot to mention the boiler is working a full year so the |
Beta Was this translation helpful? Give feedback.
-
@partikus close this? |
Beta Was this translation helpful? Give feedback.
-
@proddy & @MichaelDvP thank you for your time and help 👍 |
Beta Was this translation helpful? Give feedback.
-
Bug description
Once the boiler stopped working due to an issue, the error sent is not being handled.
Based on the error message type I've decoded the following values:
Device information
Beta Was this translation helpful? Give feedback.
All reactions