mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-10-28 11:14:58 +00:00
another fix for #3283
This commit is contained in:
+1
-1
@@ -55,7 +55,7 @@ This release is based on the latest Espressif/Arduino core version 3. It brings
|
||||
- show temperature value for sensor 0x40 [#3272](https://github.com/emsesp/EMS-ESP32/issues/3272)
|
||||
- no EMS bus on custom boards whose interface relies on a pull-up on the Rx line. The newer ESP-IDF no longer enables the internal pull-up on the UART Rx pin, so it is now set explicitly as it was in 3.8 [#3258](https://github.com/emsesp/EMS-ESP32/discussions/3258)
|
||||
- no EMS bus after restart when Rx uses a pin that boots with another IO_MUX function (e.g. GPIO43/44 = UART0 on ESP32-S3). IDF 5 `uart_set_pin()` no longer selects the GPIO function on the Rx pad when routing via the matrix, so the pin is reset before UART setup [#3258](https://github.com/emsesp/EMS-ESP32/discussions/3258)
|
||||
- Tx mode Auto preferred HT3 pacing over EMS+ when the bus used the HT3 address mask. Some Bosch heat pumps (e.g. Compress 7000i AW, CS5800i) need EMS+ timing; Auto now prefers EMS+ when EMS 2.0 telegrams are seen [#3283](https://github.com/emsesp/EMS-ESP32/issues/3283), [#3245](https://github.com/emsesp/EMS-ESP32/issues/3245)
|
||||
- Tx mode Auto preferred HT3 pacing over EMS+ when the bus used the HT3 address mask. Some Bosch heat pumps (e.g. Compress 7000i AW, CS5800i) need EMS+ timing; Auto now selects EMS+ when boiler monitor 0xE4 is seen (not merely any extended telegram, which Junkers HT3 also uses) [#3283](https://github.com/emsesp/EMS-ESP32/issues/3283), [#3245](https://github.com/emsesp/EMS-ESP32/issues/3245)
|
||||
- Guru Meditation (cache error) on HybridCompile builds when the EMS or console UART ISR ran from flash during a SPI flash read (WiFi power-down, mDNS, NVS). The UART ISR and ringbuf ISR helpers are now in IRAM
|
||||
- compile errors against Arduino 3.3.12 from Tasmota/Arduino headers named `console.h`, `network.h` and `httpClient.h`. Those EMS-ESP headers are now `emsesp_console.h`, `emsesp_network.h` and `emsesp_http_client.h`
|
||||
- HTTP OTA from WSL/mDNS stalled on IPv6 and used tiny write chunks. Uploads now resolve IPv4 and stream in 64 KB blocks (`scripts/upload.py`, `scripts/upload_cli.py`)
|
||||
|
||||
@@ -207,7 +207,9 @@ void RxService::add(uint8_t * data, uint8_t length) {
|
||||
message_data = data + 6;
|
||||
message_length = length - 7;
|
||||
}
|
||||
if (type_id > 0x0FF && message_length > 1) { // used for auto tx_mode
|
||||
// EMS+ boilers broadcast UBAMonitorFastPlus (0xE4); EMS/HT3 use 0x18.
|
||||
// Extended telegrams alone are not enough: Junkers HT3 also uses them (e.g. 0x16F).
|
||||
if (type_id == 0xE4) {
|
||||
set_ems2();
|
||||
}
|
||||
// if we're watching and "raw" print out actual telegram as bytes to the console
|
||||
|
||||
@@ -169,6 +169,7 @@ class EMSbus {
|
||||
return (ems_mask_ == EMS_MASK_HT3);
|
||||
}
|
||||
|
||||
// True once UBAMonitorFastPlus (0xE4) was received — used by Tx mode Auto for EMS+ pacing
|
||||
static bool is_ems2() {
|
||||
return isEMS2_;
|
||||
}
|
||||
|
||||
@@ -171,8 +171,8 @@ uint8_t EMSuart::transmit(const uint8_t * buf, const uint8_t len) {
|
||||
return EMS_TX_STATUS_OK;
|
||||
}
|
||||
|
||||
// Auto: prefer EMS+ over HT3. Some Bosch heat pumps set the HT3 address mask (source MSB)
|
||||
// but need EMS+ pacing; HT3-first caused FF→E3 echo corruption (#3283, #3245).
|
||||
// Auto: EMS+ if boiler monitor 0xE4 seen (is_ems2), else HT3 address mask, else EMS.
|
||||
// Do not key off extended telegrams alone — Junkers HT3 uses those too (#3283, #3245).
|
||||
auto tx_mode = tx_mode_ != EMS_TXMODE_AUTO ? tx_mode_ : EMSbus::is_ems2() ? EMS_TXMODE_EMSPLUS : EMSbus::is_ht3() ? EMS_TXMODE_HT3 : EMS_TXMODE_EMS;
|
||||
|
||||
// TXMODE is EMS+ with long delay
|
||||
|
||||
Reference in New Issue
Block a user