Blackymas / NSPanel_HA_Blueprint

This allows you to configure your complete NSPanel via Blueprint with UI and without changing anything in the code
1.41k stars 257 forks source link

Complete the modification: BME680 with NSPanel: Accurate temp, humidity, gas sensor install inside the NSPanel, worked, Nextion reported Serial Buffer overflow, want use bsec libary Bosch #2316

Open Alfons-Hetler opened 6 days ago

Alfons-Hetler commented 6 days ago

Enhancement Summary

Help for setting up BME680 Humidity/Temp and Gassensor inside NSPanel

Detailed Description

I install a BME680 Sesor inside the NS Panel for acurate Humidity and Temperature and Gas / Co2. The installation is now complete. I use the GPIO Pins 02 and 23 for i2c. I use the SCL, SDA, gnd, vcc. Vcc and gnd is clear. But SCL and SDA was a little problem. I try to use the GPIO02 and GPIO23 and at the moment it worked.

But i have a little problem after a restart from NSPanel. Then i stuck on boot screen and i must flash the panal again to worked correctly. After i flash the Nextion with blank and after with eu version it worked.

Last 3 Problems: We have a buffer overflow on Nextion Display, but this problem is maybe a bug in software. The solution for the Moment is setup the delay Time above 80ms.

If the Panel need to flash over serial flasher i think the GPIO2 Pin must desolder for that. We investigate at the moment the problem. Normaly you never use this if your Panel run normaly.

Last Thing is the original Bosch libary. This needs the Arduino Framework. But i cant use at the moment. The include bme680 libary in my code worked but i missed up 2 values. But thats a relly small problem for me.

Need help to investigate deeper and find a good solution for my upgrade project.

Thanks.

Additional Context

No response

Alfons-Hetler commented 6 days ago

Sf381a50f1a234c8689d057167bc1a0dew

Alfons-Hetler commented 6 days ago

Screenshot 2024-10-12 130919

edwardtfn commented 6 days ago

Are you using the relays in your panel?

edwardtfn commented 6 days ago

It is similar to this:

Alfons-Hetler commented 6 days ago

Are you using the relays in your panel?

yes i want to use the 2 ralais and the buzzer.

edwardtfn commented 5 days ago

Please take a look at this: https://blakadder.com/nspanel-teardown/

Alfons-Hetler commented 5 days ago

Iam ready with the modification and it worked now. I use the GPIO02 and the GPIO23 for the i2c. I soldered the resistor R32 to bridge it. Now i have a direct connection from sda (BME680) and GPIO23 (ESP32). I become values and i think it worked ok.

But now to my little problem that i dont understand. I use the last version and update the TFT (4.3.11). After i flash the panel start normaly and all ok. But if i reboot then i stuck the Panel on blue start screen on boot and dont start normaly. He stuck on the 2.nd option. Wifi is ok and i can see a "light" version on the webpage.

Only if i flash the nspanel again over ESPHome on Homeassistant it start correct.

I try to desolder the GPIO2 pin to try, but i have the same problem on start. Is that a bug in software or is this a reason of my modification?

Iam not sure because GPIO2 have option to the bootsequence. Maybe it is an software problem or settings.

I hope you can help me.

Here is my code:

captive_portal:
web_server:
  id: web_server_std
  port: 80
i2c:
  - id: "bus_a"
    sda: GPIO23
    scl: GPIO02
    scan: false
sensor:
  - platform: bme680
    update_interval: 60s
    address: 0x77
    temperature:
      name: "BME680 Temperatur"
      oversampling: 16x
      filters:
       - offset: -5.0
       - median
    pressure:
      name: "BME680 Druck"
    humidity:
      id: "humidity"
      name: "BME680 Feuchte"
    gas_resistance:
      id: "gas_resistance"
      name: "BME680 Gas Widerstand"
  - platform: template
    name: "Co2"
    id: iaq
    icon: "mdi:gauge"
    lambda: |-
      return log(id(gas_resistance).state) + 0.04 *  id(humidity).state;
    state_class: "measurement"

text_sensor:
  - platform: template
    name: "BME680 Luftqualität Einstufung"
    icon: "mdi:checkbox-marked-circle-outline"
    lambda: |-
      if (int(id(iaq).state) <= 50) {
        return {"perfekt"};
      }
      else if (int(id(iaq).state) <= 100) {
        return {"sehr gut"};
      }
      else if (int(id(iaq).state) <= 150) {
        return {"gut"};
      }
      else if (int(id(iaq).state) <= 200) {
        return {"in ordnung"};
      }
      else if (int(id(iaq).state) <= 250) {
        return {"schlecht"};
      }
      else if (int(id(iaq).state) <= 350) {
        return {"sehr schlecht"};
      }
      else if (int(id(iaq).state) <= 500) {
        return {"extreme schlecht"};
      }
      else {
        return {"unbekannt"};
      }

NSPanel_BME680_Mod_1 NSPanel_BME680_Mod_2 NSPanel_BME680_Mod

Alfons-Hetler commented 5 days ago

Please take a look at this: https://blakadder.com/nspanel-teardown/

That was my basic reading.

Alfons-Hetler commented 5 days ago

I share you my logfiles after flash. I think i have here a problem: "[17:26:23][W][nextion:446]: Nextion reported Serial Buffer overflow!"


