Witajcie, dzisiaj przedstawię tu już drugą frytkownicę z WiFi na Elektrodzie. Rok temu pokazywałem BH-AF2, teraz pora na bliźniaczy produkt, BW-AF1. Pokażę krótko jej konfiguracje dla Tasmoty (TYWE3S), a potem spróbuję zmienić jej moduł WiFi na taki z BK7231T i odpalić na niej OpenBeken. Aplikacji producenta już nie będę tutaj omawiać, bo wszystko na jej temat pokazałem w poprzednim temacie z serii.
Zakup BW-AF1
Produkt kupowałem już jakoś rok temu, więc nie pamiętam dokładnie jak to z tym było, ale kupiłem go w promocji z kuponem, nie zapłaciłem więcej niż 300 zł. Teraz jest on znacznie droższy i niedostępny w niektórych sklepach, trzeba czekać okazję:
Grafiki promocyjne:
A co dostajemy w rzeczywistości?
Pora na moje zdjęcia sprzed roku - chociaż w sumie to jeszcze z 2021 - długo czekały na wstawienie na forum:
Wielkie pudło, podpisane oczywiście co jest w środku. Wysyłka z Czech, kupowałem w chinach, ale z wysyłką z Czech:
dobrze zabezpieczony produkt:
Frytkownica:
Instrukcja:
Gotowe "przepisy" na rybę, frytki, itd (odpowiednio nastawiona temperatura+czas) są dostępne tylko z aplikacji mobilnej. Przyciski dotykowe pozwalają tylko ręcznie ustawić czas i temperaturę, jak również zapauzować pracę. Wysunięcie tacki automatycznie też pauzuje pracę.
Z naszych domowych doświadczeń wynika jednak, że te "przepisy" z aplikacji i tak nie są nic warte - czas pieczenia i tak zależy nawet od ilości produktu, więc trzeba wyrobić sobie doświadczenie z tą frytkownicą i dobierać parametry na bazie poprzednich doświadczeń.
Wnętrze BW-AF1
Górna pokrywa trzyma się na zaczepach, ale bardzo ciężko jest ją zdjąć bez ich uszkadzania.
Po zdjęciu pokrywy i odłączeniu od niej wtyczki widzimy silnik wiatraczka i podłączenie grzania wraz z przekaźnikiem (FAN, HEAT), są też widoczne filtry i zabezpieczenia wejściowe (warystor, kondensator, jest też rezystor bezpiecznikowy, itd) oraz np. buzzer:
Silnik od wentylatora, co zresztą widać, jest na 230V, to pewnie od niego ten przekaźnik.
Została druga część:
Wyświetlacz, przyciski dotykowe:
BW-AF1 korzysta z modułu TYWE3S, czyli ESP8266:
Wyprowadzenia:
Na płytce widać również mikrokontroler. Produkt korzysta z TuyaMCU. Moduł WiFi komunikuje się z mikrokontrolerem przez UART.
Wgrywanie Tasmoty
Jest TYWE3S, można wgrać Tasmotę.
Wgrywałem poprzez esptool.py, tak jak opisywałem już wielokrotnie na forum.
Normalnie trzeba by podsłuchać na UART komunikację TuyaMCU, ale wszystko do konfiguracji znalazłem w sieci.
Całość jest opisana na stronie Blakadder.
Nie będę robić tej konfiguracji od nowa, po prostu zacytuję tą już utworzoną przez Blakadder.
Szablon Tasmoty:
{"NAME":"BW-AF1","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54,"CMND":"TuyaMCU 11,111 | TuyaMCU 12,101 | TuyaMCU 71,104 | TuyaMCU 81,106 | TempRes 0"}
Zmienna TuyaMCU (dpID):
- dpid 103 - ustawienie temperatury 40-400
- dpid 104 - bieżąca temperatura
- dpid 105 - ustawienie czasu pracy 0-60
- dpid 106 - pozostały czas (sekundy)
- dpid 108 - format temperatury 0 = C, 1 = F - zmienia wartości dla dpid 103 i 104
- dpid 109 - wybór z książki kucharskiej - 0 “default” - 1 “custom” - 2 “fries” - 3 “frozen fries” - 4 “nuggets” - 5 “chicken” - 6 “steak” - 7 “fish”
- dpid 111 - start/pauza pracy
W sieci też istnieje gotowy zbiór reguł dla Tasmoty, który pozwala obsługiwać pozostałe funkcjonalności poprzez HA:
rule3
on tuyareceived#dptype4id109 do publish %topic%/cookbook %value% endon
on tuyareceived#dptype2id103 do publish %topic%/cooktemp %value% endon
on var3#state do tuyasend2 103,%value% endon
on tuyareceived#dptype2id105 do publish %topic%/cooktime %value% endon
on var5#state do tuyasend2 105,%value% endon
on event#default do tuyasend4 109,0 endon
on event#custom do tuyasend4 109,1 endon
on event#fries do tuyasend4 109,2 endon
on event#frozen fries do tuyasend4 109,3 endon
on event#nuggets do tuyasend4 109,4 endon
on event#chicken do tuyasend4 109,5 endon
on event#steak do tuyasend4 109,6 endon
on event#fish do tuyasend4 109,7 endon
on power2#state do tuyasend0 endon
Dzięki temu Blueprint można połączyć się z frytkownicą:
Kod: YAML
źródło: https://github.com/tasmota/blueprints/blob/main/discovery-blitzwolf-af1.yaml
Należy dodatkować jeszcze umieścić ją na gui:
Kod: YAML
Szczegóły tutaj: https://blakadder.com/bw-af1-in-home-assistant/
Eksperyment z OpenBeken
Opisany wcześniej szablon Tasmoty testowałem jakiś rok temu i rzeczywiście on działał, jednakże nie dał mi tej satysfakcji ze zrobienia czegoś samemu.
Postanowiłem w ramach eksperymentu spróbować odpalić mój OpenBeken na tej frytkownicy.
To tylko po to, by lepiej móc potestować swoje firmare oraz zweryfikować mój sterownik TuyaMCU - czy da on radę w zupełnie obcym środowisku?
Zabawę zacząłem od wylutu TYWE3S:
Oczyściłem pady:
WB3S odzyskałem z włącznika światła z USA którego dostałem od czytelnika:
Wylutowany WB3S:
WB3S na nowym miejscu:
Zgodnie z dokumentacją:
https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/commands.md
Przygotowałem autoexec.bat:
startDriver TuyaMCU
// cook on/off
setChannelType 1 Toggle
setChannelLabel 1 "Cook"
linkTuyaMCUOutputToChannel 111 bool 1
// power on/off
setChannelLabel 2 "Power"
setChannelType 2 Toggle
linkTuyaMCUOutputToChannel 101 bool 2
// set temperature
setChannelLabel 3 "New Temperature"
setChannelType 3 TextField
linkTuyaMCUOutputToChannel 103 val 3
// currenttemperature
setChannelLabel 4 "Current Temperature"
setChannelType 4 ReadOnly
linkTuyaMCUOutputToChannel 104 val 4
// set time
setChannelLabel 5 "New Time"
setChannelType 5 TextField
linkTuyaMCUOutputToChannel 105 val 5
// read time
setChannelLabel 6 "Current Time"
setChannelType 6 ReadOnly
linkTuyaMCUOutputToChannel 106 val 6
Role poszczególnych komend to:
- startDriver TuyaMCU - startuje sterownik TuyaMCU
- setChannelType 1 Toggle - ustawia typ kanału 1 na przełącznik On/Off (są też wspierane suwaki czy tam przełączniki z wieloma opcjami dla obsługi wentylatorów)
- setChannelLabel 1 "Cook" - ustawia wyświetlaną nazwę kanału 1
- linkTuyaMCUOutputToChannel 111 bool 1 - łączy dpID TuyaMCU 111 z kanałem 1, typ boolean
Dla pozostałych kanałów analogicznie.
Rezultat w OpenBeken:
Podstawowy algorytm pracy to:
1. Włącz Power
2. Ustaw temperaturę na 180
3. Ustaw czas na 10 (ustawianie jest w minutach, odczyt czasu jest w sekundach)
4. Włącz Cook
Powyższe menu już w tej postaci na to pozwala, ale można to zautomatyzować.
Można tworzyć receptury poprzez alias:
alias cook185c15min backlog setChannel 2 1; setChannel 3 185; setChannel 5 15; setChannel 1 1
alias cook170c30min backlog setChannel 2 1; setChannel 3 170; setChannel 5 30; setChannel 1 1
Alias można wywołać tak jak zwykłą komendę, z konsoli albo ze skryptu albo przez MQTT, poprzez publish, albo z przycisku z GUI.
Przyciski z GUI w OpenBeken można dowolnie skryptować. Do autoexec dopisujemy:
startDriver httpButtons
setButtonEnabled 0 1
setButtonLabel 0 "Set 185C 15minutes"
setButtonCommand 0 "cook185c15min "
setButtonColor 0 "orange"
setButtonEnabled 1 1
setButtonLabel 1 "Set 170C 30minutes"
setButtonCommand 1 "cook170c30min "
setButtonColor 1 "orange"
Znaczenie kolejnych komend:
- startDriver httpButtons - uruchamia sterownik skryptowalnych przycisków
- setButtonEnabled 0 1 - włącza przycisk zerowy (indeks 0, stan na 1, czyli ON)
- setButtonLabel 0 "Set 185C 15minutes" - ustawia label (wyświetlany napis) przycisku zerowego
- setButtonCommand 0 "cook185c15min" - ustawia komendę dla tego przycisku
- setButtonColor 0 "orange" - ustawia kolor przycisku na pomarańczowy (nazwa koloru HTML)
Rezultat w OpenBeken:
Ale wracając do MQTT - tak wygląda wywołanie alias poprzez publish:
cmnd/obkDevice12345/cook185c15min
Payload może być pusty. Skutkuje to włączeniem frytkownicy i ustawieniem jej na dany czas i temperaturę.
W ramach testów można to wysyłać z Home Assistant tutaj, z poziomu Mosquitto MQTT broker:
Teraz można to upakować w przyciski i kontrolki na GUI home assistant.
Przykładowo, sam przycisk na dany przepis możne utworzyć tak:
Kod: YAML
W nowej wersji Yaml:
Kod: YAML
Skutkować to będzie utworzeniem przycisku który uruchomi właśnie ten przepis:
Wtedy można wysłać komendę już z głównego panelu HA.
Teraz kwestia czasu. Trzeba jakoś wyświetlać ile sekund zostało do końca pracy.
Można by zrobić tak:
Kod: YAML
Ale to nie jest idealne rozwiązanie - to po prostu wyświetli daną wartość bez formatowania, np. 90 sekund jako 90, a nie jako 01:30.
Użycie formatowania czasu jest jednak dość proste, wystarczy najpierw zamienić wartość na integer:
Kod: YAML
O wiele lepiej:
Ważne by pamiętać o fragmencie value|int który zamienia wartość na integer, bez tego u mnie timestamp_custom nie działał.
Pełny panel Home Assistant dla frytkownicy OpenBeken
Poprzez pokazaną powyżej metodę można upakować wszystkie kontroli frytkownicy na jednym panelu Home Assistant, ale ze względu na długość tego postu zostanie to omówione w następnej części.
Własny panel kontroly na OpenBeken - Javascript i interfejs REST
Alternatywą dla sterowania przez HA może być postawienie strony na OpenBeken - tak, jest to możliwe, OpenBeken jest wtedy serwerem HTTP. Można na nim w systemie plików LittleFS zapisać dokument HTML ze skryptami Javascript i nimi sterować urządzeniem.
To też będzie omówione w kolejnej części, ale poniżej zamieszczam małą zapowiedź:
Podsumowanie
Ta frytkownica korzysta z protokołu TuyaMCU. Moduł WiFI w zasadzie potrzebny tu jest tylko do kontroli jej przez sieć - resztę wykonuje już mikrokontroler.
Skonfigurowanie tej frytkownicy w oryginalnej wersji, na TYWE3S, jest bardzo proste, na stronie Blakadder jest dostępny gotowiec, którego tu już nawet szczegółowo nie opisywałem.
W ramach eksperymentu z kolei spróbowałem wymienić jej moduł na WB3S, by opalić OpenBeken - konfiguracja również się powiodła. Co więcej, możliwości skryptów OpenBeken (dowolność łączenia kanałów ze zmiennymi TuyaMCU oraz skryptowanie panelu WWW) pokazała, że na tej platformie można ją nawet samodzielnie uruchomić, bez nakładki w stylu HA. Pokazałem tu jednak tylko podstawy tej konfiguracji - finalne konfiguracje (wersje z Home Assistant oraz wersje z własną stroną postawioną na OBK) zostawiam na kolejne tematy.
PS: To nie był jedyny produkt z TuyaMCU który omawiałem. Omawiałem już m. in:
- czujnik otwarcia drzwi/okna z wersją low power TuyaMCU
- ściemniacz na TuyaMCU
Na naszym forum pojawiły się też inne produkty oparte o ten protokół, przykładowo ten kontroler wentylatora.
Fajne? Ranking DIY Pomogłem? Kup mi kawę.
