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

Component xxxxxx took a long time for an operation #4717

Open
jesserockz opened this issue Jul 19, 2023 · 298 comments · May be fixed by esphome/esphome#5373
Open

Component xxxxxx took a long time for an operation #4717

jesserockz opened this issue Jul 19, 2023 · 298 comments · May be fixed by esphome/esphome#5373

Comments

@jesserockz
Copy link
Member

jesserockz commented Jul 19, 2023

Do not report new issues related to this message, instead please comment on this issue with the logs that you see and the config for that component.

The problem

[00:00:00][W][component:204]: Component xxxxxx took a long time for an operation (x.xx s).
[00:00:00][W][component:205]: Components should block for at most 20-30ms.

These 2 log lines may show up in the most recent version of ESPHome due to the log level being changed from verbose to warning.
I made this change because changing the device log level to verbose just to see if these lines show up significantly slowed down the device due to all the extra logging it had to do.

Which version of ESPHome has the issue?

2023.7.0

Can I hide this message?

Yes you can hide the message, but it wont change the fact that the component is taking a long time.

logger:
  logs:
    component: ERROR

Is it expected?

For some components this is actually expected like displays which have a lot of drawing and pixel/data moving.
For the majority of sensors, it means that they are doing too much processing or waiting for responses instead of letting ESPHome get on with business until the data is ready.

@nwf
Copy link

nwf commented Jul 19, 2023

Sorry, didn't see this one before filing #4716.

Another one for the pile is dallas.

@jesserockz
Copy link
Member Author

@nwf thats alright as I posted this issue afterwards to stop future ones =)

@Sebmaster
Copy link

scd30 also causes this warning. This is the config I'm using:

  - platform: scd30
    co2:
      name: "CO2"
      accuracy_decimals: 0
    temperature:
      name: "Temperature"
      accuracy_decimals: 1
    humidity:
      name: "Humidity"
      accuracy_decimals: 1

@BenCos17
Copy link

BenCos17 commented Jul 19, 2023

Ssd1306 causes it also

  - platform: ssd1306_i2c
    contrast: 0%
    model: "SH1106 128x64"
    reset_pin: D0
    address: 0x3C
    lambda: |-
      // Print "Bens' desk" in top center.
      it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "Bens' desk");

      // Print time in HH:MM format
      it.strftime(0, 60, id(font2), TextAlign::BASELINE_LEFT, "%H:%M", id(esptime).now());

      // Print inside temperature (from homeassistant sensor)
      if (id(bedroom_temp).has_state()) {
        it.printf(127, 23, id(font3), TextAlign::TOP_RIGHT , "%.1f°", id(bedroom_temp).state);
      }

      // Print bedroom co2 level (from homeassistant sensor)
      if (id(co2_bedroom).has_state()) {
        it.printf(127, 60, id(font3), TextAlign::BASELINE_RIGHT , "%.1f°", id(co2_bedroom).state);
      }

@ntwb
Copy link

ntwb commented Jul 20, 2023

Getting this on a BT proxy:

[14:12:10][W][component:204]: Component esp32_ble_tracker took a long time for an operation (0.06 s).
[14:12:10][W][component:205]: Components should block for at most 20-30ms.

FYI: The config below is based on the original implementation, I've not updated it since the BT Proxy launch, so it may be out of date and I need to update it...

esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

bluetooth_proxy:
  active: true

button:
- platform: safe_mode
  name: Safe Mode Boot
  entity_category: diagnostic

sensor:
  - platform: ble_rssi
    mac_address: xx:yy:zz:11:22:33
    name: "BT Proxy RSSI"

@billmaterial
Copy link

A simple workaround for the ssd1306 128x64 display is to increase the i2c frequency to 400kHz. This fixed the warning for me. @BenCos17

i2c:
sda: GPIO21
scl: GPIO22
scan: True
id: bus_a
frequency: 400kHz

@jov58
Copy link

jov58 commented Jul 20, 2023

I also got these messages:

[18:18:12][W][component:204]: Component ssd1306_base took a long time for an operation (0.28 s).
[18:18:12][W][component:205]: Components should block for at most 20-30ms.

In the default situation, a device updates every second so these messages appear every second, They clutter up the log very rapidly, making it a lot harder to follow other log messages.

I also wonder if it is useful to show these messages when the device is working properly and its functionality isn't slowed down. I guess a long-time-blocking display can be a problem in some scenarios but not in others. I don't know if it's possible with the architecture of ESPHome/ESP8266/ESP32, but wouldn't it be possible to shown these warnings only when functionality is effected, for instance when a certain heartbeat can't be maintained?

Or perhaps show the warnings once a minute?

[18:18:12][W][component:204]: Component ssd1306_base took a long time for an operation (0.28 s), showed up 60 times.
[18:18:12][W][component:205]: Components should block for at most 20-30ms.

A simple workaround for the ssd1306 128x64 display is to increase the i2c frequency to 400kHz.

Didn't thought of that but it also worked on my SH1106 128*64, so thanks @billmaterial. At 200 kHz still warnings, at 400 kHz not anymore.

@BenCos17
Copy link

frequency: 400kHz

thanks

@JanSchnacki
Copy link

JanSchnacki commented Jul 20, 2023

I just upgraded to 2023.7.0 and recompiled my three NodeMCU stacks. After uploading I got this:

[15:05:53][C][htu21d:028]: HTU21D:
[15:05:53][C][htu21d:029]:   Address: 0x40
[15:05:53][C][htu21d:033]:   Update Interval: 60.0s
[15:05:53][C][htu21d:034]:   Temperature 'NodeMCUGaszaehler Temperature'
[15:05:53][C][htu21d:034]:     Device Class: 'temperature'
[15:05:53][C][htu21d:034]:     State Class: 'measurement'
[15:05:53][C][htu21d:034]:     Unit of Measurement: '°C'
[15:05:53][C][htu21d:034]:     Accuracy Decimals: 1
[15:05:53][C][htu21d:035]:   Humidity 'NodeMCUGaszaehler Humidity'
[15:05:53][C][htu21d:035]:     Device Class: 'humidity'
[15:05:53][C][htu21d:035]:     State Class: 'measurement'
[15:05:53][C][htu21d:035]:     Unit of Measurement: '%'
[15:05:53][C][htu21d:035]:     Accuracy Decimals: 1
[...]
[15:06:11][D][htu21d:065]: Got Temperature=22.2°C Humidity=67.1%
[15:06:11][W][component:204]: Component htu21d.sensor took a long time for an operation (0.11 s).
[15:06:11][W][component:205]: Components should block for at most 20-30ms.

The configuration is simply

# I2C Bus
i2c:
  sda: D2
  scl: D1
  scan: True
  id: bus_a

sensor:
  - platform: htu21d
    temperature:
      name: ${upper_devicename} Temperature
      unit_of_measurement: "°C"
      filters:
        - offset: -2.0
        - median:
    humidity:
      name: ${upper_devicename} Humidity
      unit_of_measurement: "%"
      filters:
        - median:
    update_interval: 60s

@philpem
Copy link

philpem commented Jul 20, 2023

I'm seeing this, but with esphome.coroutine as the component name:

[15:58:58][W][component:204]: Component esphome.coroutine took a long time for an operation (0.05 s).
[15:58:58][W][component:205]: Components should block for at most 20-30ms.
[15:59:04][W][component:204]: Component esphome.coroutine took a long time for an operation (0.06 s).
[15:59:04][W][component:205]: Components should block for at most 20-30ms.
[15:59:10][W][component:204]: Component esphome.coroutine took a long time for an operation (0.06 s).
[15:59:10][W][component:205]: Components should block for at most 20-30ms.
[15:59:13][W][component:204]: Component esphome.coroutine took a long time for an operation (0.06 s).
[15:59:13][W][component:205]: Components should block for at most 20-30ms.
[15:59:25][W][component:204]: Component esphome.coroutine took a long time for an operation (0.05 s).
[15:59:25][W][component:205]: Components should block for at most 20-30ms.
[15:59:26][D][victron_ble:247]: [DE:54:84:5C:9D:4E] Recieved BATTERY_MONITOR message.
[15:59:27][D][victron_ble:247]: [DE:54:84:5C:9D:4E] Recieved BATTERY_MONITOR message.
[15:59:28][W][component:204]: Component esphome.coroutine took a long time for an operation (0.06 s).
[15:59:28][W][component:205]: Components should block for at most 20-30ms.
[15:59:31][W][component:204]: Component esphome.coroutine took a long time for an operation (0.05 s).
[15:59:31][W][component:205]: Components should block for at most 20-30ms.
[15:59:34][W][component:204]: Component esphome.coroutine took a long time for an operation (0.06 s).
[15:59:34][W][component:205]: Components should block for at most 20-30ms.
[15:59:37][D][victron_ble:242]: [E8:33:10:70:76:16] Recieved SOLAR_CHARGER message.
[15:59:37][W][component:204]: Component esphome.coroutine took a long time for an operation (0.07 s).
[15:59:37][W][component:205]: Components should block for at most 20-30ms.
[15:59:38][D][victron_ble:242]: [E8:33:10:70:76:16] Recieved SOLAR_CHARGER message.
[15:59:40][W][component:204]: Component esphome.coroutine took a long time for an operation (0.05 s).
[15:59:40][W][component:205]: Components should block for at most 20-30ms.
[15:59:41][D][victron_ble:247]: [DE:54:84:5C:9D:4E] Recieved BATTERY_MONITOR message.
[15:59:42][D][victron_ble:247]: [DE:54:84:5C:9D:4E] Recieved BATTERY_MONITOR message.
[15:59:51][D][victron_ble:247]: [DE:54:84:5C:9D:4E] Recieved BATTERY_MONITOR message.
[15:59:52][D][victron_ble:247]: [DE:54:84:5C:9D:4E] Recieved BATTERY_MONITOR message.
[15:59:53][D][victron_ble:247]: [DE:54:84:5C:9D:4E] Recieved BATTERY_MONITOR message.
[15:59:55][W][component:204]: Component esphome.coroutine took a long time for an operation (0.05 s).
[15:59:55][W][component:205]: Components should block for at most 20-30ms.
[16:00:07][D][victron_ble:242]: [E8:33:10:70:76:16] Recieved SOLAR_CHARGER message.
[16:00:07][D][api:102]: Accepted 192.168.100.2
[16:00:07][D][api.connection:1031]: Home Assistant 2023.7.2 (192.168.100.2): Connected successfully
[16:00:08][D][victron_ble:242]: [E8:33:10:70:76:16] Recieved SOLAR_CHARGER message.

