ESP32 page web + MQTT

Bonjour

Dans mon code ci-dessous je récupère les informations d’un capteur INA226 et une sonde ultrason.

Tout s’affiche correctement dans la page web de l’ESP et dans home assistant.

Mon problème vient à partir du nomment ou j’active MQTT (commandes commentées dans le code).

Les infos remontent sur mon serveur MQTT mais je perds la page web.

J’ai oublié quelque chose ?

Merci d’avance

Cordialement

PS: je suis débutant, c’est mon 1er projet ESP

substitutions:
  name: "conso-chalet-niveau-cuve"
  friendly_name: Conso-chalet_Niveau-cuve

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  min_version: 2024.6.0
  name_add_mac_suffix: false
  project:
    name: esphome.web
    version: dev

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
  level: DEBUG
# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

# Allow provisioning Wi-Fi via serial
improv_serial:

wifi:
  # Set up a wifi access point
  ap: {}

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

dashboard_import:
  package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main
  import_full_config: true

# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
esp32_improv:
  authorizer: none

# To have a "next url" for improv serial
web_server:
 port: 80
 
#mqtt:
#  broker: 192.168.1.252
#  username: mosquitto
#  password: !secret mqtt_password
#  client_id: conso-chalet-niveau-cuve
i2c:
  sda: 21  # GPIO21
  scl: 22  # GPIO22
  scan: true  # Permet de scanner les appareils I2C connectés au démarrage

sensor:
  #comateur courant INA226
  - platform: ina226
    address: 0x40
    shunt_resistance: 0.075 ohm
    max_current: 50A
    # adc time used for both, Bus Voltage and Shunt Voltage
    adc_time: 140us
    adc_averaging: 128
    update_interval: 30s
    current:
      name: "INA226 Current"
    power:
      name: "INA226 Power"
    bus_voltage:
      name: "INA226 Bus Voltage"
    shunt_voltage:
      name: "INA226 Shunt Voltage"

  #Ultrason cuve
  - platform: ultrasonic
    trigger_pin: 19
    echo_pin: 18
    name: "Ultrasonic Sensor"
    update_interval: 10s
    accuracy_decimals: 2
    unit_of_measurement: cm
    filters:
      - sliding_window_moving_average: #calcule moyenne des valeurs
          window_size: 15 #15 valeur prise en compte
          send_every: 15 #on fait une mesure toute les 10s donc on envoi la valeur apres 15x10s (150s)

peux tu essayer avec ceci:

esp32:
  board: esp32dev
  framework:
    type: esp-idf

Si tu n’utilise pas l’API, il faut la désactiver, sinon ESPHome redémarre régulièrement.
Tu a un avertissement dans la doc à ce propos : https://next.esphome.io/components/mqtt.html

Dans ton cas, tu ne devrais sans doute pas avoir avoir besoin de dashboard_import:
D’autant que le chemin ne mène nul part. Ce fichier n’existe pas.

Peut être que ça résoudra ton problème.

Merci pour vos pistes,
[jean-luc1203] , si je met esp-idf , le programme se bloque ici lors de la compilation:( . Peut etre que les librairie INA226 et ultrason son uniquement compatible ‹ framwork arduino › ?

INFO ESPHome 2024.7.3
INFO Reading configuration /config/conso-chalet-niveau-cuve.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing conso-chalet-niveau-cuve (board: esp32dev; framework: espidf; platform: platformio/espressif32@5.4.0)
--------------------------------------------------------------------------------
Tool Manager: Installing platformio/framework-espidf @ ~3.40407.0
INFO Installing platformio/framework-espidf @ ~3.40407.0
Unpacking  [####################################]  100%    

[Ev000], j’ai fais tes modifications mais pas d’amélioration :frowning:

Encore une proposition, il faudrait regarder ce qu’il reste comme mémoire libre dans l esp une fois les 2 options activées.

Affectivement ta config dois être trop gourmande en RAM ou CPU.

Dans les trucs bien lourd, tu ça a supprimer :

esp32_improv:
  authorizer: none

Dans la doc, il y a un avertissement a propos d’une consommation excessive de RAM.
Je ne pense pas que tu t’en serve, c’est une fonction bien avancé.

dans les logs, je vois que l’ESP passe son temps à redémarré.

ça m’indique une charge à 98%.

Vous avez certainement raison, charge trop élevée.

Du coup j’ai supprimer l’affichage web et tout fonctionne sans problème.

Merci encore pour votre aide

Bonne journée

Juste pour rebondir sur ce sujet, est-ce que tu utilises un ESP32-WROVER ? Celui-ci à plus de mémoire pour stocker du web par exemple.
Voir cet article