Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emulated RC100H causes many incomplete Rx #2140

Closed
5 tasks done
Sbried opened this issue Oct 26, 2024 · 10 comments
Closed
5 tasks done

Emulated RC100H causes many incomplete Rx #2140

Sbried opened this issue Oct 26, 2024 · 10 comments

Comments

@Sbried
Copy link
Contributor

Sbried commented Oct 26, 2024

DESCRIPTION

Normally I don´t see warnings in the log, the system runs stable for long periods.
Now I´m experimenting with the emulated thermostat RC100H.
I activated it with sending RC100H to ems-esp/thermostat/hc1/control. Through the API I send the actual temperature and humidity data to ems-esp/thermostat/hc1/remotetemp and ems-esp/thermostat/hc1/remotehum. All is recognized well and the HMC310 is showing the correct data.
The issue now is that I receive a lot of incomplete Rx warnings in the log. All sent by the emulated RC100H 0x38 to the thermostat HMC310 0x10.
After a random time between some hours and a day the ems-esp reboots.

I´ve read a lot in the issues/discussions and tried with different Tx protocols EMS and EMS+. Both result in the same. The power supply should be good, I don´t have issues without the emulated RC100H. The ems-esp is connected to the service jack of the heat pump.
There is no correlation between updating the temperature/humidity through the API and the warnings. As I understood the code the temperature/humidity data is sent every 15 sec to the thermostat 0x10. Some of them may end up in a warning being incomplete.

Some lines from the log:
2024-10-26 08:07:45.976 WARNING 10: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 FD
2024-10-26 08:25:58.028 WARNING 11: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 8B 0A
2024-10-26 08:35:09.035 WARNING 12: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F2
2024-10-26 08:36:14.049 WARNING 13: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F2
2024-10-26 08:43:46.058 WARNING 14: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F3
2024-10-26 09:06:05.124 WARNING 15: [telegram] Incomplete Rx: 38 10 FF 00 03 2B FE
2024-10-26 09:10:09.132 WARNING 16: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 8B 0A
2024-10-26 09:11:13.110 WARNING 17: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 38 00 8B 0F E7
2024-10-26 09:12:33.135 WARNING 18: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 8B 0A
2024-10-26 09:32:16.547 WARNING 19: [telegram] Incomplete Rx: 38 10 FF 00 03 38 00 8C 0D
2024-10-26 09:35:56.547 WARNING 20: [telegram] Incomplete Rx: 38 10 FF 00 03 E9 F2
2024-10-26 09:37:51.204 WARNING 21: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 8C 0D
2024-10-26 09:45:11.659 WARNING 22: [telegram] Incomplete Rx: 38 10 FF 00 03 E9 F2
2024-10-26 09:48:26.565 WARNING 23: [telegram] Incomplete Rx: 38 10 FF 00 03 2F FE 00 0D
2024-10-26 09:49:31.230 WARNING 24: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 8C 0D
2024-10-26 09:51:07.232 WARNING 25: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 8C 0D
2024-10-26 09:55:14.233 WARNING 26: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F2
2024-10-26 09:58:28.250 WARNING 27: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F2
2024-10-26 10:04:33.257 WARNING 28: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F2
2024-10-26 10:09:42.283 WARNING 29: [telegram] Incomplete Rx: 38 10 02 FE 28 FF 98
2024-10-26 10:20:36.297 WARNING 30: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 38 00 8E 8D
2024-10-26 10:33:49.714 WARNING 31: [telegram] Incomplete Rx: 38 10 02 00 C8 28 04 00 98
2024-10-26 10:35:58.421 WARNING 32: [telegram] Incomplete Rx: 38 10 FF 00 A0 00 E9 F2
2024-10-26 10:44:00.022 WARNING 33: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 38 00 8C 9E
2024-10-26 10:54:42.839 WARNING 34: [telegram] Incomplete Rx: 38 10 02 00 C8 28 04 00 98
2024-10-26 10:54:56.381 WARNING 35: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F0
2024-10-26 11:08:37.164 WARNING 36: [telegram] Incomplete Rx: 38 10 FF 00 03 0E 38 00 8E 0F
2024-10-26 11:15:39.444 WARNING 37: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F0
2024-10-26 11:22:22.452 WARNING 38: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F0
2024-10-26 11:29:49.474 WARNING 39: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F2
2024-10-26 11:40:28.005 WARNING 40: [telegram] Incomplete Rx: 38 10 FF 00 03 7B FE 00 FF E4
2024-10-26 11:47:59.521 WARNING 41: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F0
2024-10-26 11:48:17.013 WARNING 42: [telegram] Incomplete Rx: 38 10 FF 00 A0 0E 38 00 8E 0F
2024-10-26 11:48:49.303 WARNING 43: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 38 00 8E 89
2024-10-26 11:52:54.531 WARNING 44: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 8E 0F
2024-10-26 12:08:38.571 WARNING 45: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F0
2024-10-26 12:20:02.052 WARNING 46: [telegram] Incomplete Rx: 38 10 FF 00 A0 0E 38 00 8C 0D
2024-10-26 12:30:59.624 WARNING 47: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F2
2024-10-26 12:31:16.624 WARNING 48: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F2
2024-10-26 12:33:26.758 WARNING 49: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 38 00 8C 89
2024-10-26 12:36:56.644 WARNING 50: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F2
2024-10-26 12:55:25.700 WARNING 51: [telegram] Incomplete Rx: 38 10 02 00 28 04 00 FF 98
2024-10-26 12:59:15.701 WARNING 52: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 89 34
2024-10-26 13:00:53.703 WARNING 53: [telegram] Incomplete Rx: 38 10 FF 00 03 7B 0E 89 34