Components in use are:

external_components:
  - source: github://Fabian-Schmidt/esphome-victron_ble

esp32:
  board: esp32dev
  framework:
    type: arduino

# BLE tracker, required for Victron BLE
esp32_ble_tracker:

# Victron BLE
victron_ble:

# Pipsolar - Easun (Voltronic) solar charger/inverter
uart:
  - id: uart_bus
    tx_pin: GPIO26
    rx_pin: GPIO27
    # most devices use 2400 as baud_rate
    baud_rate: 2400

pipsolar:
  - uart_id: uart_bus
    id: inverter0

I do have a Lambda set up to run when the Victron BLE picks up a charger status update.

@wtremmel
Copy link

I see this for my waveshare epaper display:

[20:31:59][W][component:204]: Component waveshare_epaper.display took a long time for an operation (0.98 s).

Config:

display:
  - platform: waveshare_epaper
    id: epaper
    cs_pin: GPIO17
    dc_pin: GPIO16
    reset_pin: GPIO15
    busy_pin: GPIO18
    reset_duration: 2ms
    model: 7.50inv2
    update_interval: 60s
    rotation: 0
    lambda: |-

@snechiporenko
Copy link

snechiporenko commented Jul 20, 2023

Look at my workaround esphome/feature-requests#2301 for fix audio interrupt.

@tiwu
Copy link

tiwu commented Jul 21, 2023

I'm now seeing this reported for dsmr 0.8 as well:

[02:06:46][W][component:204]: Component dsmr took a long time for an operation (0.12 s).
[02:06:46][W][component:205]: Components should block for at most 20-30ms.

With the config as per https://github.com/mhendriks/esphome-p1/blob/main/p1-dongle-pro.yaml

Tagging @glmnet @zuidwijk for visibility, as they are codeowners for the DSMR component.

@brettmiller
Copy link

I'm seeing this:

[23:36:21][W][component:204]: Component esphome.coroutine took a long time for an operation (0.10 s).
[23:36:21][W][component:205]: Components should block for at most 20-30ms.
[23:36:23][W][component:204]: Component esphome.coroutine took a long time for an operation (0.10 s).
[23:36:23][W][component:205]: Components should block for at most 20-30ms.

When using the component:

external_components:
  - source: github://geoffdavis/esphome-mitsubishiheatpump@develop

climate:
  - platform: mitsubishi_heatpump
    name: "${name}"
    id: ${device_id}_climate
    hardware_uart: UART1
    tx_pin: 12
    rx_pin: 13
    visual:
      temperature_step: 1.0

@Sausages69
Copy link

A simple workaround for the ssd1306 128x64 display is to increase the i2c frequency to 400kHz. This fixed the warning for me. @BenCos17

i2c: sda: GPIO21 scl: GPIO22 scan: True id: bus_a frequency: 400kHz

Thanks, (that below) fixed the error on the SH1106 here. Didn't fix the Dallas one though.

i2c:
frequency: 400kHz

@pery777
Copy link

pery777 commented Jul 22, 2023

I'm seeing this, but with pn532 as the component name:

[07:58:54][W][component:204]: Component pn532 took a long time for an operation (0.10 s).
[07:58:54][W][component:205]: Components should block for at most 20-30ms.
[07:58:55][W][component:204]: Component pn532 took a long time for an operation (0.10 s).
[07:58:55][W][component:205]: Components should block for at most 20-30ms.
[07:58:56][W][component:204]: Component pn532 took a long time for an operation (0.10 s).
[07:58:56][W][component:205]: Components should block for at most 20-30ms.

I am using the code:

https://github.com/adonno/tagreader/blob/master/tagreader.yaml

@Rwin1234
Copy link

The dsmr component that reads out smart meters via a serial P1 connector shows this message every time the serial port receives data. My issue #4731 was closed, but there could still be a dsmr component issue because the device frequently shows up in home assistant as available / unavailable via the Nmap Tracker integration. Taking a time-slice of 0.6 seconds is a lot and might interfere with the wifi / network stack.

INFO ESPHome 2023.7.0
INFO Reading configuration /config/esphome/p1-dongle-pro.yaml...
INFO Starting log output from p1-dongle-pro.local using esphome API
INFO Successfully connected to p1-dongle-pro.local
[00:25:44][I][app:102]: ESPHome version 2023.7.0 compiled on Jul 22 2023, 00:14:13
[00:25:44][I][app:104]: Project smartstuff.p1_dongle_pro version v23.02.1
[00:25:45][W][component:204]: Component dsmr took a long time for an operation (0.61 s).
[00:25:45][W][component:205]: Components should block for at most 20-30ms.
[00:25:55][W][component:204]: Component dsmr took a long time for an operation (0.60 s).
[00:25:55][W][component:205]: Components should block for at most 20-30ms.
[00:26:05][W][component:204]: Component dsmr took a long time for an operation (0.61 s).
[00:26:05][W][component:205]: Components should block for at most 20-30ms.

[repeats every 10 seconds]

If someone needs more info let me know.

@andypnz
Copy link

andypnz commented Jul 22, 2023

With ssd1306 I got the same errors

[12:49:47][W][component:204]: Component interval took a long time for an operation (0.27 s).
[12:49:47][W][component:205]: Components should block for at most 20-30ms.
[12:49:47][W][component:204]: Component ssd1306_base took a long time for an operation (0.27 s).
[12:49:47][W][component:205]: Components should block for at most 20-30ms.

Fixed by adding

frequency: 400kHz

@Sparenzi
Copy link

I have a ESP32 running an IR LED remote and a DHT11.
I get the error message only when the climate component is added to the code.

[17:43:29][D][dht:048]: Got Temperature=28.3°C Humidity=54.0%
[17:43:29][D][sensor:094]: 'Temperature': Sending state 28.30000 °C with 1 decimals of accuracy
[17:43:29][D][climate:378]: 'AC' - Sending state:
[17:43:29][D][climate:381]: Mode: OFF
[17:43:29][D][climate:386]: Fan Mode: LOW
[17:43:29][D][climate:398]: Swing Mode: VERTICAL
[17:43:29][D][climate:401]: Current Temperature: 28.30°C
[17:43:29][D][climate:407]: Target Temperature: 25.00°C
[17:43:29][D][sensor:094]: 'AC Remote Humidity': Sending state 54.00000 % with 0 decimals of accuracy
[17:43:29][W][component:204]: Component dht.sensor took a long time for an operation (0.07 s).
[17:43:29][W][component:205]: Components should block for at most 20-30ms.

@ftw64
Copy link

ftw64 commented Jul 23, 2023

I get this warning now with pzemac and modbus (on ESP8266):

uart:
  rx_pin: GPIO4
  tx_pin: GPIO5
  baud_rate: 9600

modbus:

sensor:
  - platform: pzemac
    address: 1
    current:
      name: "${name}: Current"
    voltage:
      name: "${name}: Voltage"
    energy:
      name: "${name}: Energy"
    power:
      name: "${name}: Power"
    frequency:
      name: "${name}: Frequency"
    power_factor:
      name: "${name}: Power Factor"
    update_interval: 2s
[19:26:56][D][pzemac:049]: PZEM AC: V=230.5 V, I=0.045 A, P=5.8 W, E=10155.0 Wh, F=50.0 Hz, PF=0.56
[19:26:56][D][sensor:093]: 'PZEM-Meter-01: Voltage': Sending state 230.50000 V with 1 decimals of accuracy
[19:26:56][D][sensor:093]: 'PZEM-Meter-01: Current': Sending state 0.04500 A with 3 decimals of accuracy
[19:26:56][D][sensor:093]: 'PZEM-Meter-01: Power': Sending state 5.80000 W with 2 decimals of accuracy
[19:26:56][D][sensor:093]: 'PZEM-Meter-01: Energy': Sending state 10155.00000 Wh with 0 decimals of accuracy
[19:26:56][D][sensor:093]: 'PZEM-Meter-01: Frequency': Sending state 50.00000 Hz with 1 decimals of accuracy
[19:26:56][D][sensor:093]: 'PZEM-Meter-01: Power Factor': Sending state 0.56000  with 2 decimals of accuracy
[19:26:56][W][component:204]: Component modbus took a long time for an operation (0.07 s).
[19:26:56][W][component:205]: Components should block for at most 20-30ms.

