Reset Pzem esphome

Bonjour a tous,

Je possede 3 pzem V3 sous esphome mais je n’arrive pas a faire un reset des valeurs j’ai le message suivant

INFO Reading configuration /config/esphome/3pzem.yaml...
INFO Detected timezone 'Europe/Paris'
Failed config

esphome: None
  name: 3pzem
  on_boot:  None
    - None
      priority: -100.0
      then:  None
        - None
          pzemac.reset_energy:  None
            
            Couldn't find ID 'pzemac_1'. Please check you have defined an ID with that name in your configuration. These IDs look similar: "pzem".
            id: pzemac_1 None
  build_path: .esphome/build/3pzem
  platformio_options: {}
  includes: []
  libraries: []
  name_add_mac_suffix: False

voici mon fichier

esphome:

  name: 3pzem
  platform: ESP8266
  board: d1_mini
  
  on_boot:
    ## configure controller settings at setup
    ## make sure priority is lower than setup_priority of modbus_controller
    priority: -1

    then:
    - pzemac.reset_energy: pzemac_1
  

######## define adresss ########

#  on_boot:
    ## configure controller settings at setup
    ## make sure priority is lower than setup_priority of modbus_controller
#    priority: -100
#    then:
#     - lambda: |-
#          auto new_address = 2;    # adress destination 
#
 #         if(new_address < 1 || new_address > 7) // sanity check
  #        {
   #         ESP_LOGE("ModbusLambda", "Address needs to be between 0x01 and 0xF7");
    #        return;
     #     }

      #    esphome::modbus_controller::ModbusController *controller = id(pzem);
       #   auto set_addr_cmd = esphome::modbus_controller::ModbusCommandItem::create_write_single_command(
        #    controller, 0x0002, new_address);

         # delay(200) ;
        #  controller->queue_command(set_addr_cmd);
        #  ESP_LOGI("ModbusLambda", "PZEM Addr set");

#modbus:
 # send_wait_time: 200ms
#  id: mod_bus_pzem

#modbus_controller:
 # - id: pzem
    ## the current device addr
  #  address: 3   # adresss source du PZEM
  #  modbus_id: mod_bus_pzem
   # command_throttle: 0ms
#    setup_priority: -10
 #   update_interval: 30s
 
# Enable logging
logger:

  baud_rate: 0 # (UART logging interferes with pzem)
  level: DEBUG
# Enable Home Assistant API
api:

ota:
  password: "b6a4df3aca1d8b31c86d594edfadbb87"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "3Pzem Fallback Hotspot"
    password: "nBqz0FUQIIt0"

captive_portal:


i2c:
  sda: GPIO4
  scl: GPIO5
  scan: true   

      

uart:
  - id: ubus1
    tx_pin: D6
    rx_pin: D5
    baud_rate: 9600
    stop_bits: 1     #pour un ESP8266, essayer plutôt la valeur 1
    
time:
  platform: sntp
  id: my_time
  
  on_time:
      - seconds: 57
        minutes: 59
        hours: 23
        then:  
          - sensor.template.publish:
              id: template_enedis_veille
              state: !lambda return id(enedis_puissance_du_jour).state;
  
