TapHome

Aqara Door and Window Sensor

Packet Parser → MQTT
Dodane przez
Ostatnia aktualizacja: 03. 2026

Wymaga zewnętrznej bramki

tasmota zigbee2tasmota-gateway — strona produktu

Aqara Door and Window Sensor

To urządzenie komunikuje się przez Zigbee za pośrednictwem bramy Tasmota. Upewnij się, że masz zaimportowany szablon Zigbee2Tasmota Gateway i Twoje urządzenie jest sparowane.

Aqara Door and Window Sensor (MCCGQ11LM) to kompaktowy, zasilany bateryjnie czujnik kontaktowy Zigbee. Wykrywa, czy drzwi lub okno są otwarte lub zamknięte za pomocą magnetycznego kontaktu reed. TapHome komunikuje się z czujnikiem przez MQTT za pośrednictwem bramy Zigbee2Tasmota — czujnik publikuje swój stan kontaktu w wiadomości JSON ZbReceived przy każdej zmianie stanu.

Ten szablon tworzy dwa urządzenia z jednego fizycznego czujnika: Czujnik drzwi i Czujnik okien. Oba odczytują to samo pole Contact z wiadomości Zigbee. Użytkownik może przypisać jedno urządzenie jako kontakt drzwi, a drugie jako kontakt okna w TapHome, lub używać tylko tego, które odpowiada rzeczywistej instalacji. Nieużywane urządzenia można ukryć w ustawieniach TapHome.

Konfiguracja

Parowanie czujnika
  1. W TapHome włącz przełącznik Permit Join w module Zigbee2Tasmota Gateway
  2. Na czujniku naciśnij i przytrzymaj mały przycisk, aż niebieska dioda LED zacznie migać, następnie puść
  3. Poczekaj, aż licznik Devices Found się zwiększy — Device ID czujnika (np. 0x1234) pojawi się w atrybutach serwisowych bramy
  4. Zaimportuj ten szablon urządzenia używając Device ID z parowania
Parametry importu
ParametrOpisPrzykład
MQTT Broker IP AddressIP Twojego brokera MQTT192.168.1.10
MQTT Broker PortPort brokera (domyślnie 1883)1883
Gateway nameTopic MQTT Tasmota (Configuration → MQTT → Topic)tasmota_XXXXX
Device IDKrótki adres Zigbee z parowania0x1234

Możliwości urządzenia

Wykrywanie kontaktu drzwi i okien

Szablon udostępnia dwa urządzenia z kontaktem reed — Czujnik drzwi i Czujnik okien — oba zmapowane jako PacketParserReedContact z funkcją bezpieczeństwa. Każde urządzenie parsuje pole Contact z ZbReceived.{DeviceID} w wiadomości MQTT SENSOR:

  • Contact = true → zamknięte (drzwi/okno zamknięte)
  • Contact = false → otwarte (drzwi/okno otwarte)

Czujnik raportuje stan kontaktu natychmiast przy każdej zmianie, umożliwiając wyzwalacze automatyzacji w czasie rzeczywistym (np. włączenie światła przy otwarciu drzwi, wysłanie alertu przy nieoczekiwanym otwarciu okna).

Monitoring baterii

Moduł monitoruje stan baterii za pośrednictwem dwóch atrybutów serwisowych:

  • Battery Percentage — szacowany poziom naładowania; ostrzeżenie o niskim poziomie baterii aktywuje się, gdy poziom spadnie poniżej 30%
  • Battery Voltage — surowe napięcie ogniwa CR1632 w woltach

Dane baterii są parsowane z pól BatteryPercentage i BatteryVoltage w wiadomości ZbReceived.

Wykrywanie stanu offline

Szablon monitoruje dostępność urządzenia za pomocą znacznika czasu LastSeenEpoch z odpytywania ZbInfo (co godzinę):

  • Ostrzeżenie — urządzenie nie było widziane dłużej niż 12 godzin
  • Błąd — urządzenie nie było widziane dłużej niż 24 godziny

Pomaga to wykryć sytuacje, gdy czujnik utracił łączność Zigbee lub bateria jest całkowicie rozładowana.

Diagnostyczne atrybuty serwisowe

Moduł udostępnia dodatkowe metadane Zigbee pobierane przez godzinne odpytywanie ZbInfo:

AtrybutOpis
IEEEAddrUnikalny 64-bitowy identyfikator sprzętowy
ModelIdZigbee model ID (lumi.sensor_magnet.aq2)
ManufacturerCiąg znaków producenta raportowany przez urządzenie
EndpointsAktywne endpointy Zigbee
ConfigKonfiguracja Zigbee urządzenia
Link QualitySiła sygnału w skali 0–100%
Dodatkowe możliwości

Aqara MCCGQ11LM raportuje również wewnętrzną temperaturę urządzenia przez Zigbee. Jakość połączenia (LQI) dla poszczególnych wiadomości jest dostępna w każdym payloadzie SENSOR, ale obecnie jest udostępniana tylko na poziomie modułu przez godzinne odpytywanie ZbInfo. Te możliwości mogą zostać dodane w przyszłej aktualizacji szablonu.

