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

HA stoi na serwerku windows 2019 serwer jako obraz, a z win 10 wchodze poprzez strone na niego, a ESPHome jest zainstalowane w integracjach. Zrobiłem z linku i mam tak:

esphome:
  name: test
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: 'siec'
  password: 'haslo01230!'

api:

logger:

ota:

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO14
      mode:
        input: true
        pullup: true
      inverted: true
    name: "Button 1"
  - platform: gpio
    pin:
      number: GPIO15
      mode:
        input: true
        pullup: true
      inverted: true
    name: "Button 2"
  - platform: gpio
    pin:
      number: GPIO2
      mode:
        input: true
        pullup: true
      inverted: true
    name: "Button 3"
  - platform: gpio
    pin:
      number: GPIO0
      mode:
        input: true
        pullup: true
      inverted: true
    name: "Button 4"
  - platform: status
    name: "Status"

switch:
  - platform: gpio
    name: "Relay 1"
    pin: GPIO5
  - platform: gpio
    name: "Relay 2"
    pin: GPIO4
  - platform: gpio
    name: "Relay 3"
    pin: GPIO12
  - platform: gpio
    name: "Relay 4"
    pin: GPIO13

i zwrotka:

INFO Reading configuration /config/esphome/test.yaml...
INFO Configuration is valid!
esphome:
  name: test
  build_path: .esphome/build/test
  platformio_options: {}
  includes: []
  libraries: []
  name_add_mac_suffix: false
esp8266:
  board: esp01_1m
  framework:
    version: 2.7.4
    source: ~3.20704.0
    platform_version: platformio/espressif8266 @ 2.6.3
  restore_from_flash: false
  board_flash_mode: dout
wifi:
  domain: .local
  reboot_timeout: 15min
  power_save_mode: NONE
  fast_connect: false
  output_power: 20.0
  networks:
  - ssid: siec
    password: haslo01230!
    priority: 0.0
  use_address: test.local
api:
  port: 6053
  password: ''
  reboot_timeout: 15min
logger:
  baud_rate: 115200
  tx_buffer_size: 512
  deassert_rts_dtr: false
  hardware_uart: UART0
  level: DEBUG
  logs: {}
  esp8266_store_log_strings_in_flash: true
ota:
  safe_mode: true
  port: 8266
  reboot_timeout: 5min
  num_attempts: 10
binary_sensor:
- platform: gpio
  pin:
    number: 14
    mode:
      input: true
      pullup: true
      analog: false
      output: false
      open_drain: false
      pulldown: false
    inverted: true
  name: Button 1
  disabled_by_default: false
- platform: gpio
  pin:
    number: 15
    mode:
      input: true
      pullup: true
      analog: false
      output: false
      open_drain: false
      pulldown: false
    inverted: true
  name: Button 2
  disabled_by_default: false
- platform: gpio
  pin:
    number: 2
    mode:
      input: true
      pullup: true
      analog: false
      output: false
      open_drain: false
      pulldown: false
    inverted: true
  name: Button 3
  disabled_by_default: false
- platform: gpio
  pin:
    number: 0
    mode:
      input: true
      pullup: true
      analog: false
      output: false
      open_drain: false
      pulldown: false
    inverted: true
  name: Button 4
  disabled_by_default: false
- platform: status
  name: Status
  disabled_by_default: false
  device_class: connectivity
  entity_category: diagnostic
switch:
- platform: gpio
  name: Relay 1
  pin:
    number: 5
    mode:
      output: true
      analog: false
      input: false
      open_drain: false
      pullup: false
      pulldown: false
    inverted: false
  disabled_by_default: false
  restore_mode: RESTORE_DEFAULT_OFF
  interlock_wait_time: 0ms
- platform: gpio
  name: Relay 2
  pin:
    number: 4
    mode:
      output: true
      analog: false
      input: false
      open_drain: false
      pullup: false
      pulldown: false
    inverted: false
  disabled_by_default: false
  restore_mode: RESTORE_DEFAULT_OFF
  interlock_wait_time: 0ms
