bonjour,
je veux récupérer les données d’un onduleur Imeon avec ESPHome32 par le protocole Modbus rtu, le fabricant m’a fourni la documentation.
avec celle-ci j’arrive a voir mes trames et visonner les données avec le logiciel "Qmodmaster’
deux exemples :
avec doc fabriquant > trames envoyées et reçu par qmodmaster et logs de ESPHome
récupération du Numéro de série
-
1 récupération N° de série
Trames que je récupère avec qmodmaster
[RTU]>Tx > 18:45:38:609 - 01 03 00 01 00 04 15 C9
[RTU]>Rx > 18:45:38:857 - 01 03 08 00 00 50 5D 2D 3C 7F EF DC 96
Trames par ESPHome avec custom_command
[21:51:27][D][uart_debug:114]: >>> 01:03:00:01:00:04:15:C9:00
[21:51:27][D][modbus_controller:032]: Modbus command to device=1 register=0xE828 countdown=0 no response received - removed from send queue
-
Récupération de la tension:
Trames que je récupère avec qmodmaster
[RTU]>Tx > 18:46:04:110 - 01 03 01 00 00 01 85 F6
[RTU]>Rx > 18:46:04:110 - 01 03 02 09 41 7E 24
Trames par ESPHome: avec custom_command
[14:35:01][D][uart_debug:114]: >>> 01:03:01:00:00:01:85:F6:00
[14:35:01][D][modbus_controller:032]: Modbus command to device=1 register=0xAB13 countdown=0 no response received - removed from send queue
on s’apercoit que ESPHome envoie :00 en plus a la fin de la trame
je ne sais pas si cela est normal !
voici mon code ESPHome:
uart:
id: mod_bus
tx_pin: 17
rx_pin: 16
baud_rate: 9600
stop_bits: 1
debug:
modbus:
flow_control_pin: 5
id: modbus1
modbus_controller:
- id: imeon
## the Modbus device addr
address: 0x01
modbus_id: modbus1
setup_priority: -10
sensor:
- platform: modbus_controller
modbus_controller_id: imeon
name: "numero de série"
id: numero_de_serie
custom_command: [ 0x01, 0x03, 0x00, 0x01, 0x00, 0x04, 0x15 ]
value_type: U_QWORD_R
- platform: modbus_controller
modbus_controller_id: imeon
name: "Tension"
id: tension
custom_command: [ 0x01, 0x03, 0x01, 0x00, 0x00, 0x01, 0x85 ]
value_type: U_WORD
unit_of_measurement: V
value_type: je ne sais pas si c’est bon mais de toute façon je n’ai pas de réponse de l’onduleur
j’espère avoir été clair dans ma demande
merci pour vos réponses
Ma config HA
avec la derrnière version je n’arrive plus a trover l’endroit
Bonjour Lucien,
pour pour ton aide pour mon onduleur IMEON et ESP32 via MODBUS: j’ai bien les remontées de l’onduleur. Il a fallu que je contacte IMEON pour passer la derniere version du Firmware : celle qui etait installée n’activait pas le MODBUS.
J’ai pu grace au support avoir en + acces à Imeon Online, chose que je n’avais pas avant, vu que j’avais acheté l’onduleur en occaz.
Merci pour le partage.
Il me semble que tu envoies un octet de trop dans les commandes.
Je n’ai jamais utilisé le Modbus sure ESPHome, mais je pense que c’est lui qui calcule le checksum.
Pour information, en Modbus le checksum est sur deux octets.
J’ai rapidement regardé la doc ESPHome Modbus.
Tu peux utiliser des commandes standards:
text_sensor:
- platform: modbus_controller
modbus_controller_id: imeon
name: "numero de série"
id: numero_de_serie
internal: true
register_type: holding
address: 0x0001
register_count: 4
raw_encode: HEXBYTES
response_size: 8
sensor:
- platform: modbus_controller
modbus_controller_id: imeon
name: "Tension"
id: tension
register_type: holding
address: 0x0100
unit_of_measurement: "V"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
Bonjour,
je viens de m inscrire sur ce forum.
Je suis possesseur d un IMEON3.6
Je voudrais savoir si vous avez réussi à récupérer les infos de l onduleur .
j ai contacter imeon qui m’ont fourni les infos pour le modbus pour les commandes
ca fait un moment que je cherche
j’utilise un ESP32 ou un ESP8266 avec un convertisseur rs485 vers TTL
Pouvez vous m’expliquer comment vous avez procéder ( code et câblage )
Je vous remercie d’avance
bonjour,
j’ai utilisé un esp 32
je vous fourni mon code et le cablage cet après midi
re,
mon code,
uart:
id: mod_bus
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
stop_bits: 1
debug:
modbus:
send_wait_time: 1000ms
flow_control_pin: 5
id: modbus1
modbus_controller:
- id: imeon
## the Modbus device addr
address: 0x01
modbus_id: modbus1
command_throttle: 2000ms
setup_priority: -10
sensor:
#######################
# Général Information #
#######################
- platform: modbus_controller
modbus_controller_id: imeon
id: version_imeon
name: "Version Imeon"
address: 0x0015
icon: mdi:numeric
register_type: holding
###############
# Smart Meter #
###############
- platform: modbus_controller
modbus_controller_id: imeon
id: smart_meter_power
name: "Puissance Smart Meter"
address: 0x0600
unit_of_measurement: "W"
icon: mdi:transmission-tower-import
register_type: holding #or register_type: read
value_type: U_DWORD
- platform: modbus_controller
modbus_controller_id: imeon
id: smart_meter_status
name: "Status Smart Meter"
address: 0x0602
register_type: holding #or register_type: read
value_type: U_WORD
########################
# AC GRID - RÉSEAU AC #
########################
- platform: modbus_controller
modbus_controller_id: imeon
id: voltage_reseau
name: "Tension du réseau AC"
address: 0x0100 # Tension du réseau AC L1, AC Grid voltage L1
unit_of_measurement: "V"
icon: mdi:sine-wave
register_type: holding # or register_type: read
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: imeon
id: puissance_reseau
name: "Puissance du réseau"
address: 0x0103 # Alimentation réseau AC L1(Connecteur réseau de l'onduleur sans Compteur intelligent), AC Grid power L1 (Grid connector of inverter without
unit_of_measurement: "W"
icon: mdi:sine-wave
register_type: holding #or register_type: read
value_type: S_DWORD
- platform: modbus_controller
modbus_controller_id: imeon
id: AC_Grid_frequency
name: "Fréquence du réseau AC"
address: 0x0117 # Fréquence du réseau AC, AC Grid frequency
unit_of_measurement: "Hz"
icon: mdi:sine-wave
register_type: holding #or register_type: read
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: imeon
id: AC_Grid_current
name: "Courant du réseau AC"
address: 0x0118 # Courant du réseau CA, AC Grid current
unit_of_measurement: "A"
icon: mdi:sine-wave
register_type: holding #or register_type: read
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: imeon
id: Maximum_grid_injection_power
name: "Puissance d'injection maximale du réseau"
address: 0x011C # Puissance d'injection maximale du réseau, Maximum grid injection power
unit_of_measurement: "W"
icon: mdi:sine-wave
register_type: holding #or register_type: read
value_type: S_DWORD
- platform: modbus_controller
modbus_controller_id: imeon
id: AC_Grid_power_factor
name: "Facteur de puissance du réseau AC"
address: 0x011E # Facteur de puissance du réseau AC, AC Grid power factor
icon: mdi:sine-wave
register_type: holding #or register_type: read
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.01
##########################
# AC OUTPUT - SORTIE AC #
##########################
- platform: modbus_controller
modbus_controller_id: imeon
id: AC_backup_output_voltage
name: "Tension Backup de sortie Onduleur"
address: 0x0200 # Tension de sortie AC, AC output voltage
unit_of_measurement: "V"
icon: mdi:sine-wave
register_type: holding #or register_type: read
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: imeon
id: AC_output_power
name: "Puissance Backup sortie Onduleur"
address: 0x0203 # Puissance de sortie CA L1(Depuis le connecteur de sortie CA de l'onduleur), AC output power(From AC output connector of inverter)
unit_of_measurement: "W"
icon: mdi:sine-wave
register_type: holding #or register_type: read
value_type: U_DWORD
- platform: modbus_controller
modbus_controller_id: imeon
id: AC_output_frequency
name: "Fréquence Backup sortie Onduleur"
address: 0x0211 # Fréquence de sortie AC, AC output frequency
unit_of_measurement: "Hz"
icon: mdi:sine-wave
register_type: holding #or register_type: read
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: imeon
id: AC_output_current
name: "Courant Backup sortie Onduleur"
address: 0x0212 # Courant de sortie AC, AC output current
unit_of_measurement: "V"
icon: phu:fronius-inverter-gen24
register_type: holding #or register_type: read
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
##########################
# Entrée/Sortie Batterie #
##########################
- platform: modbus_controller
modbus_controller_id: imeon
id: batterie_voltage
name: "Tension Batterie"
address: 0x0300
unit_of_measurement: "V"
icon: mdi:car-battery
register_type: holding #or register_type: read
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: imeon
id: batterie_courant_charge
name: "Courant de charge de la batterie"
address: 0x0301
unit_of_measurement: "A"
icon: mdi:car-battery
register_type: holding #or register_type: read
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: imeon
id: batterie_courant_decharge
name: "Courant de décharge de la batterie"
address: 0x0302
unit_of_measurement: "A"
icon: mdi:car-battery
register_type: holding #or register_type: read
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: imeon
id: batterie_etat_de_charge
name: "Batterie SOC (état de charge)"
address: 0x0303
unit_of_measurement: "%"
icon: mdi:car-battery
register_type: holding #or register_type: read
value_type: U_WORD
accuracy_decimals: 1
# filters:
# - multiply: 0.1
- platform: modbus_controller
modbus_controller_id: imeon
id: PV_puissance
name: "Production Panneaux Solaires"
address: 0x0400
unit_of_measurement: "W"
icon: mdi:solar-power-variant
register_type: holding #or register_type: read
value_type: U_DWORD
# accuracy_decimals: 1
# filters:
# - multiply: 0.001
- platform: modbus_controller
modbus_controller_id: imeon
id: tension_panneaux
name: "Tension Panneaux Solaires"
address: 0x040A
unit_of_measurement: "V"
icon: mdi:solar-power-variant
register_type: holding #or register_type: read
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
text_sensor:
- platform: wifi_info
ip_address:
name: ESP IP Address
ssid:
name: ESP Connected SSID
bssid:
name: ESP Connected BSSID
mac_address:
name: ESP Mac Wifi Address
scan_results:
name: ESP Latest Scan Results
- platform: modbus_controller
modbus_controller_id: imeon
name: "numero de série"
id: numero_de_serie
internal: true
register_type: holding
address: 0x0001
register_count: 4
raw_encode: HEXBYTES
response_size: 8
tu me dis si cela fonctionne
Bonjour,
Merci pour le code.
J’ai mis sur un ESP32 Mais je n ai pas d infos de l’onduleur.
peut être un souci sur le câblage.
dans le code il y a :
modbus:
send_wait_time: 1000ms
flow_control_pin: 5
id: modbus1
La pin 5 elle doit etre câbler a quel endroit car moi j ai rien dessus
Merci d’avance pour votre réponse
Bonsoir,
la pin 5 n’est pas câblée ( fonctionnement interne)
par contre il te faut un :
TTL vers RS485 Module bilatéral RS485 vers TTL Module de conversion série du port UART 3.3 / 5V Signal d’alimentation
tu le trouve sur amazon, aliexpress, bangood pour 3 à 5 €
pour le branchement sur imeon dis moi si tu arrive pas, je ne l’ai pas devant moi
J’ai aussi le module
RS485 TTL
pour le branchement
je suis partie du rs485A de l’onduleur
RJ45 pin1 Vers la carte (485 TTL) en A
RJ45 Pin2 Vers la carte (485 TTL) en B
RJ45 Pin9 Vers la carte (485 TTL) en Masse
ensuite j alimente la carte 485/TTL avec l 'arduino
et TXD vers TXD
et RXDvers RXD
J ai aussi tester en croisant TXD et RXD
RE.
J ai réussi à avoir les infos de l onduleur
J ai repris depuis le début.
et je pense que le souci venais de la configuration de base de l’esp32.( qui avait été mis par défaut dans esphome de home assistant.)
J ai bien sélectionné le bon type d’esp32 en manuelle
J ai refait tout mon câblage en cas ou.
Et la impec ca fonctionne.
Je te remerci en tout cas pour l’aide que tu m’as apporté
bonne soirée a toi
content que cela fonctionne
bonne journée
par contre
j ai des incohérence entre les actualisations
exemple % de Batteries passe de 75 % à 44 475 %
et productions panneaux solaire de 0W à 35 505 856 W
et pour le moment j arrive pas à intégrer les valeur pour le module energie de home assistant
bonjour,
j’ai eu le même problème, il m’a fallu créer des capteurs ( templates)
je retrouve ça et te recontacte
re,
sui ce lien:
'Recupérer la valeur d'un compteur a n-1 - #6 par frnchfrgg
frnchfrgg m’avait trouver la solution
voici le code pour import panneaux solaires
template:
- sensor:
- name: Puissance Sortie Onduleur en W
unit_of_measurement: "W"
device_class: "energy"
state_class: "measurement"
state: |
{%- set t = states('sensor.production_panneaux_solaires')|int(None) -%}
{%- if t == None or t > 3600 -%}
{%- set t = this.state|int(None) -%}
{%- endif -%}
{{ t }}
3600 est la puissance max de mes panneaux solaire
a+