D1 mini WiFi ESP8266 połączony z modułem 4 przekaźników HW-316

Podłącz jeszcze czwarty na próbę - przycisk do D3 w trybie zwykły input ( nie pullup) i przekaźnik do D4
Jak się skompiluje bez błędu to musi działać :slight_smile:
Nie może jednak być to przełącznik bistabilny.

D0 może działać też jako input jednak wymaga dodatkowego rezystora podciągającego 1k-10k pomiędzy D0 <->3,3V

@RobinI30 - Działa - SUPER.

Jest tylko jedno ograniczenie - przycisk nie może być naciśnięty w momencie restartu płytki.
Nic się nie uszkodzi tylko program nie wystartuje.
Bezpieczniej więc użyć D0 z dolutowanym rezystorem

W przypadku instalacji natywnych HAOS myślę, że zdrowszym rozwiązaniem jest podpięcie na pierwsze flaszowanie modułu właśnie do maszyny na której pracuje HA (jest to po prostu banalnie proste, wirtualizacja niestety to utrudnia, ale nadal jest to możliwe).

Natomiast przykładowy projekt (też) wykorzystujący bezpośrednie sterowanie przekaźnikiem wart przeanalizowania znajduje się z dokumentacji ESPHome

PS Jeśli dobrze pamiętam to GPIO0 ma wewnętrzny pullup nie podlegający konfiguracji (jest to wejście podciągnięte na stałe do zasilania), natomiast jako wejście można użyć też… GPIO3 (opisane jako RX) i być może jest to lepszy pomysł od GPIO0?


(obrazek z artykułu z opisem pinologii różnych płytek, który linkowałem gdzieś wyżej)

Panowie, Chce troszkę z zmodernizować mój projekt. Chciałbym aby w momencie uruchomienia D6 najpierw wyłączyło się D7, i odwrotnie tak aby nie było razem włączone.
Szukam w sieci ale wszystko zawsze odnosi się do jednego pinu.

Interlocking

1 Like
switch:
  - platform: gpio
    pin: D7
    name: "${device_name_lower}_przelacznik on-line 1"
    icon: "mdi:light-switch"
    inverted: true
    id: relay1
    interlock: &interlock_group [relay1, relay2]


  - platform: gpio
    pin: D6
    name: "${device_name_lower}_przelacznik on-line 2"
    icon: "mdi:light-switch"
    inverted: true
    id: relay2
    interlock: &interlock_group [relay1, relay2] 

Dobrze myślę? Jak tak zrobie to właśnie tak będzie?

Ja mam tak:

  - platform: gpio
    name: "K2 WZM+DAC"
    pin:
      pcf8574: pcf8574_hub
      number: 1
      mode:
        output: true
      inverted: true
    id: wzmacniacz
    interlock: [amplituner]
  - platform: gpio
    name: "K7 Ampli"
    restore_mode: ALWAYS_ON
    pin:
      pcf8574: pcf8574_hub
      number: 6
      mode:
        output: true
      inverted: false
    id: amplituner
    interlock: [wzmacniacz]

Jak już chciałeś tym drugim sposobem to moim zdaniem masz źle.

switch:
  - platform: gpio
    pin: D7
    name: "${device_name_lower}_przelacznik on-line 1"
    icon: "mdi:light-switch"
    inverted: true
    id: relay1
    interlock: &interlock_group [relay1, relay2]


  - platform: gpio
    pin: D6
    name: "${device_name_lower}_przelacznik on-line 2"
    icon: "mdi:light-switch"
    inverted: true
    id: relay2
    interlock: *interlock_group
1 Like

Słusznie - dziękuje za pomoc.

Działa super.
A proszę Państwa a jest polecenie które chyba chciałbym zastosować mianowicie:

- delay: 5s

Chciałbym aby przełączenie pomiedzy 2 przekaznikami trwało 5 sek. Ale gdziekolwiek bym tego nie wpisał to jest błąd.

A druga sprawa, są 2 przyciski (mikrostyki) czy moge powiedzieć, że jak naciśnie 1 to zamknie przekaznik 1 a wciśnięcie mikrostyka nr 2 uruchomi 2 przekaźnik zachowując zasade że tyko 1 może być włączony? I co jak jakiś mistrz naciśnie 2 na raz?

  1. Nie wiem czy zrozumiałem założenie, ale interlock raczej wyklucza opóźnienie.
    W każdym razie możesz go użyć w automatyzacjach/szablonach
    Automations and Templates — ESPHome

  2. interlock wyklucza taką sytuację, skoro masz zbudowany układ to sam zobacz.

Czyli w moim wypadku nie da rady.
Ok ale czemu nie mogę przypisać przełącznika do tego aby uruchomił przekaźnik?

Możesz, tylko musisz przygotować własną automatyzację zamiast gotowca interlock.

To chyba nie na moje siły - chyba ogarne to w NR.

No, cóż wytaczanie armaty na muchę z pewnością nie będzie optymalnym rozwiązaniem, ale najważniejszy jest cel nadrzędny - by działało zgodnie z oczekiwaniami, no i to nie szkoła i nie robisz tego na zaliczenie.

Oswojenie się a YAMLem w HA zajęło mi naprawdę dużo czasu, więc doskonale rozumiem ten problem, gdy się siada do ESPHome (szczególnie że dokumentacja jest jak rozsypane puzzle :stuck_out_tongue: i trzeba ją analizować po kawałeczku, ale ostatecznie i tak trzeba przeczytać całość).

Pojawił się nowy projekt - do tego co wyżej pisałem potrzebuje doczepić “Czujnik temperatury DS18B20 Dallas”. Czy mogę do tego co jest podłączyć jeszcze to dodatkowo? Czy to już za dużo będzie?

Widziałem, że na 1 linii 1-wire ludzie podpinali i po 12 szt. DS182B20 (ale oczywiście im mniej tym mniejsza szansa na wzajemne zakłócenia).

A w kwestii zasadniczej, bo chyba nie załapałem o co pytałeś - jeśli masz wolne GPIO, to nie widzę przeszkód.

W/g tamtego schematu na początku mas z wolne D0, czyli GPIO16 - więc możesz podpiąć, ale nie możesz korzystać z usypiania.

A czy na RST, A0 i D8 bo takie mi tylko zostały moge to podpiąć?
No i czywiście zostało jeszcze RX i TX.

Najlepiej to poczytać dokumentację :smiley:

RST co oczywiste jest pinem Reset, więc nie jest do użytku jako GPIO.

Natomiast aliasy (takie jak A0 czy D8) zależą od użytej płytki prototypowej, chociaż w pewnym stopniu są znormalizowane, więc patrząc na samą literkę A można się już spodziewać że to coś analogowego, a na D że to cyfrowe - zakładam, że chodzi o WeMos D1 mini (lub 100% klona), jeśli mnie pamięć nie myli w ESP82xx nie można użyć wejścia analogowego (tu A0) do dowolnych innych celów, natomiast niektóre inne GPIO też maja ograniczenia, więc czasem to trzeba przemyśleć na etapie projektowania - najlepiej na poczatek wybrać zgodnie z zastosowaniem domyślnym, a przekładki robić dopiero gdy pinów brakuje - zwykle nawet te “trefne” dają się użyć do jakichś prostych celów, czyli jako np. wejścia przycisków czy wyjścia przekaźników, ale na magistrale 1-wire to bym wykorzystał raczej jakieś GPIO bez ograniczeń.
ESP przy kompilacji pokaże ostrzeżenia jeśli chcesz użyć jakiejś ryzykownej konfiguracji.
Magistrala 1-wire wymaga np. zewnętrznego pullupu, więc nie możesz użyć żadnego pinu który nie może być podciągnięty do zasilania.

Tu masz fajny skrót z tego fragmentu dokumentacji:

hint dla zaawansowanych - A0 można wykorzystać do podpięcia klawiatury dającej sygnał parametryczny (drabinka rezystorowa), gdzieś mi mignął nawet gotowy projekt to wykorzystujący (jakaś “inteligentna listwa/przedłużacz”).