Improve appliance import

This commit is contained in:
Andre Basche 2023-06-28 19:42:21 +02:00
parent 2a6b040193
commit 52837f16e3
3 changed files with 14 additions and 6 deletions

View file

@ -1,5 +1,6 @@
import importlib
import logging
import re
from datetime import datetime, timedelta
from pathlib import Path
from typing import Optional, Dict, Any, TYPE_CHECKING, List
@ -69,9 +70,9 @@ class HonAppliance:
return default
def _check_name_zone(self, name: str, frontend: bool = True) -> str:
middle = " Z" if frontend else "_z"
zone = " Z" if frontend else "_z"
if (attribute := self._info.get(name, "")) and self._zone:
return f"{attribute}{middle}{self._zone}"
return f"{attribute}{zone}{self._zone}"
return attribute
@property
@ -88,7 +89,11 @@ class HonAppliance:
@property
def unique_id(self) -> str:
return self._check_name_zone("macAddress", frontend=False)
default_mac = "xx-xx-xx-xx-xx-xx"
import_name = f"{self.appliance_type.lower()}_{self.appliance_model_id}"
result = self._check_name_zone("macAddress", frontend=False)
result = result.replace(default_mac, import_name)
return result
@property
def model_name(self) -> str:
@ -100,7 +105,10 @@ class HonAppliance:
@property
def nick_name(self) -> str:
return self._check_name_zone("nickName")
result = self._check_name_zone("nickName")
if not result or re.findall("^[xX\s]+$", result):
return self.model_name
return result
@property
def code(self) -> str:

View file

@ -29,7 +29,7 @@ def anonymize_data(data: str) -> str:
for match in re.findall(f'"{sensible}.*?":\\s"?(.+?)"?,?\\n', data):
replace = re.sub("[a-z]", "x", match)
replace = re.sub("[A-Z]", "X", replace)
replace = re.sub("\\d", "0", replace)
replace = re.sub("\\d", "1", replace)
data = data.replace(match, replace)
return data

View file

@ -7,7 +7,7 @@ with open("README.md", "r") as f:
setup(
name="pyhOn",
version="0.14.2",
version="0.14.3",
author="Andre Basche",
description="Control hOn devices with python",
long_description=long_description,