- platform: gpio
  name: Relay 3
  pin:
    number: 12
    mode:
      output: true
      analog: false
      input: false
      open_drain: false
      pullup: false
      pulldown: false
    inverted: false
  disabled_by_default: false
  restore_mode: RESTORE_DEFAULT_OFF
  interlock_wait_time: 0ms
- platform: gpio
  name: Relay 4
  pin:
    number: 13
    mode:
      output: true
      analog: false
      input: false
      open_drain: false
      pullup: false
      pulldown: false
    inverted: false
  disabled_by_default: false
  restore_mode: RESTORE_DEFAULT_OFF
  interlock_wait_time: 0ms

Udało mi się połączyć flesherem ale jak z tego yaml-a zrobić bin?

Tak… tylko bin wgrasz po swojemu.
Przez Ciebie, jeszcze nie daj boże zostanę ekspertem z ESPEasy :stuck_out_tongue:

1 Like

Tak to wiem ale jakimś innym sposobem. Tu co bym nie wsadził nawet nowe wywala mi błąd taki jak wyżej pokazywałem.
Będe zaszczycony jak przeze mnie zostaniesz mistrzuniem.

Jaki błąd? Możesz pokazać palcem?

Tak - wywala to i nie ma opcji żeby poszło dalej i nie można pobrać pliku bin.

Tłumaczę:
INFO Konfiguracja jest prawidłowa!
Nie rozumiem?

Nie jest aż tak źle z moim angielskim, ale czemu po tym nie tworzy pokazanego przez Ciebie pliku?
ZARAZ MOJA WINA
Trzeba dalej z palucha nacisnąć - o rety jaka ze mnie …
Przemęczenie sory - jutro albo w sobote jade dalej z tematem :slight_smile:
@RobinI30 kurde dzięki.
Nie wiem tylko czemu z poziomu www nie chce się połączyć - czy kabel usb musi być wpięty w serwer? czy może być w komputer na którym nie jest zainstalowany HA. Bo coś mi świta, że @szopen chyba o to pytał mnie.

Metod jest wiele

  • podstawowa to OTA, ale to działa tylko jeśli już masz ESPHome wgrane na płytkę (i konfiguracja w tym już wgranym firmware zawiera dyrektywę ota:)

  • druga, to podpięcie płytki do komputera, z którego oglądasz GUI, ale wymaga ona spełnienia paru warunków (działające sterowniki mostka UART, dostęp do interfejsu z użyciem ssl (https) oraz obsługiwana przeglądarka - MS Edge lub Chrome) - na obrazku nieaktywna z powodu niespełnienia wymagań

  • trzecia (kiedyś domyślna, ale dla ułatwienia flaszowania wprowadzono inne metody) to podpięcie płytki do maszyny na której chodzi HA, ale w przypadku VM jest to upierdliwe (trzeba port zmapować z hosta do VM), natomiast dla instalacji bare-metal jest wprost idealna (ESPHome wykrywa urządzenia “na żywo” bez konieczności restartowania itd, jak to było kiedyś, że było wymagane zrestartowanie ESPHome po podpięciu sprzętu)

  • no i czwarta, która produkuje plik do sflaszowania inną metodą (de facto chodzi o ostatni krok kreatora, który sugeruje pobranie pliku, bo firmware jest generowane w każdej z metod tylko trzeba je sobie wyciągnąć z podkatalogu danego urządzenia w esphome stosując dowolną inną metodę o ile chcemy wgrać metodą offline, hehe na służbowym kompie przeglądarka zaproponowała otwarcie pliku w… VLC :stuck_out_tongue: )




    natomiast trzeba to wgrać używając swojego ulubionego flashera dla ESP (można wygenerowany plik wgrać też jako z interfejsu webowego ESP np .w Tasmocie jak tzw. aktualizację OTA).

Jest OK. wciskam w HA przycisk i zapala się dioda, ALE nie przełącza się przekaźnik - czemu?
Przeszedłem na 2-przekażnikowy moduł bo skoro z 4 jest problem to robimy jak trza na mniejszym. :slight_smile:

Zacznijmy od podstaw - jaki masz moduł przekaźników (dokładnie), czy to wersja z własnym prockiem (i jakim), czy każdy przekaźnik ma własne wejście sterujące (i czy jest z optoizolacją czy bez, bo i to może mieć znaczenie) oraz jaki masz moduł ESP, bo coś mi się nie chce wierzyć, że to