@ftw64
Copy link

ftw64 commented Jul 23, 2023

Another ESP8266 reporting these warnings:

uart:
  id: uart_bus
  tx_pin: TX
  rx_pin: RX
  baud_rate: 115200
  rx_buffer_size: 1500

dsmr:
  max_telegram_length: 1500
  
text_sensor:
  - platform: dsmr
    identification:
      name: "${name}: DSMR Identification"
    p1_version:
      name: "${name}: DSMR Version"
      
sensor:
  - platform: dsmr
    energy_delivered_tariff1:
      name: "${name}: Energy Consumed Tariff 1"
    energy_delivered_tariff2:
      name: "${name}: Energy Consumed Tariff 2"
    energy_returned_tariff1:
      name: "${name}: Energy Returned Tariff 1"
    energy_returned_tariff2:
      name: "${name}: Energy Returned Tariff 2"
    power_delivered:
      name: "${name}: Power Consumed"
    power_returned:
      name: "${name}: Power Returned"
    gas_delivered:
      name: "${name}: Gas Consumed"
    electricity_failures:
      name: "${name}: Electricity Failures"
    electricity_long_failures:
      name: "${name}: Long Electricity Failures"
    voltage_l1:
      name: "${name}: Voltage Phase 1"
[19:51:25][D][sensor:093]: 'P1-DSMR-01: Uptime': Sending state 161.98500 s with 0 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Energy Consumed Tariff 1': Sending state 13168.29590 kWh with 3 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Energy Consumed Tariff 2': Sending state 12658.14258 kWh with 3 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Energy Returned Tariff 1': Sending state 5330.78613 kWh with 3 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Energy Returned Tariff 2': Sending state 12150.04785 kWh with 3 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Power Consumed': Sending state 0.00000 kW with 3 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Power Returned': Sending state 0.09200 kW with 3 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Gas Consumed': Sending state 10522.21777 m³ with 3 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Electricity Failures': Sending state 4.00000  with 0 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Long Electricity Failures': Sending state 8.00000  with 0 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Power Consumed Phase 1': Sending state 0.00000 kW with 3 decimals of accuracy
[19:51:30][D][sensor:093]: 'P1-DSMR-01: Power Produced Phase 1': Sending state 0.09300 kW with 3 decimals of accuracy
[19:51:30][D][text_sensor:064]: 'P1-DSMR-01: DSMR Identification': Sending state 'KFM5KAIFA-METER'
[19:51:30][D][text_sensor:064]: 'P1-DSMR-01: DSMR Version': Sending state '42'
[19:51:30][W][component:204]: Component dsmr took a long time for an operation (0.07 s).
[19:51:30][W][component:205]: Components should block for at most 20-30ms.

@ftw64
Copy link

ftw64 commented Jul 23, 2023

And another one (ESP32):

uart:
  - id: uart_2
    rx_pin: GPIO16
    tx_pin: GPIO17
    baud_rate: 9600


# A number of One-Wire sensors can be added to the ESP32.
dallas:
  - pin: GPIO27
    update_interval: 2s


output:
  - platform: ledc
    id: onboard_led
    pin:
      number: GPIO25


text_sensor:
  - platform: template
    name: "${name}: Monitor Status"
    id: monitor_status
    icon: "mdi:text-box"

  - platform: template
    # Response of "REV": ROM 1 CRC
    name: "${name}: Heater ROM 1 Checksum"
    id: rom_test_1_checksum
    icon: "mdi:text-box"

  - platform: template
    # Response of "REV": ROM 2 CRC
    name: "${name}: Heater ROM 2 Checksum"
    id: rom_test_2_checksum
    icon: "mdi:text-box"

  - platform: template
    # Response of "REV": Software release (i.e., "v2.71")
    name: "${name}: Heater Software release"
    id: software_release
    icon: "mdi:text-box"

  - platform: template
    # Response of "REV": Hardware release (i.e., "ic2kknl01*P080925*")
    name: "${name}: Heater Hardware release"
    id: hardware_release
    icon: "mdi:text-box"

# NOT SUPPORTED ON HRE 36/30 (2009, v2.71 software): "REW"
# - platform: template
#   name: "${name}: Heater DSP ROM 1 Checksum"
#   id: dsp_rom_test_1_checksum
#   icon: "mdi:text-box"
#
# - platform: template
#   name: "${name}: Heater DSP ROM 2 Checksum"
#   id: dsp_rom_test_2_checksum
#   icon: "mdi:text-box"
#
# - platform: template
#   name: "${name}: Heater DSP Hardware release"
#   id: dsp_hardware_release
#   icon: "mdi:text-box"
#
# - platform: template
#   name: "${name}: Heater DSP Software release"
#   id: dsp_software_release
#   icon: "mdi:text-box"

  - platform: template
    # Response of "S?\r": Current fault code
    name: "${name}: Fault Code"
    id: heater_fault_code
    icon: "mdi:text-box"

  - platform: template
    # Response of "S?\r": Last fault code
    name: "${name}: Last Fault code"
    id: heater_last_fault_code
    icon: "mdi:text-box"

  - platform: template
    # Response of "S?\r": Heater status:
    #  "Hot water delivery"
    #  "Central Heating active"
    #  "Central Heating idle"
    #  "Hot water ramp down"
    #  "Central Heating ramp down"
    #  "Code: " 
    name: "${name}: Heater Status code"
    id: heater_status_code
    icon: "mdi:text-box"

  - platform: template
    # Response of "S?\r": LT/HT zone valve
    name: "${name}: LT/HT Zone valve"
    id: heater_dwk
    icon: "mdi:valve"

  - platform: template
    # Response of "B?\r": Unknown
    name: "${name}: Production Code"
    id: production_code
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r": heater on
    name: "${name}: Param 01 Heater On"
    id: param_heater_on
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 02 Comfort Mode"
    id: param_comfort_mode
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 03 CV Max Temp"
    id: param_CV_max_temp
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 04 DHW Max Temp"
    id: param_DHW_max_temp
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 05 ECO Days"
    id: param_eco_days
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 06 Comfort Set"
    id: param_comfort_set
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 07 DHW Max Temp at Night"
    id: dhw_at_night
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 08 CV Max Temp at Night"
    id: ch_at_night
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 11 1"
    id: param_1
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 12 2"
    id: param_2
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 13 3"
    id: param_3
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 14 4"
    id: param_4
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 15 5"
    id: param_5
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 16 6"
    id: param_6
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 17 7"
    id: param_7
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 18 8"
    id: param_8
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 19 9"
    id: param_9
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 20 A"
    id: param_A
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 21 b"
    id: param_b
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 22 C"
    id: param_C
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 23 c"
    id: param_c
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 24 d"
    id: param_d
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 25 E"
    id: param_E
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 26 E."
    id: param_Ed
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 27 F"
    id: param_F
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 28 H"
    id: param_H
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 29 n"
    id: param_n
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 30 o"
    id: param_o
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 31 P"
    id: param_P
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 32 r"
    id: param_r
    icon: "mdi:text-box"

  - platform: template
    # Reponse of "V?\r":
    name: "${name}: Param 33 F."
    id: param_Fd
    icon: "mdi:text-box"


binary_sensor:

  - platform: template
    # Response of "S?\r": Ground pin status?
    name: "${name}: GP Switch"
    id: heater_gp_switch
    icon: "mdi:switch"

  - platform: template
    # Response of "S?\r": Tap switch status
    name: "${name}: Tap Switch"
    id: heater_tap_switch
    icon: "mdi:switch"
    device_class: opening

  - platform: template
    # Response of "S?\r": Room thermostat status
    name: "${name}: Room Thermostat"
    id: heater_roomtherm
    icon: "mdi:switch"
    device_class: connectivity

  - platform: template
    # Response of "S?\r": CV pump status
    name: "${name}: Heater Pump"
    id: heater_pump_running
    icon: "mdi:pump"
    device_class: running

  - platform: template
    # Response of "S?\r": Heater alarm status
    name: "${name}: Alarm status"
    id: heater_alarm_status
    icon: "mdi:alarm-light"
    device_class: problem

  - platform: template
    # Response of "S?\r": Unknown
    name: "${name}: Cascade Relay"
    id: heater_cascade_relay
    icon: "mdi:switch"
    device_class: connectivity

  - platform: template
    # Response of "S?\r": Open-Therm status
    name: "${name}: Heater Open-Therm"
    id: heater_open_therm
    icon: "mdi:current-ac"
    device_class: connectivity

  - platform: template
    # Response of "S?\r": Gas valve status
    name: "${name}: Gas valve"
    id: heater_gas_valve
    icon: "mdi:valve"
    device_class: opening

  - platform: template
    # Response of "S?\r": Spark active status
    name: "${name}: Spark active"
    id: heater_spark
    icon: "mdi:lightning-bolt"

  - platform: template
    # Response of "S?\r": Heater ionisation status
    name: "${name}: Ionisation signal"
    id: heater_ionisation_signal
    icon: "mdi:lightning-bolt"

  - platform: template
    # Response of "S?\r": Open Therm status
    name: "${name}: Open Therm disabled"
    id: heater_ot_disabled
    icon: "mdi:switch"

  - platform: template
    # Response of "S?\r": Low water pressure status
    name: "${name}: Low water pressure"
    id: heater_has_low_water_pressure
    icon: "mdi:gauge"

  - platform: template
    # Response of "S?\r": Burner block status
    name: "${name}: Burner block"
    id: heater_burner_block
    icon: "mdi:fire"

  - platform: template
    # Response of "S?\r": Heater gradient flag status
    name: "${name}: Gradient flag"
    id: heater_gradient_flag
    icon: "mdi:switch"


