forked from gtdiehl/iotawattpy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.py
56 lines (42 loc) · 1.57 KB
/
example.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import argparse
import asyncio
import logging
import sys
import time
from ted6000py import Ted6000Service
from httpx import AsyncClient
LOOP = asyncio.get_event_loop()
logging.basicConfig(level="INFO")
class Tester:
def __init__(self, ip_addr, username, password):
self._ip_addr = ip_addr
self._username = username
self._password = password
async def run(self):
self.session = AsyncClient()
self.ted = Ted6000Service(
"ted", self._ip_addr, self.session, self._username, self._password
)
"""Log current TED6000 Config:"""
config = await self.ted.pullConfig()
logging.info("%s", str(config))
"""Poll TED6000 for Data"""
while True:
logging.info("=============================================")
reports = await self.ted.pullReports()
logging.info("\n".join(str(e) for e in reports))
logging.info("=============================================")
time.sleep(5)
def main(argv):
my_parser = argparse.ArgumentParser(description="Run the TED6000 tester")
my_parser.add_argument(
"IPAddress", metavar="IP Address", type=str, help="IP Address of TED6000"
)
my_parser.add_argument("-u", metavar="Username", type=str, help="Username")
my_parser.add_argument("-p", metavar="Password", type=str, help="Password")
args = my_parser.parse_args()
logging.info("Started")
test = Tester(args.IPAddress, args.u, args.p)
LOOP.run_until_complete(test.run())
if __name__ == "__main__":
main(sys.argv[1:])