esp01_1m

bo widzę w kodzie, że próbujesz wykorzystać nieistniejące w nim GPIO (w sensie: niewyprowadzone, bo sam SoC je posiada, ale chyba się do niego nie dolutowujesz bezpośrednio?).

PS w tytule wątku jest Wemos D1 mini (to nadal obowiązuje?) - deklaracja modułu dla D1 mini

esphome:
  name: jakas_nazwa
  platform: ESP8266
  board: d1_mini

Oczywiście w pewnych wypadkach ta deklaracja nie ma znaczenia - jeśli odwołujesz się bezpośrednio do “pinologii” ESP8266 (i masz zdeklarowany jakiś moduł “generic”), a nie do opisów na PCB dla których istnieją pasujące aliasy, ale tylko po skonfigurowaniu właściwego modelu modułu.

Idea zbudowania czegokolwiek w ESPHome jest ultraprosta - tworzysz absolutnie minimalną konfigurację (dosłownie kilka, no OK kilkanaście linijek na krzyż), po czym ewentualnie uzupełniasz jeśli czegokolwiek brakuje, w twoim kodzie jest już “mydło i powidło” i dziesiątki zbędnych opcji (które zaciemniają prostotę konfiguracji).

1 Like

Działa, @szopen faktycznie miało to znaczenie - nazwa ma znaczenie.
Teraz już jest jak trzeba.
Dajcie mi czas zrobie gotowca, @szopen poproszę Cię na koniec abyś posprzątał tu bo jest mase niepotrzebnych wpisów, prawie zawsze moich.
Mam kod narazie na 1 sztuke zmienie na 3 podłącze sprawdze i opisze.

Jeśli o mnie chodzi, to nie jestem zwolennikiem takiego sztucznego sprzątania wątków, bo wtedy czytający nie jest w stanie rozszyfrować co kto miał na myśli i dlaczego tak, a nie inaczej postąpił, więc walor dydaktyczny takiego “gotowca” spada prawie do zera.
Nie uważam, że poszukiwanie wiedzy jest jakimkolwiek powodem do wstydu, a każdy ma prawo popełnić wiele błędów dążąc do doskonałości :stuck_out_tongue:

I… tak - zdaję sobie sprawę z tego, że cześć ludzi woli gotowce, gdzie jest opis - chcesz sterować moduł 4 przekaźniki (producenta x model y) to weź wrzuć taki kod i to zadziała (tu jest pole do popisu przy tworzeniu dokumentacji dla ESPHome, bo jest w niej pustawy dział na przykładowe działające projekty).

Gdy powstanie finalny kod to możesz po prostu podlinkować finałowego posta w 1 poście wątku (edytując go) oznaczając np. powszechnie stosowanym skrótem TLDR :smiley:

PS Odnośnie “tytułowego” modułu 4 przekaźników, to tu jest jego dokumentacja (mogłeś ją wrzucić w 1 poście)
http://wiki.sunfounder.cc/index.php?title=4_Channel_5V_Relay_Module
każdy sterowany oddzielnie, z optoizolacją (w takiej konfiguracji, że jest sterowany stanem niskim na wejściach), ponadto zasilanie LED transoptorów można podebrać z ESP a tym samym można mieć całkowicie izolowany moduł przekaźników od modułu ESP - w takim wypadku należy rozpiąć zworkę VCC <-> JD-VCC i zasilanie przkaźników podać na JD-VCC, a LEDy wtedy zasilamy z VCC).

Czwarty też się da podłączyć tylko trzeba pokombinować. Na razie zrób 3 na czysto - pomyślimy.

Panowie mam wszytko i działa poza jednym. przełącznik fizyczny (mikrostyk) działa raz. tzn jeżeli wcisne jest ON a drugi raz już nie, ale jeśli podam PLUS to zmienia się na OFF i znowy MINUS i jest ON itd, ale musze podawać raz PLUS a raz MINUS. Co może być nie tak.

Brak włączonych pullup

Oczywiście, że tak. Dobra. Jest bosko. Zaraz a czemu na D0 PULLUP jak wstawiam to błąd jest? nie obsługuje?