Rozwiązywanie problemów

Czujnik nie raportuje stanu kontaktu
  1. Sprawdź, czy czujnik jest sparowany z bramą Zigbee2Tasmota — zweryfikuj ZbStatus w konsoli Tasmota
  2. Potwierdź, że Device ID w szablonie odpowiada krótkiemu adresowi z parowania (np. 0x1234)
  3. Otwórz i zamknij drzwi/okno, aby wywołać zmianę stanu — czujnik publikuje tylko przy zmianie, nie ciągle
  4. Użyj klienta MQTT (np. MQTT Explorer) do subskrypcji topicu tele/{GWname}/SENSOR i zweryfikuj, że czujnik publikuje wiadomości ZbReceived z polem Contact
Ostrzeżenie offline pomimo działającego czujnika
  1. Wykrywanie offline opiera się na odpytywaniu ZbInfo (godzinnym). Jeśli czujnik nie wysłał żadnej wiadomości w ciągu 12 godzin, pojawia się ostrzeżenie
  2. Zasilane bateryjnie urządzenia Zigbee śpią między zdarzeniami — to normalne zachowanie. Ostrzeżenie zazwyczaj znika po następnej zmianie stanu kontaktu lub odpytaniu ZbInfo
  3. Jeśli ostrzeżenie utrzymuje się dłużej niż 24 godziny, sprawdź baterię (CR1632) i w razie potrzeby sparuj urządzenie ponownie
Czujnik drzwi i czujnik okien pokazują ten sam stan

To oczekiwane zachowanie — oba urządzenia odczytują pole Contact tego samego fizycznego czujnika. Ukryj nieużywane urządzenie w TapHome (SettingsDevices → wybierz urządzenie → Hide).

Aqara MCCGQ11LM używa baterii guzikowej CR1632. Żywotność baterii wynosi zazwyczaj ponad 2 lata przy normalnym użytkowaniu. Częste zmiany stanu (np. często używane drzwi) lub słaby sygnał Zigbee (wymagający retransmisji wiadomości) mogą skrócić żywotność baterii.

Jak zainstalować w TapHome

Wymagania wstępne

  • Bramka Zigbee z oprogramowaniem Tasmota (np. Sonoff ZBBridge, eWeLink ZB-GW03)
  • Broker MQTT działający w sieci lokalnej (wbudowany broker TapHome lub zewnętrzny)
  • TapHome CCU w tej samej sieci

TapHome ma wbudowany broker MQTT — aktywuj go w UstawieniaHardwareMQTT Broker. Nie jest potrzebne żadne dodatkowe oprogramowanie.

Krok 1 — Skonfiguruj bramkę Tasmota Zigbee

  1. Wgraj oprogramowanie Tasmota na obsługiwany koordynator Zigbee (np. Sonoff ZBBridge, eWeLink ZB-GW03)
  2. Połącz bramkę z siecią Wi-Fi przez interfejs webowy Tasmota
  3. Przejdź do ConfigurationConfigure MQTT i ustaw:
    • Host: adres IP brokera MQTT (np. 192.168.1.10)
    • Port: 1883
    • Topic: zanotuj nazwę topicu (np. tasmota_XXXXX) — będzie potrzebna przy imporcie szablonu

Szczegółowe instrukcje znajdziesz w dokumentacji Tasmota Zigbee.

Krok 2 — Importuj szablon bramki w TapHome

  1. Pobierz szablon bramki ze strony kompatybilności Zigbee2Tasmota Gateway
  2. W TapHome przejdź do UstawieniaHardwarePacket ParserImport
  3. Zaimportuj szablon z tymi parametrami:
    • MQTT Broker IP Address: adres IP brokera (np. 192.168.1.10)
    • MQTT Broker Port: 1883
    • Gateway name: topic MQTT Tasmota z kroku 1 (np. tasmota_XXXXX)

Po imporcie zobaczysz dwa urządzenia: Permit Join (przełącznik) i Devices Found (licznik).

Krok 3 — Sparuj urządzenie Zigbee

  1. W TapHome włącz przełącznik Permit Join — otworzy się 60-sekundowe okno parowania
  2. Na urządzeniu Zigbee rozpocznij procedurę parowania (zazwyczaj przytrzymaj przycisk reset przez 5 sekund, aż dioda LED zacznie migać)
  3. Obserwuj licznik Devices Found — zwiększy się, gdy nowe urządzenie się połączy
  4. Sprawdź Service Attributes bramki, aby zobaczyć ID nowego urządzenia (np. 0x1234), producenta i model
  5. Tryb parowania dezaktywuje się automatycznie po upływie limitu czasu

Krok 4 — Importuj szablon urządzenia

  1. Pobierz szablon konkretnego urządzenia z odpowiedniej strony kompatybilności
  2. Zaimportuj szablon z tymi parametrami:
    • MQTT Broker IP Address: ten sam co dla bramki
    • MQTT Broker Port: 1883
    • Gateway name: ten sam topic MQTT Tasmota co powyżej
    • Device ID: krótki adres z parowania (np. 0x1234)