sensor:
  - platform: dallas
    # Please modify the address to that of a connected DS18B20 sensor.
    address: 0x1b031674f1eeff28
    name: "${name}: T-CV warm water temperature"
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: dallas
    # Please modify the address to that of a connected DS18B20 sensor.
    address: 0xf00516738e81ff28
    name: "${name}: T-CV cold water temperature"
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: dallas
    # Please modify the address to that of a connected DS18B20 sensor.
    address: 0x55031674d2cdff28
    name: "${name}: T-CV exhaust fume temperature"
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: template
    # Response of "S?\r": temperature of the heat exchanger
    name: "${name}: Heat Exchanger Temperature (S0)"
    id: temperature_heat_exchanger
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: template
    # Response of "S?\r": CV water outgoing temperature
    name: "${name}: Delivery Temperature (S1)"
    id: temperature_flow
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: template
    # Response of "S?\r": Hot water outgoing temperature
    name: "${name}: Hot water Temperature (S3)"
    id: temperature_hot_water
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: template
    # Response of "S?\r": Cold water temperature (appears to be stuck to -32 C)
    name: "${name}: Cold Water Temperature (S7)"
    id: temperature_cold_water
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: template
    # Response of "S?\r": Not sure what this would be (appears to be stuck to -32 C)
    name: "${name}: Flue gas Temperature (S5)"
    id: temperature_flue_gas
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: template
    # Response of "S?\r": Temperature setpoint (requested CV water outgoing temperature)
    name: "${name}: Setpoint"
    id: temperature_setpoint
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: template
    # Response of "S?\r": Unknown (appears to be stuck at 15.75 C)
    name: "${name}: Outside Temperature (S6)"
    id: temperature_outside
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: template
    # Response of "S?\r": Unknown (appears to be stuck at 15.75 C)
    name: "${name}: Solar Boiler Outflow temperature"
    id: temperature_boiler_to_heater
    unit_of_measurement: °C
    accuracy_decimals: 0
    device_class: temperature

  - platform: template
    # Response of "S?\r": Pressure in heater
    name: "${name}: Heater Pressure"
    id: pressure
    icon: "mdi:gauge-full"
    unit_of_measurement: BAR
    accuracy_decimals: 1

  - platform: template
    # Response of "S?\r": Unknown
    name: "${name}: Heater IO Current"
    id: heater_io_current
    icon: "mdi:current-dc"
    accuracy_decimals: 2
    unit_of_measurement: µA

#  - platform: template
#    # Response of "S?\r": CV return water temperature (not available on HRE)
#    name: "${name}: Return Temperature"
#    id: temperature_return
#    unit_of_measurement: °C
#    accuracy_decimals: 0
#    device_class: temperature

# NOT SUPPORTED ON HRE 36/30 (2009, v2.71 software): "H0\r"
# - platform: template
#   name: "${name}: Line power connected time"
#   id: line_power_connected_hours
#   icon: "mdi:clock-start"
#   unit_of_measurement: Hours
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Line power connected"
#   id: line_power_connected_count
#   icon: "mdi:counter"
#   unit_of_measurement: Count
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Central Heating Usage"
#   id: ch_function_hours
#   icon: "mdi:clock-start"
#   unit_of_measurement: Hours
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Domestic Hot Water Usage"
#   id: dhw_function_hours
#   icon: "mdi:clock-start"
#   unit_of_measurement: Hours
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Burner start count"
#   id: burner_start_count
#   icon: "mdi:counter"
#   unit_of_measurement: Starts
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Ignition failed"
#   id: ignition_failed
#   icon: "mdi:counter"
#   unit_of_measurement: Failures
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Flame lost"
#   id: flame_lost
#   icon: "mdi:counter"
#   unit_of_measurement: Losses
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Reset"
#   id: reset_count
#   icon: "mdi:counter"
#   unit_of_measurement: Resets
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Gas meter Central Heating"
#   id: gas_meter_ch
#   icon: "mdi:meter-gas"
#   unit_of_measurement: m3
#   accuracy_decimals: 4
#
# - platform: template
#   name: "${name}: Gas meter Domestic Hot Water"
#   id: gas_meter_dhw
#   icon: "mdi:meter-gas"
#   unit_of_measurement: m3
#   accuracy_decimals: 4
#
# - platform: template
#   name: "${name}: Water meter"
#   id: water_meter
#   icon: "mdi:gauge"
#   unit_of_measurement: m3
#   accuracy_decimals: 4
#
# - platform: template
#   name: "${name}: Burner starts Domestic Hot Water count"
#   id: burner_starts_dhw_count
#   icon: "mdi:counter"
#   unit_of_measurement: Starts
#   accuracy_decimals: 0
#

# NOT SUPPORTED ON HRE 36/30 (2009, v2.71 software): "D2\r"
# - platform: template
#   name: "${name}: Fan setpoint"
#   id: fanspeed_set
#   icon: "mdi:fan"
#   unit_of_measurement: RPM
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Fan Current speed"
#   id: fanspeed
#   icon: "mdi:fan"
#   unit_of_measurement: RPM
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Pump setpoint"
#   id: pumpspeed_set
#   icon: "mdi:pump"
#   unit_of_measurement: RPM
#   accuracy_decimals: 0
#
# - platform: template
#   name: "${name}: Pump Current speed"
#   id: pumpspeed
#   icon: "mdi:pump"
#   unit_of_measurement: RPM
#   accuracy_decimals: 0
#
#  - platform: template
#    name: "${name}: Heat Exchanger 2 Temperature"
#    id: temperature_heat_exchanger_2
#    unit_of_measurement: °C
#    accuracy_decimals: 2
#    device_class: temperature
#
#  - platform: template
#    name: "${name}: Valve Position setpoint"
#    id: valve_pos_set
#    icon: "mdi:valve"
#    accuracy_decimals: 0
#
#  - platform: template
#    name: "${name}: Valve Position"
#    id: valve_pos
#    icon: "mdi:valve"
#    accuracy_decimals: 0
#

# NOT SUPPORTED ON HRE 36/30 (2009, v2.71 software): "S2\r"
# - platform: template
#   name: "${name}: Zone 1 room override"
#   id: zone1_room_override
#   unit_of_measurement: °C
#   accuracy_decimals: 2
#   device_class: temperature
#
# - platform: template
#   name: "${name}: Zone 1 room setpoint"
#   id: zone1_room_setpoint
#   unit_of_measurement: °C
#   accuracy_decimals: 2
#   device_class: temperature
#
# - platform: template
#   name: "${name}: Zone 1 room Temperature"
#   id: zone1_room_temperature
#   unit_of_measurement: °C
#   accuracy_decimals: 2
#   device_class: temperature
#
# - platform: template
#   name: "${name}: Zone 2 room override"
#   id: zone2_room_override
#   unit_of_measurement: °C
#   accuracy_decimals: 2
#   device_class: temperature
#
# - platform: template
#   name: "${name}: Zone 2 room setpoint"
#   id: zone2_room_setpoint
#   unit_of_measurement: °C
#   accuracy_decimals: 2
#   device_class: temperature
#
# - platform: template
#   name: "${name}: Zone 2 room Temperature"
#   id: zone2_room_temperature
#   unit_of_measurement: °C
#   accuracy_decimals: 2
#   device_class: temperature
#
# - platform: template
#   name: "${name}: Outside override Temperature"
#   id: override_outside_temp
#   unit_of_measurement: °C
#   accuracy_decimals: 2
#   device_class: temperature
#
# - platform: template
#   name: "${name}: Tap flow"
#   id: tapflow
#   icon: "mdi:water-pump"
#   unit_of_measurement: '%'
#   accuracy_decimals: 0
#

custom_component:
  - lambda: |-
      return {new IntergasMonitorHRE3630()};
    components:
      - id: intergas_monitor_hre3630
