W ramach zdobywania nowej wiedzy z zakresu smarthome (i poćwiczenia lutowania) postanowiłem przeflashować swojego Sonoffa B1 R2 na Tasmotę. Niestety, nie da się tego zrobić z użyciem OTA (np poprzez Tuya-Convert) tylko trzeba się dostać do modułu z użyciem konwertera USB2TTL. Tą metodą można przeflashować większość Sonoffów (jedne wygodniej, inne trochę mniej) oraz prawdopodobnie inne urządzenia SmartHome oparte o układ ESPXXXX
Potrzebne narzędzia:
1. Konwerter USB-TTL
2. Trochę przewodów, najlepiej z goldpinami
3. Lutownica i cyna
4. Oprogramowanie do połączenia z ESP po porcie COM
Jako konwertera USB-TTL użyłem niezawodnego CP2102, ale zamiast niego można prawdopodobnie wykorzystać inny dostępny na rynku (PL2303, FTDI, CH340)
Oprogramowaniem z którego korzystałem przy tym flashowaniu było ESPEASY Flasher. W celu przygotowania go do wgrania Tasmoty wystarczy pobrać obraz .bin tasmoty z repozytorium i wgrać do podkatalogu /bin programu.
![](https://lukasz.oksejuk.pl/wp-content/uploads/2020/11/r0_IMG_20201102_151657-1024x768.jpg)
Rozmontowujemy naszą żarówkę, aby dostać się do pól lutowniczych. Na szczęście matowy klosz żarówki jest mocowany na gwincie więc można go po prostu odkręcić.
![](https://lukasz.oksejuk.pl/wp-content/uploads/2020/11/r1_IMG_20201030_170423-1024x768.jpg)
Następnie dolutowujemy przewody do odpowiednich pól lutowniczych zgodnie z instrukcją.
![](https://lukasz.oksejuk.pl/wp-content/uploads/2020/11/r2_IMG_20201030_171358-1024x768.jpg)
Po dolutowaniu przewodów podpinamy je do konwertera. Pamiętamy o tym, aby przewód TX jednego urządzenia łączyć z RX drugiego i odwrotnie. Poza tym standardowo – 3.3V do 3.3V i masa do masy. Robimy też dodatkowe wyprowadzenie przewodu masowego aby go zewrzeć z GPIO0. W trakcie flashowania żarówka nie musi być podłączona do zewnętrznego zasilania – 3.3V dostarczane przez programator USB w zupełności wystarcza do zasilenia ESP.
![](https://lukasz.oksejuk.pl/wp-content/uploads/2020/11/r3_IMG_20201030_172658-1-1024x768.jpg)
Jedną ręką zwieramy dodatkową masę do GPIO0 a drugą wpinamy nasz konwerter do portu USB. W moim przypadku trzeba było trzymać ten przewód w tak niewygodnej pozycji około 25s – krótsze próby kończyły się niepowodzeniem w postaci chipu zablokowanego przed flashowaniem.
![](https://lukasz.oksejuk.pl/wp-content/uploads/2020/11/r4_IMG_20201030_173552-1024x768.jpg)
Po udanym połączeniu uruchamiamy ESPEASY Flasher, z rozwijanych menu wybieramy nasz port COM (rozpoznamy go po tym, że w nazwie pojawi się nazwa naszego programatora), obraz firmware (pobrany na początku). Dla wygody możemy też od razu podać dane konfiguracyjne naszego wi-fi, dzięki czemu oszczędzimy sobie kłopotów z podłączaniem się do access pointu uruchamianego przez urządzenie przy pierwszym uruchomieniu.
![](https://lukasz.oksejuk.pl/wp-content/uploads/2020/11/Przechwytywanie2x.jpg)
Klikamy Flash ESP Easy FW (tak, jasne 😉 ) i oprogramowanie się wgrywa do żarówki.
![](https://lukasz.oksejuk.pl/wp-content/uploads/2020/11/Przechwytywanie3x-1.jpg)
Po przeflashowaniu odszukujemy na routerze nasze urządzenie i wchodzimy na jego adres IP.
Wchodzimy w Configuration -> Other i w polu Template wklejamy konfigurację z repozytorium.
Jeśli korzystamy z MQTT i Home Assistanta to w zakładce Configuration -> MQTT podajemy adres naszego serwera.
![](https://lukasz.oksejuk.pl/wp-content/uploads/2020/11/Bez-tytulu.jpg)
A na serwerze następującą konfigurację (znaleziona tu)
light sonoff_bulb:
- platform: mqtt
name: "nazwa zarowki"
command_topic: "cmnd/sonoff-xxxx/POWER"
state_topic: "stat/sonoff-xxxx/POWER"
payload_on: "ON"
payload_off: "OFF"
brightness_command_topic: "cmnd/sonoff-xxxx/DIMMER"
brightness_scale: 100
brightness_state_topic: "stat/sonoff-xxxx/RESULT"
brightness_value_template: "{{ value_json.Dimmer }}"
rgb_command_topic: "cmnd/sonoff-xxxx/COLOR"
rgb_command_template: "{{ '%02x%02x%02x0000' | format(red, green, blue) }}"
rgb_state_topic: "stat/sonoff-xxxx/RESULT"
rgb_value_template: "{{ value_json.Color[0:2]|int(base=16) }},{{ value_json.Color[2:4]|int(base=16) }},{{ value_json.Color[4:6]|int(base=16) }}"
color_temp_command_topic: "cmnd/sonoff-xxxx/CT"
color_temp_state_topic: "cmnd/sonoff-xxxx/RESULT"
color_temp_value_template: "{{ value_json.CT }}"
effect_command_topic: "cmnd/sonoff-xxxx/SCHEME"
effect_state_topic: "stat/sonoff-xxxx/RESULT"
effect_value_template: "{{ value_json.Scheme }}"
effect_list:
- 0
- 1
- 2
- 3
- 4
availability_topic: "tele/sonoff-xxxx/LWT"
payload_available: "Online"
payload_not_available: "Offline"
Dzięki temu możemy w naszej żarówce konfigurować różne tryby świecenia. Możemy regulować kolor, barwę oraz efekty.
![](https://lukasz.oksejuk.pl/wp-content/uploads/2020/11/Przechwytywanie56765.jpg)
W wypadku, gdyby nasza konfiguracja wi-fi nie działała poprawnie, reset urządzenia odbywa się poprzez 6-krotne wyłączenie zasilania.