Aqara FP300 – Innovativer mmWave Präsenzmelder mit Batteriebetrieb

Habe den FP300 heute bekommen und direkt in HA eingebunden. Habe es aber über die Matter Integration gemacht, das funktionierte im ersten Versuch direkt (anders als bei Simon im Video).

Der FP300 reagiert wirklich tadellos und schnell, ist sehr klein. Bin gespannt auf die echte Laufzeit der Batterien.

3 „Gefällt mir“

Mich würde interessieren, ob wirklich eine Präsents von Personen, also ohne Bewegung dieser, erkannt wird.

Gruß, Lars

1 „Gefällt mir“

Also ich hab bisher noch nicht ganz die richtige Einstellung gefunden. Sobald man relativ still da sitzt und zum Beispiel auf dem Handy was ließt, oder tippt, erkennt der Melder keine Präsenz mehr. Springt dafür aber bei größerer Bewegung sehr schnell wieder an.

Für den im Video mehrfach genannten Anwendungsfall Gäste-WC ist ein einfacher Türsensor die wesentlich günstigere Lösung:

Nicht mehr verfügbar, direkt über Aqara. Und andere Versand Optionen für 69,90 €. :rofl:

Könnt Ihr irgendwas zu der ‘KI’ Funktion des Sensors sagen? Mir ist schonmal nicht klar, wo die Intelligenz herkommen soll. Auf einem Batteriegerät wird mit Sicherheit kein LLM laufen. Oder gibt es KI nur im Aqara-Universum aus irgendeiner Cloud?

Vielleicht ist das Ganze aber auch nur Marketinggeschrei?

Die “KI”-Funktion gibt es nur in Verbindung mit der Aqara-App und ist eigentlich nichts neues, denn die gib t es in der Aqara-App beim FP2 heute auch schon.
Damit soll der Sensor den “leeren” Raum besser erkennen können.

In diesem YT-Video wird dazu etwas erklärt:

1 „Gefällt mir“

Ich habe meinen FP300 heute bekommen. Nachfolgend einige erste Eindrücke.

  • Eine Metallplatte für den Magnetfuß (wie in den Videos zu sehen) war in der Verpackung leider nicht enthalten. Die hätte ich zur abnehmbaren Montage auf Badezimmerfliesen gut gebrauchen können. So muss der Fuß halt mit dem mitgelieferten Klebe-Pad direkt angeklebt werden.

  • Der Schwenkfuß mit ist zwar mit einem (fummeligen) Bajonettverschluss abnehmbar. Der Sensorkopf erlaubt aber ohne diesen keine flächenbündige Montage:

  • Der maximale Schwenkwinkel beträgt ca. 45°:

  • Der FP300 ist deutlich kleiner als der FP2:

  • Die Empfindlichkeit ist auch auf höchster Stufe nicht so hoch wie beim FP2. In meinem Büro erkennt der FP300 mich halbverdeckt hinter dem Monitor (im Gegensatz zum FP2) nicht

  • Die im Zigbee-Modus in Home Assistant verfügbaren Entitäten sind umfangreich:

  • Die Einstellungen zum Detection Range und deren Einheiten sind mir noch rätselhaft
    (vgl. FP300 Zigbee-Einstellungen):

  • Die relevanten Sensorwerte im direkten Vergleich:

    Im Badezimmer wird die Präsenz einwandfrei erkannt; auch in der Dusche. Die geöffnete oder (wie im Foto) geschlossene Duschtür stört die Erkennung nicht:

    Beim Betreten des Raums ist die Erkennung leicht verzögert, bis man im Sichtbereich des Sensors ist, so dass ich ggf. noch einen zusätzliche Türsensor verwenden muss, falls das dadurch verzögerte Einschalten des Lichts stört.

4 „Gefällt mir“

Bisher wird die Präsenz auch bei nur kleinen Bewegungen am Schreibtisch oder beim Lesen erkannt.

Hi zusammen,

ich teste seit gestern den Aqara FP300 als Präsenzmelder in meinem Büro – eingebunden per Matter over Thread in Home Assistant. Border Router ist ein SLZB-06M. Pairing lief bei mir reibungslos: Code scannen, kurz warten, Entitäten da, fertig.

