add support for quadruple button events for xiaomi-ble (#142760)

* bump xiaomi-ble to 0.36.0

* fix ruff

* fix ruff

* revert dependency bump
This commit is contained in:
Ernst Klamer 2025-04-12 20:18:26 +02:00 committed by GitHub
parent f13bdd0da4
commit 06d6155862
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 19 additions and 0 deletions

View File

@ -37,6 +37,7 @@ LOCK_FINGERPRINT = "lock_fingerprint"
MOTION_DEVICE: Final = "motion_device" MOTION_DEVICE: Final = "motion_device"
DOUBLE_BUTTON: Final = "double_button" DOUBLE_BUTTON: Final = "double_button"
TRIPPLE_BUTTON: Final = "tripple_button" TRIPPLE_BUTTON: Final = "tripple_button"
QUADRUPLE_BUTTON: Final = "quadruple_button"
REMOTE: Final = "remote" REMOTE: Final = "remote"
REMOTE_FAN: Final = "remote_fan" REMOTE_FAN: Final = "remote_fan"
REMOTE_VENFAN: Final = "remote_ventilator_fan" REMOTE_VENFAN: Final = "remote_ventilator_fan"
@ -48,6 +49,7 @@ BUTTON_PRESS_LONG: Final = "button_press_long"
BUTTON_PRESS_DOUBLE_LONG: Final = "button_press_double_long" BUTTON_PRESS_DOUBLE_LONG: Final = "button_press_double_long"
DOUBLE_BUTTON_PRESS_DOUBLE_LONG: Final = "double_button_press_double_long" DOUBLE_BUTTON_PRESS_DOUBLE_LONG: Final = "double_button_press_double_long"
TRIPPLE_BUTTON_PRESS_DOUBLE_LONG: Final = "tripple_button_press_double_long" TRIPPLE_BUTTON_PRESS_DOUBLE_LONG: Final = "tripple_button_press_double_long"
QUADRUPLE_BUTTON_PRESS_DOUBLE_LONG: Final = "quadruple_button_press_double_long"
class XiaomiBleEvent(TypedDict): class XiaomiBleEvent(TypedDict):

View File

@ -47,6 +47,8 @@ from .const import (
LOCK_FINGERPRINT, LOCK_FINGERPRINT,
MOTION, MOTION,
MOTION_DEVICE, MOTION_DEVICE,
QUADRUPLE_BUTTON,
QUADRUPLE_BUTTON_PRESS_DOUBLE_LONG,
REMOTE, REMOTE,
REMOTE_BATHROOM, REMOTE_BATHROOM,
REMOTE_FAN, REMOTE_FAN,
@ -123,6 +125,12 @@ EVENT_TYPES = {
DIMMER: ["dimmer"], DIMMER: ["dimmer"],
DOUBLE_BUTTON: ["button_left", "button_right"], DOUBLE_BUTTON: ["button_left", "button_right"],
TRIPPLE_BUTTON: ["button_left", "button_middle", "button_right"], TRIPPLE_BUTTON: ["button_left", "button_middle", "button_right"],
QUADRUPLE_BUTTON: [
"button_left",
"button_mid_left",
"button_mid_right",
"button_right",
],
ERROR: ["error"], ERROR: ["error"],
FINGERPRINT: ["fingerprint"], FINGERPRINT: ["fingerprint"],
LOCK: ["lock"], LOCK: ["lock"],
@ -205,6 +213,11 @@ TRIGGER_MODEL_DATA = {
event_types=EVENT_TYPES[TRIPPLE_BUTTON], event_types=EVENT_TYPES[TRIPPLE_BUTTON],
triggers=TRIGGERS_BY_TYPE[BUTTON_PRESS_DOUBLE_LONG], triggers=TRIGGERS_BY_TYPE[BUTTON_PRESS_DOUBLE_LONG],
), ),
QUADRUPLE_BUTTON_PRESS_DOUBLE_LONG: TriggerModelData(
event_class=EVENT_CLASS_BUTTON,
event_types=EVENT_TYPES[QUADRUPLE_BUTTON],
triggers=TRIGGERS_BY_TYPE[BUTTON_PRESS_DOUBLE_LONG],
),
ERROR: TriggerModelData( ERROR: TriggerModelData(
event_class=EVENT_CLASS_ERROR, event_class=EVENT_CLASS_ERROR,
event_types=EVENT_TYPES[ERROR], event_types=EVENT_TYPES[ERROR],
@ -261,6 +274,8 @@ MODEL_DATA = {
"XMWXKG01YL": TRIGGER_MODEL_DATA[DOUBLE_BUTTON_PRESS_DOUBLE_LONG], "XMWXKG01YL": TRIGGER_MODEL_DATA[DOUBLE_BUTTON_PRESS_DOUBLE_LONG],
"K9B-2BTN": TRIGGER_MODEL_DATA[DOUBLE_BUTTON_PRESS_DOUBLE_LONG], "K9B-2BTN": TRIGGER_MODEL_DATA[DOUBLE_BUTTON_PRESS_DOUBLE_LONG],
"K9B-3BTN": TRIGGER_MODEL_DATA[TRIPPLE_BUTTON_PRESS_DOUBLE_LONG], "K9B-3BTN": TRIGGER_MODEL_DATA[TRIPPLE_BUTTON_PRESS_DOUBLE_LONG],
"KS1": TRIGGER_MODEL_DATA[QUADRUPLE_BUTTON_PRESS_DOUBLE_LONG],
"KS1BP": TRIGGER_MODEL_DATA[QUADRUPLE_BUTTON_PRESS_DOUBLE_LONG],
"YLYK01YL": TRIGGER_MODEL_DATA[REMOTE], "YLYK01YL": TRIGGER_MODEL_DATA[REMOTE],
"YLYK01YL-FANRC": TRIGGER_MODEL_DATA[REMOTE_FAN], "YLYK01YL-FANRC": TRIGGER_MODEL_DATA[REMOTE_FAN],
"YLYK01YL-VENFAN": TRIGGER_MODEL_DATA[REMOTE_VENFAN], "YLYK01YL-VENFAN": TRIGGER_MODEL_DATA[REMOTE_VENFAN],

View File

@ -86,6 +86,8 @@
"trigger_type": { "trigger_type": {
"button": "Button \"{subtype}\"", "button": "Button \"{subtype}\"",
"button_left": "Button Left \"{subtype}\"", "button_left": "Button Left \"{subtype}\"",
"button_mid_left": "Button Mid Left \"{subtype}\"",
"button_mid_right": "Button Mid Right \"{subtype}\"",
"button_middle": "Button Middle \"{subtype}\"", "button_middle": "Button Middle \"{subtype}\"",
"button_right": "Button Right \"{subtype}\"", "button_right": "Button Right \"{subtype}\"",
"button_on": "Button On \"{subtype}\"", "button_on": "Button On \"{subtype}\"",