REQUESTED INFORMATION

Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!

  • Searched the issue in issues
  • Searched the issue in discussions
  • Searched the issue in the docs
  • Searched the issue in the chat
  • Provide the System information in the area below, taken from http://<IP>/api/system
  {
    "system": {
        "version": "3.7.0-dev.48",
        "uptime": "000+05:34:50.391",
        "uptimeSec": 20090,
        "platform": "ESP32",
        "cpuType": "ESP32-D0WD-V3",
        "arduino": "ESP32 Arduino v2.0.17",
        "sdk": "v4.4.7-dirty",
        "freeMem": 147,
        "maxAlloc": 107,
        "freeCaps": 4163,
        "usedApp": 2375,
        "freeApp": 3321,
        "partition": "app0",
        "resetReason": "Software reset CPU / Software reset CPU",
        "psram": true,
        "psramSize": 4093,
        "freePsram": 4051,
        "model": "BBQKees Gateway Model EMS Gateway E32 V2 v2.0/2024071"
    },
    "network": {
        "network": "Ethernet",
        "hostname": "ems-esp",
        "TxPowerSetting": 0,
        "staticIP": false,
        "lowBandwidth": false,
        "disableSleep": true,
        "enableMDNS": true,
        "enableCORS": false,
        "APProvisionMode": "disconnected",
        "APSecurity": "wpa2",
        "APSSID": "ems-esp"
    },
    "ntp": {
        "NTPStatus": "connected",
        "enabled": true,
        "server": "fritz.box",
        "tzLabel": "Europe/Amsterdam"
    },
    "mqtt": {
        "MQTTStatus": "connected",
        "MQTTPublishes": 4600,
        "MQTTQueued": 0,
        "MQTTPublishFails": 0,
        "MQTTConnects": 1,
        "enabled": true,
        "clientID": "esp32-2cb865e4",
        "keepAlive": 60,
        "cleanSession": false,
        "entityFormat": 0,
        "base": "ems-esp",
        "discoveryPrefix": "homeassistant",
        "discoveryType": 0,
        "nestedFormat": 1,
        "haEnabled": true,
        "mqttQos": 0,
        "mqttRetain": false,
        "publishTimeHeartbeat": 60,
        "publishTimeBoiler": 10,
        "publishTimeThermostat": 10,
        "publishTimeSolar": 10,
        "publishTimeMixer": 10,
        "publishTimeWater": 10,
        "publishTimeOther": 10,
        "publishTimeSensor": 10,
        "publishSingle": false,
        "publish2command": false,
        "sendResponse": false
    },
    "syslog": {
        "enabled": false
    },
    "sensor": {
        "temperatureSensors": 0,
        "temperatureSensorReads": 0,
        "temperatureSensorFails": 0,
        "analogSensors": 0,
        "analogSensorReads": 0,
        "analogSensorFails": 0
    },
    "api": {
        "APICalls": 168,
        "APIFails": 0
    },
    "bus": {
        "busStatus": "connected",
        "busProtocol": "Buderus",
        "busTelegramsReceived": 78985,
        "busReads": 17778,
        "busWrites": 3,
        "busIncompleteTelegrams": 50,
        "busReadsFailed": 0,
        "busWritesFailed": 0,
        "busRxLineQuality": 100,
        "busTxLineQuality": 100
    },
    "settings": {
        "boardProfile": "E32V2",
        "locale": "de",
        "txMode": 1,
        "emsBusID": 11,
        "showerTimer": false,
        "showerMinDuration": 180,
        "showerAlert": false,
        "hideLed": false,
        "noTokenApi": false,
        "readonlyMode": false,
        "fahrenheit": false,
        "dallasParasite": false,
        "boolFormat": 5,
        "boolDashboard": 1,
        "enumFormat": 1,
        "analogEnabled": true,
        "telnetEnabled": true,
        "maxWebLogBuffer": 50,
        "webLogBuffer": 50,
        "modbusEnabled": false,
        "forceHeatingOff": false,
        "developerMode": false
    },
    "devices": [
        {
            "type": "boiler",
            "name": "Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",
            "deviceID": "0x08",
            "productID": 172,
            "brand": "",
            "version": "02.02",
            "entities": 155,
            "handlersReceived": "0xBF 0xC2 0xD1 0xE3 0xE4 0xE5 0xE9 0x0494 0x0495 0x048F",
            "handlersFetched": "0x14 0xE6 0xEA 0x048D 0x048A 0x04A2 0x0485 0x0486 0x0492 0x0488 0x0484 0x048B 0x0491 0x0499 0x049C 0x049D 0x02CC 0x04AA 0x02D6",
            "handlersPending": "0x10 0x11 0x15 0x1C 0x18 0x19 0x1A 0x35 0x16 0x33 0x34 0x26 0x2A 0x28 0x04AE 0x04AF 0x04A5 0x04A7",
            "handlersIgnored": "0x0240 0xF7 0x049F 0x04A0 0x04A3 0x0497 0xE7 0x02E0 0x02EA 0x061E 0x2E 0x3B 0x17 0x36"
        },
        {
            "type": "thermostat",
            "name": "RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",
            "deviceID": "0x10",
            "productID": 158,
            "brand": "",
            "version": "73.04",
            "entities": 68,
            "handlersReceived": "0x06 0x02BA 0x02BB 0x02BC 0x02BD 0x02BF 0x02C0 0x031D 0x0267",
            "handlersFetched": "0x02A5 0x02B9 0x02AF 0x029B 0x0471 0x02CC 0x0467 0x0291 0x0292 0x0293 0x0294 0x02F5 0x023A 0x0240 0xBB 0x023E 0x0269",
            "handlersPending": "0xA3 0xA2 0x12 0x13 0x02A6 0x02B0 0x029C 0x0472 0x02A7 0x02B1 0x029D 0x0473 0x02A8 0x02B2 0x029E 0x0474 0x02A9 0x02B3 0x029F 0x0475 0x02AA 0x02BE 0x02B4 0x02A0 0x0476 0x02AB 0x02B5 0x02A1 0x0477 0x02AC 0x02B6 0x02A2 0x0478 0x02CE 0x0468 0x02D0 0x0469 0x02D2 0x046A 0x02F6 0x031B 0x031E",
            "handlersIgnored": "0xF7 0x0239 0x0508 0x0509 0x050A 0x0507 0xF6 0xBF 0x042B"
        },
        {
            "type": "thermostat",
            "name": "RC100H, CR10H",
            "deviceID": "0x38",
            "productID": 200,
            "brand": "",
            "version": "40.04",
            "entities": 3,
            "handlersReceived": "0x042B 0x047B",
            "handlersPending": "0x0273 0x0A6A"
        },
        {
            "type": "gateway",
            "name": "WiFi module",
            "deviceID": "0x48",
            "productID": 252,
            "brand": "Buderus",
            "version": "08.02",
            "entities": 0,
            "handlersIgnored": "0x2040 0x0495 0x0494 0x3B 0xE5 0xE9 0xF9"
        }
    ]
}

