Add DDF for Aqara FP300 Presence Multi Sensor #8425

Hello,

I managed to purchase the Aqara FP300 Presence Multi Sensor.

I saw that a pull request has been submitted for this device.

I’m using Deconz with a Docker container named deconz-community.
I mapped the directory to:
- /volume1/docker/deconz-community:/opt/deCONZ

The PR contains:

devices/generic/items/config_restart_device_item.json
devices/generic/items/config_spatial_learning_item.json
devices/xiaomi/xiaomi_fp300_presence_multi_sensor.json

Do I need to create the directories in /volume1/docker/deconz-community/ ?
/volume1/docker/deconz-community/xiaomi/
/volume1/docker/deconz-community/items/

Because I’m missing some information by the sensor:
“battery”: 0
“lightlevel”: 0,
“lux”: 0
“name”: “config/restart_device”,
“name”: “config/sensitivity”,
“name”: “config/spatial_learning”,

{
    "149": {
        "capabilities": {
            "sleeper": true
        },
        "config": {
            "battery": 0,
            "offset": 0,
            "on": false,
            "reachable": true
        },
        "ep": 1,
        "etag": "cdf9941e1992ed28aeeb33d783572fa1",
        "lastannounced": "2025-12-21T16:52:16Z",
        "lastseen": "2025-12-27T13:33Z",
        "manufacturername": "Aqara",
        "modelid": "lumi.sensor_occupy.agl8",
        "name": "DDM Aqara",
        "nwkaddress": "0xBDE6",
        "state": {
            "lastupdated": "2025-12-27T13:30:13.816",
            "temperature": 2355
        },
        "swversion": "0.0.0_0034",
        "type": "ZHATemperature",
        "uniqueid": "54:ef:44:10:01:52:cb:c0-01-0402"
    },
    "150": {
        "capabilities": {
            "sleeper": true
        },
        "config": {
            "battery": 0,
            "offset": 0,
            "on": false,
            "reachable": true
        },
        "ep": 1,
        "etag": "10f71a04a5e28ab98e87b07ac3cd224f",
        "lastannounced": "2025-12-21T16:52:16Z",
        "lastseen": "2025-12-27T13:33Z",
        "manufacturername": "Aqara",
        "modelid": "lumi.sensor_occupy.agl8",
        "name": "DDM Aqara",
        "nwkaddress": "0xBDE6",
        "state": {
            "humidity": 4099,
            "lastupdated": "2025-12-27T13:30:14.007"
        },
        "swversion": "0.0.0_0034",
        "type": "ZHAHumidity",
        "uniqueid": "54:ef:44:10:01:52:cb:c0-01-0405"
    },
    "151": {
        "capabilities": {
            "sleeper": true
        },
        "config": {
            "battery": 0,
            "on": false,
            "reachable": true,
            "tholddark": 12000,
            "tholdoffset": 7000
        },
        "ep": 1,
        "etag": "cdf9941e1992ed28aeeb33d783572fa1",
        "lastannounced": "2025-12-21T16:52:16Z",
        "lastseen": "2025-12-27T13:33Z",
        "manufacturername": "Aqara",
        "modelid": "lumi.sensor_occupy.agl8",
        "name": "DDM Aqara",
        "nwkaddress": "0xBDE6",
        "state": {
            "dark": false,
            "daylight": false,
            "lastupdated": "none",
            "lightlevel": 0,
            "lux": 0
        },
        "swversion": "0.0.0_0034",
        "type": "ZHALightLevel",
        "uniqueid": "54:ef:44:10:01:52:cb:c0-01-0400"
    },
    "152": {
        "capabilities": {
            "sleeper": true
        },
        "config": {
            "battery": 0,
            "delay": 30,
            "detectionrange": 600,
            "devicemode": "combined",
            "ledindication": true,
            "on": true,
            "reachable": true,
            "sensitivity": 2
        },
        "ep": 1,
        "etag": "4eac5cc97c74d1a314a98d5358725439",
        "lastannounced": "2025-12-21T16:52:16Z",
        "lastseen": "2025-12-27T13:33Z",
        "manufacturername": "Aqara",
        "modelid": "lumi.sensor_occupy.agl8",
        "name": "DDM Aqara",
        "nwkaddress": "0xBDE6",
        "state": {
            "distance": 0,
            "lastupdated": "2025-12-27T13:31:36.055",
            "presence": false
        },
        "swversion": "0.0.0_0034",
        "type": "ZHAPresence",
        "uniqueid": "54:ef:44:10:01:52:cb:c0-01-fcc0"
    }
}

You can forget.
It will be better to use Deconz Toolbox
Because there is the DDF that go in the folder you are talking about, but you have 2 json file that need to be in the system folder.
And you need too c++ code edition, so this part is not possible on docker.

Hello,
When I download the xiaomi_fp300_presence_multi_sensor.json file from the PR, there’s an error… in red.
I tried with another DDF, no problem.


J’ai mis également les fichiers demandés
config_spatial_learning_item.json
config_restart_device_item.json
xiaomi_battery.js
sml_light_level.js

If there is an active PR, you can use it to direclty install the ddb, I never tried on my side probably here Deconz Toolbox or it’s what you have just tried ?

It’s easier to install the complete DDB (with already all files), instead remaking again the “package” file by file, but without the c++ modification you will miss features.

Where can I find this DDB file?

Using Deconz Toolbox, it tells me that the file xiaomi_fp300_presence_multi_sensor.json is invalid.

The import from the PR don’t work too, probably because of c++ files.

Hello,
The folders devices/generic/items/ and devices/Xiaomi/ already exist in Docker; you simply need to add the files to the folders if they don’t already exist. During the next container update, if the files aren’t included in container deconz-community, they will be deleted. You’ll have to re-add them. This happens to me regularly with personal xxx_item.json files used to enhance the Lixee module, for example. I had to write a PHP routine for this. There might also be one or more lines to add to general.xml file.