Ich möchte den FP300 lieber im Zigbee-Modus betreiben (mehr Geräteeinstellungen). Dafür braucht man jedoch zwingend die Aqara-App + Aqara-Hub, um den Modus während der Einrichtung auf Zigbee umzuschalten. Erst danach kann man ihn an einen eigenen Koordinator hängen. Mit vorhandenem Matter/Thread allein kommt man nicht an den Zigbee-Switch. Das ist für mich ein klarer Nachteil.

Bisheriges Fazit: schnelle Reaktion beim Betreten und stabile Belegung während der ruhigen Schreibtischarbeit.

  • Betreten → schnelle Präsenz (Latenz gefühlt gering).
  • Desk-Work (sehr kleine Bewegungen) blieb bisher stabil belegt.
  • Nachtruhe (erste Stichprobe): keine Geister-Events.

Klar: Zu früh für ein Urteil, aber es sieht besser aus als bei meinen Tuya-Tests.

2 „Gefällt mir“

Hallo zusammen, das ist mein erster Post, daher bitte nachsichtig sein :slightly_smiling_face: ich hab gerade den neuen FP300 ausgepackt und nach dem flashen auf die Zigbee Firmware, per ZHA in Home Assistant eingefügt und äh.. Ich sehe nur Helligkeit, Temperatur und Luftfeuchtigkeit? :grinning_face_with_smiling_eyes: Keine der Präsenz Features scheinen auf? Hat jemand von euch schon das Teil in Verwendung?

ZHA wird wohl noch nicht komplett unterstützt, Zigbee2Mqtt wohl schon

Mist, ich hatte das schon befürchtet

Ich konnte den FP300 nach dem Auspacken in der Aqara-App auf Zigbee umstellen und dann in Home Assistant mit Zigbee2MQTT anlernen. Ein Aqara-Hub war dafür nicht erforderlich.

Ich sehe gerade erst auf der Produkt-Website, dass es zwei Versionen (mit/ohne Befestigungskit) gibt:

Wie blöd ist es das denn, ein 1-Euro-Zubehör wegzulassen? :man_facepalming:

Top. Nach dem ich der Aqara-App Zugriff auf Bluetooth, Standort und co. erlaubt habe, konnte ich den FP300 auch auf Zigbee umflashen. Vielen Dank für den Hinweis :slight_smile:

Mit einem custom quirk funktioniert es nun auch mit ZHA :slight_smile:

Noch unvollständig aber Presence wird bereitgestellt und diverse Einstellungen können vorgenommen werden, den Rest schaue ich mir dann morgen bzw. am Wochenende an

from typing import Final

from zigpy import types as t
from zigpy.quirks.v2 import QuirkBuilder, ReportingConfig
from zigpy.quirks.v2.homeassistant import UnitOfTime
from zigpy.quirks.v2.homeassistant.binary_sensor import BinarySensorDeviceClass
from zigpy.quirks.v2.homeassistant.number import NumberDeviceClass
from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass  

from zigpy.zcl.foundation import BaseAttributeDefs, DataTypeId, ZCLAttributeDef

from zhaquirks.xiaomi import XiaomiAqaraE1Cluster

class MotionSensitivity(t.enum8):
    Low = 0x01
    Medium = 0x02
    High = 0x03


class PresenceDetectionMode(t.enum8):
    Both = 0x00
    Mmwave = 0x01
    Pir = 0x02

class AqaraFP300ManuCluster(XiaomiAqaraE1Cluster):

    class AttributeDefs(BaseAttributeDefs):
        presence: Final = ZCLAttributeDef(
            id=0x0142,
            type=t.Bool,
            zcl_type=DataTypeId.bool_,
            access="rp", 
            is_manufacturer_specific=True,
        )
        motion_sensitivity: Final = ZCLAttributeDef(
            id=0x010C,
            type=MotionSensitivity,
            zcl_type=DataTypeId.uint8,
            access="rwp",
            is_manufacturer_specific=True,
        )

        absence_delay_timer: Final = ZCLAttributeDef(
            id=0x0197,
            type=t.uint32_t,
            zcl_type=DataTypeId.uint32,
            access="rwp",
            is_manufacturer_specific=True,
        )

        pir_detection_interval: Final = ZCLAttributeDef(
            id=0x014F,
            type=t.uint16_t,
            zcl_type=DataTypeId.uint16,
            access="rwp",
            is_manufacturer_specific=True,
        )

        presence_detection_options: Final = ZCLAttributeDef(
            id=0x0199,
            type=PresenceDetectionMode,
            zcl_type=DataTypeId.uint8,
            access="rwp",
            is_manufacturer_specific=True,
        )

