找回密码
 立即注册

微信扫码登录

搜索
查看: 223|回复: 3

[求助] 通过485接5路德力西电能表

[复制链接]

27

主题

310

回帖

2388

积分

金牌会员

积分
2388
金钱
2051
HASS币
0
发表于 4 天前 | 显示全部楼层 |阅读模式
本帖最后由 kaka0992 于 2025-9-4 08:47 编辑

电表用的德力西的ddsu6606
代码参考了这个https://bbs.hassbian.com/thread-19761-1-1.html,接单个电表没有问题,现在需要接5个电表,让AI帮忙写的修改版,刷上固件后一路都识别不了了,大神帮忙看看问题出在哪
substitutions:
  device_name: esp485

esphome:
  name: ${device_name}
  # platformio_options:
  #   board_build.flash_mode: dio
  #   board_build.mcu: esp32c3
esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: arduino

logger:

api:


ota:


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

web_server:
  port: 80

button:
  - platform: restart
    name: ${device_name}_reboot
  
time:
  - platform: sntp
    id: ${device_name}_time
  
uart:
  id: ${device_name}_uart
  rx_pin: 18
  tx_pin: 19
  baud_rate: 2400
  data_bits: 8
  stop_bits: 1
  parity: EVEN

modbus:
  id: ${device_name}_modbus
  send_wait_time: 200ms

modbus_controller:
  - id: ${device_name}_modbus_controller
    modbus_id: ${device_name}_modbus
    address: 0x01
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 10s

text_sensor:
  - platform: wifi_info
    ip_address:
      name: ${device_name}_ip
    mac_address:
      name: ${device_name}_mac

sensor:
  - platform: uptime
    name: ${device_name}_uptime
  - platform: wifi_signal
    name: ${device_name}_signal
    update_interval: 60s
 #当前电压
  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_u
    name: ${device_name}_u
    address: 0x0300
    register_count: 1
    unit_of_measurement: V
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    device_class: voltage
    filters:
    - multiply: 0.1
 #当前电流   
  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_i
    name: ${device_name}_i
    address: 0x0303
    register_count: 1
    unit_of_measurement: A
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: current
    filters:
      - multiply: 0.01
#瞬时A相有功功率
  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_s
    name: ${device_name}_s
    address: 0x0306
    register_count: 1
    unit_of_measurement: kW
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    filters:
      - multiply: 0.01
    device_class: power

  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_ep
    name: ${device_name}_ep
    address: 0x000A
    register_count: 2
    unit_of_measurement: kWh
    register_type: holding
    value_type: S_DWORD
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.01
      - median:
          window_size: 3
          send_every: 3



AI修改的5路版本

substitutions:
  device_name: esp32_485_5p
  # 定义5个电能表的名称
  meter1_name: "energy_meter_1"
  meter2_name: "energy_meter_2"
  meter3_name: "energy_meter_3"
  meter4_name: "energy_meter_4"
  meter5_name: "energy_meter_5"

esphome:
  name: ${device_name}

esp32:
  board: esp32-s3-devkitm-1
  framework:
    type: arduino

# 日志
logger:
  level: DEBUG

# WiFi
wifi:
  ssid: "8888"
  password: "8888"

# API 供 Home Assistant 使用
api:

# OTA 更新
ota:
  - platform: esphome

button:
  - platform: restart
    name: ${device_name}_reboot

time:
  - platform: sntp
    id: ${device_name}_time

# UART (RS485 转换) - 所有电表共享
uart:
  id: ${device_name}_uart
  tx_pin: 18  # TXD
  rx_pin: 19  # RXD
  baud_rate: 2400  # 根据电表实际波特率调整
  data_bits: 8
  stop_bits: 1
  parity: EVEN  # 电表常用偶校验

modbus:
  id: ${device_name}_modbus
  send_wait_time: 200ms

# 五路Modbus控制器,地址从0x01到0x05
modbus_controller:
  - id: ${meter1_name}_controller
    modbus_id: ${device_name}_modbus
    address: 0x01
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 10s

  - id: ${meter2_name}_controller
    modbus_id: ${device_name}_modbus
    address: 0x02
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 10s

  - id: ${meter3_name}_controller
    modbus_id: ${device_name}_modbus
    address: 0x03
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 10s

  - id: ${meter4_name}_controller
    modbus_id: ${device_name}_modbus
    address: 0x04
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 10s

  - id: ${meter5_name}_controller
    modbus_id: ${device_name}_modbus
    address: 0x05
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 10s

text_sensor:
  - platform: wifi_info
    ip_address:
      name: ${device_name}_ip
    mac_address:
      name: ${device_name}_mac

