xiaomi: fix wake method for midr doorbells - #2373
Open
kugaevsky wants to merge 1 commit into
Open
Conversation
The generic "wakeup" RPC times out on midr.cateye.sd400 (Xiaomi Smart Doorbell 4 Pro) — the device never acks it. These models wake with the "wakeup_host" method and empty params instead. Other cateye doorbells keep the previous "wakeup" call to avoid regressions.
kugaevsky
force-pushed
the
xiaomi-wake-method
branch
from
July 21, 2026 06:53
2c3ba96 to
9f1bb48
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
xiaomi: fix wake method for midr doorbells
Problem
Battery doorbells are woken with a cloud RPC before connecting. The current
call uses
method: "wakeup"for every.cateye.model:On
midr.cateye.sd400(Xiaomi Smart Doorbell 4 Pro) this method times out —the device never acks it, so the wake is a no-op and the following P2P connect
fails until the device happens to be awake.
Evidence
Same account/did, back to back against
home/rpc/{did}:wakeup{"video":"1"}code: -3, message: timeoutwakeup_host{}code: 0, message: ok, result: ["ok"]Fix
Select the wake method per model.
midr.*doorbells usewakeup_hostwithempty params; other
.cateye.models keep the previouswakeupcall (noregression for e.g.
loock.cateye.v02).Testing
Verified on real hardware (
midr.cateye.sd400): the old call times out, the newcall returns
okand the device wakes. Other models are unchanged.Only
midr.*is claimed as verified; the switch is easy to extend as otherfamilies are confirmed.