ESPHOME + stycznik impulsowy - nie odczytuje stanu

Cześć,
rozpoczynam przygodę i utknąłem. Proszę o drogowskaz.
Chodzi o sterowanie światłem przez HA. Mam podłączone przełączniki monostabilne do stycznika Schneidera, takiego z badaniem stanu. Jak zapalę światło to leci z niego 5V. Chciałem to wykorzystać do zbadania stanu, ale nie działa.
Włączanie swiatła działa.

Podłączenie i kod wygląda następująco

esphome:
  name: swiatlo11

esp8266:
  board: d1_mini_pro

# Enable logging
logger:
  level: DEBUG 

# Enable Home Assistant API
api:
  encryption:
    key: "uwbIz3CUKKNghX3Jl5hUIynTQvzqP9A3o9fRqUl6KSY="

ota:
  password: "4ff2fc5186ad5b668ca7a6b7ffe3d5e6"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.2.236
    gateway: 192.168.2.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Swiatlo11 Fallback Hotspot"
    password: "uxZgw11rwuwY"

captive_portal:

binary_sensor:
  - platform: gpio
    name: "buton1"
    pin:
      number: D8
      mode: 
        input: true
       # pulldown: true
    on_press:
      then:
        - switch.toggle: relay1

switch:
  - platform: gpio
    name: "relay1"
    id: relay1
    pin: 
      number: D5
      mode: OUTPUT
    on_turn_on:
      - delay: 500ms
      - switch.turn_off: relay1

Tam gdzie masz pytajniki prawdopodobnie powinien być dzielnik napięcia - najprościej rezystory 1k + 2k (w górnej gałęzi 1k).
Ale czy jest możliwe takie bezpośrednie podpięcie to trudno oceniać - wrzuć dokumentację tego Schneider’a.

To chyba to co wykombinowałeś nie bardzo pasuje.
Sprzężenie zwrotne (jeśli zadziała) będzie kłapało przekaźnikami.
Powinieneś przeznaczyć oddzielne GPIO na badanie stanu (szczególnie, że w/g twojego opisu tam się pojawia stały stan wysoki, a nie impuls), a oddzielne jeśli chcesz mieć przycisk wpięty w ESP.

Jaki jest stan/napięcie na wyjściu tego modułu stycznika Schneider gdy światło jest zgaszone?

Schemat trochę wygląda jak perpetum mobile - zapętlone wszystko w koło.
Jak rozumiem jest błąd na rysunku, bo przekaźnik sterowany z ESP jak sądzę jest wpięty równolegle do przycisku dzwonkowego (co sugeruje kod załączający go na pół sekundy).

@szopen dziękuję za zainteresowanie. Uszczegółowiłem rysunek.
Ten stycznik na obwód AC u DC. Podaję do niego 5v z zasilacza i jak podam impuls (zielony kabel)
to otwiera złącza (na górze). Tak, że po zapaleniu światła jest tam napięcie 5V.
Potem obniżam napięciem transformatorem do 3.3V.

Właśnie nie bardzo wiem jak to wszystko spiąć. ESP i ten mały przekaźnik powinny być zasilone z tego zasilacza 5V a nie z USB ?

Łatwiej byłoby gdybyś krótko opisał dokąd zmierzasz :slight_smile: i podał typ stycznika.

zmierzam do tego, aby sterować oświetleniem z HA i umieć odczytać stan.
Samo włącz wyłącz już działa, ale nie umiem zczytać stanu bo to jest przełącznik dzwonkowy.
Wymyśliłem aby prze stycznik przepuścić 5V z zasilacza i faktycznie jak światło świeci to jest tam 5V tylko teraz nie wiem jak to odczytać. Wysłałem do pina D8 oprogramowałem jak wyżej ale mam chyba złą architekturę :slight_smile:
nie wiem co to dokładnie za stycznik, pomierzyłem tylko jak działa. Wygląda na prosty impulsowy.


Załącz czysty rysunek z urządzeniami bez połączeń. Domaluje Ci połączenia a @szopen być może zrobi do tego yaml

edit… trochę koślawo ale widać o co chodzi… zanegowany D8 odwzorowuje stan stycznika

Nie bardzo wiem jak to ująć aby być dobrze zrozumianym - żeby tak nie było to stan włączenia pokazywany w HA uzależnić od stanu D8 i jego zmiana nie może w żaden sposób wpływać na ten dodatkowy przekaźnik. Zmiana stanu przekaźnika musi następować tylko od kliknięcia w dashboard.
Z powodu ESPHome to nawet nie wiem jak to dokładnie zrobić.

Naciskasz przycisk dzwonkowy - przełącza się tylko stycznik i jego stan widać w HA.
Klikasz w HA - przekaźnik udaje naciśnięcie fizycznego przycisku.

a zasilanie ESC przez USB wywalić jak rozumiem ?

Albo , albo … zasilacz albo USB, co tam Ci pasuje.

A9C30812


Więc nie ma ani niskonapięciowego obwodu sterującego ani wykonawczego (tj. nie posiada dodatkowych styków dedykowanych do podbierania stanu) ma za to 2 pary styków wykonawczych więc stosując lekką partyzantkę można wykorzystać jedną parę do sygnalizacji stanu.

na ile rozumiem ESPHome to tego fragmentu nie powinno być, bo to tworzy “pętlę”

… tak to m/w narysowałem :wink:

Tak to właśnie mailem na myśli - trzeba wykorzystać 2 wejścia jeśli sterowanie ma być również przez przycisk podpięty do ESP.
Myślę, że układ można uprościć, chociaż będzie to partyzantka.