TO REPRODUCE

Maybe also others can reproduce it by setting up an emulated thermostat.
I can reproduce it by removing the emulated RC100H (no more warnings in the log) and setting the RC100H again (log warning start again)

EXPECTED BEHAVIOUR

Emulated thermostat does not cause incomplete Rx

SCREENSHOTS

na

ADDITIONAL CONTEXT

na

(Please remember to close the issue when it has been addressed)

@proddy
Copy link
Contributor

proddy commented Oct 27, 2024

I can't explain the restarts. Next time it happens see if you capture the log as it'll show the 'reason'.

@MichaelDvP any idea on those short Rx telegrams?

@MichaelDvP
Copy link
Contributor

For the reboots: was it #2122, i can see that now you're using dev48 and uptime is > 5 days.

The incompletes are difficult. As you've found it sends the message every 15 sec, the wrong readback is one in 5-10 min, so it's only 3% of the telegrams sent, that have issue with readback. Also the master thermostat detect the remote constantly, so maybe only the readback in emsesp have problems. For sendings from ems-esp-device-address we do not show the readback, maybe there are also issues. The messages do not affect operation.
Sending and receiving the same time is difficult because the sending (drain current from bus) can effect a local drop in bus voltage, resulting in a read-error only on the sending device.
Try with tx-mode EMS+, that has more delay after sending, helping to stabilize the bus-voltage.

