TapHome

Aqara Bewegungsmelder (RTCGQ11LM)

Packet Parser → MQTT
Eingereicht von
Zuletzt aktualisiert: 06. 2026

Erfordert externes Gateway

Zigbee2MQTT Zigbee2MQTT bridge (any supported Zigbee coordinator — e.g. Sonoff ZBDongle-E/P, CC2652, ConBee II) — Produktseite

Aqara Bewegungsmelder (RTCGQ11LM)

Der Aqara RTCGQ11LM (in einigen Märkten als Xiaomi Mi Motion Sensor verkauft) ist ein kompakter batteriebetriebener Zigbee-3.0-PIR-Belegungssensor mit einer CR2450-Knopfzelle. Er kommuniziert indirekt mit TapHome — der Sensor wird mit einem Zigbee2MQTT-Koordinator gekoppelt (z. B. Sonoff ZBDongle-P/E oder ein CC2652-basierter Stick), der die Zigbee-Nachrichten auf MQTT-Topics umsetzt. TapHome abonniert diese MQTT-Topics über ein PacketParser-MQTT-Modul.

Die Vorlage bildet den Sensor als binären Belegungseingang (Bewegung / keine Bewegung) ab und stellt die Batterieprozente, die rohe Batteriespannung und die Zigbee-Verbindungsqualität als Serviceattribute bereit.

Konfiguration

Zigbee2MQTT-Einrichtung

Bevor die TapHome-Vorlage importiert wird, muss der RTCGQ11LM mit einem Zigbee2MQTT-Koordinator gekoppelt werden:

  1. Öffnen Sie die Zigbee2MQTT-Weboberfläche und aktivieren Sie den Kopplungsmodus (Permit join)
  2. Halten Sie die Reset-Taste am RTCGQ11LM etwa 5 Sekunden lang gedrückt, bis die blaue LED zu blinken beginnt
  3. Das Gerät erscheint in der Zigbee2MQTT-Geräteliste mit einer IEEE-Adresse (z. B. 0x00158d00036cd3e2). Optional kann ihm in der Zigbee2MQTT-Weboberfläche unter den Geräteeinstellungen ein Friendly Name zugewiesen werden.

Schlägt die Kopplung fehl, versuchen Sie statt des langen Haltens einen einzelnen kurzen Tastendruck. Bei CC2531-basierten Koordinatoren hilft es meist, den USB-Stick vor dem Zigbee2MQTT-Neustart kurz herauszuziehen und wieder anzustecken.

Modulvariable

Nach dem Import der Vorlage in TapHome setzen Sie die benutzerdefinierte Variable XiaomiRTCGQ11LM, um das Gerät auf dem MQTT-Broker zu identifizieren:

VariableBeschreibungWie erhaltenBeispiel
XiaomiRTCGQ11LMZigbee2MQTT-Friendly-Name oder IEEE-Adresse dieses RTCGQ11LMZigbee2MQTT Web UI → Devices → RTCGQ11LM suchen → IEEE oder Friendly Name kopieren0x00158d00036cd3e2

Der vorgegebene Platzhalter in der Vorlage (0x00158d00036cd3e2) ist nur ein Beispiel und muss durch die tatsächliche Adresse Ihres Sensors ersetzt werden. Das Listener-Skript abonniert zigbee2mqtt/{XiaomiRTCGQ11LM} und parst den JSON-Status-Payload.

Die Verwendung eines Friendly Name (z. B. flur_bewegung) anstelle der rohen IEEE-Adresse macht die Konfiguration lesbarer und bleibt stabil, selbst wenn der Sensor später neu gekoppelt wird.

Gerätefunktionen

Bewegungserkennung

Die Vorlage bildet den Sensor in TapHome als Reed-Contact-Gerät ab. Die Bezeichnung „Reed Contact" ist lediglich eine Template-Konvention; funktional handelt es sich um einen Standard-PIR-Belegungseingang. Bewegungsereignisse treffen auf dem Topic zigbee2mqtt/{id} als JSON ein und werden auf einen numerischen Zustand abgebildet:

Zigbee2MQTT-PayloadTapHome-Wert
"occupancy": true1 (Bewegung)
"occupancy": false0 (Ruhe)
andere / fehltNaN

Die erste occupancy: true-Nachricht wird erst mit dem ersten Bewegungsereignis nach dem Netzbeitritt des Geräts veröffentlicht — nicht bereits bei Abschluss der Kopplung.