Dostępne urządzenia

Aqara Door and Window Sensor Moduł
Atrybuty serwisowe
IEEEAddrAdres IEEE Zigbee — unikalny 64-bitowy identyfikator sprzętowy czujnika
ModelId
Producent
Endpoints
Config
Jakość połączeniaSiła sygnału Zigbee — 0% (brak sygnału) do 100% (najlepszy)
Napięcie bateriiNapięcie ogniwa CR1632 w woltach
Poziom bateriiSzacowany poziom baterii — ostrzeżenie poniżej 30%
Zmienne niestandardowe
GWname (string)Nazwa topicu MQTT Tasmota bramy Zigbee (w Configuration → MQTT → Topic)
ID (string)Krótki adres Zigbee czujnika (przypisany podczas parowania)
After pairing the sensor via Permit Join, find the device short address in the gateway's Devices Found service attribute or via Tasmota console command ZbStatus

Aqara - Door and Window Sensor

Odczyt (moduł)
MQTTPUBLISH("cmnd/" + GWname+ "/ZbInfo", ID)
Nasłuchiwanie
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var ZbReceived := PARSEJSON(RECEIVEDMSG.Payload, "ZbReceived." + ID, true);
    var bat := PARSEJSON(ZbReceived, "BatteryPercentage", true);
    if(!ISNULL(bat), BatteryPercentage := bat);
    var volt := PARSEJSON(ZbReceived, "BatteryVoltage", true);
    if(!ISNULL(volt), BatteryVoltage := volt);
    
    var deviceInfo := PARSEJSON(RECEIVEDMSG.Payload, "ZbInfo." + ID, true);
    if !ISNULL(deviceInfo)
    	LastSeenEpoch := PARSEJSON(deviceInfo, "LastSeenEpoch");
        COMPLETESERVICEATTRIBUTE("IEEEAddr", PARSEJSON(deviceInfo, "IEEEAddr"));
        COMPLETESERVICEATTRIBUTE("ModelId", PARSEJSON(deviceInfo, "ModelId"));
        COMPLETESERVICEATTRIBUTE("Manufacturer", PARSEJSON(deviceInfo, "Manufacturer"));
        COMPLETESERVICEATTRIBUTE("Endpoints", PARSEJSON(deviceInfo, "Endpoints"));
        COMPLETESERVICEATTRIBUTE("Config", PARSEJSON(deviceInfo, "Config"));
        COMPLETESERVICEATTRIBUTE("Link Quality", ROUND(LINEAR(PARSEJSON(deviceInfo, "LinkQuality"), 0,0, 254, 100)) + "%");
    end
end

if BatteryPercentage < 30
	ADDWARNING("Low battery (<30%)");
end

if !ISNAN(LastSeenEpoch)
	DATETIME now := NOW();
	var secondsSeen := now.UNIXTIME - LastSeenEpoch;
	if secondsSeen > 12 * 60 * 60
		if secondsSeen > 24 * 60 * 60
			ADDERROR("Device is offline > 24H");
		else
			ADDWARNING("Device is offline > 12H");        
		end
	end
end
Atrybuty serwisowe
IEEEAddr
MQTTPUBLISH("cmnd/" + GWname+ "/ZbInfo", ID)
ModelId
Manufacturer
Endpoints
Config
Link Quality
Battery Voltage
BatteryVoltage + " V"
Battery Percentage
BatteryPercentage + "%"
Czujnik drzwi Kontakt reed Tylko do odczytu

Kontakt reed do wykrywania otwarcia/zamknięcia drzwi — odczytuje pole Contact z wiadomości czujnika Zigbee

boolean

Czujnik drzwi

Nasłuchiwanie
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
    var val := PARSEJSON(RECEIVEDMSG.Payload, "ZbReceived." + ID + ".Contact", true);
    if(!ISNULL(val), Rc := val);
end
Czujnik okien Kontakt reed Tylko do odczytu

Kontakt reed do wykrywania otwarcia/zamknięcia okna — odczytuje pole Contact z wiadomości czujnika Zigbee

boolean

Czujnik okien

Nasłuchiwanie
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
    var val := PARSEJSON(RECEIVEDMSG.Payload, "ZbReceived." + ID + ".Contact", true);
    if(!ISNULL(val), Rc := val);
end
Połączenie: Packet Parser → MQTT
Możliwe ulepszenia (3)
  • Device Temperature — Blakadder lists device temperature measurement as an exposed feature. The Aqara MCCGQ11LM reports internal temperature via Zigbee, but the TapHome template does not parse it.
  • Link Quality (device-level) — LinkQuality is available per SENSOR message but only exposed as a module-level service attribute via ZbInfo polling.
  • Sensor Calibration — Some Zigbee platforms support per-sensor calibration offsets. Not configurable in TapHome template.

Źródła