Problème visibilité 3 PZEM-004t V3

Bonjour,
Je rencontre des soucis pour faire fonctionner plusieurs PZEMv sur le même UART.
J’explique: Je suis en Triphasé 3x220v (Belgique oblige). Il me faut donc 3PZEM pour pouvoir mesurer ma consommation.
Je vous passe les détails mais j’ai des onduleurs SMA qui me remontent ce que je produit et j’ai 2 circuits triphasé qui partent de mon différentiel 300mA. Au total, j’ai donc 6 PZEM (3 par circuit).
J’utilise 2 esp32 (avec d’autres choses dessus (DHT))qui ont chacun 3 PZEM via UART.

En gros, le problème est que sur 1 des 2 esp32 (le plus chargé avec des DHT) je n’arrive qu’a avoir 2 pzem visibles. Le code est le même pour les 2 esp32. Les pzem sont branchés de la même façon. Ils sont tous fonctionnels car vérifié au moment de l’assignation des adresses.
Voici le schéma de branchement mais je n’ai mis ni diode ni résistance car certains disent que ca marche sans (et d’ailleur, ca marche pour 1 des 2 esp32). Les pzem sont alimentés en 5v.
image
Avez-vous déjà eu ce genre de chose? Car j’ai fait pleins de recherche et ca part dans tous les sens sans réele solution.
Petite précision. J’y ai chipoté des heures hier soir en faisant des modifs au fur et à mesure (avec les baud, stop-bits et j’en passe). au début, je voyait 1 pzem, puis 2, puis plus du tout et ce matin, 1 est revenu sans rien faire. Ca a été la même chose pour l’autre esp32 . Pareil, ce matin j’ai le 3 pzem et ils restent maintenant.

Voici mon code:

esphome:
  name: local-technique
  platform: ESP32
  board: esp-wrover-kit

# Enable logging
logger:
    baud_rate: 0

# Enable Home Assistant API
api:

ota:
  password: "#########"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_mdp

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Local-Technique Fallback Hotspot"
    password: "#######"

captive_portal:

esp32_ble_tracker:
  scan_parameters:
    active: true
bluetooth_proxy:

uart:
  rx_pin: 3
  tx_pin: 1
  baud_rate: 9600
  stop_bits: 2
modbus:
      
switch:
# Bouton de redémarrage
  - platform: restart
    name: "Redémarrage"
  - platform: gpio
    pin: 18
    restore_mode: ALWAYS_ON
    name: Reboot

binary_sensor:
  # statut
    - platform: status
      name: "Statut"

sensor:
  #- platform: dht
  #  pin: 34
  #  temperature:
  #    name: "Temperature Chambre Heather"
  #  humidity:
  #    name: "Humidité Chambre Heather"
  #  update_interval: 60s
  - platform: dht
    pin: 19
    temperature:
      name: "Temperature Cuisine"
    humidity:
      name: "Humidité Cuisine"
    update_interval: 60s
  - platform: dht
    pin: 32
    temperature:
      name: "Temperature Caves"
    humidity:
      name: "Humidité Chambre Caves"
    update_interval: 60s
  - platform: dht
    pin: 33
    temperature:
      name: "Temperature Salle de jeux"
    humidity:
      name: "Humidité Salle de jeux"
    update_interval: 60s
  - platform: dht
    pin: 25
    temperature:
      name: "Temperature Salle de bain"
    humidity:
      name: "Humidité Salle de bain"
    update_interval: 60s
  #- platform: dht
  #  pin: 26
  #  temperature:
  #    name: "Temperature Chambre parents"
  #  humidity:
  #    name: "Humidité Chambre parents"
  #  update_interval: 60s
  - platform: dht
    pin: 27
    temperature:
      name: "Temperature Chambre Pacey"
    humidity:
      name: "Humidité Chambre Pacey"
    update_interval: 60s
  - platform: dht
    pin: 23
    temperature:
      name: "Temperature Bureau"
    humidity:
      name: "Humidité Bureau"
    update_interval: 60s
  - platform: dht
    pin: 17
    temperature:
      name: "Temperature Salon"
    humidity:
      name: "Humidité Salon"
    update_interval: 60s
  - platform: dht
    pin: 16
    temperature:
      name: "Temperature Chambre Kirsten"
    humidity:
      name: "Humidité Chambre Kirsten"
    update_interval: 60s

  - platform: pzemac
    address: 1
    current:
      name: "PZEM-004T_Current4"
    voltage:
      name: "PZEM-004T_Voltage4"
    energy:
      name: "PZEM-004T_Energy4"
    power:
      name: "PZEM-004T_Power4"
    frequency:
      name: "PZEM-004T_Frequency4"
    power_factor:
      name: "PZEM-004T_Power Factor4"
    update_interval: 5s
  - platform: pzemac
    address: 2
    current:
      name: "PZEM-004T_Current5"
    voltage:
      name: "PZEM-004T_Voltage5"
    energy:
      name: "PZEM-004T_Energy5"
    power:
      name: "PZEM-004T_Power5"
    frequency:
      name: "PZEM-004T_Frequency5"
    power_factor:
      name: "PZEM-004T_Power Factor5"
    update_interval: 5s
  - platform: pzemac
    address: 3
    current:
      name: "PZEM-004T_Current6"
    voltage:
      name: "PZEM-004T_Voltage6"
    energy:
      name: "PZEM-004T_Energy6"
    power:
      name: "PZEM-004T_Power6"
    frequency:
      name: "PZEM-004T_Frequency6"
    power_factor:
      name: "PZEM-004T_Power Factor6"
    update_interval: 5s

Merci

Ben déja des appareils en UART ou mode série (sauf 422/485) c’est un port par appareil et en aucun cas un câblage en parallèle car c’est pas conçu pour ça électroniquement et en terme de communication tous les messages collisionnent entre eux ! Je pense que tu devrais définir et câbler un UART par PZEMv et ça ira déjà bien mieux :wink:

1 « J'aime »

oui sauf que sur le net, tout le monde fait comme ca et que ca marche pour 1 des 2 esp32. et puis, compliqué de mettre 6 esp32

OUI enfin si tout ce que l’on trouve sur la toile était la vérité, bin ça se saurait. Et c’est pas parce que tout le monde le fait que c’est la bonne méthode.
Je suis parfaitement d’accord avec @vincen , l’UART n’est pas fait pour cela( il y a l’I2C par exemple pour du parallèle).

il y a certainement plusieurs solutions pour résoudre ton problème, mais le plus simple c’est de déclarer 3 ports UART dans ton ESP et utiliser 3 paires de RX-TX différents sur ton ESP.
Ca va juste te demander d’ajouter 4 fils donc c’est pas le plus complexe.

A+ Fred

Bonjour,
Pour donner la finalité du problème, c’était une soudure qui ne faisait pas bien contact.
Et pour préciser, ce qu’on dit sur internet est bien valable. Les 3 Pzem fonctionnent bien sur un seul uart.
Bonne journée