Die Hardware des RTCGQ11LM erzwingt nach jeder Erkennung eine 60-sekündige Totzeit: Nach einer gemeldeten Bewegung ignoriert der Sensor weitere Bewegungen für 60 Sekunden. Die Zigbee2MQTT-Option occupancy_timeout sollte daher auf dem Standardwert 90 s (oder höher) belassen werden — Werte unter 60 s würden eine occupancy: false-Nachricht erzeugen, während sich noch eine Person im Raum befindet. Ohne Hardware-Modifikation lässt sich diese Grenze nicht umgehen.

Batterie, Spannung und Verbindungsqualität

Die Sensor-Instanz stellt drei schreibgeschützte Serviceattribute bereit, die aus derselben JSON-Statusnachricht geparst werden:

  • Battery — verbleibende Batterieprozente (0–100 %), formatiert als "N%". Der erste Wert kann nach dem Koppeln bis zu 24 Stunden dauern. Bis zum Eintreffen der ersten Nachricht wird "-" angezeigt.
  • Voltage — rohe Batteriespannung in Millivolt (typisch ~3000 mV bei einer frischen CR2450), formatiert als "N mV". Nützlich als unabhängiger Niederspannungsindikator — der Prozentwert kann noch gesund aussehen, während die Zelle bereits zu schwach für zuverlässige Zigbee-Übertragungen ist.
  • LinkQuality — Zigbee-Verbindungsqualität (0–255 LQI), formatiert als "N lqi". Werte unter 20 weisen in der Regel auf eine unzuverlässige Verbindung hin.
Noch nicht abgebildete Funktionen

Der RTCGQ11LM veröffentlicht über Zigbee2MQTT außerdem folgende Entitäten, die von der Vorlage nicht verarbeitet werden — sie können in einer künftigen Template-Revision durch Erweiterung des Listener-Skripts ergänzt werden:

  • illuminance / illuminance_lux — Umgebungshelligkeit in Lux (geeignet für lux-gesteuerte Bewegungsautomationen)
  • device_temperature — interne Chip-Temperatur in °C (nur diagnostisch, nicht die Raumtemperatur)
  • power_outage_count — Zähler für Batterieentnahme-Ereignisse

Das Zigbee2MQTT-Availability-Topic (zigbee2mqtt/{id}/availability) sowie die Konfigurationsoption occupancy_timeout (zigbee2mqtt/bridge/request/device/options) werden von der Vorlage nicht bedient; als Lebenszeichen für dieses schlafende Gerät werden LinkQuality und Battery empfohlen.

Fehlerbehebung

Sensor meldet gar keinen Zustand
  1. Prüfen Sie, dass der RTCGQ11LM in der Zigbee2MQTT-Geräteliste mit grünem Status erscheint.
  2. Stellen Sie sicher, dass die Variable XiaomiRTCGQ11LM exakt dem Friendly Name oder der IEEE-Adresse entspricht — bei Friendly Names wird Groß-/Kleinschreibung beachtet.
  3. Lösen Sie eine Bewegung vor dem Sensor aus. Die erste Statusnachricht wird erst mit der ersten Erkennung nach dem Netzbeitritt veröffentlicht.
  4. Abonnieren Sie mit einem MQTT-Client (z. B. MQTT Explorer) zigbee2mqtt/# und prüfen Sie, ob bei Bewegung Nachrichten auf zigbee2mqtt/{Ihr_Name} eintreffen.
Bewegung bleibt lange nach dem Verlassen des Raums aktiv

Das ist die erwartete 60-sekündige Hardware-Totzeit in Kombination mit dem Zigbee2MQTT-occupancy_timeout (Standard 90 s). Der Sensor meldet occupancy: false erst, wenn der Timer ohne weitere Bewegung abläuft. Kürzere Timeouts sind nicht zuverlässig — der Sensor ignoriert die ersten 60 s nach einer Erkennung jede Bewegung.

Gelegentliche Verbindungsabbrüche