[19:51:58][D][dallas.sensor:143]: 'HRE3630: T-CV warm water temperature': Got Temperature=21.8°C
[19:51:58][D][sensor:094]: 'HRE3630: T-CV warm water temperature': Sending state 21.81250 °C with 0 decimals of accuracy
[19:51:58][D][dallas.sensor:143]: 'HRE3630: T-CV cold water temperature': Got Temperature=22.1°C
[19:51:58][D][sensor:094]: 'HRE3630: T-CV cold water temperature': Sending state 22.06250 °C with 0 decimals of accuracy
[19:51:58][D][dallas.sensor:143]: 'HRE3630: T-CV exhaust fume temperature': Got Temperature=22.1°C
[19:51:58][D][sensor:094]: 'HRE3630: T-CV exhaust fume temperature': Sending state 22.12500 °C with 0 decimals of accuracy
[19:52:00][D][dallas.sensor:143]: 'HRE3630: T-CV warm water temperature': Got Temperature=21.8°C
[19:52:00][D][sensor:094]: 'HRE3630: T-CV warm water temperature': Sending state 21.81250 °C with 0 decimals of accuracy
[19:52:00][D][dallas.sensor:143]: 'HRE3630: T-CV cold water temperature': Got Temperature=22.1°C
[19:52:00][D][sensor:094]: 'HRE3630: T-CV cold water temperature': Sending state 22.06250 °C with 0 decimals of accuracy
[19:52:00][D][dallas.sensor:143]: 'HRE3630: T-CV exhaust fume temperature': Got Temperature=22.1°C
[19:52:00][D][sensor:094]: 'HRE3630: T-CV exhaust fume temperature': Sending state 22.12500 °C with 0 decimals of accuracy
[19:52:00][D][text_sensor:064]: 'HRE3630: Monitor Status': Sending state 'Fetching: S?\r'
[19:52:00][D][Intergas HRE:210]: Send command S?\r
[19:52:01][D][text_sensor:064]: 'HRE3630: Monitor Status': Sending state 'Processing...'
[19:52:01][D][sensor:094]: 'HRE3630: Heat Exchanger Temperature (S0)': Sending state 65.29000 °C with 0 decimals of accuracy
[19:52:01][D][sensor:094]: 'HRE3630: Delivery Temperature (S1)': Sending state 57.65000 °C with 0 decimals of accuracy
[19:52:01][D][sensor:094]: 'HRE3630: Hot water Temperature (S3)': Sending state 46.44000 °C with 0 decimals of accuracy
[19:52:01][D][sensor:094]: 'HRE3630: Heater Pressure': Sending state 1.75000 BAR with 1 decimals of accuracy
[19:52:01][W][component:204]: Component custom_component took a long time for an operation (0.09 s).
[19:52:01][W][component:205]: Components should block for at most 20-30ms.


[19:53:34][D][dallas.sensor:143]: 'HRE3630: T-CV warm water temperature': Got Temperature=21.8°C
[19:53:34][D][sensor:094]: 'HRE3630: T-CV warm water temperature': Sending state 21.75000 °C with 0 decimals of accuracy
[19:53:34][D][dallas.sensor:143]: 'HRE3630: T-CV cold water temperature': Got Temperature=22.1°C
[19:53:34][D][sensor:094]: 'HRE3630: T-CV cold water temperature': Sending state 22.06250 °C with 0 decimals of accuracy
[19:53:34][D][dallas.sensor:143]: 'HRE3630: T-CV exhaust fume temperature': Got Temperature=22.1°C
[19:53:34][D][sensor:094]: 'HRE3630: T-CV exhaust fume temperature': Sending state 22.12500 °C with 0 decimals of accuracy
[19:53:36][D][dallas.sensor:143]: 'HRE3630: T-CV warm water temperature': Got Temperature=21.8°C
[19:53:36][D][sensor:094]: 'HRE3630: T-CV warm water temperature': Sending state 21.81250 °C with 0 decimals of accuracy
[19:53:36][D][dallas.sensor:143]: 'HRE3630: T-CV cold water temperature': Got Temperature=22.1°C
[19:53:36][D][sensor:094]: 'HRE3630: T-CV cold water temperature': Sending state 22.06250 °C with 0 decimals of accuracy
[19:53:36][D][dallas.sensor:143]: 'HRE3630: T-CV exhaust fume temperature': Got Temperature=22.1°C
[19:53:36][D][sensor:094]: 'HRE3630: T-CV exhaust fume temperature': Sending state 22.12500 °C with 0 decimals of accuracy
[19:53:36][D][text_sensor:064]: 'HRE3630: Current time': Sending state '2023-07-23 19:53:36 CEST'
[19:53:37][D][text_sensor:064]: 'HRE3630: Monitor Status': Sending state 'Fetching: S?\r'
[19:53:37][D][Intergas HRE:210]: Send command S?\r
[19:53:37][D][text_sensor:064]: 'HRE3630: Monitor Status': Sending state 'Processing...'
[19:53:37][D][sensor:094]: 'HRE3630: Heat Exchanger Temperature (S0)': Sending state 64.58000 °C with 0 decimals of accuracy
[19:53:37][D][sensor:094]: 'HRE3630: Delivery Temperature (S1)': Sending state 57.56000 °C with 0 decimals of accuracy
[19:53:37][D][sensor:094]: 'HRE3630: Hot water Temperature (S3)': Sending state 45.98000 °C with 0 decimals of accuracy
[19:53:37][D][sensor:094]: 'HRE3630: Heater Pressure': Sending state 1.75000 BAR with 1 decimals of accuracy
[19:53:37][W][component:204]: Component custom_component took a long time for an operation (0.09 s).
[19:53:37][W][component:205]: Components should block for at most 20-30ms.

@descipher
Copy link

Tack on atm90e32

23:00:40 | [W] | [component:204] | Component atm90e32.sensor took a long time for an operation (0.05 s).
23:00:40 | [W] | [component:205] | Components should block for at most 20-30ms.

@jesserockz
Copy link
Member Author

@LelandSindt any custom/external component issues should be reported to the relevant repositories/owners and not here.

@LelandSindt
Copy link

Apologies, I misunderstood. (thought you were looking for general instances of the message) I will follow up with @ssieb

@luzik
Copy link

luzik commented Mar 26, 2024

[07:22:48][W][component:232]: Component cse7761.sensor took a long time for an operation (76 ms).
[07:22:48][W][component:233]: Components should block for at most 30 ms.
esp32:
  board: esp32dev
  framework:
    type: arduino
uart:
  tx_pin: GPIO25
  rx_pin: GPIO26
  baud_rate: 38400
  parity: EVEN
  stop_bits: 1
sensor:
  - platform: cse7761
    update_interval: 500ms
    voltage:
      name: 'Voltage ${friendly_name}'
      disabled_by_default: True
    current_1:
      name: 'Current Open ${friendly_name}'
      id: open_current
      disabled_by_default: True
      internal: true
    current_2:
      name: 'Current Close ${friendly_name}'
      id: close_current
      disabled_by_default: True
      internal: true
    active_power_1:
      name: 'Power Open ${friendly_name}'
    active_power_2:
      name: 'Power Close ${friendly_name}'

@sargus123
Copy link

Lcd
[11:19:28][W][component:232]: Component display took a long time for an operation (492 ms). [11:19:28][W][component:233]: Components should block for at most 30 ms.

`esp32:
board: esp32dev
framework:
type: arduino
...

pcf8574:

  • id: 'pcf8575_hub'
    address: 0x20
    pcf8575: true

i2c:
sda: 21
scl: 22
scan: true

display:

  • platform: lcd_pcf8574
    dimensions: 20x4
    address: 0x27
    update_interval: 1s
    lambda: |-
    it.printf(0, 0, "");
    if (id(solar_1).state || id(cooling_1_state)) {
    if (id(solar_1_time) > 0) {
    it.printf(0, 2, "<< Czas: %d:%02d", id(solar_1_time) / 60, id(solar_1_time) % 60);
    } else if (id(cooling_1_state)) {
    it.printf(0, 2, "<Czekaj Chlodz. %d:%02d", id(cooling_1_time) / 60, id(cooling_1_time) % 60);
    }
    } else {
    it.printf(0, 2, "<< Gotowy");
    }
    if (id(solar_2).state || id(cooling_2_state)) {
    if (id(solar_2_time) > 0) {
    it.printf(0, 3, " Czas: %d:%02d >>", id(solar_2_time) / 60, id(solar_2_time) % 60);
    } else if (id(cooling_2_state)) {
    it.printf(0, 3, "Czekaj Chlodz %d:%02d>", id(cooling_2_time) / 60, id(cooling_2_time) % 60);
    }
    } else {
    it.printf(8, 3, " Gotowy >>");
    }

`

@azrod
Copy link

azrod commented Apr 10, 2024

Lcd [11:19:28][W][component:232]: Component display took a long time for an operation (492 ms). [11:19:28][W][component:233]: Components should block for at most 30 ms.

`esp32: board: esp32dev framework: type: arduino ...

pcf8574:

  • id: 'pcf8575_hub'
    address: 0x20
    pcf8575: true

i2c: sda: 21 scl: 22 scan: true

display:

  • platform: lcd_pcf8574
    dimensions: 20x4
    address: 0x27
    update_interval: 1s
    lambda: |-
    it.printf(0, 0, "");
    if (id(solar_1).state || id(cooling_1_state)) {
    if (id(solar_1_time) > 0) {
    it.printf(0, 2, "<< Czas: %d:%02d", id(solar_1_time) / 60, id(solar_1_time) % 60);
    } else if (id(cooling_1_state)) {
    it.printf(0, 2, "<Czekaj Chlodz. %d:%02d", id(cooling_1_time) / 60, id(cooling_1_time) % 60);
    }
    } else {
    it.printf(0, 2, "<< Gotowy");
    }
    if (id(solar_2).state || id(cooling_2_state)) {
    if (id(solar_2_time) > 0) {
    it.printf(0, 3, " Czas: %d:%02d >>", id(solar_2_time) / 60, id(solar_2_time) % 60);
    } else if (id(cooling_2_state)) {
    it.printf(0, 3, "Czekaj Chlodz %d:%02d>", id(cooling_2_time) / 60, id(cooling_2_time) % 60);
    }
    } else {
    it.printf(8, 3, " Gotowy >>");
    }

`

