我找到了一个有效的解决方案,但我没有从中继模块获得反馈。
我用python写了一个脚本,它使用mobuspy,并通过homeassistant中的一个按钮通过命令行调用。
我的文件调用8o.py,id rs485是7。
我的python脚本:
#!/usr/bin/python
#---------------------------------------------------------------------------# # 进口各种服务器实现 #---------------------------------------------------------------------------# 从进口ModbusTcpClient pymodbus.client.sync ModbusClient #从pymodbus.client.sync进口ModbusSerialClient pymodbus ModbusClient。事务ModbusRtuFramer作为ModbusFramer导入 #---------------------------------------------------------------------------# # 配置客户端日志 #---------------------------------------------------------------------------# 导入日志导入系统# parametros de entrada继电器= int (sys.argv [1]) int value = (sys.argv [2])Modbus . basicconfig () log = logging.getLogger() log. setlevel (logging.DEBUG) #Define Modbus Target Device client = ModbusClient(host='192.168.1.10',port=502) connection = client.connect() print (connection) # send write command to Modbus server #600= off 300 = on register_value = client。write_register(继电器、价值、单位= 7)client.close () #---------------------------------------------------------------------------#
在configuration.yaml:
- 平台:command_line.
开关:
switch_1:
command_on:'python3 / config/8o.py 1 300'
command_off:'python3 / config/8o.py 1 600'