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:
    1. wyprowadzić wolny pin GPIO (najczęściej GPIO14 lub GPIO4) oraz GND,
    2. wpiąć przycisk (NO) pomiędzy GPIO a GND,
    3. wgrać alternatywny firmware (Tasmota lub ESPHome),
    4. 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

  1. Odłącz zasilanie ~230 V!
  2. Otwórz obudowę i zlokalizuj pady 3V3, RX, TX, GND, GPIO14.
  3. Przylutuj: • przewód zewnętrznego przycisku do GPIO14,
    • drugi przewód do GND.
  4. 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.

Oceń odpowiedź:
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.