logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

p.kaczmarek2 23 Sie 2022 01:18 18354 50
  • Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Przedstawię tu wnętrze czujnika otwarcia drzwi/okna Tuya WiFi zrealizowanego w oparciu o dwa osobne układy - mikrokontroler (zasilany cały czas) i moduł WiFi (tutaj: CB3S/BK7231N; zasilany tylko gdy trzeba wysłać informacje przez WiFi) komunikujące się poprzez UART (protokół TuyaMCU, ale w wersji 0x00, nie 0x03). Spróbuję też zmierzyć jego pobór prądu w trybie snu. Będzie to nieco inny rodzaj czujnika niż poprzednio recenzowany wykonany na samym module WiFi XR809/XR3:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    W tym temacie skupię się na działaniu czujnika DS06 i na jego protokole komunikacji TuyaMCU z modułem WiFi.

    Zakup czujnika
    Produkt kupiłem na bezpośrednią prośbę jednego z użytkowników. Można go znaleźć w sieci pod nazwą "AVATTO Tuya WiFi Door Sensor, Smart Door Open/Closed Detectors, Smart Life APP Wifi Window Sensor Work with Alexa,Google Home", jak również pod nazwą modelu: D06/DS06. Kosztuje około 40 zł.
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Produkt reklamowany jest (zgodnie z prawdą) jako kompatybilny z aplikacjami Tuya i SmartLife:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Zawartość zestawu
    Znów na paczkę czekałem kilka tygodni. Przyniósł ją Pocztex, choć nadana była przez "Sinotrans w imieniu i na rzecz Cainiao".
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Opakowanie jest w niebieskiej kolorystyce SmartLife (Tuya ma pomarańczową), ale to wszystko to jest ten sam ekosystem:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    W zestawie jest instrukcja i śruby oraz taśma do mocowania:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Instrukcja (w tryb parowania wchodzi się poprzez wciśnięcie RESET dłużej niż 7 sekund):
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Sensor wymaga dwóch baterii AAA:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Test z aplikacją Tuya
    Sensor przemalowany jest na SmartLife i kod QR prowadzi do aplikacji SmartLife, ale też jest kompatybilny z oryginalną, "pomarańczową" aplikacją Tuya:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Można w niej tworzyć automatyzację, ale to było już omawiane na forum kilka razy.

    Wnętrze D06
    Wystarczy podważyć obudowę nożykiem:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    W środku jest moduł WiFi CB3S (BK7231N) i mikrokontroler (bez oznaczenia):
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Wyprowadzenia CB3S - z dokumentacji Tuya:
    Pin numberSymbolI/O typeFunction
    1RSTILow-level reset, high level active (the pin has been pulled high internally), correspond to CEN of the IC
    2ADC3AIADC pin, which corresponds to P23 of the IC
    3CENIEnabling pin, which is pulled high internally to be compatible with other modules
    4P14I/OA common GPIO interface, which corresponds to P14 of the IC
    5P26I/OGPIOP_26, which corresponds to P26 of the IC, PWM 5
    6P24I/OGPIOP_24, which corresponds to P24 of the IC, PWM 4
    7P6I/OGPIOP_6, which corresponds to P6 of the IC, PWM 0
    8VCCPPower supply pin (3.3V)
    9GNDPPower supply reference ground
    10P9I/OGPIOP_9, which corresponds to P9 of the IC, PWM 3
    11TXD2I/OUART2_TXD (used to display the module internal information), which corresponds to P0 of the IC
    12CSNI/OProduction test control pin. If it is used as a common I/O pin, it must be connected to the VCC externally. Do not connect it to the ground before the module is powered on.
    13P8I/OGPIOP_8, which corresponds to P8 of the IC, PWM 2
    14P7I/OGPIOP_7, which corresponds to P7 of the IC, PWM 1
    15RXD1I/OUART1_RXD (user serial interface), which corresponds to P10 of the IC. Do not connect it to the VCC. By default, the MCU serial port should be in low-level or high-impedance state.
    16TXD1I/OUART1_TXD (user serial interface), which corresponds to P11 of the IC. Do not connect it to the VCC. By default, the MCU serial port should be in low-level or high-impedance state.
    17ADC3AI(Not recommended. If needed, please use Pin 2) ADC port, which corresponds to P23 of the IC. Programmed SPI
    18P22I/O(Not recommended ) GPIOP_22, which corresponds to P22 of the IC. Programmed SPI
    19CSNI/OThe pull-up resistor is needed during usage of customers. Do not connect it to the ground before the module is powered on. Correspond to P21 of the IC.
    20P20I/O(Not recommended. ) GPIOP_20, which corresponds to P20 of the IC. Programmed SPI
    21NC--
    22NC--

    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    W celu dokładniejszego przeanalizowania płytki najpierw usunąłem spoiwo plecionką a potem zdjąłem ją z plastikowej bazy:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Na spodzie nie ma jednak dużo:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Na bazie zebranej wiedzy przygotowałem szkic połączeń:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Ten czujnik otwarcia drzwi/okna działa całkiem inaczej niż opisywany przeze mnie kiedyś czujnik zrealizowany na XR809 (XR3). Tutaj moduł WiFi jest normalnie wyłączony - pracuje ciągle tylko mikrokontroler. Mikrokontroler może tylko załączyć zasilanie CB3S poprzez tranzystor MOSFET z kanałem typu P A19T gdy zajdzie taka potrzeba. Mikrokontroler ten komunikuje się z CB3S poprzez protokół TuyaMCU, ale w wersji dla urządzeń zasilanych bateryjnie, czyli 0x00 a nie 0x03.
    W dużym uproszczeniu, połączenie wygląda tak:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Grafika pochodzi z oficjalnej dokumentacji Tuya.
    Sposób raportowania danych przez sensor obrazuje natomiast ten algorytm:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Moduł WiFi pracuje naprawdę przez krótki okres czasu, normalnie tylko mikrokontroler w trybie niskiego zużycia energii nasłuchuje zmian na czujniku.
    Zmiany wsadu CB3S już tu nie opisuję, bo było to omawiane np. dla CB2S, ale jedynie podkreślę, że linie RX/TX są zajęte przez TuyaMCU, więc jak chcemy programować to trzeba je odciąć lub odlutować tamten układ scalony...



    Bliźniaczy produkt - czujnik zalania W06
    Podobnie jak w przypadku omawianego kiedyś czujnika otwarcia/drzwi okna opartego o moduł XR809 (ale bez TuyaMCU), ten produkt też sprzedawany jest w formie czujnika zalania - jest to po prostu to samo PCB, te same układy, ale zamiast kontaktrona są właśnie wyprowadzone styki czujnika wilgoci:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Testy poniżej wykonywałem na obu urządzeniach - działają analogicznie.
    Różnica jest tylko taka, że my jako użytkownik wiemy, że czujnik otwarcia drzwi raportuje otwarte/zamknięte a czujnik wilgoci raportuje mokro/sucho. Same pakiety są identyczne.

    Przechwycone pakiety TuyaMCU na UART
    Przechwytywania dokonałem przy baud 9600. Pakiety zostawiam tutaj m. in. dla siebie na przyszłość, gdy będę implementować/finalizować wsparcie tej wersji TuyaMCU w OpenBeken .
    Podstawy TuyaMCU opisywałem tutaj (to była nieco inna wersja ale większość zasadniczo pasuje):
    Protokół TuyaMCU - komunikacja pomiędzy mikrokontrolerem a modułem WiFi.

    Przy analizie pakietów polecam korzystać z oficjalnej dokumentacji:
    Serial Communication Protocol
    Uruchomienie.
    CB3S wysyła:
    Cytat:

    55 AA 00 01 00 00 00

    Mamy tu (zapis hex):
    - nagłówek - 55 AA
    - wersję - 00
    - kod komendy - 01
    - długość danych - 00 00
    - sumę kontrolną - 00
    Kod komendy 0x01 to pobranie danych o produkcie - Query Product Information.
    TuyaMCu odpowiada:
    Cytat:

    55 AA 00 01 00 24 7B 22 70 22 3A 22 65 37 64 6E 79 38 7A 76 6D 69 79 68 71 65 72 77 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 7D 24

    Zawartość tego pakietu (o długości 0x24 bajty czyli dziesiętnie 36 bajtów) to tekst ASCII:
    Cytat:

    55 AA 00 01 00 24 {"p":"e7dny8zvmiyhqerw","v":"1.0.0"}$

    Identyfikator urządzenia + wersja.
    Już sparowane, kontakt zamknięty w momencie podłączenia zasilania.
    (w poniższych cytatach nie podzieliłem osobnych par request-reply tylko w postaci jednego bloku dałem najpierw to co wysyła CB3S a potem co odpowiada mikrokontroler)
    CB3S wysyła:
    Cytat:

    00 00
    55 AA 00 01 00 00 00
    55 AA 00 02 00 01 04 06
    55 AA 00 08 00 01 00 08
    55 AA 00 08 00 01 00 08 00

    TuyaMCu odpowiada:
    Cytat:

    00
    55 AA 00 01 00 24 7B 22 70 22 3A 22 65 37 64 6E 79 38 7A 76 6D 69 79 68 71 65 72 77 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 7D 24
    55 AA 00 02 00 00 01
    55 AA 00 02 00 00 01
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 01 00 01 01 23
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 03 04 00 01 02 23 00

    Typ wiadomości 0x02 to ustawienie statusu pracy WiFi, a 0x08 to już dane o sensorach, ale o tym za chwilę. Najpierw jeszcze kilka przykładów.

    Już sparowane, urządzenie w trybie snu, zbudziłem je zamykając kontakt.
    CB3S wysyła:
    Cytat:

    00
    55 AA 00 01 00 24 7B 22 70 22 3A 22 65 37 64 6E 79 38 7A 76 6D 69 79 68 71 65 72 77 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 7D 24
    55 AA 00 02 00 00 01
    55 AA 00 02 00 00 01
    head vr id size FL YY MM DD HH MM SS ID TP SIZE VL CK
    55AA 00 08 000C 00 02 02 02 02 02 02 01 01 0001 00 22
    head vr id size FL YY MM DD HH MM SS ID TP SIZE VL CK
    55AA 00 08 000C 00 01 01 01 01 01 01 03 04 0001 02 23

    Pod pakietem naniosłem informację co jest co - kolejno head (nagłówek), vr (version), id (identyfikator pakietu), size (rozmiar), FL (flaga), potem wartości daty, potem ID (dpID/fnID, czyli nazwa zmiennej), TP (typ), SIZE (rozmiar wartości zmiennej), VL (value - jej wartość), CK - checksum, suma kontrolna.

    Już sparowane, urządzenie w trybie snu, zbudziłem je otwierając kontakt.
    CB3S wysyła:
    Cytat:

    00
    55 AA 00 01 00 24 7B 22 70 22 3A 22 65 37 64 6E 79 38 7A 76 6D 69 79 68 71 65 72 77 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 7D 24
    55 AA 00 02 00 00 01
    55 AA 00 02 00 00 01
    head vr id size FL YY MM DD HH MM SS ID TP SIZE VL CK
    55AA 00 08 000C 00 02 02 02 02 02 02 01 01 0001 01 23
    head vr id size FL YY MM DD HH MM SS ID TP SIZE VL CK
    55AA 00 08 000C 00 01 01 01 01 01 01 03 04 0001 02 23
    00

    Pakiety typu 0x08 (dane) zawierają datę/godzinę (tutaj niepoprawną), przeze mnie oznaczoną jako YY MM DD HH MM SS, flagę określającą poprawność daty (moje oznaczenie FL) oraz dodatkowe dane, tzw. data point, ID (id zmiennej), TP (jej typ), SIZE (jej rozmiar) oraz VL (jej wartość).
    To wartość VL określa stan czujnika drzwi.
    Poniżej zrzuty ekranu opisujące strukturę tego pakietu z dokumentacji:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Już sparowane, urządzenie w trybie snu, zbudziłem je wciskając przycisk RESET.
    CB3S wysyła:
    Cytat:

    00
    55 AA 00 01 00 00 00 (01=Query Product Information)
    55 AA 00 02 00 01 03 05 (02=MCU Conf)
    55 AA 00 02 00 01 04 06 (02=MCU Conf)
    55 AA 00 08 00 01 00 08 00 (08=Query State)

    TuyaMCU odpowiada:
    Cytat:

    00
    55 AA 00 01 00 24 7B 22 70 22 3A 22 65 37 64 6E 79 38 7A 76 6D 69 79 68 71 65 72 77 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 7D 24 (01=Query Product Information)
    55 AA 00 02 00 00 01 (02=MCU Conf)
    55 AA 00 02 00 00 01 (02=MCU Conf)
    head vr id size FL YY MM DD HH MM SS ID TP SIZE VL CK
    55AA 00 08 000C 00 01 01 01 01 01 01 03 04 0001 02 23 00 (08=Query State)


    Eksperyment: co wysyła sam CB2S jak odetniemy ścieżki RX i TX i wykonamy reboot?
    Tylko dla zasady - to powinno być jasne.
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    
    55AA0001000000F8 
    

    Rozdzielmy treść pakietu:
    
    55AA 00 0100 00 00 F8 
    

    Przypomnę, mamy kolejno:
    - 55AA - nagłówek
    - 00 - wersja
    - 0100 - długość 1 bajt
    - 00 - dane
    - 00 - checksum
    Powtarzające się F8/F9 wygląda jak zakłócenie, nie jest ono częścią pakietu.
    Eksperyment: co wysyła sam TuyaMCU po odcięciu TX i RX?
    O dziwo jednak coś wysyła - chyba by utrzymać połączenie:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Co kilka sekund zerowy bajt. Albo to zakłócenie.

    A co jak po uruchomieniu zasilania wyślemy do TuyaMCU zapytanie o identyfikację:
    Cytat:

    0x55 0xAA 0x00 0x01 0x00 0x00 0x00

    Odpowiedź:
    Cytat:

    55 AA 00 01 00 24 7B 22 70 22 3A 22 6A 35 33 72 6B
    64 75 35 35 79 64 63 30 66 6B 71 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22
    7D 43

    Tak - to jest już ten omawiany pakiet z wartością ASCII typu {“p”:“vHXEcqntLpkAl***”, “v”:“1.0.0”};
    Zrzut ekranu:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    A jak spróbujemy zapytać go o stan?
    
    0x55 0xAA 0x00 0x08 0x00 0x01 0x00 0x08
    

    Brak odpowiedzi.
    Trzeba najpierw wysłać konfigurację, potem dopiero można 0x08 o Data Points pytać:
    
    0x55 0xAA 0x00 0x02 0x00 0x01 0x04 0x06
    

    Poniżej cała transakcja:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Rozbite odpowiedzi:
    
    55 AA 00 02 00 00 01
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 00 25
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 03 04 00 01 02 23
    



    
    55 AA 00 02 00 01 04 06
    55 AA 00 02 00 00 01
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 03 04 00 01 02 23
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 00 25 
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 03 04 00 01 02 23
    55 AA 00 02 00 01 04 06
    55 AA 00 02 00 00 01
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 00 25
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 03 04 00 01 02 23 
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 ID TP LENG  VL CH
    


    
    55 AA 00 02 00 00 01
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26 
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 00 25
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26 
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26 
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 00 25 
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 03 04 00 01 02 23  
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 ID TP LENG  VL CH
    

    Pakiety zebrane na bliźniaczym czujniku zalania (identyczny układ i protokół, tylko inny sensor).
    Mokro (a właściwie włożenie czujnika do wody):
    
    55 AA 00 02 00 01 04 06
    55 AA 00 02 00 00 01
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 00 25
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 03 04 00 01 02 23 
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 ID TP LENG  VL CH
    55 AA 00 02 00 01 04 06
    55 AA 00 02 00 00 01
    

    (widać zmianę zmiennej o ID=01 z VL 01 na VL 00)
    Sucho:
    
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 03 04 00 01 02 23    
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 ID TP LENG  VL CH   
    

    Widzicie różnicę?
    Na ostatnią wartość proszę nie zwracać uwagi, to suma kontrolna, wiadomo, że się zmienia.
    Mokro:
    
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 00 25
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 ID TP LENG  VL CH
    

    Sucho:
    
    55 AA 00 08 00 0C 00 02 02 02 02 02 02 01 04 00 01 01 26
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 ID TP LENG  VL CH   
    

    Pakiet o ID 0x01 (dpID albo fnID 0x01) zmienia wartość z 1 (VL, Value) na 0.
    Mamy też ID 0x03:
    
    55 AA 00 08 00 0C 00 01 01 01 01 01 01 03 04 00 01 02 23   
    

    ... ale to jest stan baterii (wartość, VL, 02).

    Na koniec wykonałem test w OpenBeken - oba układy zasilane osobno z 3.3V, mikrokontroler wybudzony, te dziwne 00 00 00 w buforze tuyaMCU się pojawiają gdy mikrokontroler śpi (ma wyłączony UART) a moduł WiFi w sztuczny sposób działa (przez nas zasilony dodatkowo):
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    OpenBeken zdolny jest odebrać pakiet identyfikacji MCU.
    Natomiast jeśli sami wyślemy pakiet konfiguracji 0x02 (na zrzucie ekranu przez komendę uartSendHex), to CB3S też nam wyśle pakiet 0x08 ze stanami zmiennych:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Podsumowując, powyższe dane pokazują, że używane są w tych sensorach dwie zmienne TuyaMCU (data points) w pakiecie 0x08:
    - dpID 1 - stan czujnika, 0 lub 1 (dla czujnika drzwi to otwarcie/zamknięcie, dla czujnika wilgoci to mokro/sucho)
    - dpID 3 - stan baterii, od 3 (pełna) do 0 (albo 1 - nie sprawdzane).
    Dane te raportowane są przez TuyaMCU po zidentyfikowaniu się modułu WiFi.

    Konfiguracja w OpenBeken
    Mój OpenBeken wspiera już ten czujnik, ale jeszcze nie testowałem w pełni całej funkcjonalności.
    Obsługa tego czujnika wymaga włączenia dwóch "driverów", jeden TuyaMCU, a drugi tmSensor. TuyaMCU obsługuję podstawę komunikacji UART, a tmSensor sam wysyła pakiety odpytujące o stan (przypominam - to moduł WiFi pierwszy odzywa się po UART do TuyaMCU).
    Oto linia komend OpenBeken (wpisałem to w startup command by się wykonywało na starcie):
    
    backlog startDriver tuyaMCU; startDriver tmSensor; linkTuyaMCUOutputToChannel 1 val 1; setChannelType 1 ReadOnly; linkTuyaMCUOutputToChannel 3 val 3; setChannelType 3 ReadOnly;
    

    Kanały/dpID tak jak wyżej - 1 i 3. Jeden to stan sensoru, drugi baterii.
    Konfiguracja Yaml w Home Assistant (ten przykład jest dla czujnika wody, ale tak jak pisałem, to ten sam układ, tylko inny sensor, czujnik otwarcia drzwi działa analogicznie):
    Kod: YAML
    Zaloguj się, aby zobaczyć kod

    Odczytu baterii jeszcze nie robiłem - pełną wersję umieszczę w następnym temacie.
    Zrzut ekranu z panelu:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Widok w HA:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Pobór prądu w trybie uśpienia i wysyłania danych
    Mikrokontroler uruchamia moduł WiFi tylko gdy trzeba wysłać dane, ale ile oszczędza to prądu? Tryb uśpienia:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Wysyłanie danych (tu pływa prąd o około 70mA)
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Podsumowanie
    Ten czujnik otwarcia drzwi/okna rzeczywiście różni się od czujnika omawianego wcześniej, opartego na XR809. Dodanie mikrokontrolera załączającego moduł WiFi kiedy tylko trzeba wysłać nowe informacje do serwera z pewnością pozwala w jakimś stopniu zaoszczędzić energię i wydłuża czas pracy baterii, ale też komplikuje sam układ i utrudnia dodanie jego wsparcia do mojego firmware.
    Z moich pomiarów wynika, że w trybie snu MCU pobór prądu wynosi około 5µA. Warto nadmienić, że wtedy MCU nawet wyłącza swój UART (sprawdzałem - nie odpowiada) i tylko czeka na sygnał od sensora bądź czujnika.
    W momencie gdy sygnał jest odebrany, moduł WiFi jest włączony i zużycie prądu sięga do 70mA lub więcej, zależy od tego co robi WiFi.
    Te 5µA to raczej dobry wynik - zajrzałem do noty katalogowej ESP8266 (tu nie ma ESP tylko BK7231N, ale myślę, że warto porównać) i w zależności od trybu snu ESP8266 pobiera następujące prądy:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    czyli rzeczywiście producent mógł coś ugrać na tym dodaniu MCU.
    Co ciekawe, wynik 5µA przypomina pobór prądu ESP32 w trybie hibernacji (bazując na jego nocie katalogowej):
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Rzecz jasna na zużycie energii wpływa też pobór prądu przy działaniu modułu WiFi - tylko że też trudno ocenić jak duży to wpływ, bo nie wiemy jak często będą otwierane drzwi.
    Ten sam produkt występuje też jako czujnik zalania - układ i protokół ma identyczny, różni się jedynie tym, że przylutowany jest inny sensor.
    Sam czujnik przerobiłem już wstępnie pod mój OpenBeken (dodałem jego wsparcie w moim firmware), ale nie jest to finalna wersja, więc opiszę to szczegółowo innym razem.
    Czy ktoś korzysta z tego typu czujników a jeśli tak, to na ile starcza bateria? Zapraszam do dyskusji.

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
  • #2 20156536
    noyo
    Poziom 18  
    A może komuś rzuciło się w oczy tego typu czujnik, ale mniejszy na baterię CR2032 oraz po BT ?
  • #3 20156547
    p.kaczmarek2
    Moderator Smart Home
    Recenzowałem czujnik korzystający z CR1632, komunikujący się po Zigbee - Zigbee jest ogółem nieco bardziej energooszczędne, ale droższe.
    Czujnik otwarcia drzwi Aqara MCCGQ11LM na Zigbee - test, wnętrze, wykresy
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Naprawdę chcesz czujnik z komunikacją BT?


    Ciekawostką też był czujnik otwarcia drzwi ładowany przez USB:
    Czujnik otwarcia drzwi Zigbee ładowany przez USB - BW-IS2 Blitzwolf
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Pomogłem? Kup mi kawę.
  • #4 20156653
    piotr_go
    Konstruktor DIY elektronika
    noyo napisał:
    A może komuś rzuciło się w oczy tego typu czujnik, ale mniejszy na baterię CR2032 oraz po BT ?

    Nie polecam. Wydajność prądowa CR2032 mocno spada w niskich temperaturach.
    Latem będzie działał, zimą niekoniecznie.
  • #5 20156934
    sortes
    Poziom 12  
    Używam kilku podobnych czujników:

    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Czas użytkowania baterii zależy od częstości załączania czujników.
    W piwnicy i w czujnikach zalania te same baterie tkwią od 2 lat.
    A to przykład częstości wymiany baterii AAA LR Panasonic przy drzwiach balkonowych:

    2020/11/04
    2021/05/22
    2022/01/04
    2022/08/10
  • #6 20157377
    krzbor
    Poziom 27  
    piotr_go napisał:
    noyo napisał:
    A może komuś rzuciło się w oczy tego typu czujnik, ale mniejszy na baterię CR2032 oraz po BT ?

    Nie polecam. Wydajność prądowa CR2032 mocno spada w niskich temperaturach.
    Latem będzie działał, zimą niekoniecznie.

    Mam czujniki temperatury iNODE na BT. Jeden postanowiłem dać na zewnątrz. Na baterii CR2032 działa bardzo dobrze nawet na mrozie. Widać drobny spadek napięcia, gdy jest bardzo zimno, ale to zupełnie nie przeszkadza w komunikacji.
  • #7 20157574
    piotr_go
    Konstruktor DIY elektronika
    Ja mam czujnik po Zigbee (cc2530). Zdychał zawsze w okolicach listopad/grudzień. Po przyniesieniu do domu odżywał.
    Zmieniłem baterię na małego Saft'a i mam kilka lat spokoju.
  • #8 20159127
    krzbor
    Poziom 27  
    noyo napisał:
    A może komuś rzuciło się w oczy tego typu czujnik, ale mniejszy na baterię CR2032 oraz po BT ?

    Może coś takiego Link? Niestety nie są najtańsze.
  • #9 20159168
    noyo
    Poziom 18  
    krzbor napisał:
    noyo napisał:
    A może komuś rzuciło się w oczy tego typu czujnik, ale mniejszy na baterię CR2032 oraz po BT ?

    Może coś takiego Link? Niestety nie są najtańsze.
    Mam wersje z czujnikiem ruchu i temp. jeszcze kupiony jak był tańszy. Ale wtedy jak to testowałem to jakby się zawieszało i trzeba było restartować. Może wrócę do tego i sprawdzę jeszcze raz. Dzięki za przypomnienie.
  • #10 20159510
    krzbor
    Poziom 27  
    noyo napisał:
    Mam wersje z czujnikiem ruchu i temp. jeszcze kupiony jak był tańszy. Ale wtedy jak to testowałem to jakby się zawieszało i trzeba było restartować. Może wrócę do tego i sprawdzę jeszcze raz. Dzięki za przypomnienie.

    Może coś nie tak z firmware? Ogólnie nie powinno być problemów z komunikacją, bo ta jest jednostronna - iNODE tylko wysyła statusy. Mam kilka czujników temperatury - ustawiłem maksymalną moc nadawania i maksymalny czas pomiędzy pakietami oraz wyłączyłem diodę - czujniki nadają przez ponad rok na jednej baterii.
  • #11 20161017
    noyo
    Poziom 18  
    krzbor napisał:
    noyo napisał:
    Mam wersje z czujnikiem ruchu i temp. jeszcze kupiony jak był tańszy. Ale wtedy jak to testowałem to jakby się zawieszało i trzeba było restartować. Może wrócę do tego i sprawdzę jeszcze raz. Dzięki za przypomnienie.

    Może coś nie tak z firmware? Ogólnie nie powinno być problemów z komunikacją, bo ta jest jednostronna - iNODE tylko wysyła statusy. Mam kilka czujników temperatury - ustawiłem maksymalną moc nadawania i maksymalny czas pomiędzy pakietami oraz wyłączyłem diodę - czujniki nadają przez ponad rok na jednej baterii.
    Chciałem zaktualizować firmware, ale na andoidzie 10 to aplikacje ze strony nie chodzą, natomiast na andoidzie 4.4.2 działa, ale nie reaguje przycisk "przeglądaj.." do wybrania pliku firmware.
  • #12 20164163
    p.kaczmarek2
    Moderator Smart Home
    Co do protokołu TuyaMCU urządzeń zasilanych bateryjnie; taka ciekawostka; widzę, że ktoś bazując na moim artykule o programowaniu XR809 zrobił proste demko tego protokołu tylko na tą platformę:
    https://github.com/tony-fav/FavTuyaXR3
    Cytat:

    This is an attempt at a custom firmware for the Feit Electric Smart Wi-Fi Water Sensor (https://www.feit.com/product/smart-wi-fi-water-sensor/) which has a Tuya XR3 WIFI Module (https://developer.tuya.com/en/docs/iot/xr3-datasheet?id=K98s9168qi49g) following the efforts of p.kaczmarek2 on elektroda.com (https://www.elektroda.com/rtvforum/topic3806769.html#19447386). I got mine from my local Menards after seeing the elektroda post because it seemed like a fun project (https://www.menards.com/main/plumbing/pumps-tanks/pump-well-tank-accessories/feit-electric-smart-wi-fi-water-sensor/senfwag/p-7919224473280192-c-8672.htm).

    Macie tam zdjęcia kolejnego urządzenia z TuyaMCU ,tym razem na XR3, nie widziałem takiego wcześniej.
    Parsing pakietu autor kodu ma tutaj:
    https://github.com/tony-fav/FavTuyaXR3/blob/master/project/at_demo/main.c
    Chociaż to jest tylko na szybko sklecone, sądząc po sposobie implementacji:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    Pomogłem? Kup mi kawę.
  • #13 20350672
    dmitridiavo
    Poziom 2  
    Cześć.
    Kupiłem kolejną rewizję czujnika wycieku wody.
    Zawiera chipy cb3s i um8005(tuya?).
    Sflashowałem cb3s z najnowszym oprogramowaniem OpenBK.
    Działa, ale tuyaMCU wymaga szybkości transmisji 115200. Użyłem polecenia startowego ,,tuyaMcu_setBaudRate 115200"
    Ale jest problem. Często za pierwszym razem, gdy zmokniemy, mqtt nie wysyła wiadomości. Jeśli natychmiast go wysuszysz i ponownie zmoczysz, komunikaty pojawią się normalnie. Po głębokim śnie pierwszą wiadomość znów można przegapić.
    w fabrycznym oprogramowaniu wszystkie komunikaty docierają poprawnie
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
  • #14 20350706
    p.kaczmarek2
    Moderator Smart Home
    Witam. Po pierwsze, czy włączyłeś rozgłaszanie MQTT na połączeniu?
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    
    Flag 10 - [MQTT] Broadcast self state on MQTT connect
    
    Pomogłem? Kup mi kawę.
  • #15 20351761
    dmitridiavo
    Poziom 2  
    Dzięki za radę!
    Teraz mam włączoną flagę 10. W rezultacie urządzenie wysyła niektóre stany przez protokół, ale nie kanałami 1 i 3.
    dziennik:
    Spoiler:
    ####### Boot Count 170 #######
    Warn:CFG:CFG_InitAndLoad: Correct config has been loaded with 29 changes count.
    Error:CMD:lfs is absent
    Info:GEN:PIN_SetupPins pins have been set up.
    Info:MAIN:Main_Init_Before_Delay done
    Info:MAIN:Main_Init_Delay
    Info:MAIN:Main_Init_Delay done
    Info:MAIN:Main_Init_After_Delay
    Info:MAIN:Using SSID [OpenWrt]
    Info:MAIN:Using Pass [********]
    Info:MQTT:MQTT_RegisterCallback called for bT bathroom/waterleak/ subT bathroom/waterleak/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/bathroom/waterleak/ subT cmnd/bathroom/waterleak/+
    Info:MAIN:Started tuyaMCU.
    Info:MAIN:Started tmSensor.
    Info:GEN:Channel 1 type changed to ReadOnly
    Info:GEN:Channel 3 type changed to ReadOnly
    Error:CMD:lfs is absent
    Info:MAIN:Main_Init_After_Delay done
    Info:MAIN:Time 1, idle 287961/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 2, idle 186101/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 3, idle 186384/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:TuyaMCU:TUYAMCU received: 55 AA 00 01 00 24 7B 22 70 22 3A 22 74 35 68 36 34 6E 63 77 61 66 75 72 77 6E 61 79 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 7D CF 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=0]: processing command 1 (QueryProductInformation) with 43 bytes
    Info:TuyaMCU:TuyaMCU_ParseQueryProductInformation: received {"p":"t5h64ncwafurwnay","v":"1.0.0"}
    Info:MAIN:Time 4, idle 186171/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 5, idle 180830/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:ssid:OpenWrt key:********
    Info:MAIN:Time 6, idle 184804/s, free 77968, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:TuyaMCU:TUYAMCU received: 55 AA 00 02 00 00 01 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=0]: processing command 2 (MCUconf) with 7 bytes
    Info:TuyaMCU:TuyaMCU_ProcessIncoming: TUYA_CMD_MCU_CONF, TODO!
    Info:TuyaMCU:TUYAMCU received: 55 AA 00 10 00 01 00 10 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=0]: processing command 16 (Unknown) with 8 bytes
    Info:TuyaMCU:TuyaMCU_ProcessIncoming: unhandled type 16
    Info:TuyaMCU:TUYAMCU received: 55 AA 00 05 00 05 01 04 00 01 00 0F 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=0]: processing command 5 (WiFiSelect) with 12 bytes
    Info:TuyaMCU:TuyaMCU_V0_ParseRealTimeWithRecordStorage: processing dpId 1, dataType 4-DP_TYPE_ENUM and 1 data bytes
    Info:TuyaMCU:TuyaMCU_V0_ParseRealTimeWithRecordStorage: raw data 1 byte: 
    Info:GEN:CHANNEL_Set channel 1 has changed to 0 (flags 0)
    
    Info:MAIN:Channel has changed! Publishing change 1 with 0 
    Info:MAIN:Time 7, idle 184146/s, free 77968, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 8, idle 98345/s, free 77784, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 9, idle 0/s, free 77784, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 10, idle 0/s, free 77784, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:GEN:dhcp=0 ip=0.0.0.0 gate=0.0.0.0 mask=0.0.0.0 mac=a0:92:08:58:30:9b 
    Info:GEN:sta: 0, softap: 0, b/g/n
    Info:MAIN:wl_status 3
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTING
    Info:MAIN:wl_status 10
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTED
    Info:MAIN:wl_status 11
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTED
    Info:MAIN:Time 11, idle 61056/s, free 77896, MQTT 0(0), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MQTT:Publishing val obk0858309B to bathroom/waterleak/host retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -13 result 0
    Info:MAIN:Time 14, idle 188346/s, free 57544, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 4/38
    Info:MQTT:Publishing val Build on Dec 21 2022 16:05:20 version 1.15.217 to bathroom/waterleak/build retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -12 result 0
    Info:MAIN:Time 15, idle 176233/s, free 77640, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MQTT:Publishing val a0:92:08:58:30:9b  to bathroom/waterleak/mac retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -11 result 0
    Info:MAIN:Time 16, idle 181170/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Boot complete time reached (15 seconds)
    Info:CFG:####### Set Boot Complete #######
    Info:MQTT:Publishing val 18 to bathroom/waterleak/uptime retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -6 result 0
    Info:MAIN:Time 19, idle 181609/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MQTT:Publishing val 77848 to bathroom/waterleak/freeheap retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -5 result 0
    Info:MAIN:Time 20, idle 182677/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:GEN:dhcp=0 ip=192.168.1.109 gate=192.168.1.1 mask=255.255.255.0 mac=a0:92:08:58:30:9b 
    Info:GEN:sta: 1, softap: 0, b/g/n
    Info:GEN:sta:rssi=-52,ssid=OpenWrt,bssid=9c:9d:7e:85:7b:df ,channel=11,cipher_type:CCMP
    Info:MQTT:Publishing val 192.168.1.109 to bathroom/waterleak/ip retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -4 result 0
    Info:MAIN:Time 21, idle 180822/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 22, idle 363949/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 23, idle 183035/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    

    Hipoteza: kanał zmienia się przed połączeniem Wi-Fi. To jest dziwne. the kod ma łączyć się z mqtt.

    Włączam również flagę 19 - [MQTT] Zawsze publikuj kanały używane przez TuyaMCU i ustaw wartość początkową dla kanału 1 i 3 na '9'. Dla mnie oznacza to ,,nieznany" w HomeAssistant

    Powodzenie:
    Spoiler:
    Info:MAIN:Main_Init_Before_Delay
    Info:CFG:####### Boot Count 176 #######
    Warn:CFG:CFG_InitAndLoad: Correct config has been loaded with 30 changes count.
    Error:CMD:lfs is absent
    Info:GEN:PIN_SetupPins pins have been set up.
    Info:MAIN:Main_Init_Before_Delay done
    Info:MAIN:Main_Init_Delay
    Info:MAIN:Main_Init_Delay done
    Info:MAIN:Main_Init_After_Delay
    Info:MAIN:Using SSID [OpenWrt]
    Info:MAIN:Using Pass [********]
    Info:MQTT:MQTT_RegisterCallback called for bT bathroom/waterleak/ subT bathroom/waterleak/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/bathroom/waterleak/ subT cmnd/bathroom/waterleak/+
    Info:MAIN:Started tuyaMCU.
    Info:MAIN:Started tmSensor.
    Info:GEN:Channel 1 type changed to ReadOnly
    Info:GEN:Channel 3 type changed to ReadOnly
    Error:CMD:lfs is absent
    Info:MAIN:Main_Init_After_Delay done
    Info:MAIN:Time 1, idle 287551/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 2, idle 187113/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 3, idle 187279/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:TuyaMCU:TUYAMCU received: 55 AA 00 01 00 24 7B 22 70 22 3A 22 74 35 68 36 34 6E 63 77 61 66 75 72 77 6E 61 79 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 7D CF 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=0]: processing command 1 (QueryProductInformation) with 43 bytes
    Info:TuyaMCU:TuyaMCU_ParseQueryProductInformation: received {"p":"t5h64ncwafurwnay","v":"1.0.0"}
    Info:MAIN:Time 4, idle 188359/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 5, idle 181928/s, free 82928, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:ssid:OpenWrt key:********
    Info:MAIN:Time 6, idle 185596/s, free 77968, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:TuyaMCU:TUYAMCU received: 55 AA 00 02 00 00 01 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=0]: processing command 2 (MCUconf) with 7 bytes
    Info:TuyaMCU:TuyaMCU_ProcessIncoming: TUYA_CMD_MCU_CONF, TODO!
    Info:TuyaMCU:TUYAMCU received: 55 AA 00 10 00 01 00 10 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=0]: processing command 16 (Unknown) with 8 bytes
    Info:TuyaMCU:TuyaMCU_ProcessIncoming: unhandled type 16
    Info:TuyaMCU:TUYAMCU received: 55 AA 00 05 00 05 01 04 00 01 00 0F 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=0]: processing command 5 (WiFiSelect) with 12 bytes
    Info:TuyaMCU:TuyaMCU_V0_ParseRealTimeWithRecordStorage: processing dpId 1, dataType 4-DP_TYPE_ENUM and 1 data bytes
    Info:TuyaMCU:TuyaMCU_V0_ParseRealTimeWithRecordStorage: raw data 1 byte: 
    Info:GEN:CHANNEL_Set channel 1 has changed to 0 (flags 0)
    
    Info:MAIN:Channel has changed! Publishing change 1 with 0 
    Info:MAIN:Time 7, idle 185757/s, free 77968, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 8, idle 99222/s, free 77784, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 9, idle 0/s, free 77784, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 10, idle 0/s, free 77784, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38
    Info:GEN:dhcp=0 ip=0.0.0.0 gate=0.0.0.0 mask=0.0.0.0 mac=a0:92:08:58:30:9b 
    Info:GEN:sta: 0, softap: 0, b/g/n
    Info:MAIN:wl_status 3
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTING
    Info:MAIN:wl_status 10
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTED
    Info:MAIN:wl_status 11
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTED
    Info:MAIN:Time 11, idle 60838/s, free 77896, MQTT 0(0), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Time 12, idle 182877/s, free 77720, MQTT 0(0), bWifi 1, secondsWithNoPing -1, socks 3/38
    Info:MQTT:mqtt_userName waterleak1
    mqtt_pass qqqqqqqqqq
    mqtt_clientID bathroom/waterleak
    mqtt_host 192.168.1.110:1883
    Info:MAIN:Time 13, idle 188485/s, free 77640, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MQTT:mqtt_connection_cb: Successfully connected
    Info:MQTT:mqtt_subscribed to bathroom/waterleak/+/set
    Info:MQTT:mqtt_subscribed to cmnd/bathroom/waterleak/+
    Info:MQTT:MQTT client "bathroom/waterleak" request cb: err 0
    Info:MQTT:MQTT client "bathroom/waterleak" request cb: err 0
    Info:MQTT:Publishing val obk0858309B to bathroom/waterleak/host retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -13 result 0
    Info:MAIN:Time 14, idle 182521/s, free 77600, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MQTT:Publishing val Build on Dec 21 2022 16:05:20 version 1.15.217 to bathroom/waterleak/build retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -12 result 0
    Info:MAIN:Time 15, idle 183035/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MQTT:Publishing val a0:92:08:58:30:9b  to bathroom/waterleak/mac retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -11 result 0
    Info:MAIN:Time 16, idle 184125/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Boot complete time reached (15 seconds)
    Info:CFG:####### Set Boot Complete #######
    Info:MQTT:Publishing val 2 to bathroom/waterleak/sockets retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -8 result 0
    Info:MAIN:Time 17, idle 176456/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MQTT:Publishing val -51 to bathroom/waterleak/rssi retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -7 result 0
    Info:MAIN:Time 18, idle 185788/s, free 69240, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 3/38
    Info:MQTT:Publishing val 18 to bathroom/waterleak/uptime retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -6 result 0
    Info:MAIN:Time 19, idle 185675/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MQTT:Publishing val 77848 to bathroom/waterleak/freeheap retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -5 result 0
    Info:MAIN:Time 20, idle 187380/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:GEN:dhcp=0 ip=192.168.1.109 gate=192.168.1.1 mask=255.255.255.0 mac=a0:92:08:58:30:9b 
    Info:GEN:sta: 1, softap: 0, b/g/n
    Info:GEN:sta:rssi=-51,ssid=OpenWrt,bssid=9c:9d:7e:85:7b:df ,channel=11,cipher_type:CCMP
    Info:MQTT:Publishing val 192.168.1.109 to bathroom/waterleak/ip retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item -4 result 0
    Info:MAIN:Time 21, idle 364009/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    Info:MAIN:Forced channel publish! Publishing val 0 to 1
    Info:MQTT:Publishing val 0 to bathroom/waterleak/1/get retain=0
    Info:MQTT:[g_bPublishAllStatesNow] item 1 result 0
    Info:MAIN:Time 22, idle 197028/s, free 77848, MQTT 1(1), bWifi 1, secondsWithNoPing -1, socks 2/38
    

    Jeśli włączysz tylko we fladze 19, to też działa.
    Dzięki za Twój projekt!
  • #16 20383829
    klaudi43
    Poziom 5  
    Cześć,

    Przede wszystkim dziękuję za wspaniałą pracę. Miganie czujników działało świetnie z instrukcjami. To moja pierwsza próba z openbekenem.
    Mogę również dotrzeć do modułów przez adres IP i MQTT. Niestety czujnik nie wysyła żadnej zmiany stanu styku. Zakładam, że to kwestia konfiguracji pinów. Nie mogę znaleźć żadnego odniesienia do tego. Testowałem to z różnymi ustawieniami, ale dalej nie mogę.
    TuyaMCU działa.
    Czy ktoś może mi podpowiedzieć, która konfiguracja jest nadal w toku? Czy trzeba coś regulować na pinach? Jeśli tak, gdzie?

    Dziękuję i pozdrawiam
  • #17 20383860
    p.kaczmarek2
    Moderator Smart Home
    @klaudi43
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Proszę ustawić:
    
    Flag 2 - [MQTT] Broadcast self state every N (def: 60) seconds (delay configurable by 'mqtt_broadcastInterval' and 'mqtt_broadcastItemsPerSec' commands)
    Flag 10 - [MQTT] Broadcast self state on MQTT connect
    Flag 19 - [MQTT] Always publish channels used by TuyaMCU
    
    Pomogłem? Kup mi kawę.
  • #18 20386473
    klaudi43
    Poziom 5  
    Witam,

    Przede wszystkim dziękuję za szybką informację zwrotną. Dostosowałem ustawienia zgodnie z opisem. Niestety oba kanały wysyłają tylko 0.
    Zakładam, że jest to związane ze sprzętem. Wydaje się, że jest to nowa generacja czujników. Wygląda więc na to, że to coś większego.
    „Bawiłem się” również dostosowywaniem szybkości transmisji i przełączaniem kanałów, ale zawsze uzyskuję te same wyniki.
    Zrobiłem zdjęcie modułu. Może to pomaga.
    Jeszcze raz dziękuję i pozdrawiam!

    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
  • #19 20386520
    p.kaczmarek2
    Moderator Smart Home
    Chwileczkę, czy to Twoje urządzenie? Na twojej płycie nie ma TuyaMCU.
    TuyaMCU to zewnętrzny mikrokontroler znajdujący się obok modułu WiFI:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Twoje urządzenie nie jest urządzeniem TuyaMCU.
    Powinieneś to inaczej skonfigurować.
    Co to za urządzenie i gdzie zostało kupione?
    Pomogłem? Kup mi kawę.
  • #20 20386573
    klaudi43
    Poziom 5  
    Kupiłem na Ebayu. Numer zn373141_01 jest wydrukowany na opakowaniu. Odpowiada również zdjęciom na AliExpress i jest oferowany jako Tuya / Aubess.
  • #21 20386672
    p.kaczmarek2
    Moderator Smart Home
    Do postu proszę dołączyć zrzuty ekranu z oferty eBay. Co więcej, nadal nie jestem pewien, co to za czujnik - czy to czujnik drzwi, czy zdalny przełącznik? Nie widzę części czujnika... tu jest zdjęcie innego czujnika drzwi, pytam o część oznaczoną strzałką:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Ponadto w domenie .com prosimy o odpowiedź w języku angielskim, aw domenie .pl po polsku, ponieważ mamy automatyczne tłumaczenie między tymi dwiema stronami i psuje się, jeśli ktoś użyje niewłaściwego języka po niewłaściwej stronie forum.

    Dlaczego czujnik nie jest wlutowany na twoich zdjęciach? Czy twoje urządzenie jest jakimś innym gadżetem IoT, nie wiem, zdalnym przełącznikiem?
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Pomogłem? Kup mi kawę.
  • #22 20386835
    klaudi43
    Poziom 5  
    Cześć,

    to są czujniki drzwi. Kupiłem je "z drugiej ręki". Sprzedawca użył ich z oprogramowaniem tuya i zadziałało (muszę w to uwierzyć, bo nie próbowałem.). Jak wspomniałem, myślę, że to kolejna generacja sensorów. Wygląda na to, że funkcjonalność jest w module CB3S. Widziałem brakujący czujnik Halla, ale - nie jestem pewien, z powodu braku dokumentacji, może to być inny typ czujnika Halla. (Q3 na obrazku - 204NS).
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Proszę wybaczyć zamieszanie językowe.

    Z wyrazami szacunku!
  • #23 20386909
    p.kaczmarek2
    Moderator Smart Home
    Nie ma problemu, myślę, że pierwszym krokiem byłoby ustalenie, który port IO CB3S jest używany do stanu drzwi.

    Możesz to zrobić na wiele sposobów, w tym:
    1. sprawdź za pomocą multimetru, które IO są podłączone gdzie i naszkicuj połączenia
    2. wylutuj CB3S i popatrz
    3. spróbuj zgadnąć w oprogramowaniu układowym?

    Jeśli chodzi o oprogramowanie układowe, zalecałbym ustawienie roli ,,dInput", która jest wejściem cyfrowym, z kanałem, powiedzmy, 0, a następnie symulowanie zamykania i otwierania drzwi, aby zobaczyć, czy zmienia się z 0 na 1.

    W ten sposób możesz dowiedzieć się, które IO jest stanem drzwi.

    Ponadto będziesz potrzebować polecenia ,,Oszczędzanie energii" w krótkim poleceniu uruchamiania, w przeciwnym razie bateria rozładuje się w GODZINACH. Wkrótce będziesz też potrzebować funkcji głębokiego uśpienia, ale pracujemy nad tym.

    Usuń kod MCU, na tej płycie nie ma TuyaMCU.
    Pomogłem? Kup mi kawę.
  • #24 20387992
    klaudi43
    Poziom 5  
    Witam ponownie,

    Próbowałem skonfigurować go za pomocą modułu CB3S. Styk drzwiowy działa na pinie 8. Może będzie to pomocne dla innych na tym forum.
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    W następnym kroku muszę dowiedzieć się, jak można monitorować poziom naładowania baterii. Myślę, że jest to realizowane na innym pinie.
    Jak już napisałeś, obecnie nie ma sensu eksploatować modułów na baterie. Więc jeszcze raz dziękuję za wsparcie! Udanego rozpoczęcia tygodnia!

    Wiele pozdrowień
  • #25 20388005
    p.kaczmarek2
    Moderator Smart Home
    Witaj @klaudi43, czy możesz ustawić rolę ADC dla pinów ADC, przypisać inny kanał i zobaczyć, czy daje sensowne odczyty?
    Gdzie jest podłączony pin ADC? Może to ten, którego szukamy.
    Pomogłem? Kup mi kawę.
  • #26 20389942
    klaudi43
    Poziom 5  
    Cześć,

    używając pinu ACD3 (P23) otrzymuję wartość 4096. Próbując tego samego z innymi pinami, otrzymuję tylko -1.

    Pozdrowienia
  • #27 20389963
    p.kaczmarek2
    Moderator Smart Home
    @klaudi43 może sprawdź na PCB? Wykonaj nieco bardziej szczegółową analizę PCB...

    @klaudi43 mamy postępy w głębokim uśpieniu, przyda się to Twojemu urządzeniu: https://www.elektroda.com/rtvforum/topic3945688.html#20389704 Być może już wkrótce Twoje urządzenie będzie w pełni obsługiwane.
    Pomogłem? Kup mi kawę.
  • #28 20400962
    klaudi43
    Poziom 5  
    Cześć,

    Zmierzyłem piny, ale nie mogę zrozumieć wartości. Ale to też nie jest mój świat :) .

    Może możesz zrobić więcej z wartościami. Jak powiedziałem - wszystkie lutowane piny - z wyjątkiem ADC zawsze dają -1 na zewnątrz.
    Energooszczędny (?) bateryjny czujnik drzwi/okien do WiFi DS06

    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Ten pomiar został wykonany między L+ a pinami - myślę, że to powinno wystarczyć. Struktura wydaje się bardzo prosta. Poza tranzystorem (L6) i diodą LED na płytce nie ma nic specjalnego. Tylko kilka rezystorów i kondensatorów.
  • #29 20405390
    elbuit
    Poziom 6  
    klaudi43 napisał:
    Witam ponownie,

    Próbowałem skonfigurować go za pomocą modułu CB3S. Styk drzwiowy działa na pinie 8. Może będzie to pomocne dla innych na tym forum.
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    W następnym kroku muszę dowiedzieć się, jak można monitorować poziom naładowania baterii. Myślę, że jest to realizowane na innym pinie.
    Jak już napisałeś, obecnie nie ma sensu eksploatować modułów na baterie. Więc jeszcze raz dziękuję za wsparcie! Udanego rozpoczęcia tygodnia!

    Wiele pozdrowień

    Cześć.
    Mam to samo urządzenie kupione na aliexpress.
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06 Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06

    Ale nie mogłem zainstalować oprogramowania OpenBeken.
    Próbowałem za pomocą narzędzia flash gui pod Linuksem, ale pokazało błąd UART.
    Więc próbowałem flashować za pomocą CLI, ale dostałem błąd CRC.

    [/kod]
    $ ./uartprogram -d /dev/ttyUSB0 -r door_sensor_pati_backup.bin -u
    UartDownloader....
    Przeczytaj Dojazd autobusem...
    Gotten autobus...
    Ustawiono szybkość transmisji pomyślnie
    długość: 119000
    Adres startowy: 11000
    Odczyt 11000
    ReadSector Sukces 11000 len 1000
    4096
    Odczyt 12000
    ReadSector Sukces 12000 len 1000
    [...]

    ReadSector Sukces 129000 len 1000
    1150976
    CRC powinno wynosić 7f0be275
    CRC to 61efceb3
    Kontrola CRC nie powiodła się
    Zapisano 119000 bajtów do door_sensor_pati_backup.bin
    [/kod]

    Zrobiłem to kilka razy i dostałem ten sam błąd i to samo CRC (61efceb3), więc pomyślałem, że błąd CRC nie może pochodzić z przewodów lub czytnika USB.
    Więc spróbowałem napisać firmware OpenBeken i zadziałało.
    
    $ ./uartprogram -d /dev/ttyUSB0 -w OpenBK7231N_QIO_1.15.384.bin -u
    UartDownloader....
    programm....
    Write Successful: |##################################################|[ 10.6k/s]
    


    Ale niestety to zamurowało moje urządzenie, a przynajmniej nie widziałem identyfikatora SSID OpenBeken.

    Jakieś rady do unbrickowania.

    Dzięki.

    UWAGA: Użyłem CLI, ponieważ nie mogłem napisać oprogramowania OpenBeken za pomocą flashtoola gui, użyłem CLI z urządzeniem WB2S i działało dobrze, ale nie mono BK7231Flasher.exe.
  • #30 20405438
    p.kaczmarek2
    Moderator Smart Home
    Witaj @elbuit. Nieprawidłowo używasz programu uart. Proszę zapoznać się z instrukcją:
    https://github.com/OpenBekenIOT/hid_download_py
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Brakuje Ci offsetu.
    Możesz także obejrzeć migające wideo CB2S:



    Oto część, która powinna Cię zainteresować:
    Energooszczędny (?) bateryjny sensor otwarcia drzwi/okna na WiFi DS06
    Pomogłem? Kup mi kawę.
REKLAMA