TapHome

Aqara Vibration Sensor

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

Wymaga zewnętrznej bramki

tasmota zigbee2tasmota-gateway — strona produktu

Aqara Vibration Sensor

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

Aqara DJT11LM to kompaktowy, zasilany bateryjnie czujnik wibracji Zigbee, który wykrywa trzy rodzaje ruchu: wibracje, przechył i upadek. Komunikuje się z TapHome przez MQTT za pośrednictwem bramki Zigbee2Tasmota — czujnik wysyła dane zdarzeń przez topic tele/{gateway}/SENSOR, a szablon parsuje własnościowe pola AqaraVibrationsOrAngle i AqaraVibrationMode z payloadu JSON ZbReceived.

Czujnik jest zasilany baterią guzikową CR2032 (żywotność ok. 2 lat). Szablon monitoruje poziom i napięcie baterii przez atrybuty serwisowe, ostrzega przy spadku poniżej 30% i wykrywa stany offline urządzenia (ostrzeżenie po 12 godzinach, błąd po 24 godzinach).

Konfiguracja

Parowanie czujnika
  1. Na bramce Zigbee2Tasmota włącz Permit Join (przełącznikiem szablonu bramki w TapHome lub poleceniem ZbPermitJoin 1 w konsoli Tasmota)
  2. Naciśnij i przytrzymaj przycisk na czujniku wibracji Aqara, aż niebieska dioda LED zacznie migać, następnie puść
  3. Czujnik powinien się sparować w ciągu 60 sekund
  4. Zanotuj przydzielone Device ID (np. 0xC9A9) z atrybutów serwisowych bramki lub z konsoli Tasmota
Parametry importu

Po sparowaniu zaimportuj szablon urządzenia z tymi parametrami:

ParametrOpisPrzykład
MQTT Broker IP AddressAdres IP 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 parowania0xC9A9

Urządzenia Zigbee Aqara/Xiaomi nie są w pełni zgodne ze standardem Zigbee i mogą mieć problemy z łącznością z niektórymi routerami Zigbee. Znane niekompatybilne routery to Centralite, General Electric, OSRAM, Sylvania, SmartThings i Securifi. Używaj routerów potwierdzonych jako kompatybilne z urządzeniami Xiaomi (np. IKEA TRADFRI).

Funkcje urządzenia

Kąt przechyłu

Urządzenie Tilt Angle odczytuje pole AqaraVibrationsOrAngle z payloadu JSON ZbReceived. Wartość jest raportowana w stopniach przez bezpośrednie przypisanie — skrypt listener parsuje kąt z każdej wiadomości SENSOR i natychmiast aktualizuje wartość czujnika.

Kąt przechyłu odzwierciedla aktualną orientację czujnika względem powierzchni, do której jest zamocowany. Aktualizuje się za każdym razem, gdy czujnik wykryje zdarzenie przechyłu i wyśle wiadomość SENSOR.

Tryb wibracji

Urządzenie Vibration Mode odczytuje pole AqaraVibrationMode z payloadu JSON ZbReceived. Mapuje wartości tekstowe na stany numeryczne za pomocą wyrażenia SWITCH:

StanWartośćOpis
Drop0Wykryty swobodny spadek lub upadek
Tilt1Wykryty przechył lub zmiana kąta
Vibrate2Wykryte wibracje lub dotyk

Tryb aktualizuje się przy każdym zdarzeniu ruchu. Stany 3–9 są zdefiniowane w szablonie jako zastępcze, ale nie są aktywnie mapowane przez skrypt listener — wartość 4 jest używana jako domyślny fallback dla nierozpoznanego trybu.

Bateria i stan urządzenia

Moduł udostępnia kilka atrybutów serwisowych wypełnianych przez mechanizm odpytywania ZbInfo (interwał 1 godzina przez ReadScript):

  • Battery Percentage — szacowany poziom baterii CR2032. Ostrzeżenie pojawia się przy spadku poniżej 30%.
  • Battery Voltage — aktualne napięcie baterii w woltach.
  • Link Quality — siła sygnału Zigbee skalowana z 0–254 na 0–100%.
  • IEEEAddr, ModelId, Manufacturer, Endpoints, Config — identyfikacja urządzenia i metadane konfiguracji Zigbee.

Szablon śledzi również LastSeenEpoch z odpowiedzi ZbInfo. Jeśli czujnik nie był widziany przez ponad 12 godzin, pojawia się ostrzeżenie. Po 24 godzinach pojawia się błąd — co wskazuje, że czujnik może być offline, poza zasięgiem lub ma rozładowaną baterię.

Aktualizacje baterii CR2032 z urządzeń Zigbee mogą trwać do 24 godzin. Nagły spadek niekoniecznie oznacza awarię baterii — poczekaj na następny cykl raportowania.

Dodatkowe funkcje

DJT11LM obsługuje również 3 poziomy czułości (niski, średni, wysoki) konfigurowalne za pomocą specyficznych dla producenta poleceń Zigbee (ZbSend z Manuf: 0x115F). Niektóre platformy Zigbee udostępniają dodatkowo osobną wartość intensywności/liczby wibracji obok kąta przechyłu. Te funkcje mogą zostać dodane w przyszłej aktualizacji szablonu.

Rozwiązywanie problemów

