@mega-yfue/eufy-sdk / LockActions
Type Alias: LockActions
type LockActions = Surface<typeof LOCK_MEMBERS>;Bound lock controls — the object returned by dev.lock().
Everything is DERIVED from LOCK_MEMBERS. lock/unlock drive every lock-family actuator over the wire its family takes: the shared ff09 frame on the T8531 video smart lock and the T85D0 garage door, the T8530 video lock's own set-payload, and the keyed-payload envelope on the classic Wi-Fi lock (the T8520-range unit that never negotiates a session key). The setting toggles ride ff09 only. This module emits ONE transport-neutral intent per wire (identity fields only, no wire bytes, no cipher, no routing key) and names no transport: the command sink routes P2P vs MQTT by the device's topology, and the chosen transport's command router builds the frame + envelope and re-resolves its own routing tail. Which pipe it is does not reach dev.lock() — its surface is identical either way, the same way P2P-vs-cloud is hidden for live media.
Classic Wi-Fi lock: lock() and unlock() are both confirmed on hardware — the bolt moved each way, the device answered result code 0, and the cloud status followed. That device answers every command, so on it the two reject on a refusal or an unanswered command as well as on missing identity.