Häufige Ursachen für das Herausfallen von Aqara/Xiaomi-Endgeräten aus dem Zigbee-Netz:

  1. Schwaches Signal — prüfen Sie LinkQuality; Werte unter 20 bedeuten meist, dass ein näherer netzbetriebener Zigbee-Router benötigt wird.
  2. Niedrige Batteriespannung — das Attribut Voltage ist ein besserer Indikator als der Prozentwert. Zigbee2MQTT weist ausdrücklich darauf hin, dass der Sensor auch bei scheinbar gesundem Prozentwert aus dem Netz fallen kann. Achten Sie daher auf einen deutlichen Abfall gegenüber den ~3000 mV einer frischen Zelle und ersetzen Sie die CR2450, sobald die Verbindung instabil wird.
  3. Inkompatible Router — Router von Centralite, General Electric, Iris, Ledvance, Legrand, OSRAM, Sylvania, SmartThings und Securifi sind dafür bekannt, ältere Xiaomi/Aqara-Geräte aus dem Mesh zu werfen. Oft hilft es, den Sensor direkt mit dem Koordinator zu koppeln (Reset direkt neben dem Koordinator).

Aqara-Zigbee-Endgeräte unterstützen im Standard-Zigbee2MQTT-Availability-Modus keine Pings und können fälschlicherweise als offline erscheinen, obwohl sie korrekt arbeiten. Verlassen Sie sich nicht auf das Availability-Topic — verwenden Sie LinkQuality und Battery als Gesundheitsindikatoren.

Installation in TapHome

Voraussetzungen

  • Zigbee-Gateway mit Tasmota-Firmware (z. B. Sonoff ZBBridge, eWeLink ZB-GW03)
  • MQTT-Broker in Ihrem lokalen Netzwerk (integrierter TapHome-Broker oder externer)
  • TapHome CCU im selben Netzwerk

TapHome hat einen integrierten MQTT-Broker — aktivieren Sie ihn unter EinstellungenHardwareMQTT Broker. Keine zusätzliche Software erforderlich.

Schritt 1 — Tasmota Zigbee-Gateway einrichten

  1. Flashen Sie die Tasmota-Firmware auf einen unterstützten Zigbee-Koordinator (z. B. Sonoff ZBBridge, eWeLink ZB-GW03)
  2. Verbinden Sie das Gateway über die Tasmota-Weboberfläche mit Ihrem Wi-Fi-Netzwerk
  3. Navigieren Sie zu ConfigurationConfigure MQTT und konfigurieren Sie:
    • Host: IP-Adresse Ihres MQTT-Brokers (z. B. 192.168.1.10)
    • Port: 1883
    • Topic: notieren Sie den Topic-Namen (z. B. tasmota_XXXXX) — Sie benötigen ihn beim Vorlagenimport

Ausführliche Anleitungen finden Sie in der Tasmota Zigbee-Dokumentation.

Schritt 2 — Gateway-Vorlage in TapHome importieren

  1. Laden Sie die Gateway-Vorlage von der Kompatibilitätsseite Zigbee2Tasmota Gateway herunter
  2. In TapHome gehen Sie zu EinstellungenHardwarePacket ParserImport
  3. Importieren Sie die Vorlage mit diesen Parametern:
    • MQTT Broker IP Address: IP-Adresse Ihres Brokers (z. B. 192.168.1.10)
    • MQTT Broker Port: 1883
    • Gateway name: Tasmota-MQTT-Topic aus Schritt 1 (z. B. tasmota_XXXXX)

Nach dem Import sehen Sie zwei Geräte: Permit Join (Schalter) und Devices Found (Zähler).

Schritt 3 — Zigbee-Gerät koppeln

  1. In TapHome schalten Sie den Permit Join-Schalter ein — es öffnet sich ein 60-Sekunden-Kopplungsfenster
  2. Starten Sie am Zigbee-Gerät den Kopplungsvorgang (typischerweise Reset-Taste 5 Sekunden gedrückt halten, bis die LED blinkt)
  3. Beobachten Sie den Devices Found-Zähler — er erhöht sich, wenn ein neues Gerät beitritt
  4. Überprüfen Sie die Service Attributes des Gateways, um die ID des neuen Geräts (z. B. 0x1234), den Hersteller und das Modell zu sehen
  5. Der Kopplungsmodus wird nach Ablauf des Zeitlimits automatisch deaktiviert

Schritt 4 — Geräte-Vorlage importieren

  1. Laden Sie die gerätespezifische Vorlage von der entsprechenden Kompatibilitätsseite herunter
  2. Importieren Sie die Vorlage mit diesen Parametern:
    • MQTT Broker IP Address: dieselbe wie für das Gateway
    • MQTT Broker Port: 1883
    • Gateway name: derselbe Tasmota-MQTT-Topic wie oben
    • Device ID: die Kurzadresse aus der Kopplung (z. B. 0x1234)

Verfügbare Geräte

Aqara Motion Sensor (RTCGQ11LM) Modul
Benutzerdefinierte Variablen
XiaomiRTCGQ11LM (string) = 0x00158d00036cd3e2Zigbee2MQTT-Friendly-Name oder IEEE-Adresse (0x… 16-hex) dieses RTCGQ11LM — wird als MQTT-Topic-Suffix zigbee2mqtt/{this} verwendet. Der vorgegebene Platzhalter muss nach der Kopplung durch die tatsächliche Sensoradresse ersetzt werden.
Bewegungsmelder Reed-Kontakt Nur lesen

PIR-Belegungserkennung — meldet Bewegung (1) bei Erkennung, Ruhe (0) nachdem die 60-Sekunden-Hardware-Totzeit und der Zigbee2MQTT-occupancy_timeout abgelaufen sind.

boolean JSON (PARSEJSON on occupancy key)
Serviceattribute
BatterieVerbleibende Batterieprozente (Knopfzelle CR2450, 0–100 %). Formatiert als 'N%'; der erste Wert nach der Kopplung kann bis zu 24 h dauern.
SpannungRohe Batteriespannung in Millivolt (~3000 mV bei einer frischen CR2450). Präziserer Indikator für eine schwache Batterie als der Prozentwert.
LinkQualityIndikator für die Zigbee-Verbindungsqualität (0–255 LQI). Werte unter 20 weisen in der Regel auf eine unzuverlässige Verbindung und häufige Verbindungsabbrüche hin.

Bewegungsmelder

Lesen (Modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Listener
IF (COMPARE(RECEIVEDMSG.TOPIC, "zigbee2mqtt/"+ XiaomiRTCGQ11LM, CompareOptions.IgnoreCase) = 0)
    VAR value := TOSTRING(PARSEJSON(RECEIVEDMSG.PAYLOAD, "occupancy")); 
    IF (COMPARE(value, "true", CompareOptions.IgnoreCase) = 0)
        Rc := 1; 
    ELSEIF (COMPARE(value, "false", CompareOptions.IgnoreCase) = 0)
        Rc := 0;
    ELSE
        Rc := NaN;
    END   
    battery := PARSEJSON(RECEIVEDMSG.PAYLOAD,"battery", true);
    voltage := PARSEJSON(RECEIVEDMSG.PAYLOAD,"voltage", true);
    link := PARSEJSON(RECEIVEDMSG.PAYLOAD,"linkquality", true);
END;
Serviceattribute
Battery
IF(ISNAN(battery),"-",battery+"%");
Voltage
IF(ISNAN(voltage),"-",voltage+"mV");
LinkQuality
IF(ISNAN(link),"-",link+"lqi");
Verbindung: Packet Parser → MQTT
Mögliche Verbesserungen (5)
  • Illuminance — illuminance / illuminance_lux JSON key (unit lx, 0+). Ambient light level reported alongside occupancy. Could drive lux-gated motion automations (e.g. only switch lights below 50 lx). Not parsed by the current listener script — would require an additional PARSEJSON call plus a service_attribute entry.
  • Device Temperature — device_temperature JSON key (unit °C). Internal chip temperature — not ambient room temperature. Useful for diagnostic alerts (overheating, direct sunlight on the sensor) but not for climate control. Not parsed by the current listener script.
  • Power Outage Count — power_outage_count JSON key (integer). Increments when the battery is removed/reinserted or the device loses power. Could detect tampering or battery swaps. Not parsed by the current listener script.
  • Availability (LWT) — online / offline string payload published by Z2M if availability is enabled globally or per device (availability: true in configuration.yaml). Could detect dropped sensors. Not subscribed by the current template.
  • Occupancy Timeout Configuration — occupancy_timeout (seconds, minimum 60, default 90) controls how long after motion the sensor waits before reporting occupancy: false. Currently set via Z2M frontend / configuration.yaml — TapHome template does not expose this as a setting and does not publish to bridge/request topics.

Quellen

Haben Sie ein Problem mit dieser Gerätevorlage gefunden?

Sagen Sie uns, was nicht funktioniert, was fehlt oder wie sich die Vorlage verhalten sollte. Ihr Feedback hilft uns, den Katalog genau zu halten.

Von TapHome verifiziert

Möchtest du das in deinem TapHome Core verwenden?

Öffne diese Vorlage im Kundenportal, um sie auf eine deiner Wohnungen anzuwenden, oder entwirf eine Anpassung und reiche sie an den Katalog ein.

Im Portal öffnen