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

Xtreme Smart Wifi WindowDoor Sensor - Model XHS7-2001-WHT - Moduł CBU

protectivedad 06 Sty 2025 19:16 1785 13
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21380546
    protectivedad
    Poziom 9  
    Posty: 40
    Pomógł: 2
    Ocena: 5
    Niedawno kupiłem "Xtreme Smart Wifi Window/Door Sensor" model XHS7-2001-WHT. Są one sprzedawane w moim lokalnym Princess Auto (dla wszystkich Kanadyjczyków, którzy chcą je odebrać). Wykorzystuje moduł Tuya CBU, który używa BK7231N. Miganie i automatyczna konfiguracja działały świetnie. Przełączyłem go, aby używał sterownika czujnika drzwi bez podciągania i prawidłowo budzi się z głębokiego snu. Jedynym prawdziwym problemem, który jest w pewnym sensie przełomem, jest czas potrzebny na połączenie z wifi / mqtt. Włamywacz musiałby być na tyle uprzejmy, aby przytrzymać otwarte drzwi przez co najmniej 5 sekund, zanim system domowy otrzyma sygnał otwarcia. Chciałem sprawdzić, czy ktoś ma rozwiązanie tego problemu.

    OpenBK wydaje się po prostu wysyłać status czujnika przy połączeniu z brokerem mqtt. Więc jeśli drzwi zostaną otwarte i zamknięte w ciągu około 5 sekund, po prostu ponownie wysyła sygnał zamknięcia. Czy istnieje opcja, która pozwala na kolejkowanie sygnałów, a następnie wysyłanie ich do brokera mqtt? Otrzymałbym wtedy przynajmniej otwarty "blip", z którym mógłbym pracować.

    Spojrzałem na kod źródłowy i zauważyłem, że w przypadku czujnika drzwi automatycznie wybierze szybkie połączenie wifi, ale i tak wybrałem flagę, która nie zrobiła różnicy. Widziałem wzmiankę o `RL_SUPPORT_FAST_CONNECT`, która jest wyłączona z powodu konfliktu z miejscem, w którym OpenBK przechowuje ustawienia we flashu. W komentarzach, które widziałem na githubie, "zaoszczędziłoby to tylko 3-4 sekundy". Myślę, że to dużo czasu, jeśli chodzi o urządzenia, które nie są zasilane przez cały czas i muszą przejść z głębokiego uśpienia do wybudzenia do głębokiego uśpienia. Czy jest szansa na zmianę ustawień, aby umożliwić szybkie połączenie?

    Był inny post na esphome (tinylibre), który mówił o przyspieszeniu połączenia wifi poprzez dodanie funkcji, która pozwala na użycie PSK (64-bajtowy ciąg) zamiast obecnego hasła. Jakieś pomysły, czy jest to wykonalne? Być może jest to już funkcja i wystarczy wprowadzić 64-bajtowy ciąg znaków, a zostanie on uznany za PSK.

    Dzięki.
    AI: Czy możesz podać aktualną wersję oprogramowania układowego czujnika Xtreme Smart Wifi Window/Door Sensor? Może to pomóc w określeniu, czy problem jest związany z konkretną wersją oprogramowania układowego.
    OpenBK wersja 1.18.8
    AI: Czy możesz podać więcej szczegółów na temat brokera MQTT i konfiguracji sieci? Ta informacja może być kluczowa dla zrozumienia opóźnienia w czasie połączenia.
    WPA2, mosquitto działa na OpenWrt.
  • REKLAMA
  • #2 21380886
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14675
    Pomógł: 656
    Ocena: 12697
    Wydawało mi się, że nasz sterownik DoorSensor rozwiązał ten problem, czy go używasz? A może ręcznie skryptujesz swoje urządzenie? Może możemy ulepszyć sterownik DoorSensor lub spróbować wymyślić autoexec.bat, który najpierw zapisze początkową wartość kanału (w osobnym kanale), a następnie, gdy MQTT będzie online, opublikuje ją wraz z bieżącą wartością.

    Może to pomoże poprawić szybkość połączenia:
    https://github.com/openshwprojects/OpenBK7231T_App/pull/1297
    Utknął z powodu braku testów, może uda nam się zebrać trochę czasu, @insmod @divadiow @DeDaMrAz i spróbować go uruchomić?
    Pomogłem? Kup mi kawę.
  • #3 21381070
    DeDaMrAz
    Poziom 22  
    Posty: 614
    Pomógł: 34
    Ocena: 130
    @protectivedad

    Czy możesz udostępnić swoją konfigurację i plik autoexec. Pamiętam, że pracowaliśmy nad tym i testowałem raportowanie (ten sam problem, o którym wspominasz) i udało nam się go rozwiązać. Jeśli dobrze pamiętam, będziesz musiał mieć stan waitfor MQTT w autoexec, aby upewnić się, że ma połączenie mqtt przed ponownym przejściem w stan głębokiego uśpienia. Nie cytuj mnie na 100%, ponieważ było to jakiś czas temu, ale z pewnością mogę to sprawdzić, ponieważ wciąż mam gdzieś ten czujnik drzwi.

    @p.kaczmarek2

    Miałem problemy z testowaniem tego PR w tamtym czasie, nie byłem w stanie sprawić, by działał na moim module testowym N. Utknął przy starcie za każdym razem ze zmianami, ale zawsze jestem gotowy na ulepszenia.

    Zamówię jeszcze 10 modułów CB3S do testów, ponieważ skończyły mi się i niektóre z nich miały problemy, więc nie jestem pewien, czy użyłem niektórych z nich do testów.
  • Pomocny post
    #4 21381078
    insmod
    Poziom 31  
    Posty: 1411
    Pomógł: 164
    Ocena: 444
    Mam ten pr obecnie zainstalowany na 2 urządzeniach. Jedno to czujnik cht8310 z baterią litowo-jonową 1000mah, zasilany panelem słonecznym.
    Drugie to czujnik drzwi, z bateriami 2x1000mah 1.2v ni-mh, i nie miałem z nim problemu przez 4 miesiące. Baterie nadal działają.
    Wykres przedstawiający napięcie czujnika drzwiowego w czasie od września do stycznia. .
  • REKLAMA
  • #5 21381479
    protectivedad
    Poziom 9  
    Posty: 40
    Pomógł: 2
    Ocena: 5
    p.kaczmarek2 napisał:
    Miałem wrażenie, że nasz sterownik DoorSensor ma to rozwiązane, używasz go? A może ręcznie skryptujesz swoje urządzenie? Może możemy ulepszyć sterownik DoorSensor dla Ciebie lub spróbować wymyślić autoexec.bat, który najpierw zapisze początkową wartość kanału (w osobnym kanale), a następnie, gdy MQTT będzie online, opublikuje ją wraz z bieżącą wartością.

    Używam wersji DoorSensor bez podciągania. Zapomniałem również wspomnieć, że używam wersji bez TuyaMCU.

    p.kaczmarek2 napisał:

    Może to pomoże poprawić szybkość połączenia:
    https://github.com/openshwprojects/OpenBK7231T_App/pull/1297
    Utknęło z powodu braku testów, może zbierzemy trochę czasu, @insmod @divadiow @DeDaMrAz i spróbujemy to uruchomić?

    Dokładnie o tym myślałem. Zacznę to testować. Nawet przy szybszym ponownym połączeniu podoba mi się pomysł przechowywania wartości "open" w osobnym kanale i publikowania jej na wypadek, gdyby serwer mosquitto działał wolno.

    DeDaMrAz napisał:

    Czy możesz udostępnić swój plik konfiguracyjny i autoexec. Pamiętam, że pracowaliśmy nad tym i testowałem raportowanie (ten sam problem, o którym wspominasz) i udało nam się go rozwiązać. Jeśli dobrze pamiętam, będziesz musiał mieć stan waitfor MQTT w autoexec, aby upewnić się, że ma połączenie mqtt przed ponownym przejściem w stan głębokiego uśpienia. Nie cytuj mnie na 100%, ponieważ było to jakiś czas temu, ale z pewnością mogę to sprawdzić, ponieważ wciąż mam gdzieś ten czujnik drzwi.

    Nie mam autoexec.bat, ale używam komendy startowej. Zawsze łączy się z MQTT przed uśpieniem.
    Dla mojego MQTT używam IP (nie nazwy) i uruchomiłem instancję non-tls.
    Kod: JSON
    Zaloguj się, aby zobaczyć kod


    Kiedy testowałem, dziennik zawsze mówi:
    Kod: Text
    Zaloguj się, aby zobaczyć kod


    Dodano po 1 [godzinie] 6 [minutach]:

    Wybrałem PR na 1.8.12, skompilowałem i zainstalowałem. Załączyłem rbl, którego użyłem (zzipowany). Urządzenie nie łączy się z wifi i nie mam obecnie dostępu szeregowego. Mogę bezpiecznie uruchomić komputer. Jak mogę ponownie sprawdzić poświadczenia wifi, aby upewnić się, że to nie jest problem. Próbowałem po prostu zmienić hasło, mając nadzieję, że to zadziała, ale bez powodzenia.

    Mam więcej niż jeden punkt dostępowy z tym samym identyfikatorem SSID na różnych kanałach, więc utworzyłem testowy identyfikator SSID i ponownie spróbowałem się połączyć, ale bez powodzenia. Nie mogę też już flashować aktualizacji OTA. Przechodzi przez proces OTA, wygląda na to, że działa, a po ponownym uruchomieniu nadal mówi "1.8.12p". Nawet gdy próbowałem użyć starszego 1.8.8. Jakieś pomysły bez ponownego podłączania połączenia szeregowego?
    Załączniki:
    • OpenBK7231N_App_1.8.12p.zip (489.84 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #6 21381599
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14675
    Pomógł: 656
    Ocena: 12697
    Pamiętaj, że OBK ma mechanizm trybu bezpiecznego AP, który zostanie uruchomiony, jeśli rozruch zostanie oznaczony jako nieudany. Zmień wymagany czas pracy w sekundach w options/flags&general.

    Jeśli chcesz zmienić hasło WiFi i ssid z UART, możesz użyć naszego flashera:
    https://github.com/openshwprojects/BK7231GUIFlashTool
    Pomogłem? Kup mi kawę.
  • #7 21381646
    protectivedad
    Poziom 9  
    Posty: 40
    Pomógł: 2
    Ocena: 5
    p.kaczmarek2 napisał:
    Pamiętaj, że OBK ma mechanizm trybu bezpiecznego AP, który zostanie uruchomiony, jeśli rozruch zostanie oznaczony jako nieudany. Zmień wymagany czas pracy w sekundach w options/flags&general.

    Jeśli chcesz zmienić hasło WiFi i ssid z UART, możesz użyć naszego flashera:
    https://github.com/openshwprojects/BK7231GUIFlashTool


    Przepraszam, nie zauważyłem tego, gdy aktualizowałem swój post o więcej wyników testów. Uruchomiłem w trybie awaryjnym, a następnie "Konwertowałem na otwarty dostęp do wifi". Uruchomiłem ponownie. Następnie ponownie wprowadziłem poświadczenia Wi-Fi, ale nadal nie ma połączenia. Ponadto, jak wspomniałem, nie będzie już akceptować aktualizacji OTA. Jakieś sugestie NON UART?
  • #8 21381663
    DeDaMrAz
    Poziom 22  
    Posty: 614
    Pomógł: 34
    Ocena: 130
    protectivedad napisał:
    Jakieś sugestie NON uart?
    .

    Próbowałeś polecenia clearAll z trybu bezpiecznego? Zrób kopię zapasową tego, czego potrzebujesz, ponieważ wszystko zresetuje.
  • #9 21381735
    protectivedad
    Poziom 9  
    Posty: 40
    Pomógł: 2
    Ocena: 5
    DeDaMrAz napisał:
    protectivedad napisał:
    Jakieś sugestie NON uart?


    Próbowałeś polecenia clearAll z trybu bezpiecznego? Zrób kopię zapasową tego, czego potrzebujesz, ponieważ wszystko zresetuje.

    Nie próbowałem. Przeszukiwałem referencję poleceń pod kątem słowa "erase", ale nie pomyślałem, żeby poszukać "clear" :) .

    Użyłem niestandardowej wersji 1.17.571, którą miałem do testowania mqtt-tls. Następnie wróciłem do wersji 1.18.12 (a5e439f0) (NIE 1.8.12). Następnie sflashowałem 1.18.12p (a5e439f0 z zastosowanym PR 1297). Wszystko to zostało zrobione z moim testowym ssid. I zadziałało. Wyłączyłem również dhcp (może to powodowało dodatkowy czas) i skonfigurowałem statyczne IP. W ten sposób czas z 12 sekund spadł poniżej trzech.

    Zdecydowanie wcześniej robiłem coś źle. Teraz zachowuje się zupełnie inaczej. Wcześniej po uruchomieniu czujnika drzwi zawsze migał, aby wskazać ponowne połączenie z siecią. Teraz świeci na niebiesko. Czy to konfiguracja DHCP mogła być przyczyną moich problemów? Czuję się jak idiota, że nie zrobiłem tego wcześniej. Przysięgam, że przeczytałem trzy lub cztery tematy na temat czujników drzwi i nigdy nie potknąłem się o ustawienie statycznego adresu IP.

    Wygląda na to, że to nie DHCP było problemem. Musiałem skasować i ponownie zainstalować flash, kiedy przełączyłem się z mojego testowego na mój domowy SSID. Podczas tego zapomniałem ustawić statyczne IP. Z DHCP nadal łączy się bardzo szybko.
  • REKLAMA
  • #10 21381870
    DeDaMrAz
    Poziom 22  
    Posty: 614
    Pomógł: 34
    Ocena: 130
    Dla porównania, to był testowy autoexec z mojego czujnika drzwi, który później został zredukowany, aby usunąć niektóre timeouty i kontrole.

    Battery_Setup 2000 3000 2 2400 4096
    //measure batt every 2s
    Battery_cycle 2
    mqtt_broadcastItemsPerSec 3
    // use P28 click to prolong the awake time this session
    addEventHandler OnClick 28 addChannel 10 120
    // channel 10 is number of seconds to keep alive
    setChannel 10 120
    // always wake up on rising edge on dInput (when smoke sensor starts alarm)
    DSEdge 0
    // now wait for MQTT
    waitFor MQTTState 1
    // extra delay, to be sure
    again:
    delay_s 1
    // decrease counter by 1
    addChannel 10 -1
    echo Before sleep, loop is now $CH10
    // repeat loop if > 0
    if $CH10>0 then goto again
    // go back to sleep
    PinDeepSleep


    Ustawiono flagi, flagę 2 dla mqtt i flagę 37 dla szybkiego połączenia, aby poprawić czas połączenia, a także Czas oczekiwania wymagany do oznaczenia rozruchu jako OK: ustawiony na 2 lub 3 sekundy. Statyczne IP również pomogło i ogólnie obniżyło czas odpowiedzi do 5 sekund lub mniej w testach, które wtedy przeprowadziliśmy.
  • #11 21382657
    protectivedad
    Poziom 9  
    Posty: 40
    Pomógł: 2
    Ocena: 5
    >>21381870 Dzięki za autoexec. Ustawiłem flagę 37, ale z kodu wynika, że samo ustawienie pinu na czujnik drzwi z uśpieniem robi to samo. Po aktualizacji psk działa teraz całkiem żwawo, chociaż czasami może mieć problem, wciąż testuję. W większości przypadków działa dobrze.

    Być może otrzymywałem szybkie włączanie/wyłączanie, ale nigdy nie byłem w stanie tego zobaczyć, ponieważ działo się to zbyt szybko. Ustawiłem regułę wyzwalania. Jeśli czujnik drzwi ma problemy z połączeniem, zajmie to trochę czasu, ale wydaje się, że w końcu dojdzie do otwarcia.

    Dzięki za pomoc.
  • #12 21382888
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14675
    Pomógł: 656
    Ocena: 12697
    Podsumowując, czy uważasz, że ta nowa funkcja szybkiego połączenia jest gotowa do produkcji, czy może czegoś jeszcze brakuje?

    Btw, widziałem, że wspomniałeś o mqtt-tls, jak to jest stabilne dla ciebie?

    Pytam, ponieważ rozważam scalenie zarówno pull requestów quick connect, jak i mqtt-tls.
    Jak myślisz, który PR moglibyśmy scalić?
    Pomogłem? Kup mi kawę.
  • #13 21382906
    insmod
    Poziom 31  
    Posty: 1411
    Pomógł: 164
    Ocena: 444
    >>21382888 Myślę, że musiałoby to być włączone za pomocą flagi, a nie tak, jak jest obecnie.
    I może dodać kolejną funkcję hal, która łączy się przez zapisany bssid.
  • REKLAMA
  • #14 21383155
    protectivedad
    Poziom 9  
    Posty: 40
    Pomógł: 2
    Ocena: 5
    p.kaczmarek2 napisał:
    Podsumowując, czy uważasz, że ta nowa funkcja szybkiego połączenia jest gotowa do produkcji, czy czego jeszcze brakuje?

    Btw, widziałem, że wspomniałeś o mqtt-tls, jak to jest stabilne dla ciebie?

    Pytam, ponieważ rozważam scalenie zarówno pull requestów quick connect, jak i mqtt-tls.
    Jak myślisz, który PR moglibyśmy scalić?

    Naprawdę chciałbym, aby mqtt-tls został scalony. Chętnie bym go przetestował, gdyby można go było dodać do aktualnej wersji 1.18.12.

    Nie jestem pewien co do obecnej implementacji PSX. Musiałbym przywrócić połączenie szeregowe na urządzeniu i przyjrzeć się temu bliżej. Zawiesił się przy zmianie jednego SSID na inny (być może wewnętrzne ustawienia muszą zostać wyczyszczone przy zmianie SSID). Muszę przeprowadzić więcej testów na temat tego, co się stanie, jeśli jeden punkt dostępowy zostanie wyłączony i przełączy się na inny punkt dostępowy. Posiadanie opcji zapisywania BSSID i PSX na stronie wifi HTTP byłoby moim zdaniem najbardziej idealne. Hasło wifi jest ograniczone do 63 znaków, więc jeśli ma 64 znaki, jest traktowane jako PSX. Dobrym rozwiązaniem byłoby wyłączenie rozmiaru i umożliwienie użytkownikowi wprowadzenia gotowego PSX. Nie jestem pewien, czy przyniesie to ten sam efekt.

Podsumowanie tematu

✨ Użytkownik zgłosił problem z czasem połączenia czujnika Xtreme Smart Wifi Window/Door Sensor (model XHS7-2001-WHT) z siecią Wi-Fi/MQTT, co powoduje opóźnienia w sygnalizacji otwarcia drzwi. W odpowiedziach zaproponowano różne rozwiązania, w tym użycie skryptów autoexec.bat do poprawy szybkości połączenia oraz przechowywanie stanu "otwarte" w osobnym kanale. Użytkownicy dzielili się swoimi konfiguracjami, wskazując na znaczenie ustawienia statycznego adresu IP oraz flagi dla szybkiego połączenia. Wspomniano również o problemach z aktualizacjami OTA oraz o testach różnych wersji oprogramowania.
Wygenerowane przez model językowy.
REKLAMA