Okay did some digging and came to the following conclusion, the TL;DR is;
The FP300 only exposes one Occupancy Sensing cluster over Matter. Even though it has both PIR and ultrasonic/mmWave on the hardware side, Matter does not expose them as separate “motion” and “presence” capabilities like Zigbee does. Matter collapses everything into a single processed “occupied / not occupied” capability.
And the longer story is;
over Matter, the device only exposes a single Occupancy Sensing cluster; Occupancy Sensing:{...}
This means that even though the FP300 internally uses both PIR and ultrasonic to detect motion/presence, it doesn’t expose those as separate entities the way it does via Zigbee. Matter doesn’t define separate attributes for “motion” vs “presence”; it just defines one final combined occupancy state.
What threw me off at first was the OccupancySensorTypeBitmap the device also provides, which shows bits for both PIR and Ultrasonic;
occupancySensorTypeBitmap :{ pir: true, ultrasonic: false, physicalContact: false }
But after checking the spec, those bits are just flags that describe what sensor types the device supports. They don’t represent two real-time states. It just means;
- this device has a PIR sensor
- this device has an ultrasonic sensor
But Matter still expects the device to output one processed occupancy value (occupied or not occupied). How the device fuses PIR and ultrasonic together is up to Aqara, Matter doesn’t standardize that part (sigh
)
It’s possible that Aqara is using the bitmap to indicate whether the occupancy cluster was triggered by PIR or by ultrasonic detection, based on true/false values. However, this behavior deviates from the Matter spec and does not reflect the intended purpose of that bitmap.
Currently, the occupancy cluster in Matter is mapped to the alarm_motion capability in Homey. Since the alarm_occupancy capability was recently added, it’s possible this mapping will be updated in the future.
So, if you were expecting the same “motion = PIR” and “presence = mmWave” split you get over Zigbee, you won’t see that in Matter. The protocol just doesn’t expose them separately.