Repository navigation
Conversation
…lineStatus and webhook doorState
…ok, fix deleteKey trailing space
…example deviceType
…iceId description
Open question: documented fields that were never observedThe following fields are documented but never appeared in any response or webhook from my devices. I have not removed them in this PR because absence alone is not proof. Could you confirm whether they should be removed, or whether the condition under which they are returned (firmware version, device configuration, trigger source) should be noted?
If any of these are confirmed obsolete I am happy to remove them in a follow-up commit. |
|
Pushed two more commits based on a new capture (2026-09-15/16, same devices):
No other differences from the documentation were found in the new capture. |
Based on logs from a Keypad Vision Pro (firmware V3.0) reported in hsakoh/switchbot-mqtt#121: status returns `version` and `battery`, and webhooks include `battery`.
|
Pushed one more commit (fc56c93): Keypad Vision Pro
Unlike the rest of this PR, this change is not based on my own captures. It comes from logs of a user's Keypad Vision Pro (firmware
According to the reporter, SwitchBot support (case #1363398) confirmed that The logs do not show which event the webhook with |
|
@hsakoh I will go over your commits. Thanks bro! |
Based on a status response from a Keypad Vision (firmware V2.5) reported in hsakoh/switchbot-mqtt#121: status returns `version` and `battery`. No webhook from this device was captured; `battery` is added to the webhook table to match Keypad Touch and Keypad Vision Pro.
|
@Minsheng Thanks for taking a look! I pushed one more commit (2abf09e): Keypad Vision
Like the Keypad Vision Pro commit (fc56c93), this is not based on my own captures. A user reported the status response of their Keypad Vision (firmware {"statusCode":100,"body":{"version":"V2.5","battery":98,"deviceId":"myserialnumber","deviceType":"Keypad Vision","hubDeviceId":"hubid"},"message":"success"}Only the status side was observed. No webhook from this device was captured, so the webhook |
Summary
I verified the documentation against actual API responses and webhook payloads captured from real devices (29 physical device types I own, covering device list, status polling, and webhook
changeReportevents), and fixed the differences that were directly observed.Methodology
GET /devices,GET /devices/{id}/status, and webhook payloads from real devices over roughly a day, plus targeted status polling.jammed, event-dependent fields such asoverload) were left untouched.Notable fixes
Smart Lock Ultra) and webhook (Lock Ultra) were documented the other way around;lockState/doorStatevalues corrected to the observed past-participle forms (unlocked/closed); missingonlineStatus(status) anddoorState(webhook) added.detectionState/pressfields. Observed payloads use nestedhumanEvent/ringEvent/motionEventobjects ({detectionType, eventTime, id, img}); the section was rewritten accordingly.WoCamKvs5mp, nestedmotionEvent/humanEvent); documented both and updated the support table.switch1Status/switch2Status(only the changed switch is included) andtimeOfSampleis present; the table/example were inconsistent with each other and with observed payloads.doorState,brightness) added.detected(lowercase, wasDetected), and the webhook example deviceType wasWoContact.voltage/power/usedElectricity/electricCurrent, always0since the device has no power monitoring.online(Boolean), which was undocumented; also added missing status fields (power,onlineStatus,colorTemperature) and fixed a wrong webhook example deviceType (RGBICWW Strip Light→RGBIC Wire Neon Rope Light).slidePositionis a number, not a String.chargingStatus/hubDeviceIdand wrongnightStatustype in the webhook table.batteryandversion. Observed webhooks include undocumentedkeyName/battery, and the"deleteKey "trailing space in the example was confirmed to be a typo.New device documentation
Outdoor PTC 3K; webhook deviceTypeW1156000with nestedhumanEvent/motionEvent.remote with screen(all lowercase); status returnsversion/battery/chargingStatus.body.deviceTypekey; status responds with an emptybody.All observed sample payloads were captured with SwitchBot API v1.1 on 2026-07-22/23 (JP region).