From 32690dc1c90e5344edd9e0f8c82828ebb787bc28 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 28 Oct 2022 16:44:17 -0500 Subject: [PATCH] feat: additional mappings for io series models (#11) --- src/oralb_ble/parser.py | 21 ++++++++++++++++----- tests/test_parser.py | 8 ++++---- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/oralb_ble/parser.py b/src/oralb_ble/parser.py index 25d6672..da685fd 100644 --- a/src/oralb_ble/parser.py +++ b/src/oralb_ble/parser.py @@ -37,7 +37,7 @@ class OralBBinarySensor(StrEnum): class Models(Enum): - IOSeries7 = auto() + IOSeries78 = auto() IOSeries4 = auto() SmartSeries7000 = auto() SmartSeries9000 = auto() @@ -68,13 +68,14 @@ class ModelDescription: 2: "gum care", 3: "whiten", 4: "intense", + 5: "super sensitive", 8: "settings", } DEVICE_TYPES = { - Models.IOSeries7: ModelDescription( - device_type="IO Series 7", + Models.IOSeries78: ModelDescription( + device_type="IO Series 7/8", modes=IO_SERIES_MODES, ), Models.IOSeries4: ModelDescription( @@ -108,14 +109,24 @@ class ModelDescription: 116: "transport", } -PRESSURE = {114: "normal", 118: "button pressed", 178: "high"} +PRESSURE = { + 114: "normal", + 82: "normal", + 90: "power button pressed", + 86: "button pressed", + 56: "power button pressed", + 118: "button pressed", + 178: "high", + 146: "high", + 240: "high", +} ORALB_MANUFACTURER = 0x00DC BYTES_TO_MODEL = { - b"\x062k": Models.IOSeries7, + b"\x062k": Models.IOSeries78, b"\x074\x0c": Models.IOSeries4, b"\x03!\x0c": Models.SmartSeries9000, } diff --git a/tests/test_parser.py b/tests/test_parser.py index 9762f9f..8fdf4fc 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -551,11 +551,11 @@ def test_io_series_7(): service_info = ORALB_IO_SERIES_7 result = parser.update(service_info) assert result == SensorUpdate( - title="IO Series 7 48BE", + title="IO Series 7/8 48BE", devices={ None: SensorDeviceInfo( - name="IO Series 7 48BE", - model="IO Series 7", + name="IO Series 7/8 48BE", + model="IO Series 7/8", manufacturer="Oral-B", sw_version=None, hw_version=None, @@ -757,7 +757,7 @@ def test_io_series_4(): DeviceKey(key="pressure", device_id=None): SensorValue( device_key=DeviceKey(key="pressure", device_id=None), name="Pressure", - native_value="unknown " "pressure " "56", + native_value="power button pressed", ), }, binary_entity_descriptions={