Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant

p.kaczmarek2 23 Nov 2022 22:14 1221 1
  • WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Dzisiaj nieco mniej typowe urządzenie, a mianowicie dodatek WiFi do kontroli bramy garażu. Urządzenie to wpina się w istniejący już włącznik od bramy garażowej i pozwala ono zamykać/otwierać garaż zdalnie poprzez zwieranie na chwilę odpowiednich styków (symulując naciśnięcie przycisku). Dodatkowo oferuje prosty czujnik magnetyczny nakładany na bramę, by móc sprawdzać, czy jest ona otwarta. Tylko tyle - ale to starcza. Pora zobaczyć co jest w środku i zmienić firmware tak by uwolnić produkt od chmury i od serwerów producenta.

    Zakup sterownika bramy
    Produkt kupowawłem za około 80 zł. Moim zdaniem jest on dość drogi i bardziej płacimy za samą jego funkcję, niż za elektronikę. DIY by wyszło o wiele taniej. Gdy go kupowałem, to były wysyłka z Czech i nieco inna cena:
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Zestaw zawiera:
    1 x Smart WiFi Garage Door Opener Controller
    1 x Adapter Ładowania USB
    1 x USB kabel
    1 x Instrukcja
    1 x Akcesoria mocowania
    Zdjęcie zestawu (wg. sprzedawcy):
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Schemat montażowy:
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Grafiki promocyjne:
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Rzeczywista zawartość zestawu:
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant

    Krótki test z aplikacją Tuya
    Na próbę sparowałem urządzenie z aplikacją producenta. Reset wykonałem wciskając przycisk z obudowy na dłużej niż 5 sekund.
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Filmik pokazuje jak to działa:



    Zasadniczo wciśnięcie przycisku na obudowie (bądź sterowanie z apki) po prostu zwiera na krótką chwilę przekaźnik, symulując naciśnięcie przycisku właściwego kontrolera bramy. Dodatkowo załącza się w aplikacji animacja, że niby brama się otwiera, itd. Czujnik zamknięcia/otwarcia też jest wspierany i używany jest by pokazać biężący stan bramy.



    Wnętrze sterownika bramy
    Plastikowa obudowa trzyma się na zaczepy. Trzymają one dość solidnie, trzeba uzyć nieco siły przy podważaniu:
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    W środku jest moduł CB3S, czyli BK7231N oraz wyprowadzone sygnały programowania.
    Można zatem wgrać OpenBeken.
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Cytat z ogólnodostępnej dokumentacji Tuya:
    Quote:

    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--


    Do programowania używam tylko TXD1 i RXD1. Ale najpierw zobaczymy resztę PCB:
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Zasadniczo na PCB mamy:
    - LDO AMS1117 (daje nam 3.3V dla modułu WiFi z 5V)
    - mały przycisk i diodę LED
    - złącze do przycisku od garażu (z przekaźnikiem, ten przekaźnik je zwiera i symuluje wciśnięcie)
    - złącze do czujnika otwarcia/zamknięcia bramy
    Rolę pinów BK7231:
    - P7 - przekaźnik (ten załączający właściwą bramę)
    - P8 - wejście czujnika otwarcia/zamknięcia bramy
    - P24 - LED z płytki
    - P26 - przycisk z płytki



    Procedura programowania
    Programowanie tego konkretnego BK7231 będzie bardzo proste.
    Wystarczy konwerter USB na UART o poziomach napięć 3.3V. Lutujemy trzy kabelki - masę, RX i TX.
    Nastepnie uruchamiamy na komputerze program (bkWriter 1.60, albo lepiej, hid_download_py) i gdy trzeba wykonać RESET układu, po prostu odłączamy kabelek USB od złącza z płytki. Po prostu wykonujemy reboot.
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Dzięki temu nie trzeba lutować tego sygnału "BOOT" czy tam dodatkowego LDO 3.3V, bo taki już na pokładzie jest.
    https://github.com/OpenBekenIOT/hid_download_py
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Jest to BK7231N, więc wgrywamy binarkę QIO na offset 0. Gdyby to był BK7231T, to wgrywalibyśmy UA na domyślny offset. Tak jak w Readme OpenBK.

    Konfiguracja OpenBeken
    Najpierw należy ustawić piny, te co podałem wyżej w tabelce.
    Przyjmiemy, że kanał 0 kontroluje przekaźnik a kanał 1 to odczyt stanu drzwi.
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Użyty dla czujnika drzwi typ wejścia dInput to po prostu digital input - ustawia dany kanał na wartość pobraną z pinu cyfrowego.
    Następnie robimy kosmetykę - należy ustawić typ kanału 1 jako "OpenClosed" by wyświetlał tekstowo stan drzwi (a nie jako liczba):
    Code:

    setChannelType 1 OpenClosed

    Potem należy jeszcze dodać coś, co jak oryginalne firmware będzie "odłączało" spowrotem przekaźnik - tak, by generować krótki impuls. Wystarczy napisać prostą obsługę zdarzenia w OpenBeken, wszystko w pełni skryptowalne:
    Code:

    addChangeHandler Channel0 != 0 addRepeatingEvent 2 1 setChannel 0 0

    Gdy kanał 0 zmieni wartość na nieujemną (wtedy też automatycznie zamknie się przekaźnik), to uruchamiamy timer 2 sekundowy z 1 powtórzeniem, po którego wykonaniu kanał 0 ustawiamy na 0 (to otworzy przekaźnik).
    Powyższe skrypty należy wpisać w LittleFS w autoexec.bat lub w "Short startup command" razem z backlog:
    Code:

    backlog setChannelType 1 OpenClosed; addChangeHandler Channel0 != 0 addRepeatingEvent 2 1 setChannel 0 0

    czyli tutaj:
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Warto też zmienić nazwę na coś sensowniejszego:
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant


    Konfiguracja Home Assistant - etap 1
    Pierwszy etap konfiguracji wymaga dodania osobno sterowania przekaźnikiem (jako switch) oraz odczytu sensora (jako binary_sensor) do Home Assistant. Posłużymy się w tym celu kodem YAML. Musimy pamiętać, jakie kanały przypisaliśmy do danych ról - tutaj je odbieramy przez temat MQTT z get i ustawiamy przez temat MQTT z set. Tak jak poniżej:
    Code: yaml
    Log in, to see the code

    Powyższy Yaml definiuje sensor otwarcia garażu. Mamy tu tylko "state_topic" z get, czyli odbieramy to, co publikuje OBK.

    Teraz obsługa przekaźnika:
    Code: yaml
    Log in, to see the code

    Podobnie jak wyżej, tylko dodany jest jeszcze "command_topic", czyli temat który pozwala nam wysłać do OpenBeken nowy stan przekaźnika.

    Powyższe Yaml powinny nam dać:
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Powyższy sensor na interfejsie HA powinien reagować na zmianę stanu sensora na urządzeniu, tak jak powinno dać się sterować przekaźnikiem z poziomu HA!


    Konfiguracja Home Assistant - etap 2
    Teraz skorzystamy z mechanizmu cover w celu połączenia naszego czujnika otwarcia i przekaźnika (oskryptowanego w OBK tak by wracał do otwartego stanu po chwili) w całość.
    Dokumentacja cover:
    https://www.home-assistant.io/integrations/cover/
    Oto gotowy kod:
    Code: yaml
    Log in, to see the code

    Co trzeba tu wiedzieć?
    - binary_sensor.garage_door_sensor_2 wskazuje na nasz sensor garażu
    - switch.garage_relay wskazuje na nasz przekaźnik
    To samo można by zrobić, mając zwykły przekaźnik (osobno) i czujnik otwarcia/zamknięcia drzwi (osobno).
    Powyższy kod wywołuje tylko switch.turn_on, gdyż przekaźnik sam się odłącza potem (skrypt Obk).
    Bloki z if pozwalają wybrać ikonę oraz wartość bramy.
    WiFi sterownik bramy garażu, Smart Garage Opener Tuya - Home Assistant
    Przycisk stopu na ten moment nie robi nic.


    Podsumowanie
    To urządzenie jest naprawdę banalnie proste - aż dziwne, że tak dużo kosztuje. Można by znacznie taniej samemu wykonać podobnym mechanizm, chociażby na tanim ESP8266.
    Zmiana firmware CB3S też poszła bez problemów - jak i konfiguracja w Home Assistant.
    Niestety w praktyce (na prawdziwej bramie) urządzenia nie przetestowałem, gdyż nie miałem dostępu do takiego luksusu, ale testy "na sucho" pokazały, że po zmianie firmware i z HA wszystko działa. A jakby co, to zawsze można zmienić zachowanie oprogramowania - chociażby je inaczej oskryptować bądź inaczej zorganizować działanie w Home Assistant.
    Czy ktoś z forumowiczów ma może bramę do garażu sterowaną na WiFi, do tego sparowaną z HA?
    Zapraszam do komentowania.

    Cool? Ranking DIY
    About Author
    p.kaczmarek2
    Level 28  
    Offline