Sonoff Basic – podłączenie zewnętrznego przycisku i podgląd stanu w aplikacji (Tasmota, ESPHome)
Pytanie
jak podłączyć zewnętrzny przycisk do sonoff basic, tak aby widzieć jego stan w aplikacji?
Odpowiedź Sztucznej Inteligencji
Bezpośrednia odpowiedź na pytanie
- Aby widzieć w aplikacji stan zewnętrznego przycisku podłączonego do Sonoff Basic, należy:
- wyprowadzić wolny pin GPIO (najczęściej GPIO14 lub GPIO4) oraz GND,
- wpiąć przycisk (NO) pomiędzy GPIO a GND,
- wgrać alternatywny firmware (Tasmota lub ESPHome),
- w konfiguracji firmware’u oznaczyć dany GPIO jako „Button/Switch” i udostępnić go aplikacji (MQTT, Home Assistant, ESPHome-API).
- Oryginalny eWeLink nie publikuje stanu przycisku – bez zmiany firmware’u zobaczysz jedynie zmianę stanu przekaźnika, nie sam przycisk.
Kluczowe punkty
• GPIO14 lub GPIO4 + GND
• chwilowy przycisk NO z podciągnięciem do 3 V 3
• Tasmota/ESPHome → MQTT/Home Assistant/ESPHome-App
• bezpieczeństwo: modyfikacje przy odłączonym 230 V, utrata gwarancji
Szczegółowa analiza problemu
1. Charakterystyka Sonoff Basic
Sonoff Basic (R2/R3) bazuje na układzie ESP8266 i standardowo udostępnia:
- GPIO0 – wewnętrzny przycisk + tryb flash,
- GPIO12 – sterowanie przekaźnikiem,
- GPIO13 – LED,
- GPIO14 – wolny pad do własnych zastosowań,
- GPIO1/TX i GPIO3/RX – linia UART (możliwa praca jako GPIO po flashu).
W eWeLink przycisk (GPIO0) nie jest raportowany do chmury; aplikacja pokazuje wyłącznie stan RELAY. Dlatego potrzebny jest firmware, który publikuje stan wejścia.
2. Modyfikacja sprzętowa
- Odłącz zasilanie ~230 V!
- Otwórz obudowę i zlokalizuj pady 3V3, RX, TX, GND, GPIO14.
- Przylutuj:
• przewód zewnętrznego przycisku do GPIO14,
• drugi przewód do GND.
- Rezystor podciągający:
• wewnętrzny (INPUT_PULLUP) w ESP8266 zwykle wystarcza; przy długich przewodach dodaj 10 kΩ pomiędzy GPIO14 a 3V3.
Schemat (wewnętrzny pull-up):
3V3 ---[wewn.10k]--- GPIO14 ----o
| (przycisk NO)
GND -----------------------------o
3. Flashowanie alternatycznego firmware’u
Krok |
Co zrobić |
Narzędzie |
1 |
Podłącz konwerter USB-TTL 3 V 3 (FTDI/CP2102). |
Kable dupont |
2 |
Wprowadź Sonoff w tryb programowania – przytrzymaj przycisk na płytce (GPIO0 do GND) i podaj 3 V 3. |
— |
3 |
Wgraj Tasmotę (pliki .bin) lub ESPHome (OTA po pierwszym flashu). |
Esptool.py, Tasmotizer, ESPHome-flasher |
4. Konfiguracja firmware’u
a) Tasmota (interfejs WWW)
Configuration → Configure Module
Module Type : Generic (18) lub Sonoff Basic (1)
GPIO14 : Button2 (17) # lub Switch2 (9) dla zwiernika
W konsoli:
SwitchMode2 1 # stan chwilowy, HIGH=puszczony, LOW=wciśnięty
SetOption114 1 # przycisk niezależny od RELAY
Publikacja MQTT: stat/sonoff/RESULT {"BUTTON2":"ON"}
/ OFF
.
b) ESPHome (plik YAML)
binary_sensor:
- platform: gpio
pin:
number: GPIO14
mode: INPUT_PULLUP
inverted: True # przycisk zwiera do GND
name: "Przycisk Zewnętrzny"
filters:
- delayed_on_off: 10ms
Po wgraniu Home Assistant automatycznie wykryje encję.
5. Wizualizacja w aplikacji
• Home Assistant (Android/iOS) – natywne kafelki stanu.
• IoT MQTT Panel, TasmoAdmin, Node-RED dashboard – subskrypcja MQTT.
• Aplikacja ESPHome Web – podgląd w przeglądarce.
Uwaga: po flashu nie korzystasz już z eWeLink – aplikacja ta obsługuje wyłącznie oryginalny firmware.
Aktualne informacje i trendy
- Firmware Tasmota 14.x wprowadził
SetOption114
, dzięki któremu przyciski nie muszą już sterować przekaźnikiem – można raportować sam stan (2024-05).
- ESPHome 2024.2 umożliwia „Web server UI” – szybki podgląd stanu bezpośrednio z przeglądarki.
- Coraz popularniejsze są Sonoffy Mini-R4M (Matter) z natywnymi zaciskami S1/S2; dla nowych instalacji warto rozważyć je zamiast modyfikacji Basica.
- Trend bezpieczeństwa: separacja niskonapięciowego przycisku od części 230 V przy pomocy optoizolatorów lub transoptorów (np. PC817) przy przewodach >3 m.
Wspierające wyjaśnienia i detale
- GPIO14 jest boot-neutral (nie wpływa na sekwencję startu ESP8266).
- Wewnętrzny pull-up ≈45 kΩ; przy długim przewodzie może zbierać zakłócenia – stąd propozycja 10 kΩ.
- Aby zachować fabryczny przycisk, pozostaw GPIO0 jako Button1 (krótkie naciśnięcie – lokalny toggle).
- „Switch” w Tasmocie raportuje zarówno ON, jak i OFF; „Button” tylko zdarzenia wciśnięcia.
Aspekty etyczne i prawne
- Flashowanie nieoryginalnego firmware’u unieważnia gwarancję i formalnie narusza warunki użytkowania eWeLink.
- Urządzenie pracuje na 230 V; nieprawidłowa modyfikacja grozi porażeniem lub pożarem – obowiązują przepisy SEP i PN-EN 60950/62368.
- Dane z MQTT/Home Assistant mogą zawierać wzorce aktywności domowników – zadbaj o szyfrowanie (TLS) i autoryzację.
Praktyczne wskazówki
- Przed lutowaniem usuń z płytki warstwę lakieru ochronnego (flux + delikatne zdrapanie).
- Jeśli musisz wykorzystać istniejącą instalację dzwonkową 230 V, zastosuj przekaźnik 230 V~ → styki bezpotencjałowe do GPIO.
- Test ostateczny: multimetr w trybie Ohm – upewnij się, że między przyciskiem a 230 V nie ma galwanicznego połączenia.
Ewentualne zastrzeżenia lub uwagi dodatkowe
- Sonoff Basic R3 w trybie DIY (firmware 3.x) udostępnia REST API, ale nadal nie raportuje chwilowego stanu przycisku – konieczny polling co ~200 ms, mało efektywne.
- GPIO1/GPIO3 mogą służyć jako wejścia, ale podczas boot-u muszą być w stanie HIGH – ryzyko zawieszenia modułu.
- Przy bardzo długich przewodach (>10 m) rozważ magistralę 1-Wire lub osobny moduł ESP01 zamiast bezpośredniego podłączania.
Sugestie dalszych badań
- Analiza nowego Sonoff P4-Mini (ESP32-C3 + Zigbee) pod kątem natywnego „external switch”.
- Badanie wpływu częstotliwości skanowania MQTT (
TelePeriod
) na opóźnienia raportowania wejść.
- Porównanie zużycia energii modułu ESP8266 vs ESP32-C3 po przejściu na ESPHome (tryb light-sleep).
- Standard Matter – możliwość bezpośredniej integracji przycisków jako
GenericSwitch
w ekosystemie Apple/Google, bez brokera MQTT.
Krótkie podsumowanie
Aby niezależnie monitorować stan zewnętrznego przycisku w Sonoff Basic, trzeba użyć wolnego GPIO (najczęściej GPIO14), podłączyć do niego przycisk zwierający do GND i wgrać alternatywny firmware (Tasmota lub ESPHome). Po odpowiedniej konfiguracji pin jest publikowany do sieci (MQTT, ESPHome-API), dzięki czemu stan wciśnięcia widoczny jest w aplikacjach typu Home Assistant czy IoT MQTT Panel. Oryginalny eWeLink nie wspiera takiej funkcji, a modyfikacja wymaga zachowania zasad bezpieczeństwa i wiąże się z utratą gwarancji.
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.