summaryrefslogtreecommitdiff
path: root/smart_home/tplink_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'smart_home/tplink_utils.py')
-rw-r--r--smart_home/tplink_utils.py22
1 files changed, 6 insertions, 16 deletions
diff --git a/smart_home/tplink_utils.py b/smart_home/tplink_utils.py
index 9b8eb6d..053ce33 100644
--- a/smart_home/tplink_utils.py
+++ b/smart_home/tplink_utils.py
@@ -24,10 +24,7 @@ limitations under the License.
import json
import logging
import os
-import re
import socket
-import subprocess
-import sys
import time
from struct import pack
from typing import Dict, List, Optional, Tuple
@@ -76,21 +73,14 @@ def tplink_command(command: str) -> bool:
return True
-@timeout(10.0, use_signals=False, error_message="Timed out waiting for tplink.py")
-def tplink_get_info(cmd: str) -> Optional[Dict]:
- logger.debug('Getting tplink device status via "%s"', cmd)
- try:
- out = subprocess.getoutput(cmd)
- logger.debug('RAW OUT> %s', out)
- out = re.sub("Sent:.*\n", "", out)
- out = re.sub("Received: *", "", out)
- info = json.loads(out)["system"]["get_sysinfo"]
+def tplink_get_info(ip: str, port: int = 9999) -> Optional[Dict]:
+ success, response = communicate_with_device(ip, port, commands['info'], quiet=True)
+ if success:
+ assert len(response) == 1
+ info = json.loads(response[0])["system"]["get_sysinfo"]
logger.debug("%s", json.dumps(info, indent=4, sort_keys=True))
return info
- except Exception as e:
- logger.exception(e)
- print(out, file=sys.stderr)
- return None
+ return None
def encrypt(string: str) -> bytes: