TapHome

Aqara Motion Sensor (RTCGQ11LM)

Packet Parser → MQTT
Trimis de
Ultima actualizare: 04. 2026

Necesită gateway extern

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

Aqara Motion Sensor (RTCGQ11LM)

Aqara RTCGQ11LM (vândut pe unele piețe ca Xiaomi Mi Motion Sensor) este un senzor de prezență PIR Zigbee 3.0 compact, alimentat de o baterie tip monedă CR2450. Comunică cu TapHome indirect — senzorul se asociază cu un coordonator Zigbee2MQTT (de ex. Sonoff ZBDongle-P/E sau un stick bazat pe CC2652), care transmite mesajele Zigbee în topicuri MQTT. TapHome se abonează la aceste topicuri MQTT printr-un modul PacketParser MQTT.

Șablonul mapează senzorul ca intrare binară de prezență (mișcare / fără mișcare) și oferă ca atribute de service procentul bateriei, tensiunea brută a bateriei și calitatea legăturii Zigbee.

Configurare

Configurarea Zigbee2MQTT

Înainte de importul șablonului TapHome, RTCGQ11LM trebuie asociat cu un coordonator Zigbee2MQTT:

  1. Deschideți interfața web Zigbee2MQTT și activați modul de asociere (Permit join)
  2. Pe RTCGQ11LM, țineți apăsat butonul de resetare aproximativ 5 secunde, până când LED-ul albastru începe să clipească
  3. Dispozitivul apare în lista de dispozitive Zigbee2MQTT cu o adresă IEEE (de ex. 0x00158d00036cd3e2). Opțional, setați un friendly name în interfața web Zigbee2MQTT, în setările dispozitivului.

Dacă asocierea nu reușește, încercați o singură apăsare scurtă a butonului în loc să-l țineți apăsat. La coordonatorii bazați pe CC2531, scoaterea și reintroducerea stickului USB înainte de repornirea Zigbee2MQTT rezolvă adesea asocierea blocată.

Variabila modulului

După importul șablonului în TapHome, setați variabila personalizată XiaomiRTCGQ11LM pentru a identifica dispozitivul pe brokerul MQTT:

VariabilăDescriereCum se obțineExemplu
XiaomiRTCGQ11LMFriendly name Zigbee2MQTT sau adresa IEEE a acestui RTCGQ11LMInterfața web Zigbee2MQTT → Devices → găsiți RTCGQ11LM → copiați adresa IEEE sau friendly name0x00158d00036cd3e2

Valoarea provizorie implicită din șablon (0x00158d00036cd3e2) este doar un exemplu și trebuie înlocuită cu adresa reală a senzorului dvs. Scriptul listener se abonează la zigbee2mqtt/{XiaomiRTCGQ11LM} și analizează payload-ul JSON de stare.

Folosirea unui friendly name (de ex. hallway_motion) în locul adresei IEEE brute face configurarea mai ușor de citit și o păstrează stabilă dacă senzorul este asociat din nou.

Funcțiile dispozitivului

Detectarea mișcării

Șablonul mapează senzorul în TapHome ca dispozitiv de tip contact reed. Denumirea de contact reed este o convenție a șablonului; comportamentul este cel al unei intrări PIR standard de prezență. Evenimentele de mișcare sosesc pe topicul zigbee2mqtt/{id} ca JSON și se convertesc într-o stare numerică:

Payload Zigbee2MQTTValoare TapHome
"occupancy": true1 (mișcare)
"occupancy": false0 (repaus)
altă valoare / lipsăNaN

Primul mesaj occupancy: true se publică la primul eveniment de mișcare după ce dispozitivul se alătură rețelei — nu la finalizarea asocierii.

Hardware-ul RTCGQ11LM impune un interval de blocare de 60 de secunde după fiecare detectare: odată ce mișcarea este raportată, senzorul ignoră orice altă mișcare timp de 60 de secunde. De aceea, opțiunea Zigbee2MQTT occupancy_timeout trebuie lăsată la valoarea implicită de 90 s (sau mai mare) — valorile sub 60 s ar genera un mesaj occupancy: false în timp ce o persoană este încă prezentă. Această limită nu poate fi ocolită fără o modificare hardware.

Baterie, tensiune și calitatea legăturii

Instanța senzorului oferă trei atribute de service doar pentru citire, citite din același mesaj JSON de stare:

  • Baterie — procentul rămas al bateriei (0–100 %), în formatul "N%". După asociere, raportarea primei valori poate dura până la 24 de ore. Până la sosirea primului mesaj se afișează "-".
  • Tensiune — tensiunea brută a bateriei în milivolți (de obicei ~3000 mV la o baterie CR2450 nouă), în formatul "N mV". Este utilă ca indicator independent al descărcării bateriei — procentul bateriei poate părea încă bun în timp ce celula este deja prea slabă pentru transmisii Zigbee fiabile.
  • LinkQuality — indicatorul calității legăturii Zigbee (0–255 LQI), în formatul "N lqi". Valorile sub 20 indică de obicei o legătură nesigură.
Funcții care nu sunt mapate în prezent

RTCGQ11LM publică prin Zigbee2MQTT și următoarele entități, pe care acest șablon nu le citește — ele pot fi adăugate prin extinderea scriptului listener într-o revizie viitoare a șablonului:

  • illuminance / illuminance_lux — nivelul luminii ambiante în lucși (util pentru automatizări de mișcare condiționate de iluminare)
  • device_temperature — temperatura internă a cipului în °C (doar pentru diagnoză, nu temperatura ambiantă din cameră)
  • power_outage_count — contorul evenimentelor de scoatere a bateriei

Topicul de disponibilitate Zigbee2MQTT (zigbee2mqtt/{id}/availability) și opțiunea de configurare occupancy_timeout (zigbee2mqtt/bridge/request/device/options) nu sunt nici ele gestionate de șablon; LinkQuality și Baterie sunt semnalele recomandate pentru a verifica dacă acest dispozitiv, care intră în repaus, este activ.

Rezolvarea problemelor

Senzorul nu raportează nicio stare
  1. Verificați dacă RTCGQ11LM apare în lista de dispozitive Zigbee2MQTT cu stare verde.
  2. Verificați dacă variabila XiaomiRTCGQ11LM corespunde exact friendly name-ului sau adresei IEEE — la friendly name se ține cont de majuscule și minuscule.
  3. Faceți o mișcare în fața senzorului. Primul mesaj de stare se publică abia la prima detectare după alăturarea la rețea.
  4. Folosiți un client MQTT (de ex. MQTT Explorer) pentru a vă abona la zigbee2mqtt/# și confirmați că la detectarea mișcării apar mesaje pe zigbee2mqtt/{your_name}.
Mișcarea rămâne activă mult după plecarea persoanei

Este comportamentul normal: intervalul de blocare hardware de 60 de secunde combinată cu occupancy_timeout din Zigbee2MQTT (implicit 90 s). Senzorul nu raportează occupancy: false până când timpul de așteptare nu expiră fără altă mișcare. Timpii mai scurți nu sunt fiabili — senzorul pur și simplu ignoră mișcarea în primele 60 s după detectare.

Deconectări aleatorii

Cauze frecvente pentru care dispozitivele finale Aqara/Xiaomi ies din rețeaua mesh Zigbee:

  1. Semnal slab — verificați LinkQuality; valorile sub 20 înseamnă de obicei că senzorul are nevoie de un router Zigbee alimentat de la rețea, aflat mai aproape.
  2. Tensiune scăzută a bateriei — atributul Tensiune este un indicator mai bun decât procentul. Zigbee2MQTT menționează explicit că senzorul poate ieși din rețea chiar dacă procentul raportat al bateriei pare încă bun; urmăriți deci o scădere vizibilă față de valoarea de ~3000 mV a unei baterii noi și înlocuiți bateria CR2450 când legătura devine nesigură.
  3. Routere incompatibile — routerele Centralite, General Electric, Iris, Ledvance, Legrand, OSRAM, Sylvania, SmartThings și Securifi sunt cunoscute pentru problemele de menținere a conexiunii cu dispozitivele Xiaomi/Aqara mai vechi. Asocierea senzorului direct cu coordonatorul (resetați senzorul lângă coordonator) rezolvă adesea problema.

Dispozitivele finale Zigbee Aqara nu acceptă ping-ul în modul standard de disponibilitate Zigbee2MQTT și pot apărea offline chiar dacă funcționează normal. Nu vă bazați pe topicul de disponibilitate Zigbee2MQTT pentru a verifica dacă dispozitivul este activ — folosiți LinkQuality și Baterie ca indicatori de stare.

Cum se instalează în TapHome

Cerințe preliminare

  • Gateway Zigbee cu firmware Tasmota (de ex. Sonoff ZBBridge, eWeLink ZB-GW03)
  • Broker MQTT care rulează în rețeaua dvs. locală (brokerul integrat TapHome sau unul extern)
  • TapHome CCU în aceeași rețea

