Tutaj pokażę Ci krok po kroku jak skonfigurować urządzenie TuyaMCU, jak uzyskać listę dpID, jak zmapować dpID na kanały i opublikować je w Home Assistant oraz jak stworzyć niestandardową stronę dla urządzenia. W tym temacie omówię tematykę TuyaMCU od strony praktycznej, tak abyś mógł łatwo uwolnić swoje urządzenia tego typu od chmury.
Temat tłumaczony z języka angielskiego, w trakcie poprawek!
Ale przede wszystkim - nie flashuj najpierw urządzenia, zacznij od przeczytania tego przewodnika. Dzieje się tak dlatego, że jedna z metod ekstrakcji dpID wymaga urządzenia z oryginalnym wsadem
0. Przeprowadź badania ogólne
Pierwszym krokiem jest oczywiście ustalenie, czym jest TuyaMCU. Dlatego też zaleca się najpierw zapoznanie się z podstawową lekturą.
- przeczytaj nasz tekst: Protokół TuyaMCU - komunikacja pomiędzy mikrokontrolerem a modułem WiFi
- przeczytaj dokumentację Tuya: https://developer.tuya.com/en/docs/iot/tuya-c...-serial-port-access-protocol?id=K9hhi0xxtn9cb
- otwórz nasze lista urządzeń , zaznacz pole wyboru „szczegółowe” i wyszukaj „TuyaMCU”, przeczytaj znalezione rozbiórki
- przeczytaj naszą stronę z przykładami autoexec, przynajmniej te związane z TuyaMCU https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/autoexecExamples.md
Aby uzyskać ogólną wiedzę na temat OBK, proszę:
- przeczytaj nasze dokumenty: https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/README.md
- obejrzyj nasze poradniki dotyczące flashowania: https://www.youtube.com/@elektrodacom
1. Sprawdź, czy Twoje urządzenie jest za pomocą TuyaMCU
Teraz musisz wiedzieć, czy Twoje urządzenie korzysta z TuyaMCU. Więc,
tSpróbuj odpowiedzieć na następujące pytania:
- czy po otwarciu obudowy urządzenia znajduje się dodatkowy MCU w obudowie SOIC lub TQFP (lub podobnej) w pobliżu modułu WiFi?
- czy moduł WiFi jest podłączony do MCU liniami RX1/TX1 (UART1)?
- kiedy robisz ekstrakcja konfiguracji z nasz flasher , czy znajduje baud ustawienie w lampie błyskowej?
- czy po flashowaniu urządzenia Twoje urządzenie nadal ma funkcjonalne przyciski, nawet bez konfigurowania ich w OBK?
- czy Twoje urządzenie ma ekran?
Jeśli odpowiedziałeś TAK na niektóre pytania, istnieje szansa, że Twoje urządzenie to TuyaMCU.
2. Określ ustawienie transmisji
Najlepszym sposobem sprawdzenia ustawień transmisji jest użycie naszego narzędzia Flash: nasz flasher , po prostu uzyskaj kopię zapasową flash 2 MB urządzenia pobraną przez UART Lub po prostu pobierz partycję konfiguracyjną Tuya poprzez ekstrakcję konfiguracji Tuya w OBK i przeciągnij i upuść go na flasherze:
Szybkość transmisji TuyaMCU wynosi 9600 (domyślnie) i 115200 (duża prędkość)
3. Określ znaczenie identyfikatorów dpID
W tym miejscu przydatne jest posiadanie jeszcze niesflashowanego urządzenia, ale jest wiele sposobów. Jeśli jeszcze nie sflashowałeś urządzenia:
- możesz po prostu weź je od Tuyi
- jeśli posiadasz izolowany konwerter USB na UART i wiesz jak go bezpiecznie podłączyć (bo zasilanie urządzenia nie może być odizolowane od sieci), możesz skorzystać z naszego Analizator TuyaMCU aby podsłuchiwać komunikację i obserwować, które dpID są wysyłane podczas wykonywania określonej akcji w aplikacji Tuya, na przykład zmień przekaźnik i obserwuj, który dpID jest wysyłany
Jeśli już flashowałeś OBK:
- możesz uruchomić sterownik i ustawić prędkość TuyaMCU w autoexec, a następnie użyć tuyaMcu_sendQueryState polecenie, aby uzyskać dpID z MCU. Następnie trzeba obserwować ich wartości i odgadnąć ich znaczenie (przykładowo, jeśli termometr pokazuje 21,5C, a jeden dpID ma wartość 215, to można podejrzewać, że to temperatura)
- możesz również przeszukaj naszą listę urządzeń w przypadku podobnych urządzeń może niektóre dpID pasują
- możesz także użyć tuyaMcu_sendState polecenie wysłania czegoś do TuyaMCU, na przykład wartości przekaźnika i obserwowania, czy zmienia się na urządzeniu fizycznym, patrz dokumenty poleceń
5. Uruchom sterownik i sprawdź, czy istnieje komunikacja
Dzieje się tak, gdy musisz już sflashować urządzenie. Wcześniejsze kroki można było wykonać bez flashowania, ale teraz nadszedł czas na zmianę oprogramowania sprzętowego.
Głównym problemem związanym ze zmianą oprogramowania sprzętowego urządzeń TuyaMCU jest to, że korzysta z niego TuyaMCU ten sam port co flashowanie .
Oznacza to, że będziesz musiał coś z tym zrobić zerwać połączenie MCU na czas flashowania, przynajmniej w większości przypadków.
Można to zrobić na wiele sposobów:
- odetnij ścieżki (RX i TX) prowadzące do MCU i napraw je po flashowaniu
- odłączyć płytkę za pomocą TuyaMCU (jeśli to możliwe, jeśli płytki są oddzielne)
- wylutuj moduł TuyaMCU lub WiFi (czasami jest to możliwe)
- wylutować rezystory na torach RX/TX (jeśli są, niektóre urządzenia ich nie posiadają)
Alternatywnie , możesz także spróbować zajrzeć do arkusza danych MCU i sprawdzić, czy możliwe jest wprowadzenie go w stan RESET poprzez podciągnięcie go w dół lub w górę.
Futhermote , istnieją również rozwiązania do flashowania OTA, ale nie są one niezawodne i większość nowych urządzeń jest łatana.
6. Uruchom sterownik i sprawdź, czy istnieje komunikacja
Teraz czas na konfigurację podstawowego pliku autoexec.bat w OBK:
Oto konfiguracja początkowa:
// Start TuyaMCu driver
startDriver TuyaMCU
// set TuyaMCU baud rate
//tuyaMcu_setBaudRate 115200
// set TuyaMCU default wifi state 0x04, which means "paired",
// because some TuyaMCU MCUs will not report all data
// unless they think they are connected to cloud
tuyaMcu_defWiFiState 4
The tuyaMcu_setBaudRate jest skomentowany, w razie potrzeby usuń komentarz. To powinno zapewnić podstawowe pulsy TuyaMCU i komunikację w dzienniku aplikacji internetowej OpenBeken. To również powinno sprawić tuyaMcu_sendQueryState praca.
Nie zapomnij o tuyaMcu_defWiFiState 4 linia. Domyślnie OBK wysyła stan „sparowany” (0x04) tylko wtedy, gdy włączone jest MQTT, ale niektóre urządzenia zawsze wymagają, aby stan Wi-Fi był „sparowany” (0x04) przed wysłaniem danych. Będzie to kontrolować diodę LED Wi-Fi MCU, a nawet może sterować brzęczykiem. Niektóre urządzenia będą wysyłać sygnały dźwiękowe brzęczyka, jeśli nie są sparowane.
7. Zmapuj identyfikatory dpID
W OBK możesz mapować dpID na kanały.
Kanał jest jak zmienna, może przechowywać liczby całkowite.
Możesz dostosować sposób wyświetlania kanałów, ustawiając ich typy, na przykład:
setChannelType 1 Toggle
Spowoduje to utworzenie przełącznika GUI i tego:
setChannelType 1 temperature
Spowoduje to utworzenie wyświetlacza temperatury.
Aby zobaczyć pełną listę typów kanałów, sprawdź: https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/channelTypes.md
Mimo to, aby uzyskać dane z MCU, musisz zmapować dpID na kanał, więc:
// Map given dpID to channel 1
// dpID type value
linkTuyaMCUOutputToChannel 24 val 1
Powyższy kod odwzorowuje dpID 24 na kanał 1, z wartością typu.
Istnieje wiele możliwych typów.
Istnieją typy Tuya:
- 0-surowe
- 1-bool
- 2-wartość
- 3-strunowy
- 4-wyliczenie
- 5-bitowa mapa
I tam typy specyficzne dla OBK. Na przykład, jeśli chcesz, aby podany dpID był zawsze publikowany przez MQTT w formie szesnastkowej, możesz:
linkTuyaMCUOutputToChannel 24 MQTT
Spowoduje to opublikowanie wartości w temacie tm/TYPE/dpID za każdym razem, gdy TuyaMCU ją wyśle.
Istnieją również specjalne typy złożonych pakietów danych surowych. Poniższy przykład dotyczy pakietu surowego napięcia + prądu + mocy dla urządzenia TAC2121C:
linkTuyaMCUOutputToChannel 6 RAW_TAC2121C_VCP
Powyższy kod zostanie automatycznie ustawiony Napięcie, prąd i moc kanały.
Aby zobaczyć pełne przykłady konfiguracji, sprawdź nasze przykłady autoexec:
https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/autoexecExamples.md
Możesz także skorzystać z naszej listy urządzeń:
https://openbekeniot.github.io/webapp/devicesList.html
Wpisz „ściemniacz TuyaMCU” w polu wyszukiwania (na przykład) i wyszukaj.
Jeśli więc nie znasz znaczenia identyfikatorów dpID, przepływ pracy jest następujący:
1. spróbuj zapytać o stan z MCU
2. napisz konfigurację, aby mapować otrzymane dpID na kanały
3. zapisz konfigurację i uruchom ponownie
4. Obserwuj, czy konfiguracja działa, jeśli czegoś brakuje, dokonaj poprawek
Wykonuj małe kroki, pojedynczo, w ten sposób możesz zbudować nawet skomplikowane urządzenie. Jeśli masz jakiś problem, nie wahaj się zapytać na forum.
8. Utwórz niestandardowy GUI
Jest to całkowicie opcjonalne, ale jeśli chcesz mieć niestandardowe GUI na swoim urządzeniu, możesz stworzyć własną stronę w HTML i JS i hostować ją na LittleFS:
OpenBeken jako mini hosting HTTP - pisanie stron w JavaScript, Tasmota REST
Istnieje bardzo przydatna funkcja, którą można wykorzystać w tym celu, nazywa się to DP . Można go wysłać za pośrednictwem protokołu HTTP z JavaScript na stronie REST:
Aby to zadziałało, musisz włączyć następującą flagę: flaga 46 .
Spowoduje to przechowywanie ostatnich wartości dpID w formacie szesnastkowym i umożliwi dostęp do nich w JSON.
To samo polecenie działa poprzez MQTT , wyśle odpowiedź pod adresem stat/TuyaMCU/DP .
9. Sparuj z Asystentem Domowym
Istnieje wiele sposobów parowania, które w dużym stopniu zależą od osobistych preferencji i konkretnego urządzenia.
Najprostszym sposobem jest po prostu użycie automatycznego wykrywania HASS, które tworzy encje Hass oparte na typach kanałów OBK i ich odpowiednich nazwach:
Bardziej zaawansowany sposób polega na napisz samodzielnie konfigurację YAML i po prostu włóż go do konfiguracja.yaml Twojego Asystenta Domowego.
Jest kilka dobrych trików, które mogą w tym pomóc, na przykład możesz użyć specjalnego argumentu za linkTuyaMCUOutputToChannel aby włączyć publikowanie dpID w surowej formie szesnastkowej, aby mógł być później przetworzony przez HA:
linkTuyaMCUOutputToChannel 6 MQTT
Ustaw, zapisz i uruchom ponownie i obserwuj, co dzieje się w dzienniku Home Assistant. Możesz także użyć narzędzia Home Assistant MQTT do oglądania pakietów MQTT.
Czy możesz pokazać przykładowy temat demontażu ściemniacza TuyaMCU?
Cóż, jak powiedziałem, skorzystaj z naszej listy urządzeń, ale mimo to oto jedna próbka:
Ściemniacz OpenBeken i TuyaMCU - instrukcja/tutorial konfiguracji
A tutaj jest konfiguracja urządzenia wentylatorowego :
BK7231T Treatlife DS03 Przełącznik wentylatora/ściemniacza światła: Flash OTA i instrukcja konfiguracji (TuyaMCU dpID)
A oto rozbiórka miernika mocy:
[BK7231N ] Demontaż i flashowanie Tomzn TOMPD-63 WIFI (nie mylić z TOMPD-63LW)
Czy możesz pokazać próbkę niestandardowej strony REST dla urządzenia
Możesz zapoznać się z naszym samouczkiem dotyczącym BW-AF1:
OpenBeken na frytkownicy BW-AF1 z WiFi - wnętrze, TYWE3S/WB3S, konfiguracja
Posiada niestandardową stronę REST do sterowania frytkownicą.
Czy możesz pokazać próbkę niestandardowego skryptu dla urządzenia?
Sprawdź naszą konfigurację podobną do TAC2121C z kontrolerem limitu ładowania:
Integracja Home Assistant: Reflashowanie BK7231N w inteligentnym liczniku energii Tuya na szynę DIN TAC2121C
Ostateczny skrypt znajduje się na końcu tematu.
A co z urządzeniami zasilanymi bateryjnie?
Urządzenia TuyaMCU zasilane bateryjnie są wyjątkowe – MCU steruje w nich mocą modułu WiFi. MCU włącza moduł WiFi tylko wtedy, gdy musi zgłosić dane. Wymaga to specjalnego sterownika tzw Czujnik tm .
Aby uzyskać więcej informacji, zobacz przykładowy przewodnik po tmSensor:
Energooszczędny (?) Czujnik drzwi/okien na baterie do WiFi DS06
[CB3S/BK7231N] Czujnik temperatury/wilgotności z TuyaMCU – schemat, inżynieria odwrotna
Streszczenie
Istnieje wiele sposobów konfiguracji i flashowania urządzeń TuyaMCU. Identyfikatory dpID TuyaMCU można wyodrębnić przed flashowaniem, ręcznie (poprzez wąchanie protokołu) lub automatycznie ze strony chmury Tuya. Można również zażądać identyfikatorów dpID TuyaMCU i je sprawdzić po flashowaniu, za pomocą polecenia zapytania o stan. TuyaMCU można skonfigurować w elastyczny sposób, albo za pomocą standardowej strony OBK, albo za pomocą w pełni niestandardowego interfejsu REST, który może być hostowany na dowolnym urządzeniu OBK z LittleFS. Urządzenia TuyaMCU skonfigurowane za pomocą OBK można również sparować z Home Assistant, zarówno poprzez automatyczne Home Discovery, jak i bardziej zaawansowaną i elastyczną ręczną konfigurację YAML. Istnieje również wiele sposobów na uzyskanie danych TuyaMCU z urządzenia OBK - możesz po prostu użyć kanałów OBK, możesz użyć specjalnego łącza MQTT dpID lub możesz użyć polecenia DP, aby zażądać wszystkich wartości dpID na żądanie. Polecenie DP działa zarówno poprzez HTTP, jak i MQTT. Możesz także tworzyć skrypty dla urządzeń OBK, aby zautomatyzować konfigurację, zarówno z Home Assistant, jak i bez niego.
Daj nam znać, jeśli masz jakieś pytania związane z TuyaMCU, dołożymy wszelkich starań, aby pomóc Ci skonfigurować Twoje urządzenia!
Fajne? Ranking DIY Pomogłem? Kup mi kawę.