sensor:
#### PZEM L'etage' ######

  - platform: pzemac

    address: 1
    current:
      name: "p2_courant"
      accuracy_decimals: 2
    voltage:
      name: "p2_tension"
      accuracy_decimals: 2
    power:
      name: "p2_puissance"
      unit_of_measurement: W
      accuracy_decimals: 2
      id: p2_puissance
    frequency:
      name: "p2_frequence"
      unit_of_measurement: Hz
      accuracy_decimals: 2
    power_factor:
      name: "p2_facteur_puissance"
      accuracy_decimals: 2
      id: p2_facteur_puissance
    energy:
      name: "p2_energy"
      unit_of_measurement: Wh
      accuracy_decimals: 1
      id: p2_energy
    update_interval: 5s

    
  - platform: template
    name: "p2_puissance_cumulee"
    unit_of_measurement: "kWh"
    accuracy_decimals: 1
    update_interval: 5s
    icon: mdi:power
    lambda: return (( (id(p2_energy).state)/1000.0));
    
  - platform: total_daily_energy
    name: "p2_du_jour"
    power_id: p2_puissance 
    unit_of_measurement: "kWh"
    accuracy_decimals: 2
    id: p2_puissance_du_jour
    filters:
        # Multiplication factor from W to kW is 0.001
        - multiply: 0.001
    icon: mdi:counter
    
  - platform: template
    name: "p2_veille"
    id: template_p2_veille
    unit_of_measurement: "kwh"
    accuracy_decimals: 2
    icon: mdi:power
    update_interval: 10s
    
  - platform: template
    name: "p2_puissance_apparente"
    id: p2puissance_apparente
    unit_of_measurement: "VA"
    accuracy_decimals: 2
    update_interval: 10s
    icon: mdi:power
    lambda: return ( (id(p2_puissance).state/id(p2_facteur_puissance).state));
  
  - platform: template
    name: "p2_puissance_reactive"
    id: p2_puissance_reactive
    unit_of_measurement: "VAr"
    accuracy_decimals: 2
    update_interval: 10s
    icon: mdi:power
    #lambda: return ( ((id(enedis_puissance_reactive).state)*sin(acos((id(enedis_facteur_puissance).state))) ) );
    lambda: return ( ( sqrt( (id(p2_puissance_reactive).state)*(id(p2_puissance_reactive).state)   -  (id(p2_facteur_puissance).state)*(id(p2_facteur_puissance).state) ) )  );
    

     #### PZEM-ENEDIS ####
    
  - platform: pzemac

    address: 2
    current:
      name: "enedis_courant"
      accuracy_decimals: 2
    voltage:
      name: "enedis_tension"
      accuracy_decimals: 2
    power:
      name: "enedis_puissance"
      unit_of_measurement: W
      accuracy_decimals: 2
      id: enedis_puissance
    frequency:
      name: "enedis_frequence"
      unit_of_measurement: Hz
      accuracy_decimals: 2
    power_factor:
      name: "enedis_facteur_puissance"
      accuracy_decimals: 2
      id: enedis_facteur_puissance
    energy:
      name: "enedis_energy"
      unit_of_measurement: Wh
      accuracy_decimals: 1
      id: enedis_energy
    update_interval: 5s

    
  - platform: template
    name: "enedis_puissance_cumulee"
    unit_of_measurement: "kWh"
    accuracy_decimals: 1
    update_interval: 5s
    icon: mdi:power
    lambda: return (( (id(enedis_energy).state)/1000.0));
    
  - platform: total_daily_energy
    name: "enedis_du_jour"
    power_id: enedis_puissance 
    unit_of_measurement: "kWh"
    accuracy_decimals: 2
    id: enedis_puissance_du_jour
    filters:
        # Multiplication factor from W to kW is 0.001
        - multiply: 0.001
    icon: mdi:counter
    
  - platform: template
    name: "enedis_veille"
    id: template_enedis_veille
    unit_of_measurement: "kwh"
    accuracy_decimals: 2
    icon: mdi:power
    update_interval: 10s
    
  - platform: template
    name: "enedis_puissance_apparente"
    id: enedis_puissance_apparente
    unit_of_measurement: "VA"
    accuracy_decimals: 2
    update_interval: 10s
    icon: mdi:power
    lambda: return ( (id(enedis_puissance).state/id(enedis_facteur_puissance).state));
  
  - platform: template
    name: "enedis_puissance_reactive"
    id: enedis_puissance_reactive
    unit_of_measurement: "VAr"
    accuracy_decimals: 2
    update_interval: 10s
    icon: mdi:power
    #lambda: return ( ((id(enedis_puissance_reactive).state)*sin(acos((id(enedis_facteur_puissance).state))) ) );
    lambda: return ( ( sqrt( (id(enedis_puissance_reactive).state)*(id(enedis_puissance_reactive).state)   -  (id(enedis_facteur_puissance).state)*(id(enedis_facteur_puissance).state) ) )  );
    