(
    QuirkBuilder("Aqara", "lumi.sensor_occupy.agl8")
    .replaces(AqaraFP300ManuCluster, endpoint_id=1)
    .binary_sensor(
        attribute_name=AqaraFP300ManuCluster.AttributeDefs.presence.name,
        cluster_id=AqaraFP300ManuCluster.cluster_id,
        endpoint_id=1,
        device_class=BinarySensorDeviceClass.OCCUPANCY,
        translation_key="presence",
        fallback_name="Presence",
        reporting_config=ReportingConfig(
            min_interval=1,
            max_interval=300,
            reportable_change=1,
        ),
    )
    .number(
        attribute_name=AqaraFP300ManuCluster.AttributeDefs.absence_delay_timer.name,
        cluster_id=AqaraFP300ManuCluster.cluster_id,
        endpoint_id=1,
        translation_key="absence_delay_timer",
        fallback_name="Absence delay timer",
        device_class=NumberDeviceClass.DURATION,
        unit=UnitOfTime.SECONDS,
        min_value=10,
        max_value=300,
        step=5,
    )
    .number(
        attribute_name=AqaraFP300ManuCluster.AttributeDefs.pir_detection_interval.name,
        cluster_id=AqaraFP300ManuCluster.cluster_id,
        endpoint_id=1,
        translation_key="pir_detection_interval",
        fallback_name="PIR detection interval",
        device_class=NumberDeviceClass.DURATION,
        unit=UnitOfTime.SECONDS,
        min_value=2,
        max_value=300,
        step=1,
    )
    .enum(
        attribute_name=AqaraFP300ManuCluster.AttributeDefs.presence_detection_options.name,
        enum_class=PresenceDetectionMode,
        cluster_id=AqaraFP300ManuCluster.cluster_id,
        endpoint_id=1,
        translation_key="presence_detection_options",
        fallback_name="Presence detection options",
    )
    .enum(
        attribute_name=AqaraFP300ManuCluster.AttributeDefs.motion_sensitivity.name,
        enum_class=MotionSensitivity,
        cluster_id=AqaraFP300ManuCluster.cluster_id,
        endpoint_id=1,
        translation_key="motion_sensitivity",
        fallback_name="Motion sensitivity",
    )
    .add_to_registry()
)

Quellen:

2 „Gefällt mir“

Wieso mehr Müll produzieren als notwendig?!

Und bei einem 1-€-Artikel, den ich mir einspare, wenn ich 100.000 Produkte verkaufe …:thinking:

Meinst du, dass das die Kosten für die doppelte Lagerhaltung, Produktverwaltung und Retouren bei Falschbestellungen/-versendungen aufwiegt?

Beworben wurde bei Amazon im Video PS-S04D. Geliefert wurde stattdessen PS-S04E

Keine Ahnung. In dem Game kenne ich mich nicht aus. Aktuell Witzel ich eher darüber, wie unser Lieferant für Dienstkleidung / Uniformen eine gesamte Palette verlieren konnte.

Bei der Produktbeschreibung wird vermutlich der Text und kein Werbevideo bindend sein.

Dass es ärgerlich ist, wenn man etwas anderes geliefert bekommt als erwartet, verstehe ich vollkommen. Aber die grundsätzliche Reduktion nicht benötigter Teile finde ich gut.

Keine Ahnung wie viele Metall Platten bei mir schon im Müll gelandet sind…

Für die ZHA-User unter uns: Den aktuellen Stand meines Work-in-Progress findet ihr hier:

Bei Problemen oder Auffälligkeiten meldet euch gerne hier im Thread oder direkt über GitHub.

Die Einstellungen für die Detection Range sind noch nicht ganz fertig und bei der Batterie warte ich noch darauf, dass der Wert korrekt reported wird, aber die meisten anderen Einstellungen sind bereits möglich:

Das Ding ging heute wieder zurück. Ist aus meiner Sicht für eine ordentlichen Präsenzerkennung in einem vier Meter Radius absolut unzuverlässig.