@mega-yfue/eufy-sdk / DeviceActionMap
Interface: DeviceActionMap
The typed action surface, keyed by the camelCased capability id (the fluent accessor name).
THE projection point for actions: adding a capability with an actions() factory = add its typed-actions import above + one line here. device.ts and the client stay capability-agnostic — the fluent dev.ptz() accessors are derived from this map (CapabilityAccessors), so nothing outside a capability file names a capability.
A key here MUST match camelCase(module.capability) for the runtime accessor install to line up with the type. (Only capabilities whose module defines actions() appear.)
Properties
arming
arming: ArmingActions;Guard mode: setMode(ArmingMode) + setAlarmDelayConfig(mode, config). Of the 8 ArmingMode values only away/home/disarmed are confirmed on-device.
audio
audio: AudioActions;Audio/volume (family-gated): mic, speaker + volume, in-video recording, doorbell ringtone, HomeBase alarm/prompt.
battery
battery: BatteryActions;Battery/power: power source, working mode, and the custom-mode clip/interval/auto-stop settings.
camera
camera: CameraActions;Camera: on/off, privacy, status LED; snapshot/live/record when bound to a live client.
co
co: CoActions;CO-detector reads (read-only): coDetected, lastSeen.
contact
contact: ContactActions;Entry (door/window) sensor: reads open, lastSeen, rssi, alarmSoundType, alarmVolume; writes setAlarmSoundType, setAlarmVolume (present when the sensor reports the alarm params).
doorbell
doorbell: DoorbellActions;Doorbell: playQuickResponse(voiceId) (the canned voice replies).
info
info: DeviceInfo;Identity metadata (read-only): { manufacturer, model, serialNumber, name, deviceType?, firmwareVersion?, hardwareVersion? }.
keypad
keypad: KeypadActions;Security-keypad reads (read-only): rssi.
leak
leak: LeakActions;Water-leak / freeze sensor reads (read-only): leakDetected, lastSeen.
light
light: LightActions;Floodlight/spotlight: on/off/set, setBrightness/setColorTemp/setEnabled, setAutoSpotlight.
locate
locate: LocateActions;RoboVac locate (find-robot beep): locating; locate(on?).
lock
lock: LockActions;Smart lock: lock()/unlock() + verified setRainMode/setAutoLock. The 6 source-confirmed-but-uncaptured setting toggles are ABSENT until captured (present method ⇒ wire verified).
motion
motion: MotionActions;Motion/PIR: setDetection(on) (sensitivity is read-only until its write wire is captured).
ptz
ptz: PtzActions;Pan/tilt/zoom control: rotate(dir, step) + left/right/up/down, zoom, preset() namespace (goto/preview/save/setDefault/delete/list/image).
rtsp
rtsp: RtspActions;RTSP publish for a NAS/NVR: publish/withdraw + published, requireAuth/allowAnonymous, recordingMode/setRecordingMode. One camera at a time per station.
siren
siren: SirenActions;Siren: reads active, volume, alarmDuration, doNotDisturb; writes setVolume, setAlarmDuration, test, stop (config setters present when the param is reported). No direct "sound the alarm" wire — a real alarm is driven by the arming system; test is the on-demand trigger.
smartLight
smartLight: SmartLightActions;eufy_life smart light (T8L0x): on/off, setBrightness, T8L02 setColor, setEffect(lightId).
smoke
smoke: SmokeActions;Smoke-detector reads (read-only): smokeDetected, lastSeen.
suction
suction: SuctionActions;RoboVac suction: level, boostIq, supportedLevels; setSuctionLevel, setBoostIq.
vacuumClean
vacuumClean: VacuumCleanActions;RoboVac core state and controls: power, activity (WorkStatus), volume, battery, cleanType; setPower, startCleaning, returnToDock, pauseCleaning.
vacuumDock
vacuumDock: VacuumDockActions;RoboVac Omni dock controls: emptyDust, washMops, dryMops; raw dockState unexposed until wire confirmed.