python控制网络继电器

发布时间 2023-03-22 21:15:33作者: 前方、有光
import socket


def open_door(rely_host="", rely_port=12345, channel_id=0, timeout=5):
    try:
        client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        client.settimeout(0.5)
        client.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        client.connect((rely_host, rely_port))
        print(f"控制继电器通道{channel_id}开端口发送吸合发送:AT+STACH{channel_id}=1,{timeout}\\r\\n")
        cmd = f"AT+STACH{channel_id}=1,{timeout}\r\n"
        client.send(cmd.encode())
        print(client.recv(BUFF_SIZE).decode())
    except Exception as e:
        print(e)
        raise
    else:
        client.close()
        print("Socket关闭")


if __name__ == '__main__':
    """
    数据库逻辑微调
    1. 继电器初始化配置
    2. 继电器开启超时时间
    3. MQTT仅支持低版本
    """
    HOST = "192.168.2.199"
    PORT = 12345
    BUFF_SIZE = 1024
    open_door(rely_host=HOST, rely_port=PORT, channel_id=1, timeout=3)