#### Pzem PV ######   
  - platform: pzemac

    address: 3
    current:
      name: "pv_courant"
      accuracy_decimals: 2
    voltage:
      name: "pv_tension"
      accuracy_decimals: 2
    power:
      name: "pv_puissance"
      unit_of_measurement: W
      accuracy_decimals: 2
      id: pv_puissance
    frequency:
      name: "pv_frequence"
      unit_of_measurement: Hz
      accuracy_decimals: 2
    power_factor:
      name: "pv_facteur_puissance"
      accuracy_decimals: 2
      id: pv_facteur_puissance
    energy:
      name: "pv_energy"
      unit_of_measurement: Wh
      accuracy_decimals: 1
      id: pv_energy
    update_interval: 5s

    
  - platform: template
    name: "pv_puissance_cumulee"
    unit_of_measurement: "kWh"
    accuracy_decimals: 1
    update_interval: 5s
    icon: mdi:power
    lambda: return (( (id(pv_energy).state)/1000.0));
    
  - platform: total_daily_energy
    name: "pv_du_jour"
    power_id: pv_puissance 
    unit_of_measurement: "kWh"
    accuracy_decimals: 2
    id: pv_puissance_du_jour
    filters:
        # Multiplication factor from W to kW is 0.001
        - multiply: 0.001
    icon: mdi:counter
    
  - platform: template
    name: "pv_veille"
    id: template_pv_veille
    unit_of_measurement: "kwh"
    accuracy_decimals: 2
    icon: mdi:power
    update_interval: 10s
    
  - platform: template
    name: "pv_puissance_apparente"
    id: pv_puissance_apparente
    unit_of_measurement: "VA"
    accuracy_decimals: 2
    update_interval: 10s
    icon: mdi:power
    lambda: return ( (id(pv_puissance).state/id(pv_facteur_puissance).state));
  
  - platform: template
    name: "pv_puissance_reactive"
    id: pv_puissance_reactive
    unit_of_measurement: "VAr"
    accuracy_decimals: 2
    update_interval: 10s
    icon: mdi:power
    #lambda: return ( ((id(enedis_puissance_reactive).state)*sin(acos((id(enedis_facteur_puissance).state))) ) );
    lambda: return ( ( sqrt( (id(pv_puissance_reactive).state)*(id(pv_puissance_reactive).state)   -  (id(pv_facteur_puissance).state)*(id(pv_facteur_puissance).state) ) )  );
    
  - platform: wifi_signal
    name: "cl_puissance_enedis"
    update_interval: 10s
    
  - platform: uptime
    name: "up"
    id: uptime_sec 
switch:
  - platform: restart
    name: "tableau_restart"


     
binary_sensor:
  - platform: status
    name: "tableau_status"    
    
    
text_sensor:
  - platform: template
    name: enedis_uptime
    lambda: |-
      int seconds = (id(uptime_sec).state);
      int days = seconds / (24 * 3600);
      seconds = seconds % (24 * 3600); 
      int hours = seconds / 3600;
      seconds = seconds % 3600;
      int minutes = seconds /  60;
      seconds = seconds % 60;
      return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
    icon: mdi:clock-start
    update_interval: 113s        

Je vous remercie pour votre aide

System Health

version core-2022.2.3
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.7
os_name Linux
os_version 4.19.0-17-amd64
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 5000
Installed Version 1.22.0
Stage running
Available Repositories 988
Downloaded Repositories 70
AccuWeather
can_reach_server ok
remaining_requests 49
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 10 (buster)
update_channel beta
supervisor_version supervisor-2022.01.1
docker_version 20.10.8
disk_total 113.6 GB
disk_used 20.1 GB
healthy true
supported failed to load: Unsupported
supervisor_api ok
version_api ok
installed_addons Samba share (9.5.1), MQTT Server & Web client (1.2.0), Terminal & SSH (9.3.0), Spotify Connect (0.10.0), Grafana (7.4.1), Tydom2MQTT - Beta (release_v1.2.4), InfluxDB (4.3.0), Glances (0.14.2), Dnsmasq (1.4.4), Duck DNS (1.14.0), Studio Code Server (4.1.0), File editor (5.3.3), Zigbee2mqtt (1.23.0-1), Zigbee2mqtt Edge (edge), ESPHome (2022.1.3), Node-RED (10.4.0), Check Home Assistant configuration (3.9.0), Mosquitto broker (6.0.1)
Lovelace
dashboards 3
resources 45
views 17
mode storage
Spotify
api_endpoint_reachable ok

Bonjour,
J’ai également 3 PZEM sur un ESP32, et j’ai qq soucis sur le reset automatique des 3 simultanément, alors qu’ils fonctionnent avec un bouton…
En tout cas, il faudrait commencer par les identifier dans ta config :

- platform: pzemac
    id: "pzem1"
    address: 1

Pour pouvoir ensuite faire un reset dessus :

button:
  - platform: template
    id: pzem1_reset_energy
    name: "Reset 1"
    on_press:
      then:
        - pzemac.reset_energy: pzem1
        - logger.log: "Energy Reset 1"
        
  - platform: template
    id: pzem2_reset_energy
    name: "Reset 2"
    on_press:
      then:
        - pzemac.reset_energy: pzem2
        - logger.log: "Energy Reset 2"
  
  - platform: template
    id: pzem3_reset_energy
    name: "Reset 3"
    on_press:
      then:
        - pzemac.reset_energy: pzem3
        - logger.log: "Energy Reset 3"

Damien.