Summary
Video Doorbell press events are no longer reported with press: true in changeReport.
Instead, they are now reported as motionEvent, even when the doorbell button is pressed.
This behavior started recently without any apparent API specification change.
Previous Behavior
When the doorbell button was pressed, the webhook event looked like this:
{
"eventType": "changeReport",
"eventVersion": "1",
"context": {
"battery": 100,
"deviceMac": "B0E9FE8C8FE5",
"deviceType": "Video Doorbell",
"press": true,
"timeOfSample": 1760880073690
}
}
The press: true field was included.
Current Behavior
Now, when the doorbell button is pressed, the webhook event looks like this:
{
"eventType": "changeReport",
"eventVersion": "1",
"context": {
"battery": 80,
"deviceMac": "B0E9FE8C8FE5",
"deviceType": "Video Doorbell",
"motionEvent": {
"detectionType": "motion",
"eventTime": 1774505288,
"id": "169d73cf-7932-44e5-a559-0bd5b5cd351b",
"img": "S3 image URL..."
},
"timeOfSample": 1774505290707
}
}
The press field is no longer included.
Instead, a motionEvent object is returned even when the doorbell button is pressed.
Expected Behavior
When the Video Doorbell button is pressed:
press: true should be included in changeReport, or
- the API documentation should clarify that doorbell press events are now delivered as
motionEvent.
Environment
- Device: Video Doorbell
- Webhook: changeReport event
- API: SwitchBot API
- Region: Japan
- Occurrence: Always reproducible when pressing the doorbell button
- Started: Recently (around March 2026)
Question
Is this an intended API behavior change?
If so, how should we distinguish between:
- doorbell button press
- motion detection
when both are delivered as motionEvent?
Additional Information
The API documentation and repository do not mention this change, so clarification would be appreciated.
Expected Behavior
When the Video Doorbell button is pressed, the changeReport event should include press: true.
Alternatively, the API documentation should clearly describe that doorbell press events are now delivered as motionEvent and explain how to distinguish them from motion detection.
Steps To Reproduce
- Register a webhook for changeReport
- Press the Video Doorbell button
- Receive webhook event
- Check the context field
- press is not included and motionEvent is returned instead
Logs
### Previous webhook log (doorbell press)
[2025-10-19 13:21:13] Received: {
"eventType": "changeReport",
"eventVersion": "1",
"context": {
"battery": 100,
"deviceMac": "B0E9FE8C8FE5",
"deviceType": "Video Doorbell",
"press": true,
"timeOfSample": 1760880073690
}
}
[2026-03-26 06:08:10] Received: {
"eventType": "changeReport",
"eventVersion": "1",
"context": {
"battery": 80,
"deviceMac": "B0E9FE8C8FE5",
"deviceType": "Video Doorbell",
"motionEvent": {
"detectionType": "motion",
"eventTime": 1774505288,
"id": "169d73cf-7932-44e5-a559-0bd5b5cd351b",
"img": "https://camera-images-ap-prod.s3.ap-northeast-1.amazonaws.com/... (removed for security)"
},
"timeOfSample": 1774505290707
}
}
Configuration
Environment
- OS: miracle linux
- Software: SwitchBot API Webhook
- Runtime: N/A
- Region: Japan
- Device: Video Doorbell
Additional Context
This behavior started recently and was working correctly before.
Summary
Video Doorbell press events are no longer reported with
press: trueinchangeReport.Instead, they are now reported as
motionEvent, even when the doorbell button is pressed.This behavior started recently without any apparent API specification change.
Previous Behavior
When the doorbell button was pressed, the webhook event looked like this:
{ "eventType": "changeReport", "eventVersion": "1", "context": { "battery": 100, "deviceMac": "B0E9FE8C8FE5", "deviceType": "Video Doorbell", "press": true, "timeOfSample": 1760880073690 } }The
press: truefield was included.Current Behavior
Now, when the doorbell button is pressed, the webhook event looks like this:
{ "eventType": "changeReport", "eventVersion": "1", "context": { "battery": 80, "deviceMac": "B0E9FE8C8FE5", "deviceType": "Video Doorbell", "motionEvent": { "detectionType": "motion", "eventTime": 1774505288, "id": "169d73cf-7932-44e5-a559-0bd5b5cd351b", "img": "S3 image URL..." }, "timeOfSample": 1774505290707 } }The
pressfield is no longer included.Instead, a
motionEventobject is returned even when the doorbell button is pressed.Expected Behavior
When the Video Doorbell button is pressed:
press: trueshould be included inchangeReport, ormotionEvent.Environment
Question
Is this an intended API behavior change?
If so, how should we distinguish between:
when both are delivered as
motionEvent?Additional Information
The API documentation and repository do not mention this change, so clarification would be appreciated.
Expected Behavior
When the Video Doorbell button is pressed, the changeReport event should include press: true.
Alternatively, the API documentation should clearly describe that doorbell press events are now delivered as motionEvent and explain how to distinguish them from motion detection.
Steps To Reproduce
Logs
Configuration
N/AEnvironment
Additional Context
This behavior started recently and was working correctly before.