Mając pullupy na wejściach przyciski powinny zwierać do masy.
Jeden czy wszystkie?
Jeśli jeden to możliwe, że użyłeś jakieś specyficzne GPIO.

edit: czyli zgadłem

zamieniłem GPIO i jest git - jeszcze chwilka do sukcesu i robie opis. :slight_smile:
Mała rzecz a cieszy.
A jednak jest problem z D0, czy on nie może być używany? Podpinam do przekaźników i nie idzie na nim.

Na pewno D0 a nie GPIO0?
Rozumiem, że została jedna para przycisk-przekaźnik do podłączenia?
Które piny Ci zostały do dyspozycji?

Proszę Państwa, Dzieło dokonane.
A więc po kolei.
W ESPHome dodajemy kolejny projekt pamiętając aby wybrać prawidłowo swój model u mnie okazało się to bardzo ważne. Więc wybieramy d1_mini i edytujemy. Cały kod wygląda tak:

substitutions:
  device_name_lower: "nasze urzadzonko"

esphome:
  name: ${device_name_lower}
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true
  ap:
    ssid: "naszeurzadzenie"
    password: "00000000"

logger:
  # level: VERBOSE
api:
ota:
captive_portal:
web_server:
  port: 80



# przełącznik na stronie www włączający D7
switch:
  - platform: gpio
    pin: D7
    name: "${device_name_lower}_przelacznik on-line 1"
    icon: "mdi:light-switch"
    inverted: true

  - platform: gpio
    pin: D6
    name: "${device_name_lower}_przelacznik on-line 2"
    icon: "mdi:light-switch"
    inverted: true
    
  - platform: gpio
    pin: D0
    name: "${device_name_lower}_przelacznik on-line 3"
    icon: "mdi:light-switch"
    inverted: true    
    
# Przełącznik fizyczny zamieszczony na D5
binary_sensor:
  - platform: gpio
    pin:
      number: D5
      inverted: true
      mode:
        input: true
        pullup: true
    name: "${device_name_lower}_przelacznik fizyczny 1"
    device_class: window
    
  - platform: gpio
    pin:
      number: D1
      inverted: true
      mode:
        input: true
        pullup: true
    name: "${device_name_lower}_przelacznik fizyczny 2"
    device_class: window
    
  - platform: gpio
    pin:
      number: D2
      inverted: true
      mode:
        input: true
        pullup: true
    name: "${device_name_lower}_przelacznik fizyczny 3"
    device_class: window
    

następnie zapisujemy i przycisk install, potem manual download 4 pozycja, (tu dodam, że ja uparcie wciskałem 3 pozycje USB, ale dzięki pomocy doszedłem do tego, że musi być podpięty ten kabel do serwera czyli kompa na którym jest zainstalowany HA, a większość ludzi ma to zainstalowane na innych jednostkach niż te na których pracuje), i czekamy.
jak skończy powinien podciągnąć się nam plik.bin jeśli nie mamy przycisk download.
podpinamy kabelek i podpinamy nasze ESP.
Odpalamy programik ESPHome-Flasher i co znowu ważne prawym na niego i uruchom jako administrator. Jak odpalałem normalnie nie działał poprawnie. I dalej wybieramy serial port na którym jest podłączony nasz ESP i niżej wybieramy plik.bin który przed chwilką zrobiliśmy. Następnie przycisk FLASH ESP i czekamy - jak skończy pokaże nam adres IP na który możemy wejść i sterować.
I tu sprawa załatwiona, dalej podpinamy według poniższego schematu:


I w zasadzie to koniec.
W HA szukacie encji kóre zrobiliśmy i wszystko śmiga.
Mam nadzieje, że jest zrozumiałe wszystko.
Bardzo dziękuje @RobinI30, @angler, @szopen, @luki25.
Każdy z Was bardzo mi pomógł. Bardzo dużo się nauczyłem. Podoba mi się te urządzonko, pewnie coś jeszcze z tym zrobie.
Przepraszam za dużą liczbę pytań ale to był mój pierwszy raz.
Jeśli coś źle napisałem dajcie Panowie znać, poprawie.

1 Like