From ad34a4b2d2807e8b58cccffe839b553fef5377b9 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Tue, 26 Apr 2022 17:03:18 -0600 Subject: [PATCH] Add bosminer API module --- .gitignore | 2 ++ bosminer.py | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 bosminer.py diff --git a/.gitignore b/.gitignore index 4a8da09..c9c3ab3 100644 --- a/.gitignore +++ b/.gitignore @@ -101,3 +101,5 @@ ENV/ # Editor *.swp *.swo + +out.txt diff --git a/bosminer.py b/bosminer.py new file mode 100644 index 0000000..a98f393 --- /dev/null +++ b/bosminer.py @@ -0,0 +1,41 @@ +import asyncio +import json + +async def bosminer_cmd(host, command, param=None): + reader, writer = await asyncio.open_connection(host, 4028) + + payload = dict(command=command) + if param: + payload['parameter'] = param + + message = json.dumps(payload) + writer.write(message.encode()) + await writer.drain() + data = await reader.readuntil(separator=b'\00') + writer.close() + await writer.wait_closed() + + return data[:-1].decode() + +async def test(): + import sys + + if len(sys.argv) == 3: + cmd = sys.argv[1] + param = sys.argv[2] + if len(sys.argv) == 2: + cmd = sys.argv[1] + param = None + else: + cmd = 'temps' + param = None + + res = await bosminer_cmd('192.168.69.4', cmd, param) + j = json.loads(res) + print(json.dumps(j, indent=4)) + + +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(test()) + loop.close()