Pracuję nad tym, aby wszystkie moje urządzenia odeszły od oprogramowania w chmurze i zaczęły działać lokalnie.
Jednym z moich czujników jest czujnik obecności człowieka 5.8G "MmWave Radar", patrz zdjęcie poniżej:
Chociaż zewnętrznie wyglądał podobnie do urządzenia używanego w tym temacie:
https://www.elektroda.com/rtvforum/topic3987582.html .
W rzeczywistości jest zupełnie inny w środku, co widać na poniższych zdjęciach. Należy zauważyć, że na tych zdjęciach układ TuyaMCU jest tymczasowo zdjęty z płyty, aby zapewnić wyraźniejszy przegląd.
.
Czujnik wykorzystuje MCU CB3S Beken do komunikacji wifi, który jest podłączony do płytki "more sense", na której znajduje się MCU o oznaczeniu 58h32.
Przeczytanie postu p.kaczmarek2 dostarczyło mi narzędzi do debugowania i zbadania komunikacji między Wifi MCU a TuyaMCU, która wydaje się używać protokołu TuyaMCU przy 9600 bodów.
Aplikacja Smart Life zapewnia użytkownikowi kilka opcji sterowania:
- Czułość ruchu, wartość od 0 do 10
- Czułość mikroruchów, wartość od 0 do 10
- Dolna granica zakresu wykrywania ruchu, wartość od 0 do 600 cm
- Górny limit zakresu wykrywania ruchu, wartość od 0 do 600 cm
- Dolna granica zakresu wykrywania mikroruchów, wartość od 0 do 600 cm
- Górny limit zakresu detekcji mikroruchów, wartość między 0 a 600 cm
- "Nobody-Time" po jakim czasie braku ruchu/mikroruchu czujnik powinien wskazywać brak obecności, wartość 30, 60, 90 lub 120
Badanie komunikacji w sposób dwukierunkowy za pomocą narzędzia z https://www.elektroda.com/rtvforum/topic3970199.html dało następujące wyniki:
Ustawienie czułości ruchu:
Ustawienie mikro czułości ruchu:
Ustawienie zakresu wykrywania ruchu, zmiana wartości minimalnej lub maksymalnej zawsze wysyła obie wartości do TuyaMCU:
Gdzie dpid 109 to górny limit, a dpid 110 to dolny limit.
Ustawienie zakresu wykrywania mikroruchów, zmiana wartości minimalnej lub maksymalnej zawsze wysyła obie wartości do TuyaMCU:
Gdzie dpid 111 to górny limit, a dpid 112 to dolny limit.
Ustawienie Nobody Time:
Aktualizacja luminancji z TuyaMCU:
Wszystko powyższe wydaje się logiczne, a wartości są zgodne z moimi ustawieniami w aplikacji smart life. Jak widać, Tuya MCU przesyła z powrotem wszystkie otrzymane dane, zakładam, że służy to weryfikacji.
Jednak, jak można już zauważyć, nie obejmuje to jeszcze faktycznego odbioru głównej wartości czujnika: obecności.
Gdy obecność zostanie wykryta lub nie zostanie już znaleziona, jest to wysyłane z TuyaMCU do Wifi MCU, jednak ta wiadomość nie wydaje się być zgodna z protokołem.
Wykryto obecność:
Nie wykryto obecności:
Wygląda na to, że jest to "normalna" operacja ustawiania DPID TuyaMCU, z pominięciem niektórych bajtów.
Komenda #22 nie jest rozpoznawana przez narzędzie analizatora TuyaMCU.
Ostatnia wartość wydaje się jednak odpowiadać oczekiwanym wartościom 0 i 1 (choć odwróconym).
W celach weryfikacyjnych sprawdziłem dpid, że stan obecności powinien być używany w środowisku Tuya Developer Cloud, co można zobaczyć na poniższym obrazku:
.
Ten obraz pokazuje, że "kod" lub dpid powinien wynosić 101, co odpowiada "65" w pakiecie wysłanym przez TuyaMCU.
W tym momencie utknąłem, próbując zaimplementować ten czujnik w openbeken, ponieważ nie wiem, jak mogę zaimplementować / pracować z tym nieprawidłowym / nieznanym pakietem TuyaMCU.
Może jest ktoś, kto może mi pomóc?
Jednym z moich czujników jest czujnik obecności człowieka 5.8G "MmWave Radar", patrz zdjęcie poniżej:
Chociaż zewnętrznie wyglądał podobnie do urządzenia używanego w tym temacie:
https://www.elektroda.com/rtvforum/topic3987582.html .
W rzeczywistości jest zupełnie inny w środku, co widać na poniższych zdjęciach. Należy zauważyć, że na tych zdjęciach układ TuyaMCU jest tymczasowo zdjęty z płyty, aby zapewnić wyraźniejszy przegląd.
Czujnik wykorzystuje MCU CB3S Beken do komunikacji wifi, który jest podłączony do płytki "more sense", na której znajduje się MCU o oznaczeniu 58h32.
Przeczytanie postu p.kaczmarek2 dostarczyło mi narzędzi do debugowania i zbadania komunikacji między Wifi MCU a TuyaMCU, która wydaje się używać protokołu TuyaMCU przy 9600 bodów.
Aplikacja Smart Life zapewnia użytkownikowi kilka opcji sterowania:
- Czułość ruchu, wartość od 0 do 10
- Czułość mikroruchów, wartość od 0 do 10
- Dolna granica zakresu wykrywania ruchu, wartość od 0 do 600 cm
- Górny limit zakresu wykrywania ruchu, wartość od 0 do 600 cm
- Dolna granica zakresu wykrywania mikroruchów, wartość od 0 do 600 cm
- Górny limit zakresu detekcji mikroruchów, wartość między 0 a 600 cm
- "Nobody-Time" po jakim czasie braku ruchu/mikroruchu czujnik powinien wskazywać brak obecności, wartość 30, 60, 90 lub 120
Badanie komunikacji w sposób dwukierunkowy za pomocą narzędzia z https://www.elektroda.com/rtvforum/topic3970199.html dało następujące wyniki:
Ustawienie czułości ruchu:
Sent by WiFi module:
55 AA 00 06 00 08 6902000400000006 82
HEADER VER=00 SetDP LEN dpId=105 Val V=6 CHK
Received by WiFi module:
55 AA 03 07 00 08 69 02 00 04 00000006 86
HEADER VER=03 State LEN dpId=105 Val V=6 CHK
Ustawienie mikro czułości ruchu:
Sent by WiFi module:
55 AA 00 06 00 08 6B02000400000004 82
HEADER VER=00 SetDP LEN dpId=107 Val V=4 CHK
Received by WiFi module:
55 AA 03 07 00 08 6B 02 00 04 00000004 86
HEADER VER=03 State LEN dpId=107 Val V=4 CHK
Ustawienie zakresu wykrywania ruchu, zmiana wartości minimalnej lub maksymalnej zawsze wysyła obie wartości do TuyaMCU:
Received by WiFi module:
55 AA 03 07 00 08 6D 02 00 04 00000186 0B
HEADER VER=03 State LEN dpId=109 Val V=390 CHK
Sent by WiFi module:
55 AA 00 06 00 08 6D02000400000186 07
HEADER VER=00 SetDP LEN dpId=109 Val V=390 CHK
Received by WiFi module:
55 AA 03 07 00 08 6E 02 00 04 00000000 85
HEADER VER=03 State LEN dpId=110 Val V=0 CHK
Sent by WiFi module:
55 AA 00 06 00 08 6E02000400000000 81
HEADER VER=00 SetDP LEN dpId=110 Val V=0 CHK
Gdzie dpid 109 to górny limit, a dpid 110 to dolny limit.
Ustawienie zakresu wykrywania mikroruchów, zmiana wartości minimalnej lub maksymalnej zawsze wysyła obie wartości do TuyaMCU:
Sent by WiFi module:
55 AA 00 06 00 08 6F020004000000FA 7C
HEADER VER=00 SetDP LEN dpId=111 Val V=250 CHK
Received by WiFi module:
55 AA 03 07 00 08 6F 02 00 04 000000FA 80
HEADER VER=03 State LEN dpId=111 Val V=250 CHK
Sent by WiFi module:
55 AA 00 06 00 08 7002000400000000 83
HEADER VER=00 SetDP LEN dpId=112 Val V=0 CHK
Received by WiFi module:
55 AA 03 07 00 08 70 02 00 04 00000000 87
HEADER VER=03 State LEN dpId=112 Val V=0 CHK
Gdzie dpid 111 to górny limit, a dpid 112 to dolny limit.
Ustawienie Nobody Time:
Sent by WiFi module:
55 AA 00 06 00 08 680200040000003C B7
HEADER VER=00 SetDP LEN dpId=104 Val V=60 CHK
Received by WiFi module:
55 AA 03 07 00 08 68 02 00 04 0000003C BB
HEADER VER=03 State LEN dpId=104 Val V=60 CHK
Aktualizacja luminancji z TuyaMCU:
Received by WiFi module:
55 AA 03 07 00 08 67 02 00 04 00000012 90
HEADER VER=03 State LEN dpId=103 Val V=18 CHK
Wszystko powyższe wydaje się logiczne, a wartości są zgodne z moimi ustawieniami w aplikacji smart life. Jak widać, Tuya MCU przesyła z powrotem wszystkie otrzymane dane, zakładam, że służy to weryfikacji.
Jednak, jak można już zauważyć, nie obejmuje to jeszcze faktycznego odbioru głównej wartości czujnika: obecności.
Gdy obecność zostanie wykryta lub nie zostanie już znaleziona, jest to wysyłane z TuyaMCU do Wifi MCU, jednak ta wiadomość nie wydaje się być zgodna z protokołem.
Wykryto obecność:
Received by WiFi module:
55 AA 03 22 00 05 6504000100 93
HEADER VER=03 Unk LEN 6504000100 CHK
Sent by WiFi module:
55 AA 00 23 00 01 01 24
HEADER VER=00 Unk LEN 01 CHK
Nie wykryto obecności:
Received by WiFi module:
55 AA 03 22 00 05 6504000101 94
HEADER VER=03 Unk LEN 6504000101 CHK
Sent by WiFi module:
55 AA 00 23 00 01 01 24
HEADER VER=00 Unk LEN 01 CHK
Wygląda na to, że jest to "normalna" operacja ustawiania DPID TuyaMCU, z pominięciem niektórych bajtów.
Komenda #22 nie jest rozpoznawana przez narzędzie analizatora TuyaMCU.
Ostatnia wartość wydaje się jednak odpowiadać oczekiwanym wartościom 0 i 1 (choć odwróconym).
W celach weryfikacyjnych sprawdziłem dpid, że stan obecności powinien być używany w środowisku Tuya Developer Cloud, co można zobaczyć na poniższym obrazku:
Ten obraz pokazuje, że "kod" lub dpid powinien wynosić 101, co odpowiada "65" w pakiecie wysłanym przez TuyaMCU.
W tym momencie utknąłem, próbując zaimplementować ten czujnik w openbeken, ponieważ nie wiem, jak mogę zaimplementować / pracować z tym nieprawidłowym / nieznanym pakietem TuyaMCU.
Może jest ktoś, kto może mi pomóc?