Skip to content

Commit

Permalink
Added human_readable_name for tags. build 0.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
sergeymaysak committed Oct 22, 2021
1 parent 4d635c2 commit 51b1559
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 4 deletions.
32 changes: 29 additions & 3 deletions test/mock/__init__.py
Expand Up @@ -15,7 +15,8 @@
"lux": 1000,
"cap": 36,
"batteryVolt": 3.05576890659684,
"LBTh": 2.55
"LBTh": 2.55,
"rev": 159,
}

BITS13 = {
Expand All @@ -33,7 +34,8 @@
"lux": 0,
"cap": 87,
"batteryVolt": 2.05576890659684,
"LBTh": 2.55
"LBTh": 2.55,
"rev": 111
}

WATERSENSOR = {
Expand All @@ -51,7 +53,8 @@
"lux": 0,
"cap": 87,
"batteryVolt": 3.05576890659684,
"LBTh": 2.55
"LBTh": 2.55,
"rev": 37,
}

PIRSENSOR = {
Expand Down Expand Up @@ -105,6 +108,29 @@
"batteryRemaining": 0.95
}

TAG_UNKNOWN = {
"managerName": "#manager_1",
"mac": "0D0D0D0D0D0D",
"slaveId": 1,
"name": "Kitchen",
"uuid": "fake-1111-2222-4444-111111111111",
"tagType": 15,
"rev": 175,
"version1": 2,
"ds18": False,
"v2flag": 18,
"batteryRemaining": 0.95,
"eventState": 0,
"tempEventState": 0,
"capEventState": 0,
"lightEventState": 0,
"temperature": 22.3912296295166,
"lux": 0,
"cap": 87,
"batteryVolt": 3.05576890659684,
"LBTh": 2.55,
}

LOGIN_RESPONSE = '''
{
"d": {
Expand Down
9 changes: 9 additions & 0 deletions test/test_platform.py
Expand Up @@ -90,6 +90,7 @@ def test_alspro_tag_binary_states(self):
self.assertFalse(tag.is_battery_low)
self.assertIsNotNone(str(tag))
self.assertIsNotNone(tag.tag_manager_mac)
self.assertIsNotNone(tag.human_readable_name)

def test_water_tag_binary_states(self):
"""Test avaiable binary states for als pro tag."""
Expand All @@ -105,6 +106,7 @@ def test_water_tag_binary_states(self):
self.assertFalse(tag.is_battery_low)
self.assertIsNotNone(str(tag))
self.assertIsNotNone(tag.tag_manager_mac)
self.assertIsNotNone(tag.human_readable_name)

def test_13bit_tag_binary_states(self):
"""Test avaiable binary states for als pro tag."""
Expand All @@ -120,6 +122,13 @@ def test_13bit_tag_binary_states(self):
self.assertTrue(tag.is_battery_low)
self.assertIsNotNone(str(tag))
self.assertIsNotNone(tag.tag_manager_mac)
self.assertIsNotNone(tag.human_readable_name)

def test_unknown_sensor_name(self):
"""Test avaiable binary states for als pro tag."""
tag = SensorTag(MOCK.TAG_UNKNOWN, self.platform, '0d0d0d0d0d0d')
self.assertEquals(tag.human_readable_name, "Tag type 15 rev.AF")


@requests_mock.mock()
def test_failed_login(self, m):
Expand Down
2 changes: 1 addition & 1 deletion wirelesstagpy/constants.py
Expand Up @@ -4,7 +4,7 @@
"""WirelessTags constants."""

MAJOR_VERSION = 0
MINOR_VERSION = 7
MINOR_VERSION = 8
PATCH_VERSION = 0

__version__ = '{}.{}.{}'.format(MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION)
Expand Down
17 changes: 17 additions & 0 deletions wirelesstagpy/sensortag.py
Expand Up @@ -259,6 +259,23 @@ def product_version(self) -> int:
"""Return product variation variation."""
return self.extract_last_bits(self.revision, 4)

@property
def human_readable_name(self):
"""Human readable tag name."""
names_map = {
13: "Tag w/13b Temperature",
26: "ALS Pro Tag",
32: "Water/Moisture Sensor",
42: "Outdoor Probe",
72: "PIR Sensor",
}

hw_revision = hex(self.hw_revision)[2:].upper()
if self.tag_type in names_map:
return f"{names_map[self.tag_type]} rev.{hw_revision}"

return f"Tag type {self.tag_type} rev.{hw_revision}"

@property
def outdoor_probe_has_ambient_temperature(self) -> bool:
"""Return if outdoor probe tag has ambient temperature."""
Expand Down

0 comments on commit 51b1559

Please sign in to comment.