I have built a new ESPHome based device that shows a strange behaviour and I was hoping to get my design validated:
I added a MAX31855 thermocouple sensor and an WS2813 LED strip (with 96 LEDs) to a NodeMCU ESP32 running ESPHome 1.14.3. When the lights are off, the temperature readings are normal, but when I turn on the lights, the temperature readings drop by 8-10ºC, and when I then turn on a light effect (e.g. rainbow) the temperature readings drop by about 50-150ºC.
MAX31855 configuration:
spi:
clk_pin: GPIO18
miso_pin: GPIO19
sensor:
- platform: max31855
name: "Temperature"
cs_pin: GPIO5
update_interval: 15s
filters:
- sliding_window_moving_average:
window_size: 6
send_every: 4
LED strip configuration:
light:
- platform: fastled_clockless
name: "Lights"
chipset: WS2813
pin: GPIO33
num_leds: 96
rgb_order: GRB
max_refresh_rate: 32ms
effects:
- addressable_rainbow:
name: Rainbow fast
speed: 10
Log extract:
[18:50:22][D][max31855:080]: 'Temperature': Got temperature=20.8°C
[18:50:37][D][max31855:080]: 'Temperature': Got temperature=21.0°C
[18:50:52][D][max31855:080]: 'Temperature': Got temperature=20.2°C
[18:51:07][D][max31855:080]: 'Temperature': Got temperature=21.0°C
[18:51:07][D][sensor:092]: 'Temperature': Sending state 20.15000 °C with 1 decimals of accuracy
[18:51:22][D][max31855:080]: 'Temperature': Got temperature=21.2°C
[18:51:37][D][max31855:080]: 'Temperature': Got temperature=20.8°C
[18:51:52][D][max31855:080]: 'Temperature': Got temperature=21.5°C
[18:51:59][D][light:264]: 'Lights' Setting:
[18:51:59][D][light:273]: State: ON
[18:51:59][D][light:303]: Transition Length: 1.0s
[18:52:07][D][max31855:080]: 'Temperature': Got temperature=13.8°C
[18:52:07][D][sensor:092]: 'Temperature': Sending state 19.75000 °C with 1 decimals of accuracy
[18:52:22][D][max31855:080]: 'Temperature': Got temperature=14.0°C
[18:52:37][D][max31855:080]: 'Temperature': Got temperature=13.0°C
[18:52:52][D][max31855:080]: 'Temperature': Got temperature=12.2°C
[18:53:07][D][max31855:080]: 'Temperature': Got temperature=12.8°C
[18:53:07][D][sensor:092]: 'Temperature': Sending state 14.54167 °C with 1 decimals of accuracy
[18:53:22][D][max31855:080]: 'Temperature': Got temperature=13.5°C
[18:53:37][D][max31855:080]: 'Temperature': Got temperature=14.2°C
[18:53:52][D][max31855:080]: 'Temperature': Got temperature=14.2°C
[18:54:07][D][max31855:080]: 'Temperature': Got temperature=12.8°C
[18:54:07][D][sensor:092]: 'Temperature': Sending state 13.29167 °C with 1 decimals of accuracy
[18:54:22][D][max31855:080]: 'Temperature': Got temperature=14.5°C
[18:54:37][D][max31855:080]: 'Temperature': Got temperature=12.8°C
[18:54:52][D][max31855:080]: 'Temperature': Got temperature=10.2°C
[18:55:07][D][max31855:080]: 'Temperature': Got temperature=14.5°C
[18:55:07][D][sensor:092]: 'Temperature': Sending state 13.16667 °C with 1 decimals of accuracy
[18:55:08][D][light:264]: 'Lights' Setting:
[18:55:08][D][light:326]: Effect: 'Rainbow fast'
[18:55:22][D][max31855:080]: 'Temperature': Got temperature=-25.0°C
[18:55:37][D][max31855:080]: 'Temperature': Got temperature=-35.8°C
[18:55:52][D][max31855:080]: 'Temperature': Got temperature=-26.5°C
[18:56:07][D][max31855:080]: 'Temperature': Got temperature=-28.8°C
[18:56:07][D][sensor:092]: 'Temperature': Sending state -15.20833 °C with 1 decimals of accuracy
[18:56:22][D][max31855:080]: 'Temperature': Got temperature=-31.0°C
[18:56:37][D][max31855:080]: 'Temperature': Got temperature=-24.5°C
[18:56:52][D][max31855:080]: 'Temperature': Got temperature=-33.0°C
[18:57:07][D][max31855:080]: 'Temperature': Got temperature=-21.0°C
[18:57:07][D][sensor:092]: 'Temperature': Sending state -27.45833 °C with 1 decimals of accuracy
[18:57:22][D][max31855:080]: 'Temperature': Got temperature=-26.0°C
[18:57:38][D][max31855:080]: 'Temperature': Got temperature=-34.0°C
[18:57:52][D][max31855:080]: 'Temperature': Got temperature=-25.2°C
[18:58:07][D][max31855:080]: 'Temperature': Got temperature=-29.5°C
[18:58:07][D][sensor:092]: 'Temperature': Sending state -28.12500 °C with 1 decimals of accuracy
[18:58:22][D][max31855:080]: 'Temperature': Got temperature=-8.5°C
[18:58:37][D][max31855:080]: 'Temperature': Got temperature=-35.2°C
[18:58:52][D][max31855:080]: 'Temperature': Got temperature=-34.5°C
[18:59:07][D][max31855:080]: 'Temperature': Got temperature=-33.5°C
[18:59:07][D][sensor:092]: 'Temperature': Sending state -27.75000 °C with 1 decimals of accuracy
[18:59:22][D][max31855:080]: 'Temperature': Got temperature=-26.2°C
[18:59:37][D][max31855:080]: 'Temperature': Got temperature=-30.5°C
[19:00:37][D][max31855:080]: 'Temperature': Got temperature=-11.5°C
[19:00:51][D][max31855:080]: 'Temperature': Got temperature=-29.5°C
[19:00:52][D][light:264]: 'Lights' Setting:
[19:00:52][D][light:273]: State: OFF
[19:00:52][D][light:303]: Transition Length: 1.0s
[19:00:52][D][light:309]: Effect: 'None'
[19:01:06][D][max31855:080]: 'Temperature': Got temperature=20.8°C
[19:01:07][D][sensor:092]: 'Temperature': Sending state -10.29167 °C with 1 decimals of accuracy
[19:01:22][D][max31855:080]: 'Temperature': Got temperature=20.2°C
[19:01:36][D][max31855:080]: 'Temperature': Got temperature=21.0°C
[19:01:52][D][max31855:080]: 'Temperature': Got temperature=21.2°C
[19:02:07][D][max31855:080]: 'Temperature': Got temperature=21.2°C
[19:02:07][D][sensor:092]: 'Temperature': Sending state 12.50000 °C with 1 decimals of accuracy
[19:02:22][D][max31855:080]: 'Temperature': Got temperature=21.0°C
[19:02:37][D][max31855:080]: 'Temperature': Got temperature=21.2°C
[19:02:52][D][max31855:080]: 'Temperature': Got temperature=20.2°C
[19:03:07][D][max31855:080]: 'Temperature': Got temperature=21.5°C
[19:03:07][D][sensor:092]: 'Temperature': Sending state 21.08333 °C with 1 decimals of accuracy
[19:03:22][D][max31855:080]: 'Temperature': Got temperature=21.5°C
[19:03:38][D][max31855:080]: 'Temperature': Got temperature=21.0°C
I have already noticed that changing the max_refresh_rate
value in the fastled_clockless
configuration has an impact on the effect, i.e. the smaller the value (shorter refresh rate), the higher the temperature deviation.
Have I hit the hardware limitations of the ESP? Has anyone seen a similar effect with any other sensors and resolved this issue somehow?