modbus - 带 MODBUS 的家庭助理

标签 modbus modbus-tcp home-automation home-assistant

将 MODBUS 安装与 Home Assistant 集成

Gavazzi 中的 MODBUS Controller SH2WEB24

Home Assistant Configuration.yaml:

modbus:
  name: SmartHouse
  type: tcp
  host: <my_ip_addr>
  port: 502

# SmartHouse Functions
switch:
  platform: modbus
  scan_interval: 10
  registers:
    - name: test1
      hub: SmartHouse
      slave: 1
      register: 352
      command_on: 1
      command_off: 0

# SmartHouse Convert to light
light:
  - platform: switch
    name: Light_test1
    entity_id: switch.test1

在 Home Assistant 启动日志中,我们看到这个错误:

Logger: pymodbus.client.sync Source: /usr/local/lib/python3.8/site-packages/pymodbus/client/sync.py:214 First occurred: 10:40:02 (1 occurrences) Last logged: 10:40:02

Connection to (<my_ip_addr>, 502) failed: [Errno 111] Connection refused

当与 Gavazzi (windows) 软件一起使用时,modbus Controller 工作正常。 在该软件中,只需指定 IP 和端口,无需其他凭据。 那么,为什么 Home Assistant 会出现“连接被拒绝”错误?

最佳答案

成功了。

关键是在 SHTOOL 软件中启用模式:在项目设置/通信中启用“Modbus TCP/IP”

还必须创建模式映射: Modbus/Modbus 映射:单击一个灯泡,将其展开并单击“v”图标以启用映射。您也可以对所有实体执行此操作,以将它们全部映射到 modbus。

注意“使用地址”字段。这很重要,将用作下面的“寄存器”值(参见 **)。 此列表可以通过“将 modbus 另存为 CSV”导出到 ckv

转到家庭助理 如果您还没有这样做,请启用“文件编辑器”。 看这个link了解更多信息

现在编辑配置文件:单击左侧 Pane 中的“文件编辑器”。 寻找/config/configuration.yaml

然后添加这些条目:

modbus:
  name: SmartHouse
  type: tcp
  host: <your smart house IP>
  port: 502

# SmartHouse Functions
switch:
  platform: modbus
  scan_interval: 10
  registers:
    - name: light1
      hub: SmartHouse
      slave: 1
      register: <register as noted above **>
      command_on: 1
      command_off: 0

# SmartHouse Convert to light
light:
  - platform: switch
    name: light1
    entity_id: light1

基本上就是这样。现在您可以使用此灯,例如在仪表板中。 转到仪表板,对其进行编辑并添加灯光。 您可以单击它进行切换,还可以查看状态。

关于modbus - 带 MODBUS 的家庭助理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65825430/

相关文章:

python - Pymodbus – 监听 PLC 设备上的输入变化

c - 如何在Digi Module Connect me 9210中实现Modbus RTU Master

c++ - 具有多个从属 ID 的 modbus tcp 客户端服务器

modbus - 自动发现网络中 modbus 设备的从站 ID

python - pymodbus:从 Modbus 设备读取字符串和多种类型的数据时出现问题

sockets - Modbus TCP :Is there any better way for reading registers randomly one or more?

ruby - 将 Ruby 脚本从 Linux 盒子发送到远程 mac mini 以打开和关闭应用程序

python - 用 C 解释来自 Modbus ASCII 的数据

javascript - 在 Apple HomeKit 中使用 Node-Red 将电量使用情况显示为温度