@Sbried
Copy link
Contributor Author

Sbried commented Oct 28, 2024

Actually the uptime was >5 hrs from the system info above but anyhow - it is running till now, > 2 days. The dev48 seemed to fix the reboots.
I had the EMS+ tx-mode before and also had a lot of incomplete messages. Maybe not so many, I didn´t make statistics about it.
If it is hardware related, maybe not showing the readback is also a solution. Then the emulated remote thermostat should have a special marker to detect it´s emulated or a real device. Maybe a special SW version for the emulated one.

@MichaelDvP
Copy link
Contributor

I have to correct me, we show the echos of emsesp sending (it was an early version that suppress the echos).

Can you make a full log of the telegram to see in which context the errors happen. I suspect that this is not the normal 15 sec sending but an answer to a query, maybe with offset/length different from answer (the emulation always send the complete telegram).

@Sbried
Copy link
Contributor Author

Sbried commented Oct 29, 2024

I did not do a full log, but a watch on 38. That also shows any queries to the emulation.
Here are some lines around the incompletes. As written in the comments in the affected lines it all looks like the regular distribution of the remote temperature and the humidity.


000+16:04:23.755` N 65: [emsesp] me(0x0B) -R-> thermostat(0x38), DeviceName(0x01), length: 27 (offset 27)
000+16:04:23.755 N 66: [emsesp] thermostat(0x38) -W-> me(0x0B), DeviceName(0x01), data: <empty> (offset 27)
000+16:04:29.273 N 67: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:04:29.803 N 68: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:04:45.012 N 69: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:04:45.616 N 70: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:05:00.650 N 71: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:05:01.203 N 72: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:05:29.050 N 73: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:05:29.504 N 74: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:05:44.650 N 75: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:05:45.204 N 76: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:06:00.589 N 77: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:06:00.992 N 78: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:06:16.088 N 79: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:06:16.805 N 80: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:06:23.824 N 81: [emsesp] thermostat(0x10) -R-> thermostat(0x38), Version(0x02), length: 10
000+16:06:23.824 N 82: [emsesp] thermostat(0x38) -W-> thermostat(0x10), Version(0x02), data: C8 28 04 00 FF
000+16:06:24.132 N 83: [emsesp] me(0x0B) -R-> thermostat(0x38), DeviceName(0x01), length: 27 (offset 27)
000+16:06:24.132 N 84: [emsesp] thermostat(0x38) -W-> me(0x0B), DeviceName(0x01), data: <empty> (offset 27)
000+16:06:31.851 N 85: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:06:32.943 N 86: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:06:48.174 W 87: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F7     // Regular 15s Remote temperature distribution
000+16:06:48.831 N 88: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:07:04.102 N 89: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:07:04.756 N 90: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:07:20.433 N 91: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:07:20.619 N 92: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:07:36.127 N 93: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:07:37.094 N 94: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:07:52.215 N 95: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:07:54.607 N 96: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:08:10.498 N 97: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:08:11.520 N 98: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
....
000+16:12:25.740 N 139: [emsesp] me(0x0B) -R-> thermostat(0x38), DeviceName(0x01), length: 27 (offset 27)
000+16:12:25.740 N 140: [emsesp] thermostat(0x38) -W-> me(0x0B), DeviceName(0x01), data: <empty> (offset 27)
000+16:12:30.683 N 141: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:12:31.438 N 142: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:12:46.597 N 143: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:12:47.151 N 144: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:13:02.159 N 145: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:13:03.776 N 146: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:13:18.960 N 147: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:13:19.214 N 148: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:13:34.772 N 149: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:13:36.789 N 150: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:13:51.798 N 151: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:13:54.052 N 152: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:14:09.673 N 153: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:14:10.776 W 154: [telegram] Incomplete Rx: 38 10 FF 00 03 36 00 89 30 // Regular 15s Remote humidity distribution, but error in telegram type ID
000+16:14:25.859 W 155: [telegram] Incomplete Rx: 38 10 02 F8 CF F0 00 98 // Regular 15s Remote temperature distribution, but error in telegram type ID
000+16:14:25.859 N 156: [emsesp] thermostat(0x10) -R-> thermostat(0x38), Version(0x02), length: 10
000+16:14:25.894 N 157: [emsesp] thermostat(0x10) -R-> thermostat(0x38), Version(0x02), length: 10
000+16:14:25.894 N 158: [emsesp] thermostat(0x38) -W-> thermostat(0x10), Version(0x02), data: C8 28 04 00 FF
000+16:14:26.011 N 159: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:14:26.441 N 160: [emsesp] me(0x0B) -R-> thermostat(0x38), DeviceName(0x01), length: 27 (offset 27)
000+16:14:26.441 N 161: [emsesp] thermostat(0x38) -W-> me(0x0B), DeviceName(0x01), data: <empty> (offset 27)
000+16:14:26.577 N 162: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:14:41.711 N 163: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:14:42.891 N 164: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
....
000+16:19:17.321 N 208: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:19:32.954 N 209: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:19:34.621 N 210: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:19:49.717 N 211: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:19:50.438 N 212: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:20:05.117 N 213: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:20:05.797 N 214: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:20:21.080 N 215: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:20:21.660 N 216: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:20:27.826 N 217: [emsesp] thermostat(0x10) -R-> thermostat(0x38), Version(0x02), length: 10
000+16:20:27.826 N 218: [emsesp] thermostat(0x38) -W-> thermostat(0x10), Version(0x02), data: C8 28 04 00 FF
000+16:20:28.049 N 219: [emsesp] me(0x0B) -R-> thermostat(0x38), DeviceName(0x01), length: 27 (offset 27)
000+16:20:28.049 N 220: [emsesp] thermostat(0x38) -W-> me(0x0B), DeviceName(0x01), data: <empty> (offset 27)
000+16:20:37.106 N 221: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:20:37.847 N 222: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:20:53.619 N 223: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:20:54.199 N 224: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:21:10.719 N 225: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:21:12.436 N 226: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:21:27.680 W 227: [telegram] Incomplete Rx: 38 10 FF 00 A0 00 EC F7 	// Regular 15s Remote temperature distribution, but error in telegram type ID
000+16:21:28.399 N 228: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:21:43.557 N 229: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:21:44.086 N 230: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:21:59.170 N 231: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:21:59.749 N 232: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:22:14.896 N 233: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:22:15.624 N 234: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:22:28.978 N 235: [emsesp] thermostat(0x10) -R-> thermostat(0x38), Version(0x02), length: 10
000+16:22:28.978 N 236: [emsesp] thermostat(0x38) -W-> thermostat(0x10), Version(0x02), data: C8 28 04 00 FF
000+16:22:29.189 N 237: [emsesp] me(0x0B) -R-> thermostat(0x38), DeviceName(0x01), length: 27 (offset 27)
000+16:22:29.189 N 238: [emsesp] thermostat(0x38) -W-> me(0x0B), DeviceName(0x01), data: <empty> (offset 27)
000+16:22:30.658 N 239: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:22:31.163 N 240: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:22:46.234 N 241: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:22:46.912 N 242: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:23:03.188 W 243: [telegram] Incomplete Rx: 38 10 FF 00 03 2B FF C9 // Regular 15s Remote temperature distribution 
000+16:23:04.050 N 244: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:23:19.346 N 245: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:23:20.434 N 246: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:23:36.559 N 247: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:23:37.451 N 248: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
....
000+16:26:30.621 N 276: [emsesp] thermostat(0x38) -W-> me(0x0B), DeviceName(0x01), data: <empty> (offset 27)
000+16:26:36.175 N 277: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:26:36.867 N 278: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:26:52.063 N 279: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:26:53.280 N 280: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:27:08.552 N 281: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:27:09.480 N 282: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:27:24.751 N 283: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:27:25.281 N 284: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:27:40.639 N 285: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:27:41.168 N 286: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:27:56.225 W 287: [telegram] Incomplete Rx: 38 10 FF 00 03 2B 00 F7	// Regular 15s Remote temperature distribution
000+16:27:57.270 N 288: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:28:27.178 N 289: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:28:27.432 N 290: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:28:30.751 N 291: [emsesp] thermostat(0x10) -R-> thermostat(0x38), Version(0x02), length: 10
000+16:28:30.751 N 292: [emsesp] thermostat(0x38) -W-> thermostat(0x10), Version(0x02), data: C8 28 04 00 FF
000+16:28:31.046 N 293: [emsesp] me(0x0B) -R-> thermostat(0x38), DeviceName(0x01), length: 27 (offset 27)
000+16:28:31.046 N 294: [emsesp] thermostat(0x38) -W-> me(0x0B), DeviceName(0x01), data: <empty> (offset 27)
000+16:28:42.940 N 295: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:28:44.195 N 296: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:28:59.953 N 297: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:29:00.645 N 298: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:29:15.954 N 299: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC
000+16:29:16.708 N 300: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteHumidity(0x047B), data: 0E 36 00 89
000+16:29:31.992 N 301: [emsesp] thermostat(0x38) -W-> thermostat(0x10), RemoteTemp(0x042B), data: 00 EC

I looked into telegram.cpp line150ff:

    if (data[length - 1] != crc) {
        if ((data[0] & 0x7F) != ems_bus_id()) { // do not count echos as errors
            telegram_error_count_++;
            LOG_WARNING("Incomplete Rx: %s", Helpers::data_to_hex(data, length).c_str()); // include CRC
        } else {
            LOG_TRACE("Incomplete Rx: %s", Helpers::data_to_hex(data, length).c_str()); // include CRC
        }
        return;
    }

Line 151 looks to me as if incompletes are only logged as a warning when ems-esp is not the sender. I´m not the C++ specialist as you, maybe I´m wrong.

@MichaelDvP
Copy link
Contributor

Yes, they do not give a warning or tx-error count, but in full log they are shown with loglevel trace (T).

@MichaelDvP
Copy link
Contributor

Could you post a full log (log all) to see if the incompletes are only for thermostat or also for other emsesp sendings.

@Sbried
Copy link
Contributor Author

Sbried commented Oct 30, 2024

Attached is an 8 minutes log all.
logall.txt
It contains 10 incomplete messages. One is from the emulated RC100H (0x38), the other 9 are from EMS-ESP (0x0B). But the incompletes from EMS-ESP itself do not show up in the warnings, they go only in the trace.
This is what I also would like for the emulated RC100H (and other emulated things) too.

@MichaelDvP
Copy link
Contributor

This is what I also would like for the emulated RC100H (and other emulated things) too.

This should work with my build https://github.com/MichaelDvP/EMS-ESP32/releases/tag/latest Please check, In my system i don't have incompletes for own sendings.

How is your emsesp connected to bus? Try if it get's better with a shorter/thicker bus-cable.

@mattreim
Copy link
Contributor

mattreim commented Nov 12, 2024

Hello everyone, I have now finished my tests with dev.1 and dev.3. Over 1 million telegrams were transmitted in just under 6 days.

3.7.1-dev.1:
EMS-Fehler-3 7 1-dev 1

3.7.1-dev.3:
EMS-Fehler-3 7 1-dev 3

I think a reduction from 98 to 10 incompletes errors is very good.

CPU: ESP32-D0WD-V3
Platform: ESP32-4MB
EMS Tx mode: EMS
Emulated remote: RC100H
Cable: 2x0.75mm approx. 1.5m long and untwisted at the ends

@proddy proddy closed this as completed Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants