diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2022-12-18 05:35:54 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2022-12-18 05:35:54 +0300 |
commit | 5f34b77581355ed2e0f03a6eb7607e4c6d508e7e (patch) | |
tree | aab9c635d8a5336fb732bdd3f3237fe6d21392f5 /src/home/relay/sunxi_h3_client.py | |
parent | 9c5da6f50b850596cca867c1cca0dae17750dc1c (diff) |
pump_bot: rename modules, make it clear it works locally on sunxi h3 board
Diffstat (limited to 'src/home/relay/sunxi_h3_client.py')
-rw-r--r-- | src/home/relay/sunxi_h3_client.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/home/relay/sunxi_h3_client.py b/src/home/relay/sunxi_h3_client.py new file mode 100644 index 0000000..8c8d6c4 --- /dev/null +++ b/src/home/relay/sunxi_h3_client.py @@ -0,0 +1,39 @@ +import socket + + +class RelayClient: + def __init__(self, port=8307, host='127.0.0.1'): + self._host = host + self._port = port + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + def __del__(self): + self.sock.close() + + def connect(self): + self.sock.connect((self._host, self._port)) + + def _write(self, line): + self.sock.sendall((line+'\r\n').encode()) + + def _read(self): + buf = bytearray() + while True: + buf.extend(self.sock.recv(256)) + if b'\r\n' in buf: + break + + response = buf.decode().strip() + return response + + def on(self): + self._write('on') + return self._read() + + def off(self): + self._write('off') + return self._read() + + def status(self): + self._write('get') + return self._read() |