Czujnik nie raportuje danych
  1. Sprawdź, czy bramka Zigbee2Tasmota jest połączona z brokerem MQTT i odbiera wiadomości (sprawdź tele/{GWname}/SENSOR w kliencie MQTT)
  2. Potwierdź, że Device ID w szablonie odpowiada krótkiemu adresowi przydzielonemu podczas parowania (np. 0xC9A9)
  3. Sprawdź atrybut serwisowy Link Quality — wartości poniżej 20% wskazują na słaby sygnał Zigbee. Przenieś czujnik bliżej bramki lub dodaj kompatybilne urządzenie router Zigbee
  4. Naciśnij przycisk czujnika raz, aby wymusić transmisję i sprawdź, czy bramka odebrała wiadomość
Tryb wibracji zablokowany na wartości fallback
  1. Sprawdź wersję firmware Zigbee2Tasmota — pole AqaraVibrationMode używa własnościowych atrybutów Zigbee Aqara, które wymagają aktualnego firmware
  2. Sprawdź, czy payload ZbReceived zawiera pole AqaraVibrationMode (użyj klienta MQTT do inspekcji surowych wiadomości tele/{GWname}/SENSOR)
  3. Jeśli tryb zawsze raportuje wartość 4 (fallback), urządzenie może wysyłać nierozpoznany typ zdarzenia — sprawdź konsolę Tasmota w poszukiwaniu pełnego payloadu JSON
Urządzenie pokazuje ostrzeżenie offline
  1. Sprawdź poziom baterii — rozładowana CR2032 spowoduje, że czujnik przestanie nadawać
  2. Czujnik wibracji Aqara to urządzenie końcowe Zigbee (nie router) i komunikuje się przez pobliskie urządzenia router Zigbee. Jeśli router przestanie działać, czujnik może stać się nieosiągalny
  3. Spróbuj nacisnąć przycisk czujnika, aby go obudzić i wymusić ponowne połączenie z siecią Zigbee
  4. Jeśli problem się utrzymuje, sparuj ponownie urządzenie, przytrzymując przycisk, aż niebieska dioda LED zacznie migać
Ręczne ustawienie czułości

Szablon TapHome nie zawiera konfiguracji czułości. Aby zmienić czułość, użyj bezpośrednio konsoli Tasmota:

  • Niska czułość: ZbSend {"Device":"0xC9A9","Manuf":"0x115F","Write":{"0000/FF0D%20":21}}
  • Średnia czułość: ZbSend {"Device":"0xC9A9","Manuf":"0x115F","Write":{"0000/FF0D%20":11}}
  • Wysoka czułość (domyślna): ZbSend {"Device":"0xC9A9","Manuf":"0x115F","Write":{"0000/FF0D%20":1}}

Zamień 0xC9A9 na rzeczywisty Device ID czujnika.

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 Vibration Sensor Moduł
Atrybuty serwisowe
IEEEAddr
ModelId
Producent
Endpoints
Config
Jakość sygnałuSiła sygnału Zigbee — 0% (brak sygnału) do 100% (doskonały)
Napięcie baterii
Poziom bateriiSzacowany poziom baterii CR2032 — ostrzeżenie poniżej 30%
Zmienne niestandardowe
GWname (string)Tasmota MQTT topic name of the Zigbee gateway (found in Configuration → MQTT → Topic)
ID (string) = 0xC9A9Zigbee short address of the Aqara Vibration Sensor (assigned during pairing)
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 - Vibration 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 + "%"
Kąt przechyłu Zmienna Tylko do odczytu

Aktualny kąt przechyłu w stopniach — odczytuje AqaraVibrationsOrAngle z payloadu czujnika Zigbee

numeric Jednostka: °

Kąt przechyłu

Nasłuchiwanie
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
    var val := PARSEJSON(RECEIVEDMSG.Payload, "ZbReceived." + ID + ".AqaraVibrationsOrAngle", true);
    if(!ISNULL(val), Va := val);
end
Tryb wibracji Przełącznik wielowartościowy Tylko do odczytu

Typ wykrytego ruchu — Drop (0), Tilt (1) lub Vibrate (2) z pola AqaraVibrationMode

string → enum SWITCH mapping
Wartości / Stany: Drop · Tilt · Vibrate · ???

Tryb wibracji

Nasłuchiwanie
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
    var val := PARSEJSON(RECEIVEDMSG.Payload, "ZbReceived." + ID + ".AqaraVibrationMode", true);
    if (!ISNULL(val), SWITCH(val,
    "drop", Mu := 0,
    "tilt", Mu := 1,
    "vibrate", Mu := 2,
    Mu := 4));
end
Połączenie: Packet Parser → MQTT
Możliwe ulepszenia (3)
  • Vibration Sensitivity — The DJT11LM supports 3 sensitivity levels (low/medium/high) via manufacturer-specific Zigbee commands (Manuf: 0x115F, cluster 0x0000, attribute 0xFF0D). Not configurable in TapHome template — requires manual ZbSend command via Tasmota console.
  • Link Quality (device-level) — LinkQuality is available per SENSOR message but only exposed as a module-level service attribute via ZbInfo polling.
  • Vibration Count / Intensity — Some Zigbee platforms expose a vibration intensity or count value separately from the angle. The TapHome template only parses AqaraVibrationsOrAngle (angle) and AqaraVibrationMode (event type).

Źródła