[RELEASE] Aqara Multi-Sensor FP300 (PS-S04D)

This driver can be installed through HPM (recommended) - search for "Aqara P1 Motion Sensor", or manually from the following URL:

https://raw.githubusercontent.com/kkossev/Hubitat/refs/heads/development/Drivers/Aqara%20P1%20Motion%20Sensor/Aqara_P1_Motion_Sensor.groovy

While active development continues, updates will not be automatically pushed via HPM.
If you previously installed the driver via HPM, please use the Repair Package option to update to the latest development version.


Versions history :

  • ver. 1.9.0 2025-11-02
    • added Aqara FP300 Presence Sensor support (experimental, not tested); credits: Dan Gibson (@absent42 on GitHub)
  • ver. 1.9.1 2025-11-12
    • Bug fix: decoding Aqara RTCGQ11LM (lumi.sensor_motion.aq2) battery voltage
  • ver. 1.9.2 2025-11-13
    • FP300 temperature and humidity parsing;
    • decoding most of the FP300 reports;
    • added restartDevice() command for FP1E/FP300
  • ver. 1.9.3 2025-11-14
    • fixed FP300 illuminance handling and the calculation formula;
    • enabled motionSensitivity for FP300;
    • FP300 fingerprint update;
    • bugfix : no response on ping() command was switching FP300 healthStatus to offline
    • added battery voltage and percentage events for FP300;
    • enabled advanced options for FP300 illuminance sensor
  • version 2.0.0 2025/11/15 11:58 PM (dev. branch) :
    • BREAKING CHANGE: Added child device support for FP300 temperature & humidity; FP300 T/H readings now appear in a separate child device using Generic Component Temperature Humidity Sensor;
    • BREAKING CHANGE: removed TemperatureMeasurement and relativeHumidityMeasurement capabilities from the parent driver;
    • BREAKING CHANGE: added deviceTemperature attribute for non-FP300 devices internal temperature;
    • added advancedOptions preference toggle;
    • added separate tempOffset and humidityOffset for FP300;
    • added experimental trackTargetDistance() command for FP300
    • MAJOR CHANGE: Intelligent Parameter Change Detection :
      • implemented for FP300 and illuminance reporting
      • store parameters in the state.params [n:name, t:type, v:value, l:local]
      • only sends changed values to prevent Zigbee flooding and potential device instability
    • other minor improvements
  • ver. 2.0.1 2025-11-20 :
    • forced sending temperature updates to the child device;
    • improved trackTargetDistance() and startSpatialLearning() commands description;
    • added info messages for better user experience;
    • pirDetection changed to active/inactive
    • roomActivity attribute filtered for FP1/FP1E only;
    • updates battery attribute for the FP300 child device
  • ver. 2.1.0 2025-11-23 :
    • added FP300 advanced sampling configuration parameters (temp/humidity and light sampling frequency/period) with intelligent change detection;
    • added sampling parameters to refresh() command;
    • added FP300 detection range zones configuration (0.25m resolution bitmap, attribute 0x019A) with validation and attribute event;
    • added FP300 LED disabled at night and LED night time schedule parameters with full read/write support
  • ver. 2.1.1 2025-12-30 - fixed rounding issue for temperature attribute
  • ver. 2.1.2 2026-03-30 - commented out the Aqara FP300 fingerprint to prevent interference with the Dedicated Aqara FP300 Presence Multi-Sensor Zigbee Driver.