我找到了一个有效的解决方案,但我没有从继电器模块中获得反馈。
我在Python中写了一个脚本,该脚本使用了Mobuspy,并通过命令行中的HomeasSistantt中的按钮调用。
我的文件调用8o.py,ID RS485为7。
我在Python中的scripy:
#!/usr/bin/python
#-----------------------------------------------------------------------------------------------------------------##导入各种服务器实现#-------------------------------------------------------------------------------------------------------------------------------------# from pymodbus.client.sync import ModbusTcpClient as ModbusClient # from pymodbus.client.sync import ModbusSerialClient as ModbusClient from pymodbus.transaction import ModbusRtuFramer as ModbusFramer #----------------------------------------------------------------------------------------------------------------##配置客户端记录#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#导入记录导入sys#parametros de entrada pray = int(sys.argv [1])value = int(sys.argv [2])loggging.basicconfig()log = logging.getLogger()logselevel(logging.debug)#define #define #define #definemodbus target设备client = modBusClient(host ='192.168.1.10',port = 502)connection = client.connect()print(Connection(connection)#将写入命令发送到modbus Server#600 = off 300 = off 300 = on Register_value = client.write.write.register.write.register(继电器,价值E,单位= 7)客户端()#-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
在configuration.yaml中:
- 平台:command_line
开关:
switch_1:
command_on:‘python3 /config/8o.py 1 300'
command_off:‘python3 /config/8o.py 1 600'