mirror of
https://github.com/mjg59/python-broadlink.git
synced 2024-11-14 03:20:14 +01:00
Add support for BG Electrical EHC31 (0x6480) (#784)
This commit is contained in:
parent
cacebe7f3c
commit
821820c61e
@ -13,7 +13,7 @@ from .hub import s3
|
|||||||
from .light import lb1, lb2
|
from .light import lb1, lb2
|
||||||
from .remote import rm, rm4, rm4mini, rm4pro, rmmini, rmminib, rmpro
|
from .remote import rm, rm4, rm4mini, rm4pro, rmmini, rmminib, rmpro
|
||||||
from .sensor import a1
|
from .sensor import a1
|
||||||
from .switch import bg1, mp1, mp1s, sp1, sp2, sp2s, sp3, sp3s, sp4, sp4b
|
from .switch import bg1, ehc31, mp1, mp1s, sp1, sp2, sp2s, sp3, sp3s, sp4, sp4b
|
||||||
|
|
||||||
SUPPORTED_TYPES = {
|
SUPPORTED_TYPES = {
|
||||||
sp1: {
|
sp1: {
|
||||||
@ -183,6 +183,9 @@ SUPPORTED_TYPES = {
|
|||||||
bg1: {
|
bg1: {
|
||||||
0x51E3: ("BG800/BG900", "BG Electrical"),
|
0x51E3: ("BG800/BG900", "BG Electrical"),
|
||||||
},
|
},
|
||||||
|
ehc31: {
|
||||||
|
0x6480: ("EHC31", "BG Electrical"),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -306,6 +306,62 @@ class bg1(Device):
|
|||||||
return state
|
return state
|
||||||
|
|
||||||
|
|
||||||
|
class ehc31(bg1):
|
||||||
|
"""Controls a BG Electrical smart extension lead."""
|
||||||
|
|
||||||
|
TYPE = "EHC31"
|
||||||
|
|
||||||
|
def set_state(
|
||||||
|
self,
|
||||||
|
pwr: bool = None,
|
||||||
|
pwr1: bool = None,
|
||||||
|
pwr2: bool = None,
|
||||||
|
pwr3: bool = None,
|
||||||
|
maxworktime1: int = None,
|
||||||
|
maxworktime2: int = None,
|
||||||
|
maxworktime3: int = None,
|
||||||
|
idcbrightness: int = None,
|
||||||
|
childlock: bool = None,
|
||||||
|
childlock1: bool = None,
|
||||||
|
childlock2: bool = None,
|
||||||
|
childlock3: bool = None,
|
||||||
|
childlock4: bool = None,
|
||||||
|
) -> dict:
|
||||||
|
"""Set the power state of the device."""
|
||||||
|
state = {}
|
||||||
|
if pwr is not None:
|
||||||
|
state["pwr"] = int(bool(pwr))
|
||||||
|
if pwr1 is not None:
|
||||||
|
state["pwr1"] = int(bool(pwr1))
|
||||||
|
if pwr2 is not None:
|
||||||
|
state["pwr2"] = int(bool(pwr2))
|
||||||
|
if pwr3 is not None:
|
||||||
|
state["pwr3"] = int(bool(pwr3))
|
||||||
|
if maxworktime1 is not None:
|
||||||
|
state["maxworktime1"] = maxworktime1
|
||||||
|
if maxworktime2 is not None:
|
||||||
|
state["maxworktime2"] = maxworktime2
|
||||||
|
if maxworktime3 is not None:
|
||||||
|
state["maxworktime3"] = maxworktime3
|
||||||
|
if idcbrightness is not None:
|
||||||
|
state["idcbrightness"] = idcbrightness
|
||||||
|
if childlock is not None:
|
||||||
|
state["childlock"] = int(bool(childlock))
|
||||||
|
if childlock1 is not None:
|
||||||
|
state["childlock1"] = int(bool(childlock1))
|
||||||
|
if childlock2 is not None:
|
||||||
|
state["childlock2"] = int(bool(childlock2))
|
||||||
|
if childlock3 is not None:
|
||||||
|
state["childlock3"] = int(bool(childlock3))
|
||||||
|
if childlock4 is not None:
|
||||||
|
state["childlock4"] = int(bool(childlock4))
|
||||||
|
|
||||||
|
packet = self._encode(2, state)
|
||||||
|
response = self.send_packet(0x6A, packet)
|
||||||
|
e.check_error(response[0x22:0x24])
|
||||||
|
return self._decode(response)
|
||||||
|
|
||||||
|
|
||||||
class mp1(Device):
|
class mp1(Device):
|
||||||
"""Controls a Broadlink MP1."""
|
"""Controls a Broadlink MP1."""
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user