Skip to content

Commit b2e1d22

Browse files
Add support for plug mini eu (#390)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent a5308d2 commit b2e1d22

File tree

5 files changed

+48
-0
lines changed

5 files changed

+48
-0
lines changed

switchbot/adv_parser.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,12 @@ class SwitchbotSupportedType(TypedDict):
343343
"func": process_light,
344344
"manufacturer_id": 2409,
345345
},
346+
"?": {
347+
"modelName": SwitchbotModel.PLUG_MINI_EU,
348+
"modelFriendlyName": "Plug Mini (EU)",
349+
"func": process_relay_switch_1pm,
350+
"manufacturer_id": 2409,
351+
},
346352
}
347353

348354
_SWITCHBOT_MODEL_TO_CHAR = {

switchbot/const/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ class SwitchbotModel(StrEnum):
9393
RELAY_SWITCH_2PM = "Relay Switch 2PM"
9494
STRIP_LIGHT_3 = "Strip Light 3"
9595
FLOOR_LAMP = "Floor Lamp"
96+
PLUG_MINI_EU = "Plug Mini (EU)"
9697

9798

9899
__all__ = [

switchbot/devices/relay_switch.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ def update_from_advertisement(self, advertisement: SwitchBotAdvertisement) -> No
128128
if self._model in (
129129
SwitchbotModel.RELAY_SWITCH_1PM,
130130
SwitchbotModel.RELAY_SWITCH_2PM,
131+
SwitchbotModel.PLUG_MINI_EU,
131132
):
132133
if channel is None:
133134
adv_data["voltage"] = self._get_adv_value("voltage") or 0

tests/test_adv_parser.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3366,6 +3366,19 @@ def test_humidifer_with_empty_data() -> None:
33663366
"Color Bulb",
33673367
SwitchbotModel.COLOR_BULB,
33683368
),
3369+
AdvTestCase(
3370+
b"\x94\xa9\x90T\x85^?\xa1\x00\x00\x04\xe6\x00\x00\x00\x00",
3371+
b"?\x00\x00\x00",
3372+
{
3373+
"isOn": True,
3374+
"power": 1254.0,
3375+
"sequence_number": 63,
3376+
"switchMode": True,
3377+
},
3378+
"?",
3379+
"Plug Mini (EU)",
3380+
SwitchbotModel.PLUG_MINI_EU,
3381+
),
33693382
],
33703383
)
33713384
def test_adv_active(test_case: AdvTestCase) -> None:
@@ -3520,6 +3533,19 @@ def test_adv_active(test_case: AdvTestCase) -> None:
35203533
"Color Bulb",
35213534
SwitchbotModel.COLOR_BULB,
35223535
),
3536+
AdvTestCase(
3537+
b"\x94\xa9\x90T\x85^?\xa1\x00\x00\x04\xe6\x00\x00\x00\x00",
3538+
None,
3539+
{
3540+
"isOn": True,
3541+
"power": 1254.0,
3542+
"sequence_number": 63,
3543+
"switchMode": True,
3544+
},
3545+
"?",
3546+
"Plug Mini (EU)",
3547+
SwitchbotModel.PLUG_MINI_EU,
3548+
),
35233549
],
35243550
)
35253551
def test_adv_passive(test_case: AdvTestCase) -> None:
@@ -3648,6 +3674,19 @@ def test_adv_passive(test_case: AdvTestCase) -> None:
36483674
"Color Bulb",
36493675
SwitchbotModel.COLOR_BULB,
36503676
),
3677+
AdvTestCase(
3678+
None,
3679+
b"?\x00\x00\x00",
3680+
{
3681+
"isOn": True,
3682+
"power": 1254.0,
3683+
"sequence_number": 63,
3684+
"switchMode": True,
3685+
},
3686+
"?",
3687+
"Plug Mini (EU)",
3688+
SwitchbotModel.PLUG_MINI_EU,
3689+
),
36513690
],
36523691
)
36533692
def test_adv_with_empty_data(test_case: AdvTestCase) -> None:

tests/test_relay_switch.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
(b";\x00\x00\x00", SwitchbotModel.RELAY_SWITCH_1),
1414
(b"<\x00\x00\x00", SwitchbotModel.RELAY_SWITCH_1PM),
1515
(b">\x00\x00\x00", SwitchbotModel.GARAGE_DOOR_OPENER),
16+
(b"?\x00\x00\x00", SwitchbotModel.PLUG_MINI_EU),
1617
]
1718

1819

0 commit comments

Comments
 (0)