Hello,

I have a same issue.

Config

esp32:
  board: nodemcu-32s

i2c:
  sda: 16
  scl: 17
  scan: true

display:
  - platform: lcd_pcf8574
    id: lcd_settings
    dimensions: 20x4
    address: 0x27
    update_interval: 2s
    lambda: |-
       it.print("Hello World!");

Logs

[22:04:45][W][component:232]: Component display took a long time for an operation (492 ms).
[22:04:45][W][component:233]: Components should block for at most 30 ms.
[22:04:47][W][component:232]: Component display took a long time for an operation (492 ms).
[22:04:47][W][component:233]: Components should block for at most 30 ms.

@henkiejan1
Copy link

Got the problem since some last updates i think?

[14:52:46][W][component:232]: Component interval took a long time for an operation (118 ms). [14:52:46][W][component:233]: Components should block for at most 30 ms. [14:52:47][W][component:232]: Component display took a long time for an operation (128 ms). [14:52:47][W][component:233]: Components should block for at most 30 ms.

config:
`display:

  • platform: ssd1306_i2c
    id: oled
    model: "SSD1306 64x48"
    contrast: 40%
    pages:
    • id: page1
      lambda: |-
      it.printf(0, 0, id(helvetica), "CO2: %.0fppm", id(co2).state);
      it.printf(0, 10, id(helvetica), "Press: %.0f", id(pressure).state);
      it.printf(0, 20, id(helvetica), "Hmdty: %.0f", id(humidity).state);
      it.printf(0, 30, id(helvetica), "Temp: %.0fC", id(temp).state);
    • id: page2
      lambda: |-
      it.printf(0, 0, id(helvetica), "PM1.0 : %.0f", id(pm10).state);
      it.printf(0, 10, id(helvetica), "PM2.5 : %.0f", id(pm25).state);
      it.printf(0, 20, id(helvetica), "PM10 : %.0f", id(pm100).state);

interval:

  • interval: 5s
    then:
    • display.page.show_next: oled
    • component.update: oled`

@pimp1310
Copy link

pimp1310 commented Apr 11, 2024

I have the error with the Display Component
The Problem is the Microphone or the esp32 is blocked complete, i think because the error comes every second

Can someone say somethink here?

21:05:05][W][component:233]: Components should block for at most 30 ms. [21:05:06][W][component:232]: Component display took a long time for an operation (523 ms). [21:05:06][W][component:233]: Components should block for at most 30 ms. [21:05:07][W][component:232]: Component display took a long time for an operation (524 ms). [21:05:07][W][component:233]: Components should block for at most 30 ms. [21:05:08][W][component:232]: Component display took a long time for an operation (523 ms). [21:05:08][W][component:233]: Components should block for at most 30 ms. [21:05:09][W][component:232]: Component display took a long time for an operation (523 ms). [21:05:09][W][component:233]: Components should block for at most 30 ms. [21:05:10][W][component:232]: Component display took a long time for an operation (523 ms). [21:05:10][W][component:233]: Components should block for at most 30 ms. [21:05:11][W][component:232]: Component display took a long time for an operation (523 ms). [21:05:11][W][component:233]: Components should block for at most 30 ms. [21:05:12][W][component:232]: Component display took a long time for an operation (522 ms). [21:05:12][W][component:233]: Components should block for at most 30 ms. [21:05:13][W][component:232]: Component display took a long time for an operation (523 ms). [21:05:13][W][component:233]: Components should block for at most 30 ms. [21:05:14][W][component:232]: Component display took a long time for an operation (523 ms). [21:05:14][W][component:233]: Components should block for at most 30 ms.

@beginnersguide
Copy link

beginnersguide commented Apr 12, 2024

I also have the problem with a display component

[14:46:39][W][component:232]: Component display took a long time for an operation (128 ms).
[14:46:39][W][component:233]: Components should block for at most 30 ms.

 esp32:
  board: esp32dev
  framework:
    type: arduino
 display:
  - platform: st7735
    model: "INITR_18BLACKTAB"   ##  "INITR_MINI160X80"
    reset_pin: GPIO4    #   D3  standard D0 #RES
    cs_pin: GPIO15      #   D8  #CS
    dc_pin: GPIO2       #   D4  kann gaendert werden  #RS
    rotation: 90
    device_width: 128
    device_height: 160
    col_start: 0
    row_start: 0
    eight_bit_color: true
#    use_bgr: True
    invert_colors: false
    update_interval: 500ms
 spi:    # Use VSPI
  clk_pin: GPIO18   #   D5  #SCK
  mosi_pin: GPIO23  #   D7  #SDA
  miso_pin: GPIO19  #   D6

@fribse
Copy link

fribse commented Apr 13, 2024

Just chiming in, I see this as well for my epaper display.

Config

display:
  - platform: waveshare_epaper
    id: my_display
    rotation: 270
    cs_pin: D2
    dc_pin: D6
    busy_pin: D7
    reset_pin: D5
    model: 2.90in
    full_update_every: 600
    pages:
      - id: page1
        lambda: |-
          it.line(0, 30, 295,30);
          it.line(0, 78, 295,78);

          it.print(148, 0, id(headline), TextAlign::TOP_CENTER, "Fribert");
          it.strftime(6, 20, id(normaltext), TextAlign::BASELINE_LEFT, "%H:%M", id(homeassistant_time).now());
          it.image(263, 0, id(house));

          it.print(3, 71, id(bigtext), TextAlign::BASELINE_LEFT, "Pool:");
          it.print(3, 120, id(bigtext), TextAlign::BASELINE_LEFT, "Pumpe:");
          if (isnan(id(pooltemp).state)) {
            it.print(162, 71, id(bigtext), TextAlign::BASELINE_LEFT, "offline");
          } else {
            it.printf(268, 71, id(bigtext), TextAlign::BASELINE_RIGHT, "%.1f°C", id(pooltemp).state);
          }
          if(id(pumprunning).state) {
            it.print(162, 120, id(bigtext), TextAlign::BASELINE_LEFT, "on");
          } else {
            it.print(162, 120, id(bigtext), TextAlign::BASELINE_LEFT, "off");
          }
      - id: page3
        lambda: |-
          it.line(0, 30, 295,30);
          it.line(0, 78, 295,78);

          it.print(148, 0, id(headline), TextAlign::TOP_CENTER, "Fribert");
          it.strftime(6, 20, id(normaltext), TextAlign::BASELINE_LEFT, "%H:%M", id(homeassistant_time).now());
          it.image(263, 0, id(house));
          it.print(3, 71, id(bigtext), TextAlign::BASELINE_LEFT, "Ppm 2,5u:");
          it.print(3, 120, id(bigtext), TextAlign::BASELINE_LEFT, "Ppm 10u:");
          if (isnan(id(particle25).state)) {
            it.print(202, 71, id(bigtext), TextAlign::BASELINE_LEFT, "offl.");
          } else {
            it.printf(293, 71, id(bigtext), TextAlign::BASELINE_RIGHT, "%.1f", id(particle25).state);
          }
          if (isnan(id(particle10).state)) {
            it.print(202, 120, id(bigtext), TextAlign::BASELINE_LEFT, "offl.");
          } else {
            it.printf(293, 120, id(bigtext), TextAlign::BASELINE_RIGHT, "%.1f", id(particle10).state);
          }
interval:
  - interval: 5s
    then:
      - display.page.show_next: my_display
      - component.update: my_display

@SaturnusDJ
Copy link

sgp4x component

Same here on 2024.3.2.

[W][component:232]: Component sgp4x.sensor took a long time for an operation (60 ms).
[W][component:233]: Components should block for at most 30 ms.

Roving-Ronin added a commit to Roving-Ronin/athom-configs that referenced this issue Apr 15, 2024
1) Set the update interval for sensors only needing occassional updates (i.e. WiFi Signal dB, WiFi Signal %, Last Restart & Device Uptime)

2) Loggers adds ' logs: component: ERROR'. This is a fix for issue esphome/issues#4717 "Component xxxxxx took a long time for an operation"

3) Added "sntp_update_interval: 6h" to allow setting of sntp update interval from substitutions section.
Roving-Ronin added a commit to Roving-Ronin/athom-configs that referenced this issue Apr 15, 2024
1) Set the update interval for sensors only needing occassional updates (i.e. WiFi Signal dB, WiFi Signal %, Last Restart & Device Uptime)

2) Loggers adds ' logs: component: ERROR'. This is a fix for issue esphome/issues#4717 "Component xxxxxx took a long time for an operation"

3) Added "sntp_update_interval: 6h" to allow setting of sntp update interval from substitutions section.
@p1ngb4ck
Copy link

p1ngb4ck commented Apr 17, 2024

@jesserockz : this is one of these times, where the creator of the change had good things in mind, but didnt think about full consequences for a lot of users and therefore making life harder for many.