INFO ESPHome 2024.9.2
INFO Reading configuration /config/esphome/nspanel1.yaml...
INFO Detected timezone 'Europe/Berlin'
WARNING GPIO2 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Generating C++ source...
INFO Compiling app...
Processing nspanel1 (board: esp32dev; framework: espidf; platform: platformio/espressif32@5.4.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40407.240606 (4.4.7) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Reading CMake configuration...
Dependency Graph
|-- ArduinoJson @ 6.18.5
Compiling .pioenvs/nspanel1/src/main.o
Linking .pioenvs/nspanel1/firmware.elf
RAM:   [=         ]   7.0% (used 22892 bytes from 327680 bytes)
Flash: [=======   ]  69.3% (used 1270829 bytes from 1835008 bytes)
Building .pioenvs/nspanel1/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/nspanel1/firmware.bin"], [".pioenvs/nspanel1/firmware.elf"])
Wrote 0x147de0 bytes to file /data/build/nspanel1/.pioenvs/nspanel1/firmware.factory.bin, ready to flash to offset 0x0
esp32_copy_ota_bin([".pioenvs/nspanel1/firmware.bin"], [".pioenvs/nspanel1/firmware.elf"])
========================= [SUCCESS] Took 50.98 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.178.243
INFO Uploading /data/build/nspanel1/.pioenvs/nspanel1/firmware.bin (1277408 bytes)
Uploading: [============================================================] 100% Done...

INFO Upload took 7.19 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.178.243 using esphome API
INFO Successfully connected to nspanel1 @ 192.168.178.243 in 5.230s
INFO Successful handshake with nspanel1 @ 192.168.178.243 in 0.523s
[17:26:18][I][app:100]: ESPHome version 2024.9.2 compiled on Oct 13 2024, 17:25:10
[17:26:18][I][app:102]: Project esphome.NSPanel_HA_Blueprint version 4.3.11
[17:26:18][C][wifi:600]: WiFi:
[17:26:18][C][wifi:428]:   Local MAC: XXX
[17:26:18][C][wifi:433]:   SSID: 'XXX'[redacted]
[17:26:18][C][wifi:436]:   IP Address: 192.168.178.243
[17:26:18][C][wifi:440]:   BSSID: XXX[redacted]
[17:26:18][C][wifi:441]:   Hostname: 'nspanel1'
[17:26:18][C][wifi:443]:   Signal strength: -55 dB ▂▄▆█
[17:26:18][C][wifi:447]:   Channel: 1
[17:26:18][C][wifi:448]:   Subnet: 255.255.255.0
[17:26:18][C][wifi:449]:   Gateway: 192.168.178.1
[17:26:18][C][wifi:450]:   DNS1: 192.168.178.2
[17:26:18][C][wifi:451]:   DNS2: 0.0.0.0
[17:26:18][C][logger:185]: Logger:
[17:26:18][C][logger:186]:   Level: DEBUG
[17:26:18][C][logger:188]:   Log Baud Rate: 0
[17:26:18][C][logger:189]:   Hardware UART: UART0
[17:26:18][C][i2c.idf:075]: I2C Bus:
[17:26:18][C][i2c.idf:076]:   SDA Pin: GPIO23
[17:26:18][C][i2c.idf:077]:   SCL Pin: GPIO2
[17:26:18][C][i2c.idf:078]:   Frequency: 50000 Hz
[17:26:18][C][i2c.idf:084]:   Recovery: bus successfully recovered
[17:26:18][C][uart.idf:159]: UART Bus 0:
[17:26:18][C][uart.idf:160]:   TX Pin: GPIO16
[17:26:18][C][uart.idf:161]:   RX Pin: GPIO17
[17:26:18][C][uart.idf:163]:   RX Buffer Size: 256
[17:26:18][C][uart.idf:165]:   Baud Rate: 115200 baud
[17:26:18][C][uart.idf:166]:   Data Bits: 8
[17:26:18][C][uart.idf:167]:   Parity: NONE
[17:26:18][C][uart.idf:168]:   Stop bits: 1
[17:26:18][C][ledc.output:180]: LEDC Output:
[17:26:18][C][ledc.output:181]:   Pin GPIO21
[17:26:18][C][ledc.output:182]:   LEDC Channel: 0
[17:26:18][C][ledc.output:183]:   PWM Frequency: 1000.0 Hz
[17:26:18][C][ledc.output:184]:   Phase angle: 0.0°
[17:26:18][C][ledc.output:185]:   Bit depth: 16
[17:26:18][C][template.binary_sensor:028]: Template Binary Sensor 'Nextion display'
[17:26:18][C][template.binary_sensor:028]:   Device Class: 'connectivity'
[17:26:18][C][template.number:050]: Template Number 'Display Brightness'
[17:26:18][C][template.number:050]:   Unit of Measurement: '%'
[17:26:18][C][template.number:051]:   Optimistic: YES
[17:26:18][C][template.number:052]:   Update Interval: 60.0s
[17:26:18][C][template.number:050]: Template Number 'Display Brightness Dimdown'
[17:26:18][C][template.number:050]:   Unit of Measurement: '%'
[17:26:18][C][template.number:051]:   Optimistic: YES
[17:26:18][C][template.number:052]:   Update Interval: 60.0s
[17:26:18][C][template.number:050]: Template Number 'Display Brightness Sleep'
[17:26:18][C][template.number:050]:   Unit of Measurement: '%'
[17:26:18][C][template.number:051]:   Optimistic: YES
[17:26:18][C][template.number:052]:   Update Interval: 60.0s
[17:26:18][C][template.number:050]: Template Number 'Temperature Correction'
[17:26:18][C][template.number:050]:   Unit of Measurement: '°C'
[17:26:18][C][template.number:051]:   Optimistic: YES
[17:26:18][C][template.number:052]:   Update Interval: 60.0s
[17:26:18][C][template.number:050]: Template Number 'Timeout Page'
[17:26:18][C][template.number:050]:   Icon: 'mdi:timer'
[17:26:18][C][template.number:050]:   Unit of Measurement: 's'
[17:26:18][C][template.number:051]:   Optimistic: YES
[17:26:18][C][template.number:052]:   Update Interval: 60.0s
[17:26:18][C][template.number:050]: Template Number 'Timeout Dimming'
[17:26:18][C][template.number:050]:   Icon: 'mdi:timer'
[17:26:18][C][template.number:050]:   Unit of Measurement: 's'
[17:26:18][C][template.number:051]:   Optimistic: YES
[17:26:18][C][template.number:052]:   Update Interval: 60.0s
[17:26:18][C][template.number:050]: Template Number 'Timeout Sleep'
[17:26:18][C][template.number:050]:   Icon: 'mdi:timer'
[17:26:18][C][template.number:050]:   Unit of Measurement: 's'
[17:26:18][C][template.number:051]:   Optimistic: YES
[17:26:18][C][template.number:052]:   Update Interval: 60.0s
[17:26:19][C][template.select:065]: Template Select 'Baud rate'
[17:26:19][C][template.select:065]:   Icon: 'mdi:swap-horizontal'
[17:26:19][C][template.select:066]:   Update Interval: 60.0s
[17:26:19][C][template.select:069]:   Optimistic: YES
[17:26:19][C][template.select:065]: Template Select 'Wake-up page'
[17:26:19][C][template.select:065]:   Icon: 'mdi:page-next-outline'
[17:26:19][C][template.select:066]:   Update Interval: 60.0s
[17:26:19][C][template.select:069]:   Optimistic: YES
[17:26:19][C][template.select:070]:   Initial Option: home
[17:26:19][C][template.select:071]:   Restore Value: YES
[17:26:19][C][template.select:065]: Template Select 'Update TFT display - Model'
[17:26:19][C][template.select:065]:   Icon: 'mdi:file-sync'
[17:26:19][C][template.select:066]:   Update Interval: 60.0s
[17:26:19][C][template.select:069]:   Optimistic: YES
[17:26:19][C][template.select:070]:   Initial Option: NSPanel EU
[17:26:19][C][template.select:071]:   Restore Value: YES
[17:26:19][C][template.select:065]: Template Select 'Update TFT display - Baud rate'
[17:26:19][C][template.select:065]:   Icon: 'mdi:swap-horizontal'
[17:26:19][C][template.select:066]:   Update Interval: 60.0s
[17:26:19][C][template.sensor:022]:   Unit of Measurement: ''
[17:26:19][C][template.sensor:022]:   Accuracy Decimals: 1
[17:26:19][C][template.sensor:022]:   Icon: 'mdi:gauge'
[17:26:19][C][template.sensor:023]:   Update Interval: 60.0s
[17:26:19][C][switch.gpio:068]: GPIO Switch 'Nextion display - Power'
[17:26:19][C][switch.gpio:091]:   Restore Mode: always ON
[17:26:19][C][switch.gpio:031]:   Pin: GPIO4
[17:26:19][C][template.text_sensor:020]: Template Sensor 'Device Name'
[17:26:19][C][template.text_sensor:020]:   Icon: 'mdi:identifier'
[17:26:19][C][template.text_sensor:020]: Template Sensor 'Detailed Entity'
[17:26:19][C][template.text_sensor:020]:   Icon: 'mdi:tablet-dashboard'
[17:26:19][C][template.text_sensor:020]: Template Sensor 'Notification Label'
[17:26:19][C][template.text_sensor:020]: Template Sensor 'Notification Text'
[17:26:19][C][template.text_sensor:020]: Template Sensor 'Version Blueprint'
[17:26:19][C][template.text_sensor:020]:   Icon: 'mdi:tag-text-outline'
[17:26:19][C][template.sensor:022]: Template Sensor 'Blueprint'
[17:26:19][C][template.sensor:022]:   State Class: ''
[17:26:19][C][template.sensor:022]:   Unit of Measurement: '%'
[17:26:19][C][template.sensor:022]:   Accuracy Decimals: 1
[17:26:19][C][template.sensor:022]:   Icon: 'mdi:link-variant'
[17:26:19][C][template.sensor:023]:   Update Interval: 60.0s
[17:26:19][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Left Button'
[17:26:19][C][gpio.binary_sensor:016]:   Pin: GPIO14
[17:26:19][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Right Button'
[17:26:19][C][gpio.binary_sensor:016]:   Pin: GPIO27
[17:26:19][C][switch.gpio:068]: GPIO Switch 'Relay 1'
[17:26:19][C][switch.gpio:091]:   Restore Mode: restore defaults to OFF
[17:26:19][C][switch.gpio:031]:   Pin: GPIO22
[17:26:19][C][switch.gpio:068]: GPIO Switch 'Relay 2'
[17:26:19][C][switch.gpio:091]:   Restore Mode: restore defaults to OFF
[17:26:19][C][switch.gpio:031]:   Pin: GPIO19
[17:26:20][C][template.switch:068]: Template Switch 'Notification unread'
[17:26:20][C][template.switch:091]:   Restore Mode: always OFF
[17:26:20][C][template.switch:057]:   Optimistic: YES
[17:26:20][C][template.switch:068]: Template Switch 'Notification sound'
[17:26:20][C][template.switch:091]:   Restore Mode: restore defaults to OFF
[17:26:20][C][template.switch:057]:   Optimistic: YES
[17:26:20][C][template.switch:068]: Template Switch 'Relay 0 (dummy)'
[17:26:20][C][template.switch:091]:   Restore Mode: always OFF
[17:26:20][C][template.switch:057]:   Optimistic: YES
[17:26:20][C][psram:020]: PSRAM:
[17:26:20][C][psram:021]:   Available: YES
[17:26:20][C][psram:024]:   Size: 2036 KB
[17:26:20][C][rtttl:029]: Rtttl
[17:26:20][C][nextion:128]: Nextion:
[17:26:20][C][nextion:129]:   Device Model:     NX4832F035_011C
[17:26:20][C][nextion:130]:   Firmware Version: 72
[17:26:20][C][nextion:131]:   Serial Number:    1A663401D925D360
[17:26:20][C][nextion:132]:   Flash Size:       16777216
[17:26:20][C][nextion:133]:   Wake On Touch:    YES
[17:26:20][C][nextion:134]:   Exit reparse:     YES
[17:26:20][C][factory_reset.button:011]: Factory Reset Button 'Factory reset'
[17:26:20][C][factory_reset.button:011]:   Icon: 'mdi:restart-alert'
[17:26:20][C][restart.button:017]: Restart Button 'Restart'
[17:26:20][C][restart.button:017]:   Icon: 'mdi:restart'
[17:26:20][C][bme680.sensor:215]: BME680:
[17:26:20][C][bme680.sensor:216]:   Address: 0x77
[17:26:20][C][bme680.sensor:220]:   IIR Filter: OFF
[17:26:20][C][bme680.sensor:221]:   Update Interval: 60.0s
[17:26:20][C][bme680.sensor:223]:   Temperature 'BME680 Temperatur'
[17:26:20][C][bme680.sensor:223]:     Device Class: 'temperature'
[17:26:20][C][bme680.sensor:223]:     State Class: 'measurement'
[17:26:20][C][bme680.sensor:223]:     Unit of Measurement: '°C'
[17:26:20][C][bme680.sensor:223]:     Accuracy Decimals: 1
[17:26:20][C][bme680.sensor:224]:     Oversampling: 8x
[17:26:20][C][bme680.sensor:225]:   Pressure 'BME680 Druck'
[17:26:20][C][bme680.sensor:225]:     Device Class: 'pressure'
[17:26:20][C][bme680.sensor:225]:     State Class: 'measurement'
[17:26:20][C][bme680.sensor:225]:     Unit of Measurement: 'hPa'
[17:26:20][C][bme680.sensor:225]:     Accuracy Decimals: 1
[17:26:20][C][bme680.sensor:226]:     Oversampling: 4x
[17:26:20][C][bme680.sensor:227]:   Humidity 'BME680 Feuchte'
[17:26:20][C][bme680.sensor:227]:     Device Class: 'humidity'
[17:26:20][C][thermostat.climate:1322]:     Minimum Run Time: 300s
[17:26:20][C][thermostat.climate:1337]:   Minimum Idle Time: 30s
[17:26:20][C][thermostat.climate:1338]:   Supports AUTO: NO
[17:26:20][C][thermostat.climate:1339]:   Supports HEAT/COOL: NO
[17:26:20][C][thermostat.climate:1340]:   Supports COOL: NO
[17:26:20][C][thermostat.climate:1341]:   Supports DRY: NO
[17:26:20][C][thermostat.climate:1342]:   Supports FAN_ONLY: NO
[17:26:20][C][thermostat.climate:1344]:   Supports FAN_ONLY_ACTION_USES_FAN_MODE_TIMER: NO
[17:26:20][C][thermostat.climate:1345]:   Supports FAN_ONLY_COOLING: NO
[17:26:20][C][thermostat.climate:1350]:   Supports FAN_WITH_HEATING: NO
[17:26:20][C][thermostat.climate:1352]:   Supports HEAT: YES
[17:26:20][C][thermostat.climate:1353]:   Supports FAN MODE ON: NO
[17:26:20][C][thermostat.climate:1354]:   Supports FAN MODE OFF: NO
[17:26:20][C][thermostat.climate:1355]:   Supports FAN MODE AUTO: NO
[17:26:20][C][thermostat.climate:1356]:   Supports FAN MODE LOW: NO
[17:26:20][C][thermostat.climate:1357]:   Supports FAN MODE MEDIUM: NO
[17:26:20][C][thermostat.climate:1358]:   Supports FAN MODE HIGH: NO
[17:26:20][C][thermostat.climate:1359]:   Supports FAN MODE MIDDLE: NO
[17:26:20][C][thermostat.climate:1360]:   Supports FAN MODE FOCUS: NO
[17:26:20][C][thermostat.climate:1361]:   Supports FAN MODE DIFFUSE: NO
[17:26:20][C][homeassistant.time:011]:   Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
[17:26:21][C][captive_portal:089]: Captive Portal:
[17:26:21][C][web_server:145]: Web Server:
[17:26:21][C][web_server:146]:   Address: nspanel1.local:80
[17:26:21][C][mdns:116]: mDNS:
[17:26:21][C][mdns:117]:   Hostname: nspanel1
[17:26:21][C][esphome.ota:073]: Over-The-Air updates:
[17:26:21][C][esphome.ota:074]:   Address: nspanel1.local:3232
[17:26:21][C][esphome.ota:075]:   Version: 2
[17:26:21][C][esphome.ota:078]:   Password configured
[17:26:21][C][safe_mode:018]: Safe Mode:
[17:26:21][C][safe_mode:020]:   Boot considered successful after 60 seconds
[17:26:21][C][safe_mode:021]:   Invoke after 3 boot attempts
[17:26:21][C][safe_mode:023]:   Remain in safe mode for 180 seconds
[17:26:21][C][api:139]: API Server:
[17:26:21][C][api:140]:   Address: nspanel1.local:6053
[17:26:21][C][api:144]:   Using noise encryption: NO
[17:26:21][C][mqtt:145]: MQTT:
[17:26:21][C][mqtt:147]:   Server Address: 192.168.178.10:1883 (192.168.178.10)
[17:26:21][C][mqtt:148]:   Username: 'XXX'[redacted]
[17:26:21][C][mqtt:149]:   Client ID: 'nspanel1'[redacted]
[17:26:21][C][mqtt:151]:   Discovery IP enabled
[17:26:21][C][mqtt:154]:   Discovery prefix: 'homeassistant'
[17:26:21][C][mqtt:155]:   Discovery retain: YES
[17:26:21][C][mqtt:157]:   Topic Prefix: 'esphome'
[17:26:21][C][mqtt:159]:   Log Topic: 'esphome/debug'
[17:26:21][C][mqtt:162]:   Availability: 'esphome/status'
[17:26:21][C][wifi_signal.sensor:010]: WiFi Signal 'RSSI'
[17:26:21][C][wifi_signal.sensor:010]:   Device Class: 'signal_strength'
[17:26:21][C][wifi_signal.sensor:010]:   State Class: 'measurement'
[17:26:21][C][wifi_signal.sensor:010]:   Unit of Measurement: 'dBm'
[17:26:21][C][wifi_signal.sensor:010]:   Accuracy Decimals: 0
[17:26:21][C][wifi_signal.sensor:010]:   Icon: 'mdi:wifi'
[17:26:21][C][mqtt.binary_sensor:022]: MQTT Binary Sensor 'Nextion display':
[17:26:21][C][mqtt.binary_sensor:023]:   State Topic: 'esphome/binary_sensor/nextion_display/state'
[17:26:21][C][mqtt.button:029]: MQTT Button 'Factory reset': 
[17:26:21][C][mqtt.button:030]:   State Topic: 'esphome/button/factory_reset/state'
[17:26:21][C][mqtt.button:030]:   Command Topic: 'esphome/button/factory_reset/command'
[17:26:21][C][mqtt.button:029]: MQTT Button 'Restart': 
[17:26:21][C][mqtt.button:030]:   State Topic: 'esphome/button/restart/state'
[17:26:21][C][mqtt.button:030]:   Command Topic: 'esphome/button/restart/command'
[17:26:21][C][mqtt.button:029]: MQTT Button 'Update TFT display': 
[17:26:21][C][mqtt.button:030]:   State Topic: 'esphome/button/update_tft_display/state'
[17:26:21][C][mqtt.button:030]:   Command Topic: 'esphome/button/update_tft_display/command'
[17:26:21][C][mqtt.number:033]: MQTT Number 'Display Brightness':
[17:26:21][C][mqtt.number:034]:   State Topic: 'esphome/number/display_brightness/state'
[17:26:21][C][mqtt.number:033]: MQTT Number 'Display Brightness Dimdown':
[17:26:21][C][mqtt.number:034]:   State Topic: 'esphome/number/display_brightness_dimdown/state'
[17:26:21][C][mqtt.number:033]: MQTT Number 'Display Brightness Sleep':
[17:26:21][C][mqtt.number:034]:   State Topic: 'esphome/number/display_brightness_sleep/state'
[17:26:21][D][sensor:094]: 'ntc_source': Sending state 1.64250 V with 2 decimals of accuracy
[17:26:21][D][resistance:039]: 'resistance_sensor' - Resistance 11098.6Ω
[17:26:21][D][sensor:094]: 'resistance_sensor': Sending state 11098.64160 Ω with 1 decimals of accuracy
[17:26:21][D][ntc:026]: 'Temperature' - Temperature: 22.7°C
[17:26:21][D][sensor:094]: 'Temperature': Sending state 22.67248 °C with 1 decimals of accuracy
[17:26:21][D][climate:396]: 'Thermostat' - Sending state:
[17:26:21][D][climate:399]:   Mode: OFF
[17:26:21][D][climate:401]:   Action: OFF
[17:26:21][D][climate:419]:   Current Temperature: 22.67°C
[17:26:21][D][climate:425]:   Target Temperature: 18.00°C
[17:26:21][W][component:237]: Component adc.sensor took a long time for an operation (54 ms).
[17:26:21][W][component:238]: Components should block for at most 30 ms.
[17:26:21][C][mqtt.number:033]: MQTT Number 'Temperature Correction':
[17:26:21][C][mqtt.number:034]:   State Topic: 'esphome/number/temperature_correction/state'
[17:26:21][C][mqtt.number:033]: MQTT Number 'Timeout Page':
[17:26:21][C][mqtt.number:034]:   State Topic: 'esphome/number/timeout_page/state'
[17:26:21][C][mqtt.number:033]: MQTT Number 'Timeout Dimming':
[17:26:21][C][mqtt.number:033]: MQTT Number 'Timeout Sleep':
[17:26:21][C][mqtt.number:034]:   State Topic: 'esphome/number/timeout_sleep/state'
[17:26:21][C][mqtt.select:028]: MQTT Select 'Baud rate':
[17:26:21][C][mqtt.select:029]:   State Topic: 'esphome/select/baud_rate/state'
[17:26:21][C][mqtt.select:028]: MQTT Select 'Wake-up page':
[17:26:21][C][mqtt.select:029]:   State Topic: 'esphome/select/wake-up_page/state'
[17:26:21][C][mqtt.select:028]: MQTT Select 'Update TFT display - Model':
[17:26:21][C][mqtt.select:029]:   State Topic: 'esphome/select/update_tft_display_-_model/state'
[17:26:21][C][mqtt.select:028]: MQTT Select 'Update TFT display - Baud rate':
[17:26:21][C][mqtt.select:029]:   State Topic: 'esphome/select/update_tft_display_-_baud_rate/state'
[17:26:21][C][mqtt.sensor:028]: MQTT Sensor 'Temperature':
[17:26:21][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/temperature/state'
[17:26:21][C][mqtt.sensor:028]: MQTT Sensor 'Display Current brightness':
[17:26:21][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/display_current_brightness/state'
[17:26:21][C][mqtt.sensor:028]: MQTT Sensor 'RSSI':
[17:26:21][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/rssi/state'
[17:26:21][C][mqtt.sensor:028]: MQTT Sensor 'BME680 Temperatur':
[17:26:21][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/bme680_temperatur/state'
[17:26:21][C][mqtt.sensor:028]: MQTT Sensor 'BME680 Druck':
[17:26:21][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/bme680_druck/state'
[17:26:21][C][mqtt.sensor:028]: MQTT Sensor 'BME680 Feuchte':
[17:26:21][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/bme680_feuchte/state'
[17:26:21][C][mqtt.sensor:028]: MQTT Sensor 'BME680 Gas Widerstand':
[17:26:21][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/bme680_gas_widerstand/state'
[17:26:21][C][mqtt.sensor:028]: MQTT Sensor 'Co2':
[17:26:22][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/co2/state'
[17:26:22][C][mqtt.text_sensor:027]: MQTT Text Sensor 'Device Name':
[17:26:22][C][mqtt.text_sensor:028]:   State Topic: 'esphome/sensor/device_name/state'
[17:26:22][C][mqtt.text_sensor:027]: MQTT Text Sensor 'Detailed Entity':
[17:26:22][C][mqtt.text_sensor:028]:   State Topic: 'esphome/sensor/detailed_entity/state'
[17:26:22][C][mqtt.text_sensor:027]: MQTT Text Sensor 'Notification Label':
[17:26:22][C][mqtt.text_sensor:028]:   State Topic: 'esphome/sensor/notification_label/state'
[17:26:22][C][mqtt.text_sensor:027]: MQTT Text Sensor 'Notification Text':
[17:26:22][C][mqtt.text_sensor:028]:   State Topic: 'esphome/sensor/notification_text/state'
[17:26:22][C][mqtt.text_sensor:027]: MQTT Text Sensor 'Version Blueprint':
[17:26:22][C][mqtt.text_sensor:028]:   State Topic: 'esphome/sensor/version_blueprint/state'
[17:26:22][C][mqtt.text_sensor:027]: MQTT Text Sensor 'Version ESPHome':
[17:26:22][C][mqtt.text_sensor:028]:   State Topic: 'esphome/sensor/version_esphome/state'
[17:26:22][C][mqtt.text_sensor:027]: MQTT Text Sensor 'Version TFT':
[17:26:22][C][mqtt.text_sensor:028]:   State Topic: 'esphome/sensor/version_tft/state'
[17:26:22][C][mqtt.text_sensor:027]: MQTT Text Sensor 'BME680 Luftqualität Einstufung':
[17:26:22][C][mqtt.text_sensor:028]:   State Topic: 'esphome/sensor/bme680_luftqualit__t_einstufung/state'
[17:26:22][C][mqtt.button:029]: MQTT Button 'Nextion display - Power cycle': 
[17:26:22][C][mqtt.button:030]:   State Topic: 'esphome/button/nextion_display_-_power_cycle/state'
[17:26:22][C][mqtt.button:030]:   Command Topic: 'esphome/button/nextion_display_-_power_cycle/command'
[17:26:22][C][mqtt.sensor:028]: MQTT Sensor 'Blueprint':
[17:26:22][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/blueprint/state'
[17:26:22][C][mqtt.sensor:028]: MQTT Sensor 'Display charset':
[17:26:22][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/display_charset/state'
[17:26:22][C][mqtt.binary_sensor:022]: MQTT Binary Sensor 'Left Button':
[17:26:22][C][mqtt.binary_sensor:023]:   State Topic: 'esphome/binary_sensor/left_button/state'
[17:26:22][C][mqtt.binary_sensor:022]: MQTT Binary Sensor 'Right Button':
[17:26:22][C][mqtt.binary_sensor:023]:   State Topic: 'esphome/binary_sensor/right_button/state'
[17:26:22][C][mqtt.sensor:028]: MQTT Sensor 'Display mode':
[17:26:22][C][mqtt.sensor:032]:   State Topic: 'esphome/sensor/display_mode/state'
[17:26:22][C][mqtt.switch:041]: MQTT Switch 'Relay 1': 
[17:26:22][C][mqtt.switch:042]:   State Topic: 'esphome/switch/relay_1/state'
[17:26:22][C][mqtt.switch:042]:   Command Topic: 'esphome/switch/relay_1/command'
[17:26:22][C][mqtt.switch:041]: MQTT Switch 'Relay 2': 
[17:26:22][C][mqtt.switch:042]:   State Topic: 'esphome/switch/relay_2/state'
[17:26:22][C][mqtt.switch:042]:   Command Topic: 'esphome/switch/relay_2/command'
[17:26:22][C][mqtt.text_sensor:027]: MQTT Text Sensor 'Current Page':
[17:26:22][C][mqtt.text_sensor:028]:   State Topic: 'esphome/sensor/current_page/state'
[17:26:23][D][script:077]: Script 'timer_dim' restarting (mode: restart)
[17:26:23][D][script.boot_progress:2098]: Progress: 25%
[17:26:23][D][script.boot_log:2048]: Sending display settings
[17:26:23][D][script:077]: Script 'timer_dim' restarting (mode: restart)
[17:26:23][D][script.boot_progress:2098]: Progress: 30%
[17:26:23][D][script.boot_log:2048]: Publish Nextion state
[17:26:23][D][script:077]: Script 'timer_dim' restarting (mode: restart)
[17:26:23][D][script.boot_progress:2098]: Progress: 35%
[17:26:23][D][script.boot_log:2048]: Set Home page elements
[17:26:23][D][script:077]: Script 'timer_dim' restarting (mode: restart)
[17:26:23][D][script.boot_progress:2098]: Progress: 40%
[17:26:23][D][script.boot_log:2048]: Wait to finish
[17:26:23][W][component:237]: Component script took a long time for an operation (108 ms).
[17:26:23][W][component:238]: Components should block for at most 30 ms.
[17:26:23][D][script.boot_log:2048]: init_page_home
[17:26:23][D][sensor:094]: 'Blueprint': Sending state 3.22581 % with 1 decimals of accuracy
[17:26:23][W][component:237]: Component api took a long time for an operation (86 ms).
[17:26:23][W][component:238]: Components should block for at most 30 ms.
[17:26:23][W][nextion:446]: Nextion reported Serial Buffer overflow!
[17:26:23][W][nextion:446]: Nextion reported Serial Buffer overflow!
[17:26:23][D][sensor:094]: 'Blueprint': Sending state 9.67742 % with 1 decimals of accuracy
[17:26:23][D][script.boot_log:2048]: init_page_settings
[17:26:23][D][sensor:094]: 'Blueprint': Sending state 22.58064 % with 1 decimals of accuracy
[17:26:23][D][script.boot_log:2048]: init_hardware
[17:26:23][D][sensor:094]: 'Blueprint': Sending state 48.38710 % with 1 decimals of accuracy
[17:26:24][D][script.boot_log:2048]: init_global
[17:26:24][D][script.boot_log:2048]: Global settings
[17:26:24][D][text_sensor:064]: 'Version Blueprint': Sending state '4.3.11'
[17:26:24][D][script:077]: Script 'check_versions' restarting (mode: restart)
[17:26:24][D][script.check_versions:2131]: Versions:
[17:26:24][D][script.check_versions:2132]:   TFT:       4.3.11
[17:26:24][D][script.check_versions:2133]:   ESPHome:   4.3.11
[17:26:24][D][script.check_versions:2136]:   Blueprint: 4.3.11
[17:26:24][D][script.check_versions:2131]: Versions:
[17:26:24][D][script.check_versions:2132]:   TFT:       4.3.11
[17:26:24][D][script.check_versions:2133]:   ESPHome:   4.3.11
[17:26:24][D][script.check_versions:2136]:   Blueprint: 4.3.11
[17:26:24][D][sensor:094]: 'Blueprint': Sending state 100.00000 % with 1 decimals of accuracy
[17:26:24][W][component:237]: Component api took a long time for an operation (87 ms).
[17:26:24][W][component:238]: Components should block for at most 30 ms.
[17:26:24][W][nextion:446]: Nextion reported Serial Buffer overflow!
[17:26:24][D][script:077]: Script 'timer_dim' restarting (mode: restart)
[17:26:24][D][script.boot_progress:2098]: Progress: 95%
[17:26:28][C][nspanel_ha_blueprint:2224]: Wi-Fi:         Good (-54 dBm)
[17:26:28][C][nspanel_ha_blueprint:2235]: API:           Connected
[17:26:28][C][nspanel_ha_blueprint:2243]: Blueprint:
[17:26:28][C][nspanel_ha_blueprint:2245]:   Version:     4.3.11
[17:26:28][C][nspanel_ha_blueprint:2246]:   Init steps:  62 (100.0%)
[17:26:28][C][nspanel_ha_blueprint:2255]: ESPHome:
[17:26:28][C][nspanel_ha_blueprint:2256]:   Version:     4.3.11
[17:26:28][C][nspanel_ha_blueprint:2257]:   Compiler:    2024.9.2
[17:26:28][C][nspanel_ha_blueprint:2262]:   Framework:   ESP-IDF
[17:26:28][C][nspanel_ha_blueprint:2267]:   Free heap:
[17:26:28][C][nspanel_ha_blueprint:2271]:     Internal:   164440 bytes (47.0%)
[17:26:28][C][nspanel_ha_blueprint:2281]:     PSRAM:     2014335 bytes (96.6%)
[17:26:28][C][nspanel_ha_blueprint:2288]: UART:
[17:26:28][C][nspanel_ha_blueprint:2289]:   Baud rate:   115200 bps
[17:26:28][C][nspanel_ha_blueprint:2290]:   Queue size:  0
[17:26:28][C][nspanel_ha_blueprint:2294]: Nextion:
[17:26:28][C][nspanel_ha_blueprint:2295]:   Queue size:  21
[17:26:28][C][nspanel_ha_blueprint:2297]:   Is setup:    True
[17:26:28][C][nspanel_ha_blueprint:2304]:   Init:        True
[17:26:28][C][nspanel_ha_blueprint:2310]:   TFT:         4.3.11
[17:26:28][C][nspanel_ha_blueprint:2311]: Packages:
[17:26:28][C][nspanel_ha_blueprint:2313]:   - Core
[17:26:28][C][nspanel_ha_blueprint:2322]:   - Upload TFT
[17:26:28][C][nspanel_ha_blueprint:2325]:   - Climate - Base
[17:26:28][C][nspanel_ha_blueprint:2334]:   - Climate - Heat
[17:26:28][C][nspanel_ha_blueprint:2343]: Components:
[17:26:28][C][nspanel_ha_blueprint:2354]:   - Captive portal
[17:26:28][C][nspanel_ha_blueprint:2360]:   - Web server
[17:26:28][C][nspanel_ha_blueprint:097]: Add-on Upload TFT:
[17:26:28][C][nspanel_ha_blueprint:098]:   File model: NSPanel EU
[17:26:28][C][nspanel_ha_blueprint:099]:   Valid TFT:  YES
[17:26:28][C][nspanel_ha_blueprint:133]: Add-on climate:
[17:26:28][C][nspanel_ha_blueprint:142]:   Heat:  Enabled
[17:26:28][E][nspanel_ha_blueprint:146]:   Relay: 0
[17:26:28][W][component:237]: Component script took a long time for an operation (132 ms).
[17:26:28][W][component:238]: Components should block for at most 30 ms.
[17:26:29][D][script:077]: Script 'timer_dim' restarting (mode: restart)
[17:26:29][D][script.boot_progress:2094]: Progress: Completed
[17:26:30][D][script.boot_log:2048]: Jump to wake-up page
[17:26:30][D][script.page_boot:2606]: Jump to wake-up page: home
[17:26:30][E][nextion:561]: ERROR: Received numeric return but next in queue "set_component_text" is not a valid sensor type 0
[17:26:30][D][text_sensor:064]: 'Current Page': Sending state 'home'
[17:26:30][D][script.page_changed:2644]: New page: home
[17:26:30][D][text_sensor:064]: 'Detailed Entity': Sending state ''
[17:26:30][D][script:077]: Script 'timer_dim' restarting (mode: restart)
[17:26:30][D][nextion_textsensor:014]: Processed text_sensor "current_page" state "home"
[17:26:30][W][component:237]: Component display took a long time for an operation (51 ms).
[17:26:30][W][component:238]: Components should block for at most 30 ms.
[17:26:31][D][sensor:094]: 'ntc_source': Sending state 1.64500 V with 2 decimals of accuracy
[17:26:31][D][resistance:039]: 'resistance_sensor' - Resistance 11132.3Ω
[17:26:31][D][sensor:094]: 'resistance_sensor': Sending state 11132.32617 Ω with 1 decimals of accuracy
[17:26:31][D][ntc:026]: 'Temperature' - Temperature: 22.6°C
[17:26:31][D][sensor:094]: 'Temperature': Sending state 22.60535 °C with 1 decimals of accuracy
[17:26:31][D][climate:396]: 'Thermostat' - Sending state:
[17:26:31][D][climate:399]:   Mode: OFF
[17:26:31][D][climate:401]:   Action: OFF
[17:26:31][D][climate:419]:   Current Temperature: 22.61°C
[17:26:31][D][climate:425]:   Target Temperature: 18.00°C
[17:26:31][W][component:237]: Component adc.sensor took a long time for an operation (77 ms).
[17:26:31][W][component:238]: Components should block for at most 30 ms.
[17:26:41][D][sensor:094]: 'ntc_source': Sending state 1.64625 V with 2 decimals of accuracy
[17:26:41][D][resistance:039]: 'resistance_sensor' - Resistance 11149.2Ω
[17:26:41][D][sensor:094]: 'resistance_sensor': Sending state 11149.20703 Ω with 1 decimals of accuracy
[17:26:41][D][ntc:026]: 'Temperature' - Temperature: 22.6°C
[17:26:41][D][sensor:094]: 'Temperature': Sending state 22.57180 °C with 1 decimals of accuracy
[17:26:41][D][climate:396]: 'Thermostat' - Sending state:
[17:26:41][D][climate:399]:   Mode: OFF
[17:26:41][D][climate:401]:   Action: OFF
[17:26:41][D][climate:419]:   Current Temperature: 22.57°C
[17:26:41][D][climate:425]:   Target Temperature: 18.00°C
[17:26:41][W][component:237]: Component adc.sensor took a long time for an operation (71 ms).
[17:26:41][W][component:238]: Components should block for at most 30 ms.
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_font_color"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "send_command_printf"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_text"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_font_color"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "send_command_printf"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "fill_area"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "fill_area"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "fill_area"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "fill_area"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_text"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_text"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_text"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "send_command_printf"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_font_color"
[17:26:41][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_text"
[17:26:41][W][component:237]: Component display took a long time for an operation (53 ms).
[17:26:41][W][component:238]: Components should block for at most 30 ms.
[17:26:46][D][esp32.preferences:114]: Saving 1 preferences to flash...
[17:26:46][D][esp32.preferences:143]: Saving 1 preferences to flash: 1 cached, 0 written, 0 failed
[17:26:46][D][text_sensor:064]: 'BME680 Luftqualität Einstufung': Sending state 'unbekannt'
[17:26:48][D][bme680.sensor:333]: Got temperature=26.6°C pressure=1012.5hPa humidity=65.4% gas_resistance=10999.2Ω
[17:26:48][D][sensor:094]: 'BME680 Druck': Sending state 1012.48248 hPa with 1 decimals of accuracy
[17:26:48][D][sensor:094]: 'BME680 Feuchte': Sending state 65.41558 % with 1 decimals of accuracy
[17:26:48][D][sensor:094]: 'BME680 Gas Widerstand': Sending state 10999.15332 Ω with 1 decimals of accuracy
[17:26:49][D][text_sensor:064]: 'Device Name': Sending state 'nspanel1'
[17:26:51][D][sensor:094]: 'ntc_source': Sending state 1.64720 V with 2 decimals of accuracy
[17:26:51][D][resistance:039]: 'resistance_sensor' - Resistance 11162.1Ω
[17:26:51][D][sensor:094]: 'resistance_sensor': Sending state 11162.05273 Ω with 1 decimals of accuracy
[17:26:51][D][ntc:026]: 'Temperature' - Temperature: 22.5°C
[17:26:51][D][sensor:094]: 'Temperature': Sending state 22.54631 °C with 1 decimals of accuracy
[17:26:51][D][climate:396]: 'Thermostat' - Sending state:
[17:26:51][D][climate:399]:   Mode: OFF
[17:26:51][D][climate:401]:   Action: OFF
[17:26:51][D][climate:419]:   Current Temperature: 22.55°C
[17:26:51][D][climate:425]:   Target Temperature: 18.00°C
[17:26:51][W][component:237]: Component adc.sensor took a long time for an operation (79 ms).
[17:26:51][W][component:238]: Components should block for at most 30 ms.
[17:27:00][D][sensor:094]: 'RSSI': Sending state -56.00000 dBm with 0 decimals of accuracy
[17:27:00][E][nextion:561]: ERROR: Received numeric return but next in queue "set_component_text" is not a valid sensor type 0
[17:27:00][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_text"
[17:27:00][D][nextion:781]: Removing old queue type "NO_RESULT" name "send_command_printf"
[17:27:00][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_font_color"
[17:27:00][D][nextion:781]: Removing old queue type "NO_RESULT" name "set_component_text"
[17:27:01][D][sensor:094]: 'ntc_source': Sending state 1.64767 V with 2 decimals of accuracy
[17:27:01][D][resistance:039]: 'resistance_sensor' - Resistance 11168.4Ω
[17:27:01][D][sensor:094]: 'resistance_sensor': Sending state 11168.36719 Ω with 1 decimals of accuracy
[17:27:01][D][ntc:026]: 'Temperature' - Temperature: 22.5°C
[17:27:01][D][sensor:094]: 'Temperature': Sending state 22.53379 °C with 1 decimals of accuracy
[17:27:01][D][climate:396]: 'Thermostat' - Sending state:
[17:27:01][D][climate:399]:   Mode: OFF
[17:27:01][D][climate:401]:   Action: OFF
[17:27:01][D][climate:419]:   Current Temperature: 22.53°C
[17:27:01][D][climate:425]:   Target Temperature: 18.00°C
[17:27:01][W][component:237]: Component adc.sensor took a long time for an operation (79 ms).
[17:27:01][W][component:238]: Components should block for at most 30 ms.
[17:27:10][D][sensor:094]: 'Co2': Sending state 11.92220  with 1 decimals of accuracy
[17:27:11][D][sensor:094]: 'ntc_source': Sending state 1.64883 V with 2 decimals of accuracy
[17:27:11][D][resistance:039]: 'resistance_sensor' - Resistance 11184.2Ω
[17:27:11][D][sensor:094]: 'resistance_sensor': Sending state 11184.17285 Ω with 1 decimals of accuracy
[17:27:11][D][ntc:026]: 'Temperature' - Temperature: 22.5°C
[17:27:11][D][sensor:094]: 'Temperature': Sending state 22.50249 °C with 1 decimals of accuracy
[17:27:11][D][climate:396]: 'Thermostat' - Sending state:
[17:27:11][D][climate:399]:   Mode: OFF
[17:27:11][D][climate:401]:   Action: OFF
[17:27:11][D][climate:419]:   Current Temperature: 22.50°C
[17:27:11][D][climate:425]:   Target Temperature: 18.00°C
[17:27:11][W][component:237]: Component adc.sensor took a long time for an operation (74 ms).
[17:27:11][W][component:238]: Components should block for at most 30 ms.
[17:27:13][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[17:27:13][D][esp32.preferences:114]: Saving 2 preferences to flash...
[17:27:13][D][esp32.preferences:143]: Saving 2 preferences to flash: 1 cached, 1 written, 0 failed
[17:27:21][D][sensor:094]: 'ntc_source': Sending state 1.65033 V with 2 decimals of accuracy
[17:27:21][D][resistance:039]: 'resistance_sensor' - Resistance 11204.5Ω
[17:27:21][D][sensor:094]: 'resistance_sensor': Sending state 11204.52734 Ω with 1 decimals of accuracy
[17:27:21][D][ntc:026]: 'Temperature' - Temperature: 22.5°C
[17:27:21][D][sensor:094]: 'Temperature': Sending state 22.46226 °C with 1 decimals of accuracy
[17:27:21][D][climate:396]: 'Thermostat' - Sending state:
[17:27:21][D][climate:399]:   Mode: OFF
[17:27:21][D][climate:401]:   Action: OFF
[17:27:21][D][climate:419]:   Current Temperature: 22.46°C
[17:27:21][D][climate:425]:   Target Temperature: 18.00°C
[17:27:21][W][component:237]: Component adc.sensor took a long time for an operation (65 ms).
[17:27:21][W][component:238]: Components should block for at most 30 ms.
[17:27:30][D][script.timer_sleep:3293]: Going to sleep from page home
[17:27:30][D][text_sensor:064]: 'Current Page': Sending state 'screensaver'
[17:27:30][D][script.page_changed:2644]: New page: screensaver
[17:27:30][D][text_sensor:064]: 'Detailed Entity': Sending state ''
[17:27:30][D][nextion_textsensor:014]: Processed text_sensor "current_page" state "screensaver"
[17:27:30][E][nextion:561]: ERROR: Received numeric return but next in queue "goto_page" is not a valid sensor type 0
[17:27:30][E][nextion:561]: ERROR: Received numeric return but next in queue "send_command_printf" is not a valid sensor type 0
[17:27:31][D][sensor:094]: 'ntc_source': Sending state 1.65050 V with 2 decimals of accuracy
[17:27:31][D][resistance:039]: 'resistance_sensor' - Resistance 11206.8Ω
[17:27:31][D][sensor:094]: 'resistance_sensor': Sending state 11206.79297 Ω with 1 decimals of accuracy
[17:27:31][D][ntc:026]: 'Temperature' - Temperature: 22.5°C
[17:27:31][D][sensor:094]: 'Temperature': Sending state 22.45779 °C with 1 decimals of accuracy
[17:27:31][D][climate:396]: 'Thermostat' - Sending state:
[17:27:31][D][climate:399]:   Mode: OFF
[17:27:31][D][climate:401]:   Action: OFF
[17:27:31][D][climate:419]:   Current Temperature: 22.46°C
[17:27:31][D][climate:425]:   Target Temperature: 18.00°C
[17:27:31][W][component:237]: Component adc.sensor took a long time for an operation (72 ms).
[17:27:31][W][component:238]: Components should block for at most 30 ms.
[17:27:41][D][sensor:094]: 'ntc_source': Sending state 1.65033 V with 2 decimals of accuracy
[17:27:41][D][resistance:039]: 'resistance_sensor' - Resistance 11204.5Ω
[17:27:41][D][sensor:094]: 'resistance_sensor': Sending state 11204.52734 Ω with 1 decimals of accuracy
[17:27:41][D][ntc:026]: 'Temperature' - Temperature: 22.5°C
[17:27:41][D][sensor:094]: 'Temperature': Sending state 22.46226 °C with 1 decimals of accuracy
[17:27:41][D][climate:396]: 'Thermostat' - Sending state:
[17:27:41][D][climate:399]:   Mode: OFF
[17:27:41][D][climate:401]:   Action: OFF
[17:27:41][D][climate:419]:   Current Temperature: 22.46°C
[17:27:41][D][climate:425]:   Target Temperature: 18.00°C
[17:27:41][W][component:237]: Component adc.sensor took a long time for an operation (62 ms).
[17:27:41][W][component:238]: Components should block for at most 30 ms.
[17:27:46][D][esp32.preferences:114]: Saving 1 preferences to flash...
[17:27:46][D][esp32.preferences:143]: Saving 1 preferences to flash: 1 cached, 0 written, 0 failed
[17:27:46][D][text_sensor:064]: 'BME680 Luftqualität Einstufung': Sending state 'perfekt'
[17:27:48][D][bme680.sensor:333]: Got temperature=26.7°C pressure=1012.5hPa humidity=65.2% gas_resistance=10895.5Ω
[17:27:48][D][sensor:094]: 'BME680 Druck': Sending state 1012.49048 hPa with 1 decimals of accuracy
[17:27:48][D][sensor:094]: 'BME680 Feuchte': Sending state 65.23208 % with 1 decimals of accuracy
[17:27:48][D][sensor:094]: 'BME680 Gas Widerstand': Sending state 10895.53125 Ω with 1 decimals of accuracy
[17:27:49][D][text_sensor:064]: 'Device Name': Sending state 'nspanel1'
[17:27:51][D][sensor:094]: 'ntc_source': Sending state 1.64983 V with 2 decimals of accuracy
[17:27:51][D][resistance:039]: 'resistance_sensor' - Resistance 11197.7Ω
[17:27:51][D][sensor:094]: 'resistance_sensor': Sending state 11197.73730 Ω with 1 decimals of accuracy
[17:27:51][D][ntc:026]: 'Temperature' - Temperature: 22.5°C
[17:27:51][D][sensor:094]: 'Temperature': Sending state 22.47567 °C with 1 decimals of accuracy
[17:27:51][D][climate:396]: 'Thermostat' - Sending state:
[17:27:51][D][climate:399]:   Mode: OFF
[17:27:51][D][climate:401]:   Action: OFF
[17:27:51][D][climate:419]:   Current Temperature: 22.48°C
[17:27:51][D][climate:425]:   Target Temperature: 18.00°C
[17:27:51][W][component:237]: Component adc.sensor took a long time for an operation (81 ms).
[17:27:51][W][component:238]: Components should block for at most 30 ms.
[17:28:00][D][sensor:094]: 'RSSI': Sending state -54.00000 dBm with 0 decimals of accuracy
[17:28:01][D][sensor:094]: 'ntc_source': Sending state 1.64950 V with 2 decimals of accuracy
[17:28:01][D][resistance:039]: 'resistance_sensor' - Resistance 11193.2Ω
[17:28:01][D][sensor:094]: 'resistance_sensor': Sending state 11193.21484 Ω with 1 decimals of accuracy
[17:28:01][D][ntc:026]: 'Temperature' - Temperature: 22.5°C
[17:28:01][D][sensor:094]: 'Temperature': Sending state 22.48461 °C with 1 decimals of accuracy
[17:28:01][D][climate:396]: 'Thermostat' - Sending state:
[17:28:01][D][climate:399]:   Mode: OFF
[17:28:01][D][climate:401]:   Action: OFF
[17:28:01][D][climate:419]:   Current Temperature: 22.48°C
[17:28:01][D][climate:425]:   Target Temperature: 18.00°C
[17:28:01][W][component:237]: Component adc.sensor took a long time for an operation (77 ms).
[17:28:01][W][component:238]: Components should block for at most 30 ms.
edwardtfn commented 5 days ago

[17:26:24][W][nextion:446]: Nextion reported Serial Buffer overflow!

This is probably the reason your panel is stuck in the boot screen.

Could you please share your panel's full yaml? Please hide password and any sensitive info, but share everything else. Don't worry about formatting it... By the way, is MQTT really needed in your case?

Alfons-Hetler commented 4 days ago

[17:26:24][W][nextion:446]: Nextion reported Serial Buffer overflow!

This is probably the reason your panel is stuck in the boot screen.

Could you please share your panel's full yaml? Please hide password and any sensitive info, but share everything else. Don't worry about formatting it... By the way, is MQTT really needed in your case?

If it the reason why i have problems i can deactivate the mqtt. But normaly i have all my sensors and Hardware on mqtt basis. So yes i need this ;-)


substitutions:
  # Settings - Editable values
  device_name: "nspanel1"
  friendly_name: "nspanel1"
  wifi_ssid: !secret wifi_ssid
  wifi_password: !secret wifi_password
  nextion_update_url: "http://192.168.178.10:8123/local/nspanel_eu.tft"  # Optional
  # Add-on configuration (if needed)
  # heater_relay: "1"  # Possible values: "1" or "2"

##### My customization - Start #####
##### mqtt ####
mqtt:
  broker: 192.168.178.10
  username: "XXX"
  password: "XXX"
  port: 1883
  topic_prefix: esphome
  client_id: nspanel1

##### website ####
captive_portal:
web_server:
  id: web_server_std
  port: 80

i2c:
  - id: "bus_a"
    sda: GPIO23
    scl: GPIO02
    scan: false

sensor:
  - platform: bme680
    update_interval: 60s
    address: 0x77
    temperature:
      name: "BME680 Temperatur"
      oversampling: 8x
      filters:
       - offset: -4.5
       - median
    pressure:
      name: "BME680 Druck"
      oversampling: 4x
    humidity:
      id: "humidity"
      name: "BME680 Feuchte"
      oversampling: 2x
    gas_resistance:
      id: "gas_resistance"
      name: "BME680 Gas Widerstand"
  - platform: template
    name: "Co2"
    id: iaq
    icon: "mdi:gauge"
    # calculation: comp_gas = log(R_gas[ohm]) + 0.04 log(Ohm)/%rh * hum[%rh]
    lambda: |-
      return log(id(gas_resistance).state) + 0.04 *  id(humidity).state;
    state_class: "measurement"

text_sensor:
  - platform: template
    name: "BME680 Luftqualität Einstufung"
    icon: "mdi:checkbox-marked-circle-outline"
    lambda: |-
      if (int(id(iaq).state) <= 50) {
        return {"perfekt"};
      }
      else if (int(id(iaq).state) <= 100) {
        return {"sehr gut"};
      }
      else if (int(id(iaq).state) <= 150) {
        return {"gut"};
      }
      else if (int(id(iaq).state) <= 200) {
        return {"in ordnung"};
      }
      else if (int(id(iaq).state) <= 250) {
        return {"schlecht"};
      }
      else if (int(id(iaq).state) <= 350) {
        return {"sehr schlecht"};
      }
      else if (int(id(iaq).state) <= 500) {
        return {"extreme schlecht"};
      }
      else {
        return {"unbekannt"};
      }
##### My customization - End #####
# Core and optional configurations
packages:
  remote_package:
    url: https://github.com/Blackymas/NSPanel_HA_Blueprint
    ref: main
    refresh: 300s
    files:
      - nspanel_esphome.yaml # Basic package
      # Optional advanced and add-on configurations
      # - esphome/nspanel_esphome_advanced.yaml
      # - esphome/nspanel_esphome_addon_ble_tracker.yaml
      # - esphome/nspanel_esphome_addon_bluetooth_proxy.yaml
      # - esphome/nspanel_esphome_addon_climate_cool.yaml
      - esphome/nspanel_esphome_addon_climate_heat.yaml
      # - esphome/nspanel_esphome_addon_climate_dual.yaml
      # - esphome/nspanel_esphome_addon_cover.yaml
edwardtfn commented 4 days ago

It's hard to know if mqtt is the cause of the issue. I think the chances of issues with IO02 are way higher, however, temporarily disabling some of these "non-essential" components (captive_portal, mqtt, web_server and even the add-on heat) before trying to find alternatives for IO02, as that one is much harder to troubleshoot.

Alfons-Hetler commented 4 days ago

It's hard to know if mqtt is the cause of the issue. I think the chances of issues with IO02 are way higher, however, temporarily disabling some of these "non-essential" components (captive_portal, mqtt, web_server and even the add-on heat) before trying to find alternatives for IO02, as that one is much harder to troubleshoot.

I flashed the panel again, Online Version, first blank then the needed eu version. Now starts the nspanel normaly. But i see in the logs that the Error with Buffer overflow still exists. I would try different thinks and settings in the next days to investigate the error.

edwardtfn commented 4 days ago

There's no need to reinstall TFT. I don't believe that will make any difference.

As this is a difference issue than the one in the title, let's handle the buffer overflow on another issue:

Alfons-Hetler commented 3 days ago

I can use the bme680 libary without a problem, but i need the "CO2 equivalent estimate in ppm" sensor. This is available in the bme680_bsec libary. But if i want use the bme680_bsec libary i become a error Message. The platform arduino i needed for this libary.

What can i do to use these Libary?

On the website:

https://github.com/trvrnrth/esphome-bsec-bme680

is an alternate Libary but i cant insert it in my project. Maybe iam not expert enough for that ;-)

Here is a snippet of my not working yaml:

bme680_bsec:

sensor:
  - platform: bme680_bsec
    temperature:
      # Temperature in °C
      name: "BME680 Temperature"
      sample_rate: lp
      filters:
        - median
    pressure:
      # Pressure in hPa
      name: "BME680 Pressure"
      sample_rate: lp
      filters:
        - median
    humidity:
      # Relative humidity %
      name: "BME680 Humidity"
      sample_rate: lp
      filters:
        - median
    gas_resistance:
      # Gas resistance in Ω
      name: "BME680 Gas Resistance"
      filters:
        - median
    iaq:
      # Indoor air quality value
      name: "BME680 IAQ"
      filters:
        - median
    iaq_accuracy:
      # IAQ accuracy as a numeric value of 0, 1, 2, 3
      name: "BME680 Numeric IAQ Accuracy"
    co2_equivalent:
      # CO2 equivalent estimate in ppm
      name: "BME680 CO2 Equivalent"
      filters:
        - median
    breath_voc_equivalent:
      # Volatile organic compounds equivalent estimate in ppm
      name: "BME680 Breath VOC Equivalent"
      filters:
        - median

text_sensor:
  - platform: bme680_bsec
    iaq_accuracy:
      # IAQ accuracy as a text value of Stabilizing, Uncertain, Calibrating, Calibrated
      name: "BME680 IAQ Accuracy"
edwardtfn commented 3 days ago

Just add this to your panel's yaml:

esp32:
  framework:
    type: arduino

But be aware that I don't test with Arduino regularly, although lots of users still using arduino.

Alfons-Hetler commented 2 days ago

Just add this to your panel's yaml:

esp32:
  framework:
    type: arduino

But be aware that I don't test with Arduino regularly, although lots of users still using arduino.

If i do that i can generate the bin file but after auto upload the generated bin file through esphome (i have seen many yellow text at compiling, but the upload starts automatic after that) the panel stuck in bootscreen. Then, and thats a problem i think, i must desolder the BME680 for manual flash over the pins. Maybe it is enough for desoldering the GPIO2. But i try desolder all wires (i cant clear think at this time because i see my nspanel already in trash) After desolder i can install the "old" working bin file.

I think now ends my experiment with arduino framework and i live with the great result but without my ppm info.

Alfons-Hetler commented 2 days ago

I post here the code that working really good on my Panels. The only thing is the calculate IAQ. I think thats not correct but in theory it worked.

substitutions:
  # Settings - Editable values
  device_name: "nspanel1"
  friendly_name: "nspanel1"
  wifi_ssid: !secret wifi_ssid
  wifi_password: !secret wifi_password
  nextion_update_url: "http://192.168.178.10:8123/local/nspanel_eu.tft"  # Optional
  # Add-on configuration (if needed)
  # heater_relay: "1"  # Possible values: "1" or "2"

##### My customization - Start #####

##### website ####
captive_portal:
web_server:
  id: web_server_std
  port: 80

i2c:
  - id: "bus_a"
    sda: GPIO23
    scl: GPIO02
    scan: false
#    frequency: 10kHz

sensor:
  - platform: bme680
    update_interval: 60s
    address: 0x77
    temperature:
      id: "bme680_temperature"
      name: "BME680 Temperatur"
      oversampling: 8x
      filters:
       - offset: -2.7
#       - median
    pressure:
      id: "BME680_pressure"
      name: "BME680 Druck"
      oversampling: 4x
#      filters:
#        - median
    humidity:
      id: "bme680_humidity"
      name: "BME680 Feuchte"
      oversampling: 2x
      filters:
       - offset: 3.5
#        - median
    gas_resistance:
      id: "gas_resistance"
      name: "BME680 Gas Widerstand"
#      filters:
#        - median

  - platform: template
    id: "gas_resistance_kohm"
    name: "Gas Widerstand in kOhm"
    lambda: |-
      float ohm_value = id(gas_resistance).state; // gas_resistance ist der ID deines Sensors
      return ohm_value / 1000.0; // Umrechnung von Ohm in kOhm
    unit_of_measurement: "kΩ"
    accuracy_decimals: 2
    icon: 'mdi:gas-cylinder'
    state_class: "measurement"

  - platform: template
    id: "Taupunkt"
    name: "Taupunkt"
    lambda: |-
      return (243.5*(log(id(bme680_humidity).state/100)+((17.67*id(bme680_temperature).state)/
      (243.5+id(bme680_temperature).state)))/(17.67-log(id(bme680_humidity).state/100)-
      ((17.67*id(bme680_temperature).state)/(243.5+id(bme680_temperature).state))));
    unit_of_measurement: °C
    update_interval: 60s
    icon: 'mdi:weather-fog'

  - platform: template
    id: "iaq"
    name: "Luftqualität 0-500"
    icon: "mdi:gauge"
    # calculation: comp_gas = log(R_gas[ohm]) + 0.04 log(Ohm)/%rh * hum[%rh]
    lambda: |-
      return log(id(gas_resistance).state) + 0.04 *  id(bme680_humidity).state;
    state_class: "measurement"

  - platform: template
    id: "BME680_absolute_luftfeuchtigkeit"
    name: "Absolute Luftfeuchtigkeit"
    lambda: |-
      const float mw = 18.01528;    // molare Masse von Wasser g/mol
      const float r = 8.31447215;   // universelle Gas-Konstante J/mol/K
      return (6.112 * powf(2.718281828, (17.67 * id(bme680_temperature).state) /
        (id(bme680_temperature).state + 243.5)) * id(bme680_humidity).state * mw) /
        ((273.15 + id(bme680_temperature).state) * r); // in Gramm/m^3
    accuracy_decimals: 2
    update_interval: 60s
    icon: 'mdi:water'
    unit_of_measurement: 'g/m³'

text_sensor:
  - platform: template
    name: "BME680 Luftqualität"
    icon: "mdi:checkbox-marked-circle-outline"
    lambda: |-
      if (int(id(iaq).state) <= 50) {
        return {"Ausgezeichnet"};
      }
      else if (int(id(iaq).state) <= 100) {
        return {"Gut"};
      }
      else if (int(id(iaq).state) <= 150) {
        return {"Leicht verschmutzt"};
      }
      else if (int(id(iaq).state) <= 200) {
        return {"Moderat verschmutzt"};
      }
      else if (int(id(iaq).state) <= 250) {
        return {"Stark verschmutzt"};
      }
      else if (int(id(iaq).state) <= 350) {
        return {"Hochgradig verschmutzt"};
      }
      else if (int(id(iaq).state) <= 500) {
        return {"Extrem verschmutzt"};
      }
      else {
        return {"unbekannt"};
      }
##### My customization - End #####
# Core and optional configurations
packages:
  remote_package:
    url: https://github.com/Blackymas/NSPanel_HA_Blueprint
    ref: main
    refresh: 300s
    files:
      - nspanel_esphome.yaml # Basic package
      # Optional advanced and add-on configurations
      # - esphome/nspanel_esphome_advanced.yaml
      # - esphome/nspanel_esphome_addon_ble_tracker.yaml
      # - esphome/nspanel_esphome_addon_bluetooth_proxy.yaml
      # - esphome/nspanel_esphome_addon_climate_cool.yaml
      - esphome/nspanel_esphome_addon_climate_heat.yaml
      # - esphome/nspanel_esphome_addon_climate_dual.yaml
      # - esphome/nspanel_esphome_addon_cover.yaml

Here is a picture from Homeassistant:

HA_nspanel_BME680

No worry about the different temperatures. I start my Panel a few minutes before i make the picture and the Sensor need a few minutes to calm down. I setup the offsets with a good Testo measuring instrument.

I control the humidity and temp a few days later and it is very similar to the values to Testo measuring instrument.

Here is a picture of my other Panel. Temps are here correct: HA_nspanel_BME680_Bad

And my already modificate NSPanel in Bathroom: IMG_20241015_214923 - Kopie

IMG_20241015_215015 - Kopie

IMG_20241015_215052 - Kopie

Here is the proof:

Temp value up (NTC NSPanel offset +1,2) Temp value middle BME680 offset -2,7 Humidity BME680 offset 3,8

IMG_20241015_232711 - Kopie

HA_nspanel_BME680_1

Maybe anyone can pick up the issue for a tutorial for other people like me that need the humidity and want more infos about the room inside.

The last thing, i hope we get it togehter, was to run the Bosch bsec libary. Because we have here a better quality and more values and a correct IAQ. But for that i need your help. And Maybe a good solution for disconnect the GPIO2 for flash. Maybe a small hardware switch or similar.