3

将 MODBUS 安装与Home Assistant集成

Gavazzi SH2WEB24中的 MODBUS 控制器

家庭助理配置.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 启动日志中,我们看到此错误:

记录器:pymodbus.client.sync 来源:/usr/local/lib/python3.8/site-packages/pymodbus/client/sync.py:214 第一次发生:10:40:02(1 次) 最后记录:10: 40:02

连接到 (<my_ip_addr>, 502) 失败:[Errno 111] 连接被拒绝

与 Gavazzi (windows) 软件一起使用时,modbus 控制器工作正常。在该软件中,只需要指定 IP 和端口,不需要其他凭据。那么为什么会有一个“连接被拒绝”的错误从家庭助理解决呢?

4

1 回答 1

2

得到它的工作。

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

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

注意“使用地址”字段。这很重要,将用作下面的“注册”值(参见**)。这个列表可以通过“Save modbus as CSV”导出到ckv

如果您还没有这样做,请转到 Home Assistant 启用“文件编辑器”。有关更多信息,请参阅此链接

现在编辑配置文件:单击左侧窗格中的“文件编辑器”。寻找 /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

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

于 2021-01-21T23:00:11.117 回答