@switchbot/homebridge-switchbot v4.3.11 discovers my SwitchBot “Air Purifier PM2.5” (model W5302300, BLE model +, modelName WoAirPurifier) and Noble is poweredOn and starts scanning. However, during scanning the plugin repeatedly reports Advertisement: null and logs:
[parseAdvertising.*] return null, model "*" not available!
even while filtering by the purifier’s MAC and model. Immediately afterwards, the accessory logs that serviceData is missing essential properties (serviceData only contains {model:"+", modelName:"WoAirPurifier"}), BLE connection fails, and the plugin falls back to OpenAPI. OpenAPI status for this device does not include PM2.5/AirQuality telemetry, so HomeKit values remain 0/undefined.
This still happens after the fix in PR #1334 .
If you can tell me how to obtain the raw manufacturerData/serviceData dump, I can attach it to this ticket.
BLE status should parse correctly (or GATT read should succeed) so HomeKit gets PM2.5/AirQuality/RotationSpeed/etc.
[2/17/2026, 8:30:37 PM] Homebridge v1.11.2 (HAP v0.14.1) (SwitchBot Bridge) is running on port 49575.
[2/17/2026, 8:30:37 PM] [SwitchBot] [DEBUG] Noble powered on
[2/17/2026, 8:30:37 PM] [SwitchBot] [DEBUG] Started Scanning for SwitchBot BLE devices.
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Advertisement: null
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter ID:
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter Model:
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Advertisement: null
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter ID:
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter Model:
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] [parseAdvertising.*] return null, model "*" not available!
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Advertisement: null
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter ID:
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter Model:
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] [parseAdvertising.*] return null, model "*" not available!
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Advertisement: null
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter ID:
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter Model:
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Got devices: {"statusCode":100,"body":{"deviceList":[{"deviceId":"3C8427768CFE","deviceName":"Purifier 1","deviceType":"Air Purifier PM2.5","enableCloudService":true,"hubDeviceId":""},{"deviceId":"94A9905B06BE","deviceName":"Purifier 2","deviceType":"Air Purifier PM2.5","enableCloudService":true,"hubDeviceId":""}],"infraredRemoteList":[]},"message":"success"}
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] statusCode: 200
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] response: {"statusCode":100,"body":{"deviceList":[{"deviceId":"3C8427768CFE","deviceName":"Purifier 1","deviceType":"Air Purifier PM2.5","enableCloudService":true,"hubDeviceId":""},{"deviceId":"94A9905B06BE","deviceName":"Purifier 2","deviceType":"Air Purifier PM2.5","enableCloudService":true,"hubDeviceId":""}],"infraredRemoteList":[]},"message":"success"}
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] SwitchBot Device Config Set: [{"configDeviceName":"AP01","deviceId":"3C8427768CFE","hide_device":false,"configDeviceType":"Air Purifier PM2.5","connectionType":"BLE/OpenAPI","disablePlatformBLE":false,"allowPush":true,"disableCaching":true,"maxRetry":5,"maxRetries":5,"delayBetweenRetries":3,"offline":false,"firmware":"2.5","external":false,"logging":"debug","refreshRate":360,"pushRate":360}]
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] SwitchBot Devices: [{"deviceId":"3C8427768CFE","deviceName":"Purifier 1","deviceType":"Air Purifier PM2.5","enableCloudService":true,"hubDeviceId":"","configDeviceName":"AP01","hide_device":false,"configDeviceType":"Air Purifier PM2.5","connectionType":"BLE/OpenAPI","disablePlatformBLE":false,"allowPush":true,"disableCaching":true,"maxRetry":5,"maxRetries":5,"delayBetweenRetries":3,"offline":false,"firmware":"2.5","external":false,"logging":"debug","refreshRate":360,"pushRate":360}]
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Discovered Air Purifier PM2.5: 3C8427768CFE
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Device: Purifier 1 registerDevice: true
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Device: Purifier 1 connectionType: BLE/OpenAPI, will display in HomeKit
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Using Device Config Logging: debug
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Using Device Config refreshRate: 360, Platform Config updateRate: 5, Device Config pushRate: 360
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Using Device Max Retries: 5
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Using Device Delay Between Retries: 3000
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Using Default scanDuration: 5
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Config: {"logging":"debug","refreshRate":360,"maxRetry":5,"connectionType":"BLE/OpenAPI","maxRetries":5,"delayBetweenRetries":3}
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Model: W5302300, BLE Model: +, BLE Model Name: WoAirPurifier, BLE Model Friendly Name: undefined
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Firmware Version: 2.5
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 version: 2.5
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Using Default MQTT URL: , Default mqttOptions: {}, Default mqttPubOptions: {}
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Retrieve initial values and update Homekit
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 BLERefreshStatus
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Registering Webhook Event Handler
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 is not listening webhook.
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Registering Platform BLE Event Handler
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 registerPlatformBLE
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 is listening to Platform BLE.
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 bleMac: 3c:84:27:76:8c:fe
[2/17/2026, 8:30:38 PM] [SwitchBot] Restoring existing accessory from cache: AP01 deviceId: 3C8427768CFE
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 'node-switchbot' found: {
"_events": {},
"_eventsCount": 1,
"nobleInitialized": {},
"noble": {
"_events": {},
"_eventsCount": 3,
"_address": "unknown",
"_state": "poweredOn",
"_initialized": true,
"_bindings": {
"_events": {},
"_eventsCount": 25
},
"_discoveredPeripherals": {},
"_peripherals": {},
"_services": {
"b5a002d72b6db451ce45016e0f8b8de9": {},
"72137d3f28c64921cdff3e088a6f61f4": {}
},
"_characteristics": {
"b5a002d72b6db451ce45016e0f8b8de9": {},
"72137d3f28c64921cdff3e088a6f61f4": {}
},
"_descriptors": {
"b5a002d72b6db451ce45016e0f8b8de9": {},
"72137d3f28c64921cdff3e088a6f61f4": {}
},
"_allowDuplicates": true
}
}
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5 uuid: 3C8427768CFE-Air Purifier PM2.5, (123666ab-578a-4fc1-bd7c-0adb3cad3b9f)
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 bleMac: 3c:84:27:76:8c:fe
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 Scanning for deviceID: 3c:84:27:76:8c:fe Model: + ModelName: WoAirPurifier...
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Started Scanning for SwitchBot BLE devices.
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Advertisement: null
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter ID: 3c:84:27:76:8c:fe
[2/17/2026, 8:30:38 PM] [SwitchBot] [DEBUG] Filter Model: +
[2/17/2026, 8:30:42 PM] [SwitchBot] [DEBUG] [parseAdvertising.*] return null, model "*" not available!
... Repeating ...
[2/17/2026, 8:30:43 PM] [SwitchBot] Air Purifier PM2.5: AP01 serviceData is missing essential properties, serviceData: {"model":"+","modelName":"WoAirPurifier"}
[2/17/2026, 8:30:43 PM] [SwitchBot] Air Purifier PM2.5: AP01 wasn't able to establish BLE Connection, node-switchbot: [object Object]
[2/17/2026, 8:30:43 PM] [SwitchBot] Air Purifier PM2.5: AP01 Using OpenAPI Connection to Refresh Status
[2/17/2026, 8:30:43 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 openAPIRefreshStatus
[2/17/2026, 8:30:43 PM] [SwitchBot] [DEBUG] Stopped Scanning for SwitchBot BLE devices.
[2/17/2026, 8:30:43 PM] [SwitchBot] [DEBUG] Got device status: 3C8427768CFE
[2/17/2026, 8:30:43 PM] [SwitchBot] [DEBUG] statusCode: 200
[2/17/2026, 8:30:43 PM] [SwitchBot] [DEBUG] response: {"version":"V2.5","power":"OFF","mode":2,"childLock":0,"hubDeviceId":"3C8427768CFE","deviceId":"3C8427768CFE","deviceType":"Air Purifier PM2.5"}
[2/17/2026, 8:30:43 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 statusCode: undefined, deviceStatus: {"version":"V2.5","power":"OFF","mode":2,"childLock":0,"hubDeviceId":"3C8427768CFE","deviceId":"3C8427768CFE","deviceType":"Air Purifier PM2.5"}
[2/17/2026, 8:30:43 PM] [SwitchBot] [DEBUG] Air Purifier PM2.5: AP01 statusCode: undefined, deviceStatus: {"version":"V2.5","power":"OFF","mode":2,"childLock":0,"hubDeviceId":"3C8427768CFE","deviceId":"3C8427768CFE","deviceType":"Air Purifier PM2.5"}
I also find it odd that Air Purifier series of devices are missing in the SwitchBot Device Settings UI:

Describe the Bug
@switchbot/homebridge-switchbot v4.3.11 discovers my SwitchBot “Air Purifier PM2.5” (model W5302300, BLE model +, modelName WoAirPurifier) and Noble is poweredOn and starts scanning. However, during scanning the plugin repeatedly reports Advertisement: null and logs:
[parseAdvertising.*] return null, model "*" not available!even while filtering by the purifier’s MAC and model. Immediately afterwards, the accessory logs that serviceData is missing essential properties (serviceData only contains
{model:"+", modelName:"WoAirPurifier"}), BLE connection fails, and the plugin falls back to OpenAPI. OpenAPI status for this device does not include PM2.5/AirQuality telemetry, so HomeKit values remain 0/undefined.This still happens after the fix in PR #1334 .
If you can tell me how to obtain the raw manufacturerData/serviceData dump, I can attach it to this ticket.
To Reproduce
Expected Behavior
BLE status should parse correctly (or GATT read should succeed) so HomeKit gets PM2.5/AirQuality/RotationSpeed/etc.
Relevant Log Output
Config for homebridge-switchbot
{ "name": "SwitchBot", "credentials": { "token": "REDACTED", "secret": "REDACTED", "notice": "Keep your Token & Secret a secret!" }, "options": { "devices": [ { "configDeviceName": "AP01", "deviceId": "3C8427768CFE", "hide_device": false, "configDeviceType": "Air Purifier PM2.5", "connectionType": "BLE/OpenAPI", "disablePlatformBLE": false, "allowPush": true, "disableCaching": true, "maxRetry": 5, "maxRetries": 5, "delayBetweenRetries": 3, "offline": false, "firmware": "2.5", "external": false, "logging": "debug", "refreshRate": 360, "pushRate": 360 } ], }, "_bridge": { "name": "SwitchBot Bridge", "username": "0E:E4:A6:06:87:0A", "port": 49575, "manufacturer": "MSR Productions", "firmwareRevision": "0.1", "model": "1.0.1" }, "platform": "SwitchBot" }Screenshots
I also find it odd that Air Purifier series of devices are missing in the SwitchBot Device Settings UI:

Device and Model
Air Purifier PM2.5 Model: W5302300
Node.js Version
v20.19.6
NPM Version
v10.8.2
Homebridge Version
v1.11.2
Homebridge Switchbot Plugin Version
v4.3.11
Homebridge Config UI X Plugin Version
v5.17.0
Operating System
macOS Tahoe 26.3