sensor:
  # 系统传感器
  - platform: uptime
    name: ${device_name}_uptime

  - platform: wifi_signal
    name: ${device_name}_signal
    update_interval: 60s

  # DHT11 温湿度
  - platform: dht
    pin: 13
    model: DHT11
    temperature:
      name: "${device_name} Temperature"
      accuracy_decimals: 1
    humidity:
      name: "${device_name} Humidity"
      accuracy_decimals: 1
    update_interval: 30s

  # 第一路电能表 (地址0x01)
  - platform: modbus_controller
    modbus_controller_id: ${meter1_name}_controller
    id: ${meter1_name}_u
    name: "${meter1_name}_voltage"
    address: 0x0300
    register_count: 1
    unit_of_measurement: V
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    device_class: voltage
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: ${meter1_name}_controller
    id: ${meter1_name}_i
    name: "${meter1_name}_current"
    address: 0x0303
    register_count: 1
    unit_of_measurement: A
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: current
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter1_name}_controller
    id: ${meter1_name}_s
    name: "${meter1_name}_power"
    address: 0x0306
    register_count: 1
    unit_of_measurement: kW
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: power
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter1_name}_controller
    id: ${meter1_name}_ep
    name: "${meter1_name}_energy"
    address: 0x000A
    register_count: 2
    unit_of_measurement: kWh
    register_type: holding
    value_type: S_DWORD
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.01
      - median:
          window_size: 3
          send_every: 3

  # 第二路电能表 (地址0x02)
  - platform: modbus_controller
    modbus_controller_id: ${meter2_name}_controller
    id: ${meter2_name}_u
    name: "${meter2_name}_voltage"
    address: 0x0300
    register_count: 1
    unit_of_measurement: V
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    device_class: voltage
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: ${meter2_name}_controller
    id: ${meter2_name}_i
    name: "${meter2_name}_current"
    address: 0x0303
    register_count: 1
    unit_of_measurement: A
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: current
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter2_name}_controller
    id: ${meter2_name}_s
    name: "${meter2_name}_power"
    address: 0x0306
    register_count: 1
    unit_of_measurement: kW
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: power
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter2_name}_controller
    id: ${meter2_name}_ep
    name: "${meter2_name}_energy"
    address: 0x000A
    register_count: 2
    unit_of_measurement: kWh
    register_type: holding
    value_type: S_DWORD
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.01
      - median:
          window_size: 3
          send_every: 3

  # 第三路电能表 (地址0x03)
  - platform: modbus_controller
    modbus_controller_id: ${meter3_name}_controller
    id: ${meter3_name}_u
    name: "${meter3_name}_voltage"
    address: 0x0300
    register_count: 1
    unit_of_measurement: V
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    device_class: voltage
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: ${meter3_name}_controller
    id: ${meter3_name}_i
    name: "${meter3_name}_current"
    address: 0x0303
    register_count: 1
    unit_of_measurement: A
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: current
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter3_name}_controller
    id: ${meter3_name}_s
    name: "${meter3_name}_power"
    address: 0x0306
    register_count: 1
    unit_of_measurement: kW
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: power
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter3_name}_controller
    id: ${meter3_name}_ep
    name: "${meter3_name}_energy"
    address: 0x000A
    register_count: 2
    unit_of_measurement: kWh
    register_type: holding
    value_type: S_DWORD
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.01
      - median:
          window_size: 3
          send_every: 3

  # 第四路电能表 (地址0x04)
  - platform: modbus_controller
    modbus_controller_id: ${meter4_name}_controller
    id: ${meter4_name}_u
    name: "${meter4_name}_voltage"
    address: 0x0300
    register_count: 1
    unit_of_measurement: V
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    device_class: voltage
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: ${meter4_name}_controller
    id: ${meter4_name}_i
    name: "${meter4_name}_current"
    address: 0x0303
    register_count: 1
    unit_of_measurement: A
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: current
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter4_name}_controller
    id: ${meter4_name}_s
    name: "${meter4_name}_power"
    address: 0x0306
    register_count: 1
    unit_of_measurement: kW
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: power
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter4_name}_controller
    id: ${meter4_name}_ep
    name: "${meter4_name}_energy"
    address: 0x000A
    register_count: 2
    unit_of_measurement: kWh
    register_type: holding
    value_type: S_DWORD
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.01
      - median:
          window_size: 3
          send_every: 3

  # 第五路电能表 (地址0x05)
  - platform: modbus_controller
    modbus_controller_id: ${meter5_name}_controller
    id: ${meter5_name}_u
    name: "${meter5_name}_voltage"
    address: 0x0300
    register_count: 1
    unit_of_measurement: V
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    device_class: voltage
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: ${meter5_name}_controller
    id: ${meter5_name}_i
    name: "${meter5_name}_current"
    address: 0x0303
    register_count: 1
    unit_of_measurement: A
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: current
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter5_name}_controller
    id: ${meter5_name}_s
    name: "${meter5_name}_power"
    address: 0x0306
    register_count: 1
    unit_of_measurement: kW
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: power
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${meter5_name}_controller
    id: ${meter5_name}_ep
    name: "${meter5_name}_energy"
    address: 0x000A
    register_count: 2
    unit_of_measurement: kWh
    register_type: holding
    value_type: S_DWORD
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.01
      - median:
          window_size: 3
          send_every: 3


回复

使用道具 举报

2

主题

147

回帖

2121

积分

金牌会员

积分
2121
金钱
1972
HASS币
0
发表于 3 天前 | 显示全部楼层
代码看起来没问题,看看日志,检查一下接线
回复

使用道具 举报

11

主题

66

回帖

1603

积分

金牌会员

积分
1603
金钱
1526
HASS币
0
发表于 3 天前 | 显示全部楼层
先写一个,接一个电表,OK后再增加
回复

使用道具 举报

27

主题

310

回帖

2388

积分

金牌会员

积分
2388
金钱
2051
HASS币
0
 楼主| 发表于 3 天前 | 显示全部楼层
adamjensen 发表于 2025-9-4 14:01
代码看起来没问题,看看日志,检查一下接线

    update_interval: 10s
这个时间要修改下每个错开
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-9-7 05:13 , Processed in 0.100056 second(s), 8 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表