TapHome are un broker MQTT integrat — activați-l în Setări → Hardware → MQTT Broker. Nu este necesar niciun software suplimentar.

Pasul 1 — Configurați gateway-ul Zigbee Tasmota

  1. Încărcați firmware-ul Tasmota pe un coordonator Zigbee acceptat (de ex. Sonoff ZBBridge, eWeLink ZB-GW03)
  2. Conectați gateway-ul la rețeaua dvs. Wi-Fi prin interfața web Tasmota
  3. Accesați Configuration → Configure MQTT și setați:
    • Host: adresa IP a brokerului dvs. MQTT (de ex. 192.168.1.10)
    • Port: 1883
    • Topic: notați numele topicului (de ex. tasmota_XXXXX) — veți avea nevoie de el la importul șablonului

Pentru instrucțiuni detaliate, consultați documentația Tasmota Zigbee.

Pasul 2 — Importați șablonul gateway-ului în TapHome

  1. Descărcați șablonul gateway-ului de pe pagina de compatibilitate Zigbee2Tasmota Gateway
  2. În TapHome, accesați Setări → Hardware → Packet Parser → Import
  3. Importați șablonul cu acești parametri:
    • MQTT Broker IP Address: adresa IP a brokerului dvs. (de ex. 192.168.1.10)
    • MQTT Broker Port: 1883
    • Gateway name: topicul MQTT Tasmota de la pasul 1 (de ex. tasmota_XXXXX)

După import veți vedea două dispozitive: Permit Join (comutator) și Dispozitive găsite (contor).

Pasul 3 — Împerecheați un dispozitiv Zigbee

  1. În TapHome, porniți comutatorul Permit Join — se deschide o fereastră de împerechere de 60 de secunde
  2. Pe dispozitivul Zigbee, porniți procedura de împerechere (de obicei țineți apăsat butonul de resetare 5 secunde, până când LED-ul clipește)
  3. Urmăriți contorul Dispozitive găsite — crește când se conectează un dispozitiv nou
  4. Verificați atributele de service ale gateway-ului pentru a vedea ID-ul noului dispozitiv (de ex. 0x1234), producătorul și modelul
  5. Modul de împerechere se dezactivează automat după expirarea timpului

Pasul 4 — Importați șablonul dispozitivului

  1. Descărcați șablonul specific dispozitivului de pe pagina de compatibilitate corespunzătoare
  2. Importați șablonul cu acești parametri:
    • MQTT Broker IP Address: aceeași ca la gateway
    • MQTT Broker Port: 1883
    • Gateway name: același topic MQTT Tasmota ca mai sus
    • Device ID: adresa scurtă de la împerechere (de ex. 0x1234)

Dispozitive disponibile

Aqara Motion Sensor (RTCGQ11LM) Modul
Variabile personalizate
XiaomiRTCGQ11LM (string) = 0x00158d00036cd3e2Friendly name Zigbee2MQTT sau adresa IEEE (0x… 16 cifre hexazecimale) a acestui RTCGQ11LM — se folosește ca sufix al topicului MQTT zigbee2mqtt/{this}. După asociere, valoarea provizorie implicită trebuie înlocuită cu adresa reală a senzorului.
Senzor de mișcare Contact reed Doar citire

Detectarea prezenței cu senzor PIR — raportează mișcare (1) la detectare și repaus (0) după expirarea intervalului de blocare hardware de 60 s și a intervalului occupancy_timeout din Zigbee2MQTT.

boolean JSON (PARSEJSON on occupancy key)
Atribute de service
BaterieProcentul rămas al bateriei (baterie tip monedă CR2450, 0–100 %). În formatul „N%”; după asociere, raportarea primei valori poate dura până la 24 h.
TensiuneTensiunea brută a bateriei în milivolți (~3000 mV la o baterie CR2450 nouă). Indicator mai precis al bateriei descărcate decât procentul.
LinkQualityIndicatorul calității legăturii Zigbee (0–255 LQI). Valorile sub 20 indică de obicei o legătură nesigură și deconectări frecvente.

Senzor de mișcare

Citire (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");
Ascultător
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;
Atribute de service
Battery
IF(ISNAN(battery),"-",battery+"%");
Voltage
IF(ISNAN(voltage),"-",voltage+"mV");
LinkQuality
IF(ISNAN(link),"-",link+"lqi");
Conexiune: Packet Parser → MQTT
Îmbunătățiri posibile (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.

Surse

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Verificat de TapHome

Doriți să folosiți acest șablon în TapHome Core?

Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog.

Deschideți în portal