Ten niedługi poradnik będzie dotyczył Zigbee2MQTT (czyli cc2531) i pracy z czujnikiem ruchu Aqara oraz Home Assistantem. I udowodni, że potrzeba matką wynalazków.

Sprawa wygląda tak: wymyśliłem sobie, że czujnik ruchu będzie wykrywał ruch na schodach i włączał światło, żebym nie obił sobie twarzy, idąc po ciemku. Czas potrzebny na pokonanie schodów to mniej więcej 9 sekund. Pomyślałem: nic prostszego! Aqara wykrywa ruch, daje sygnał na zapalenie światła, system odlicza 15 sekund, jakbym wolniej szedł, światło gaśnie i tyle, nie ma co się nad tym rozwodzić. Tu wszystko powinno mieć swój koniec, nie miałbym o czym pisać i wymyślałbym inne udogodnienia.

Ale… idę na dół, plan działa idealnie, ruch wyłapany na pierwszym schodku. Światło się zapala, dotarłem na koniec schodów z zapasem czasowym, docieram do kuchni, światło gaśnie, biorę herbatę, wracam na schody i… ciemność. Pokonuję schody, wracam do pracowni, dalej ciemność. Dlaczego? Bo Aqara fabrycznie sprawdza stan ruchu co minutę.

Wiem. Pomyślicie, że już były takie poradniki, i macie rację. Są poradniki po polsku, po angielsku, ale żaden do końca nie tłumaczy, jak zrobić to na Home Assistant przy użyciu Zigbee2MQTT.

Część łatwiejsza – programistyczna

W pliku devices.Yaml, w katalogu zigbee2mqtt u mnie pełna ścieżka do pliku to: //serwer/share/zigbee2mqtt/devices.yaml

Musimy dodać następujące linijki kodu po każdym urządzeniu, którego czas bezczynności chcemy skrócić:

no_occupancy_since:

     – 10

     – 60

  occupancy_timeout: 15

Gdzie occupancy_timeout jest parametrem, który zmieniamy (podajemy go w sekundach). Należy jedynie pamiętać o wcięciach, inaczej nasze czujniki będą w programie widoczne jako niedostępne.

Następnie zapisujemy i restartujemy usługę. Dzięki temu wpisowi Home Assistant będzie po ustawionym czasie zmieniał stan czujnika na brak ruchu. Niestety czujka dalej będzie reagowała dopiero po minucie. Właśnie po to dorysowuję lub dolutowuję ścieżkę w czujniku.

Część trudniejsza – manualna

Musimy dostać się do płytki naszej Aqary.

  • Odkręcamy klapkę z baterią i wyjmujemy ją.
  • Podważamy plastik małym śrubokrętem (zatrzaski znajdują się po bokach „szybki”). Podważyć można także w innym miejscu.

Bez obaw plastik jest dosyć elastyczny i nie trzeba używać siły.

  • Zdejmujemy plastik i wysuwamy płytkę.
  • Teraz musimy połączyć styk przycisku z stykiem pt4.

W poradnikach jest zapisane, żeby użyć ołówka 4b, aby ścieżka była dość gruba. Nie miałem takiego, więc użyłem zwykłego HB i też działa. Lut pewnie byłby trwalszy, ale jest tam dość mało miejsca i nie chciałem ryzykować.

Składamy w odwrotnej kolejności, uważając na to, by płytka trafiła na prowadnicę, żeby zgadzało się położenie przycisku reset  i odległość czujnika od „szybki”. Nie zmienimy wtedy kąta działania czujnika.

Poziom trudności: 2.

Czas operacji: 10 minut z zaostrzeniem ołówka.

Nie wiem, jak wpłynie to na żywotność baterii, ale to nie są na szczęście duże koszty.

Operację wykonałem na czujniku ruchu Aqara, wersja z pomiarem światła.

Dla początkujących z Home Assistant

Do pliku musimy dostać się za pomocą programu obsługującego połączenie smb. Wcześniej musimy skonfigurować to w Home Assistant. Samba share pobieramy z oficjalnego repozytorium, wchodząc w supervisor ADD-ON Store, wyszukując ją i klikając w Install. W konfiguracji musimy podać adres IP sieci, z której pozwalamy się łączyć, nazwę użytkownika i hasło, którymi będziemy się logowali.


Elektronikę ma we krwi! Krzysiek jest redaktorem oraz projektantem w SmartMe działającym w obszarze Home Assistant. Często lubi sam budować rozwiązania oraz rozwijać swoją pasję związaną ze smart domem. W wolnym czasie uwielbia robić zdjęcia, a my uwielbiamy je publikować ?

Polska grupa Smart Home by SmartMe

Polska grupa Xiaomi by SmartMe

Promocje SmartMe

Powiązane posty

8 myśli na “Jak zmienić czas pracy czujnika Aqara przy pomocy Zigbee2MQTT i Home Assistant?

  1. Dawid Zdrojewski pisze:

    Cześć,
    Zrobiłem wszystko z instrukcją i czujka widzi poziom światła, ale nie reaguje na ruch 🙁

    1. Krzysztof Surma pisze:

      Mam kilka pytań. Czy czujnik na pewno jest w zasięgu sieci?, czy jak dodasz encje czujnika to nie wykrywa ruchu?, czy przed modyfikacją działał prawidłowo?

      1. Dawid Zdrojewski pisze:

        Wykrywa ruch w momencie gdy jest podstawowa wersja konfiguracji. Gdy dodaję pozycje no_occupancy_since i occupancy_timeout przestaje działać. Po usunięciu wpisów z powrotem wszystko jest w porządku. Pilnuję białych znaków by było och odpowiednio 😉

        1. Krzysztof Surma pisze:

          Wklejam ci dokładnie kawałek kodu. zmień tylko nazwę urządzenia. spróbuj

          '0x00158d0004507443′:
          friendly_name: '0x00158d0004507443′
          no_occupancy_since:
          – 10
          – 60
          occupancy_timeout: 15

          1. Bogusław Miłek pisze:

            Witam, Zauważyłem mały problem, po aktualizacji Zigbee2MQTT Current version: 1.18.2-1 , przestaje to działać, nie udaje mi się już zmusić tych czujek do przerywania ruchu po 15 sekundach.. , czekają sobie grzecznie 1:30 min i tyle, czy ktoś ma podobmie

  2. kumpel_ pisze:

    Też mam problem z działaniem po przeróbce. Próbuje na dwóch czujnikach.
    Mam zrobioną przeróbkę hardwaerową, i bez dodawania occupancy_timeout po ok. 90 sekundach czujnik przechodzi z on na off.
    Jak dodam do pliku tekst zgodnie z instrukcją tutaj to nic mi to nie zmienia. Dalej reaguje po 90 sekundach.
    Ma ktoś jakiś pomysł?
    W tekście pisze o resecie usługi chodzi o reset zigbee2mqtt?

  3. Алексей pisze:

    Dzięki za artykuł, czujnik zadziałał tak jak się od niego oczekuje!

Dodaj komentarz