No właśnie, w międzyczasie gdy byłem zajęty innymi sprawami (i szukałem noty katalogowej) w wątku nastąpił znaczny postęp :stuck_out_tongue:

@michalh hint: na styczniku/przekaźniku jest kod kreskowy, to jest kod EAN unikalny dla każdego produktu wprowadzanego na rynek.

… tutaj się nie zgodzę :wink:

Może i nie trzeba ale jest najwygodniej (mam na myśli przycisk po stronie niskiego napięcia wpięty w ESP). Wstępny schemat wyglądał całkiem inaczej rano (i dopiero do mnie zaczyna docierać co miał oznaczać kwadrat z opisem transformator - rano sądziłem, że to ma być układ pracujący przy niskim napięciu i się zastanawiam co za stycznik z obwodem sterującym 5V).

Może przeoczyłeś ze względu na dynamikę tematu.
Do schematu i założeń teraz trzeba by zrobić właściwy yaml.

… ja nawet nie wiedziałem co mam sądzić :wink:

1 Like

Powoli mi się rozjaśnia umysł, ale nadal trzeba się pozbyć sprzężenia wyjścia z wejściem, binary_sensor nie może być bezpośrednio powiązany z działaniem przekaźnika (tego na 5V) na wyjściu, tzn. nie może wpływać na jego działanie natomiast ma tylko wskazywać stan stycznika, ale nie może wywoływać akcji.
Więc nie można wykorzystać tego samego pinu D8 do pobierania sygnalizacji stanu i do sterowania wyzwalaniem przekaźnika, który zmienia stan stycznika…

Coś co zostało nazwane transformatorem jest po prostu zasilaczem 5V=.

Ostatni schemat jest poprawny (o ile przymykamy oko na “partyzantkę”, gdzie w jednym obwodzie wykonawczym mamy 230V~ a w sąsiednim 5V=, a po ostatniej modyfikacji 3,3V), oczywiście na wejściu D8 lub innym wykorzystanym MUSI być choćby dzielnik rezystorowy obniżający napięcie wejściowe.
A nie jednak już nie musi, bo tym razem zwierasz wejście do masy, zamiast tego powinien być pullup (myślę, że warto użyć fizycznego rezystora, akurat obok jest pin 3V3).
Należałoby sprawdzić na jakim GPIO jest D8
Ok, a właściwie NIE OK- to nie jest właściwy wybór - ten pin nie powinien być podciągany do Vcc, bo to GPIO15, zamiast tego tam może być przekaźnik wyjściowy.

Natomiast D5 będzie OK jako wejście bo to GPIO14

Ze sterowania przekaźnikiem wykluczamy wszystkie GPIO, które mają stan wysoki przy bootowaniu (bo restart ESP będzie zapałał lub gasił światło).
Więc w tym momencie zamiana ról między wykorzystanymi pinami będzie OK.

Co do YAMLa ponieważ logika sterująca jest na zewnątrz (przycisk+przekaźnik/stycznik bistabilny), to nie będzie on banalny i nie wiem czy wymodzę coś sensownego (trzeba sprawdzać warunki).

połączyłem tak jak zaproponował @RobinI30. Zmieniłem z D8 na D1 i dałem pullupa + inverted.
No i pięknie działa. Znaczy pewnie może być lepiej jak mówicie, ale to działa i z HA i z przycisku fizycznego.

Bardzo Wam dziękuję i wrócę zaraz z czymś trudniejszym :slight_smile:
poprawiony kod. Jak można coś lepiej chętnie posłucham, tak jak mówiłem jestem bardzo świeży.


esphome:
  name: swiatlo11

esp8266:
  board: d1_mini_pro

# Enable logging
logger:
  level: DEBUG 

# Enable Home Assistant API
api:
  encryption:
    key: "Z8vPhg957osNlZjeyz1831fGlEee6Q+KYNjTDzmcuEU="

ota:
  password: "4ff2fc5186ad5b668ca7a6b7ffe3d5e6"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.2.236
    gateway: 192.168.2.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Swiatlo11 Fallback Hotspot"
    password: "uxZgw11rwuwY"

captive_portal:

binary_sensor:
  - platform: gpio
    name: "buton1"
    pin:
      number: D1
      mode: 
        input: true
        pullup: true
      inverted: true

switch:
  - platform: gpio
    name: "relay1"
    id: relay1
    pin: 
      number: D5
      mode: OUTPUT
    on_turn_on:
      - delay: 500ms
      - switch.turn_off: relay1

zastanawiam się jeszcze jakie są inne metody. Ja zastałem już przyciski dzwonkowe w korytarzu i dokupiłem taki stycznik, żeby miał dwa obwody AC i DC.

Fajnie, że jesteś zadowolony, bo taki trudniejszy przykład, na którym możesz się oprzeć to np. gotowe przykłady na wykorzystanie niektórych fabrycznych konstrukcji pod ESPHome, poczytaj i spróbuj zrozumieć o co autorowi chodziło

bo nie mam siły myśleć nad gotowym rozwiązaniem, oczywiście w opisywanym tu wypadku będzie to trzeba zrobić trochę (bardzo?) inaczej.

Ale do czego dążę - jest możliwe uzyskanie przełącznika, który będzie eksponowany w HA w domenie light i w dodatku będzie się zachowywał jak żarówka, na bis możesz mieć diodę LED statusu na module D1 mini (jest ona fabrycznie wlutowana na PCB i podpięta do GPIO2 w logice ujemnej, tj. niski stan ją zapala).

1 Like

Wywalasz stycznik, przekaźnik i instalujesz np. Kincony 8 Channel Relay Board (KC868-A8) - do wejść podłączasz przyciski dzwonkowe, do wyjść obwody oświetlenia.

1 Like