From my POV:
There should NOT be any defaults, that clutters up the log with warnings as soon as you use specific components that work fine. Thats just absolutely the wrong way to address the basic issue you were trying to address, really. Do you realize you make people address an actually non-existing issue, if they dont google this error and find this thread, but e.g. go up with the i2c freq and stuff, introducing other issues etc?
Sorry this is a change that definitely should be reverted, just my 5 cents.

PS: You state yourself, that lots of users do not necessarily know about the consequences regarding timings, when they change certain settings.. But - do you really think, implementing workarounds is the better solution than providing that knowledge to those people?

@edwardtfn
Copy link

@p1ngb4ck, I will respectfully disagree here if you are talking about revert the change which started with the Component xxxxxx took a long time... message as a warning. On the beginning I also saw that as a mistake, but later I started seeing the benefit of highlighting the components deviating from the optimal behave and making clearer when I make a change which impacts in performance.

What I thing we should do is to promote people to improve their code to prevent this, perhaps with some guidance/best practices to make their job a bit easier.
We also should have a task force on the core components to improve those. Like, I have this message on a very simple ADC sensor on an ESP32. I don't wanna invest my time on that, but I think some owner should look at that. As we are not reporting an issue per component, that might get lost on the almost 300 messages in this thread.

So, basically, what I'm saying is that instead of reverting this change, we should promote the improvement on the different components as that will improve ESPHome in overall.

@edwardtfn
Copy link

edwardtfn commented Apr 17, 2024

Just looking back to the messages here and I can easily find some examples like this one where the display component is taking almost 500ms to display a "Hello world" message. It's good to highlight that the component deserves some love. 😉

@p1ngb4ck
Copy link

@edwardtfn and I respectfully disagree with you here anyhow, because I think you are mixing up twi different things here:
Yes, you are right, timings are important and wrong/bad timings and blocks are a major issue to some users.
I do not disagree, that this is a topic/Problem that needs to be adressed. But i disagree with the way that it is addressed, because I think it is wrong.

Fron the very abstract pov: this is a knowledge issue of those users that run devices with wrong settings. Do I want to create a workaround that affects previously unaffected users, or do I pass the knowledge required, that those users will need anyhow, If they want to succeed with their projects?
I agree, an info about unusually(!) long blocks would be great. Warnings for expected delays are not in the other hand and it is also general best coding practice, not to throw errors, where you dont know If its actually an error or expected behaviour.
If you want to implement a warning of this kind - ITS only a good idea, if you go the longer harder Route, and do it correctly: Display warnings for unusually long blocks. That would require a lot of work as we would have to add general expected response Times for all components in combination with a gracetime setting.
Again: i do not disagree, that timings and blocks are important, and important to obey. I just do not think its correctly addressed by affecting users that run their slow devices as they should.

@edwardtfn
Copy link

You have a good point... 😉

@godzillaerikj
Copy link

[W] | [component:237] | Component hdc1080.sensor took a long time for an operation (56 ms). -- | -- | -- 17:48:53 | [W] | [component:238] | Components should block for at most 30 ms.

@geniusled
Copy link

- platform: dht    
  pin: GPIO21    
  model: AM2302    
  temperature:    
    name: "living Room Temperature"    
  humidity:    
    name: "living Room Humidity"    
  update_interval: 60s 
[component:232]: Component dht.sensor took a long time for an operation (58 ms).
[22:08:58][W][component:233]: Components should block for at most 30 ms.

@hachi
Copy link

hachi commented Apr 28, 2024

display:
  - platform: ili9xxx
    model: M5STACK
    cs_pin: 14
    dc_pin: 27
    reset_pin: 33
    id: my_display
    lambda: |-
      it.print(80, 0, id(roboto), Color(255, 255, 255), TextAlign::TOP_CENTER, "M5Stack Fire Test");
[10:58:37][W][component:237]: Component display took a long time for an operation (56 ms).
[10:58:37][W][component:238]: Components should block for at most 30 ms.

The clocking on the spi bus is running at 40MHz so I can't think that is the cause, maybe the lambda is too slow? I'm not sure how to make it execute faster.

Shouldn't this warning be adjustable per component so that someone can silence it for one but not for all? The log context is component 'component' so you can't actually filter it out for display only.

@stu1811
Copy link

stu1811 commented May 2, 2024

display:
  - platform: ili9xxx
    model: M5STACK
    cs_pin: 14
    dc_pin: 27
    reset_pin: 33
    id: my_display
    lambda: |-
      it.print(80, 0, id(roboto), Color(255, 255, 255), TextAlign::TOP_CENTER, "M5Stack Fire Test");
[10:58:37][W][component:237]: Component display took a long time for an operation (56 ms).
[10:58:37][W][component:238]: Components should block for at most 30 ms.

The clocking on the spi bus is running at 40MHz so I can't think that is the cause, maybe the lambda is too slow? I'm not sure how to make it execute faster.

Shouldn't this warning be adjustable per component so that someone can silence it for one but not for all? The log context is component 'component' so you can't actually filter it out for display only.

I get the same warning with my m5stack. The display does work if you add the following block.

# GPIO pin of the display backlight
output:
  - platform: ledc
    pin: 32
    id: gpio_32_backlight_pwm

light:
  - platform: monochromatic
    output: gpio_32_backlight_pwm
    name: "Display Backlight"
    id: back_light
    restore_mode: ALWAYS_ON

@hachi
Copy link

hachi commented May 4, 2024

sensor:
  - type: PMSX003
    platform: pmsx003
    pm_1_0:
      name: "Particulate Matter <1.0µm Concentration"
    pm_2_5:
      name: "Particulate Matter <2.5µm Concentration"
    pm_10_0:
      name: "Particulate Matter <10.0µm Concentration"

uart:
  tx_pin: GPIO23
  rx_pin: GPIO22
  baud_rate: 9600
[15:04:50][W][component:237]: Component pmsx003.sensor took a long time for an operation (68 ms).
[15:04:50][W][component:238]: Components should block for at most 30 ms.

@mkbodanu4
Copy link

Hi! I getting a lot of messages for display model ST7789 (ILI9xxx component)

23:33:49 [W] [component:237] Component display took a long time for an operation (59 ms). 23:33:49 [W] [component:238] Components should block for at most 30 ms.

I got as fast as possible SPI speed, but the more complex is frame, the bigger chance this messages will appear. With just one text string all right. I think will be great to be able to set the operation duration for each component, so display component can have for example 100ms instead of 30ms right now.

@mweinelt
Copy link

mweinelt commented May 8, 2024

Happens on 2024.2 for the sen5x component. The config is based on the example on the docs.

[00:23:24][W][component:237]: Component sen5x.sensor took a long time for an operation (77 ms).
[00:23:24][W][component:238]: Components should block for at most 30 ms.
sensor:
  - platform: sen5x
    id: sen55
    pm_1_0:
      name: "${macsuffix} PM <1µm Weight concentration"
      id: pm_1_0
      accuracy_decimals: 1
    pm_2_5:
      name: "${macsuffix} PM <2.5µm Weight concentration"
      id: pm_2_5
      accuracy_decimals: 1
    pm_4_0:
      name: "${macsuffix} PM <4µm Weight concentration"
      id: pm_4_0
      accuracy_decimals: 1
    pm_10_0:
      name: "${macsuffix} PM <10µm Weight concentration"
      id: pm_10_0
      accuracy_decimals: 1
    temperature:
      name: "${macsuffix} Temperature"
      accuracy_decimals: 1
    humidity:
      name: "${macsuffix} Humidity"
      accuracy_decimals: 0
    voc:
      name: "${macsuffix} VOC"
      algorithm_tuning:
        index_offset: 100
        learning_time_offset_hours: 12
        learning_time_gain_hours: 12
        gating_max_duration_minutes: 180
        std_initial: 50
        gain_factor: 230
    nox:
      name: "${macsuffix} NOx"
      algorithm_tuning:
        index_offset: 100
        learning_time_offset_hours: 12
        learning_time_gain_hours: 12
        gating_max_duration_minutes: 180
        std_initial: 50
        gain_factor: 230
    temperature_compensation:
      offset: 0
      normalized_offset_slope: 0
      time_constant: 0
    acceleration_mode: low
    store_baseline: true
    address: 0x69
    update_interval: 10s

@martin-at-schorsch
Copy link

martin-at-schorsch commented May 17, 2024

[17:05:28][W][component:237]: Component modbus_controller took a long time for an operation (207 ms).
[17:05:28][W][component:238]: Components should block for at most 30 ms.

I have the same issue with a ESP32 board, this log is from the ESP32-S2.
Framework esp-idf also show the same issue.

ESPhome Version: 2024.5.0

esphome:
  name: esp32-warmwasser
  friendly_name: Warmwasser

esp32:
  #board: featheresp32
  board: esp32-s2-saola-1
  
  framework:
    type: arduino #esp-idf

# Enable logging
logger:
#  level: DEBUG

# Enable Home Assistant API
api:
  encryption:
    key: "removed"

ota:
  password: "removed"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
 
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Warmwasser"
    password: "removed"

captive_portal:

web_server:
  port: 80

mqtt:
  broker: !secret mqtt_host
  username: !secret mqtt_username
  password: !secret mqtt_password




