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
1 « J'aime »

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 : MQTT Client Component — ESPHome

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

2 « J'aime »

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