Kupiłem ten sterownik rolet Skylight z AliExpress Link
z przełącznikiem Wi-Fi UE. Mój świetlik jest poza zasięgiem i muszę przynieść drabinę z tego garażu, żeby go otworzyć, Moim pierwotnym zamiarem było użycie go z Local Tuya (to byłby mój pierwszy) w Home Assistant (HA), ponieważ czytałem, że producenci odeszli od płyt ESP8266; Uwolniłem wiele z nich od chmury z nich z Tasmotą. Ale potem natknąłem się na OpenBeken, więc pomyślałem, że spróbuję.
Po pierwsze, sam otwieracz jest 4-przewodowym urządzeniem sieciowym.
Zielony/żółty — uziemienie, niebieski — neutralny, brązowy — otwarty na żywo i czarny — zamknięty na żywo.
Kontroler to przełącznik kurtynowy Smart Life DS-151 N+L, WiFi+BLE (zgodnie z oznaczeniem na pudełku) i pasuje do standardowej brytyjskiej skrzynki ściennej. Zdjęcie pokazuje go ze zdjętym panelem przednim (płaski śrubokręt u podstawy). Płyta to WB3S z procesorem BK7231T.
. Trzy przyciski do otwierania, zatrzymywania i zamykania. Listwa zaciskowa ma wejścia pod napięciem i neutralne oraz wyjścia pod napięciem/otwarte i pod napięciem/zamknięte.
Zmiana firmware
Przylutowałem przewody do padów TXD1, RXD1, GND i VCC WB3S i podłączyłem go do mojego konwertera USB/UART ustawionego na 3V3. Uzyskałem odpowiedni plik do flashowania tą metodą ( OpenBK7231T_UA_1.15.700.bin), pobrałem i „zainstalowałem” BK_WriterV1.60.exe i próbowałem flashować. Brak radości — otrzymano komunikat o niepowodzeniu!
Po kilku radach od zawsze bardzo pomocnego p.kaczmarek2 miałem rozwiązanie. Styki Tx i Rx są używane przez urządzenie odpowiednio jako wejście przycisku i wyjście LED, a obwód zakłóca migającą sygnalizację. Więc wyciąłem tory prowadzące od tych kołków w pokazanych pozycjach.
Próbowałem ponownie flashować za pomocą BK_Writer przy ustawieniach domyślnych, ale nadal nie ma radości. Spróbowałem ponownie przy 115200 bodach i tym razem zaczął się kasować, ale potem się nie powiódł. Odkryłem wtedy, że mogę odczytać i zapisać całe wstępnie załadowane oprogramowanie układowe, więc to był postęp.
Następnie zwróciłem się do innej metody flashowania za pomocą programu Pythona. Udało się, więc podam tylko szczegóły.
Otworzyłem okno poleceń na moim komputerze i utworzyłem i przeniosłem się do katalogu o nazwie „OpenBKT”, a następnie dostałem program za pomocą polecenia
Miałem już zainstalowanego Pythona od lat, ale możesz go też potrzebować. Kiedy próbowałem użyć programu do flashowania, stwierdziłem, że potrzebuję czegoś o nazwie „tqdm”, więc dostałem to za pomocą polecenia
Następnie pomyślnie sflashowałem urządzenie za pomocą polecenia
Będziesz musiał odpowiednio zmienić ścieżkę i port com.
Następnie naprawiłem wycięte ślady. Jeden można było łatwo zmostkować kroplą lutu, ale drugi po prostu nie, więc ostatecznie użyłem bardzo cienkiego drutu.
Pierwsza konfiguracja OpenBeken
Włącz urządzenie i użyj telefonu, aby znaleźć Wi-Fi i połączyć się z nim — identyfikator SSID jest dość oczywisty. Po wykonaniu tej czynności otwórz przeglądarkę w telefonie i przejdź do 192.168.4.1, powinno to doprowadzić Cię do GUI, w którym powinieneś teraz wprowadzić własne dane uwierzytelniające Wi-Fi. Uruchom ponownie urządzenie i spróbuj znaleźć je za pośrednictwem własnego routera. Na moim routerze, kiedy spojrzałem na urządzenia Wi-Fi, faktycznie został nazwany, więc było to dość oczywiste. Chyba będziesz chciał ustawić zarezerwowany adres IP.
Konfiguracja
Kontroler Tuya posiada 3 przyciski, 3 diody podświetlające przyciski oraz 2 przekaźniki. Ustawiłem je tak:
"pin":"funkcja":"kanał"
"6": "Rel;1",
"8": "Btn;3",
"9": "Rel;3",
"10": "Btn;2",
"11": "LED_n;3",
"14": "LED_n;1",
"24": "Btn;1",
"26": "LED_n;2"
Wszystko działało zgodnie z oczekiwaniami, ale nie tak, jak powinno, więc nie podłączaj siłownika w tym momencie!!!!!
Z większą pomocą p.kaczmarek2 napisałem plik autoexec.bat, aby emulować sposób działania oprogramowania Tuya. np. naciśnięcie przycisku Otwórz spowoduje wyłączenie wszystkiego, a następnie włączenie przekaźnika Otwórz i diody LED na 10 sekund. Następnie wszystko by się wyłączyło przed włączeniem diody Stop na zaledwie 3 sekundy. Myślę, że tylko po to, aby potwierdzić, że wszystko jest wyłączone i nie pozostawiać zasilania w siłowniku, gdy nie jest to konieczne. Jak się okazuje, 10s to za mało na pełne otwarcie świetlika, więc zwiększyłem go do 15s. Oto plik autoexec.bat.
Ukryłem domyślne przyciski, ponieważ można je było wykorzystać do załączenia obu przekaźników w tym samym czasie i nie wiem, jak siłownik by sobie z tym poradził! Po wielu testach, losowym naciskaniu przycisków, byłem zadowolony, że kod działa dobrze, więc podłączyłem siłownik.
I to działa
Asystent domowy
Następnie skonfigurowałem sekcję MQTT urządzenia (adres IP, port, użytkownik i hasło) i podałem temat klienta jako „świetlik”. Następnie skopiowałem kod YAML z sekcji konfiguracji HA i odpowiednio wkleiłem go do mojego pliku configuration.yaml w HA.
Dało mi to 3 nowe przyciski jako jednostki, ale wszystkie działały indywidualnie i nie można ich używać w ten sposób. Stworzyłem więc kartę dla mojego pulpitu nawigacyjnego z następującym kodem.
To działa poprawnie, wywołując usługę publikowania MQTT za pomocą poleceń, które wyzwalają procedury obsługi zdarzeń w pliku autoexec.bat
I to wszystko, muszę tylko dopasować go teraz do mojego świetlika i podłączyć! Jeśli coś przegapiłem, napisz komentarz, a ja to posortuję.
Na koniec wielkie brawa dla wszystkich postaci, które rozwijają całe to otwarte oprogramowanie; jesteś niesamowity.
z przełącznikiem Wi-Fi UE. Mój świetlik jest poza zasięgiem i muszę przynieść drabinę z tego garażu, żeby go otworzyć, Moim pierwotnym zamiarem było użycie go z Local Tuya (to byłby mój pierwszy) w Home Assistant (HA), ponieważ czytałem, że producenci odeszli od płyt ESP8266; Uwolniłem wiele z nich od chmury z nich z Tasmotą. Ale potem natknąłem się na OpenBeken, więc pomyślałem, że spróbuję.
Po pierwsze, sam otwieracz jest 4-przewodowym urządzeniem sieciowym.
Zielony/żółty — uziemienie, niebieski — neutralny, brązowy — otwarty na żywo i czarny — zamknięty na żywo.
Kontroler to przełącznik kurtynowy Smart Life DS-151 N+L, WiFi+BLE (zgodnie z oznaczeniem na pudełku) i pasuje do standardowej brytyjskiej skrzynki ściennej. Zdjęcie pokazuje go ze zdjętym panelem przednim (płaski śrubokręt u podstawy). Płyta to WB3S z procesorem BK7231T.
Zmiana firmware
Przylutowałem przewody do padów TXD1, RXD1, GND i VCC WB3S i podłączyłem go do mojego konwertera USB/UART ustawionego na 3V3. Uzyskałem odpowiedni plik do flashowania tą metodą ( OpenBK7231T_UA_1.15.700.bin), pobrałem i „zainstalowałem” BK_WriterV1.60.exe i próbowałem flashować. Brak radości — otrzymano komunikat o niepowodzeniu!
Po kilku radach od zawsze bardzo pomocnego p.kaczmarek2 miałem rozwiązanie. Styki Tx i Rx są używane przez urządzenie odpowiednio jako wejście przycisku i wyjście LED, a obwód zakłóca migającą sygnalizację. Więc wyciąłem tory prowadzące od tych kołków w pokazanych pozycjach.
Próbowałem ponownie flashować za pomocą BK_Writer przy ustawieniach domyślnych, ale nadal nie ma radości. Spróbowałem ponownie przy 115200 bodach i tym razem zaczął się kasować, ale potem się nie powiódł. Odkryłem wtedy, że mogę odczytać i zapisać całe wstępnie załadowane oprogramowanie układowe, więc to był postęp.
Następnie zwróciłem się do innej metody flashowania za pomocą programu Pythona. Udało się, więc podam tylko szczegóły.
Otworzyłem okno poleceń na moim komputerze i utworzyłem i przeniosłem się do katalogu o nazwie „OpenBKT”, a następnie dostałem program za pomocą polecenia
git clone https://github.com/OpenBekenIOT/hid_download_pyMiałem już zainstalowanego Pythona od lat, ale możesz go też potrzebować. Kiedy próbowałem użyć programu do flashowania, stwierdziłem, że potrzebuję czegoś o nazwie „tqdm”, więc dostałem to za pomocą polecenia
pip install tqdmNastępnie pomyślnie sflashowałem urządzenie za pomocą polecenia
python uartprogram C:\Users\Grumps\Openbkt\OpenBK7231T_UA_1.15.700.bin -d com3 -w -b 115200Będziesz musiał odpowiednio zmienić ścieżkę i port com.
Następnie naprawiłem wycięte ślady. Jeden można było łatwo zmostkować kroplą lutu, ale drugi po prostu nie, więc ostatecznie użyłem bardzo cienkiego drutu.
Pierwsza konfiguracja OpenBeken
Włącz urządzenie i użyj telefonu, aby znaleźć Wi-Fi i połączyć się z nim — identyfikator SSID jest dość oczywisty. Po wykonaniu tej czynności otwórz przeglądarkę w telefonie i przejdź do 192.168.4.1, powinno to doprowadzić Cię do GUI, w którym powinieneś teraz wprowadzić własne dane uwierzytelniające Wi-Fi. Uruchom ponownie urządzenie i spróbuj znaleźć je za pośrednictwem własnego routera. Na moim routerze, kiedy spojrzałem na urządzenia Wi-Fi, faktycznie został nazwany, więc było to dość oczywiste. Chyba będziesz chciał ustawić zarezerwowany adres IP.
Konfiguracja
Kontroler Tuya posiada 3 przyciski, 3 diody podświetlające przyciski oraz 2 przekaźniki. Ustawiłem je tak:
"pin":"funkcja":"kanał"
"6": "Rel;1",
"8": "Btn;3",
"9": "Rel;3",
"10": "Btn;2",
"11": "LED_n;3",
"14": "LED_n;1",
"24": "Btn;1",
"26": "LED_n;2"
Wszystko działało zgodnie z oczekiwaniami, ale nie tak, jak powinno, więc nie podłączaj siłownika w tym momencie!!!!!
Z większą pomocą p.kaczmarek2 napisałem plik autoexec.bat, aby emulować sposób działania oprogramowania Tuya. np. naciśnięcie przycisku Otwórz spowoduje wyłączenie wszystkiego, a następnie włączenie przekaźnika Otwórz i diody LED na 10 sekund. Następnie wszystko by się wyłączyło przed włączeniem diody Stop na zaledwie 3 sekundy. Myślę, że tylko po to, aby potwierdzić, że wszystko jest wyłączone i nie pozostawiać zasilania w siłowniku, gdy nie jest to konieczne. Jak się okazuje, 10s to za mało na pełne otwarcie świetlika, więc zwiększyłem go do 15s. Oto plik autoexec.bat.
// Set up Aliases
alias Set_Stop backlog setChannel 3 0; setChannel 2 0; setChannel 1 0; setButtonColor 3 red; setButtonColor 2 red; setButtonColor 1 red
alias Set_Open backlog setChannel 1 1; setButtonColor 1 blue
alias Set_Close backlog setChannel 3 1; setButtonColor 3 blue
alias Set_Finish backlog setChannel 2 1; setButtonColor 2 blue
alias Start_Opening backlog stopAllScripts; startScript autoexec.bat openSkylight
alias Start_Closing backlog stopAllScripts; startScript autoexec.bat closeSkylight
alias Stop_All backlog stopAllScripts; startScript autoexec.bat stopSkylight
// Channel 60 is seconds for power to be applied
setChannel 60 15
// create GUI buttons for HTTP panel
startDriver httpButtons
setButtonEnabled 1 1
setButtonLabel 1 "Open"
setButtonCommand 1 Start_Opening
setButtonColor 1 red
setButtonEnabled 3 1
setButtonLabel 3 "Close"
setButtonCommand 3 Start_Closing
setButtonColor 3 red
setButtonEnabled 2 1
setButtonLabel 2 "Stop"
setButtonCommand 2 Stop_All
setButtonColor 2 red
// Hide the default GUI buttons
setChannelVisible 1 0
setChannelVisible 2 0
setChannelVisible 3 0
// Loading Event Handlers
addEventHandler OnClick 8 Start_Closing
addEventHandler OnClick 24 Start_Opening
addEventHandler OnClick 10 Stop_All
// Close Skylight on power up
goto closeSkylight
// do not proceed
return
openSkylight:
Set_Stop
delay_s 0.1
Set_Open
delay_s $CH60
Set_Stop
Set_Finish
delay_s 3
Set_Stop
return
closeSkylight:
Set_Stop
delay_s 0.1
Set_Close
delay_s $CH60
Set_Stop
Set_Finish
delay_s 3
Set_Stop
return
stopSkylight:
Set_Stop
Set_Finish
delay_s 3
Set_Stop
returnUkryłem domyślne przyciski, ponieważ można je było wykorzystać do załączenia obu przekaźników w tym samym czasie i nie wiem, jak siłownik by sobie z tym poradził! Po wielu testach, losowym naciskaniu przycisków, byłem zadowolony, że kod działa dobrze, więc podłączyłem siłownik.
I to działa
Asystent domowy
Następnie skonfigurowałem sekcję MQTT urządzenia (adres IP, port, użytkownik i hasło) i podałem temat klienta jako „świetlik”. Następnie skopiowałem kod YAML z sekcji konfiguracji HA i odpowiednio wkleiłem go do mojego pliku configuration.yaml w HA.
mqtt:
switch:
- unique_id: "OpenBK_Skylight_Control_relay_1"
name: "SkyLight 1"
state_topic: "skylight/1/get"
command_topic: "skylight/1/set"
qos: 1
payload_on: 1
payload_off: 0
retain: true
availability:
- topic: "skylight/connected"
- unique_id: "OpenBK_Skylight_Control_relay_2"
name: "SkyLight 2"
state_topic: "skylight/2/get"
command_topic: "skylight/2/set"
qos: 1
payload_on: 1
payload_off: 0
retain: true
availability:
- topic: "skylight/connected"
- unique_id: "OpenBK_Skylight_Control_relay_3"
name: "SkyLight 3"
state_topic: "skylight/3/get"
command_topic: "skylight/3/set"
qos: 1
payload_on: 1
payload_off: 0
retain: true
availability:
- topic: "skylight/connected"
Dało mi to 3 nowe przyciski jako jednostki, ale wszystkie działały indywidualnie i nie można ich używać w ten sposób. Stworzyłem więc kartę dla mojego pulpitu nawigacyjnego z następującym kodem.
type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Skylight Control
alignment: center
- type: horizontal-stack
cards:
- show_name: true
show_icon: true
type: button
tap_action:
action: call-service
service: mqtt.publish
data:
qos: 0
retain: false
topic: cmnd/skylight/Start_Opening
target: {}
entity: switch.skylight_1
name: Open
icon: mdi:unfold-more-vertical
- show_name: true
show_icon: true
type: button
tap_action:
action: call-service
service: mqtt.publish
data:
qos: 0
retain: false
topic: cmnd/skylight/Stop_All
target: {}
entity: switch.skylight_2
icon: mdi:pause
name: Stop
- show_name: true
show_icon: true
type: button
tap_action:
action: call-service
service: mqtt.publish
data:
qos: 0
retain: false
topic: cmnd/skylight/Start_Closing
target: {}
entity: switch.skylight_3
name: Close
icon: mdi:unfold-less-vertical
To działa poprawnie, wywołując usługę publikowania MQTT za pomocą poleceń, które wyzwalają procedury obsługi zdarzeń w pliku autoexec.bat
I to wszystko, muszę tylko dopasować go teraz do mojego świetlika i podłączyć! Jeśli coś przegapiłem, napisz komentarz, a ja to posortuję.
Na koniec wielkie brawa dla wszystkich postaci, które rozwijają całe to otwarte oprogramowanie; jesteś niesamowity.
Fajne? Ranking DIY