uart:
  id: mod_bus
  tx_pin: 21
  rx_pin: 17
#  debug:
#    direction: BOTH
#    dummy_receiver: false
#    after:
#      delimiter: "\n"
#    sequence:
#      - lambda: UARTDebug::log_hex(direction, bytes, ' ');



  baud_rate: 115200
  stop_bits: 1
  parity: EVEN

modbus:

  id: modbus1


modbus_controller:
  - id: warmwasser
    address: 0x1   ## address of the ModBUS slave device on the bus
    modbus_id: modbus1
    setup_priority: -10
    


sensor:


  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Wassertemperatur Mitte (Regel)"
    id: Wassertemperatur_Mitte
    register_type: holding
    address: 2006
    unit_of_measurement: "°C"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Istwert Sensor F1 Warmwasserspeichertemperatur Mitte"
    id: Istwert_Sensor_F1
    register_type: holding
    address: 2001
    unit_of_measurement: "°C"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Istwert Sensor F2 Warmwasserspeichertemperatur Oben"
    id: Istwert_Sensor_F2
    register_type: holding
    address: 2002
    unit_of_measurement: "°C"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Istwert Sensor F3 Verdampfer"
    id: Istwert_Sensor_F3
    register_type: holding
    address: 2003
    unit_of_measurement: "°C"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Istwert Sensor F4 Solarkollektortemperatur"
    id: Istwert_Sensor_F4
    register_type: holding
    address: 2004
    unit_of_measurement: "°C"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Ventilatordrehzahl"
    id: Ventilatordrehzahl
    register_type: holding
    address: 2005
    unit_of_measurement: "U/min"
    value_type: U_WORD
   # filters:
   #   - multiply: 0.1

# Ident zu Istwert F2
  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Wassertemperatur Oben (Anzeige)"
    id: Wassertemperatur_Oben
    register_type: holding
    address: 2000
    accuracy_decimals: 1
    unit_of_measurement: "°C"
    value_type: U_WORD
    filters:
      - multiply: 0.1

# Ident zu Istwert F3
  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Verdampfertempteratur"
    id: Verdampfertempteratur
    register_type: holding
    address: 2007
    accuracy_decimals: 1
    unit_of_measurement: "°C"
    value_type: U_WORD
    filters:
      - multiply: 0.1

 #Ident zu Istwert F4
  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Solarthermie Temperatur"
    id: Solarthermie_Temperatur
    register_type: holding
    address: 2008
    accuracy_decimals: 1
    unit_of_measurement: "°C"
    value_type: U_WORD
    filters:
      - multiply: 0.1


  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Alarmtemperatur"
    id: Alarmtemperatur
    register_type: holding
    address: 2009
    accuracy_decimals: 1
    unit_of_measurement: "°C"
    value_type: U_WORD
    filters:
      - multiply: 0.1


  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Aktuelle Überschussleistung"
    id: Aktuelle_Ueberschussleistung
    register_type: holding
    address: 2010
    unit_of_measurement: "W"
    value_type: S_WORD

  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Leistung der variablen Heizung"
    id: Leistung_variable_Heizung
    register_type: holding
    address: 2011
    #accuracy_decimals: 1
    unit_of_measurement: "%"
    value_type: U_WORD
    #filters:
    #  - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Totale berechnete Überschussleistung"
    id: Totale_berechnete_Ueberschussleistung
    register_type: holding
    address: 2012
    accuracy_decimals: 1
    unit_of_measurement: "W"
    value_type: S_WORD
#    filters:
#      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: warmwasser
    name: "Aktueller Warmwassersollwert"
    id: Aktueller_Warmwassersollwert
    register_type: holding
    address: 2013
    accuracy_decimals: 1
    unit_of_measurement: "°C"
    value_type: U_WORD
    filters:
      - multiply: 0.1
     

number:
 
  - platform: modbus_controller
    modbus_controller_id: warmwasser
    id: Solltemperatur
    name: "Solltemperatur"
    address: 2200
    min_value: 0
    max_value: 65
    unit_of_measurement: "°C"
    value_type: U_WORD    
    multiply: 10
#    on_value:
#      then:
#        - component.update: warmwasser



  - platform: modbus_controller
    modbus_controller_id: warmwasser
    id: Ueberschussleistung
    name: "Überschussleistung"
    address: 2201
    min_value: -2100
    max_value: 2800
    step: 100
    unit_of_measurement: "W"
    value_type: S_WORD

#  - platform: modbus_controller
#    modbus_controller_id: warmwasser
#    id: Ueberschussleistung_scale
#    name: "Überschussleistung Scale"
#    address: 2201
#    min_value: 0
#    max_value: 21000
#    step: 100
#    unit_of_measurement: "W"
#    value_type: U_WORD


  - platform: modbus_controller
    modbus_controller_id: warmwasser
    id: Sollwert_Antilegionellen
    name: "Sollwert für Überschussbetrieb-Betrieb"
    address: 2203
    min_value: 0
    max_value: 65
    unit_of_measurement: "°C"
    value_type: U_WORD
    multiply: 10

  - platform: modbus_controller
    modbus_controller_id: warmwasser
    id: Luefterleistung
    name: "Lüfterleistung"
    address: 2204
    min_value: 0
    max_value: 100
    unit_of_measurement: "%"
    value_type: U_WORD





button:
  - platform: restart
    name: "Restart"

  - platform: template
    name: "Update Modbus"
    id: update_modbus

    # Optional variables:
    
    on_press:
      - component.update: warmwasser

  - platform: template
    name: "Überschussleistung auf Null"
    id: Ueberschussleistung_zero

    # Optional variables:
    
    on_press:
      - number.to_min: Ueberschussleistung
      - component.update: warmwasser      

 [17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 555.00
[17:05:27][D][sensor:094]: 'Wassertemperatur Oben (Anzeige)': Sending state 55.50000 °C with 1 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 572.00
[17:05:27][D][sensor:094]: 'Istwert Sensor F1 Warmwasserspeichertemperatur Mitte': Sending state 57.20000 °C with 1 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 555.00
[17:05:27][D][sensor:094]: 'Istwert Sensor F2 Warmwasserspeichertemperatur Oben': Sending state 55.50000 °C with 1 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 177.00
[17:05:27][D][sensor:094]: 'Istwert Sensor F3 Verdampfer': Sending state 17.70000 °C with 1 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 1025.00
[17:05:27][D][sensor:094]: 'Istwert Sensor F4 Solarkollektortemperatur': Sending state 102.50000 °C with 1 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 0.00
[17:05:27][D][sensor:094]: 'Ventilatordrehzahl': Sending state 0.00000 U/min with 0 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 572.00
[17:05:27][D][sensor:094]: 'Wassertemperatur Mitte (Regel)': Sending state 57.20000 °C with 1 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 177.00
[17:05:27][D][sensor:094]: 'Verdampfertempteratur': Sending state 17.70000 °C with 1 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 1025.00
[17:05:27][D][sensor:094]: 'Solarthermie Temperatur': Sending state 102.50000 °C with 1 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: 572.00
[17:05:27][D][sensor:094]: 'Alarmtemperatur': Sending state 57.20000 °C with 1 decimals of accuracy
[17:05:27][D][modbus_controller.sensor:025]: Sensor new state: -1000.00
[17:05:27][D][sensor:094]: 'Aktuelle Überschussleistung': Sending state -1000.00000 W with 0 decimals of accuracy
[17:05:28][D][modbus_controller.sensor:025]: Sensor new state: 0.00
[17:05:28][D][sensor:094]: 'Leistung der variablen Heizung': Sending state 0.00000 % with 0 decimals of accuracy
[17:05:28][D][modbus_controller.sensor:025]: Sensor new state: -260.00
[17:05:28][D][sensor:094]: 'Totale berechnete Überschussleistung': Sending state -260.00000 W with 1 decimals of accuracy
[17:05:28][D][modbus_controller.sensor:025]: Sensor new state: 450.00
[17:05:28][D][sensor:094]: 'Aktueller Warmwassersollwert': Sending state 45.00000 °C with 1 decimals of accuracy
[17:05:28][W][component:237]: Component modbus_controller took a long time for an operation (207 ms).
[17:05:28][W][component:238]: Components should block for at most 30 ms.
[17:05:28][D][modbus.number:023]: Number new state : 45.00
[17:05:28][D][number:012]: 'Solltemperatur': Sending state 45.000000
[17:05:28][D][modbus.number:023]: Number new state : -1000.00
[17:05:28][D][number:012]: 'Überschussleistung': Sending state -1000.000000
[17:05:28][D][modbus.number:023]: Number new state : 56.00
[17:05:28][D][number:012]: 'Sollwert für Überschussbetrieb-Betrieb': Sending state 56.000000
[17:05:28][D][modbus.number:023]: Number new state : 50.00
[17:05:28][D][number:012]: 'Lüfterleistung': Sending state 50.000000

@ftpproxy
Copy link

Same for component sml:

[19:46:08][W][component:237]: Component sml took a long time for an operation (57 ms).
[19:46:08][W][component:238]: Components should block for at most 30 ms.

@AJolly
Copy link

AJolly commented May 18, 2024

same with ld2410 in engineering mode.

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

Successfully merging a pull request may close this issue.