Przejrzałem kod i wydaje mi się być poprawny w sekcji załączania przekaźnika. Może wykonaj parę ostrych zdjęć z płytką przekaźnika, bo problem może być w elektronice nim sterującej. Jest tam jakiś tranzystor czy transoptor? Najlepiej jak byś pokazał całą płytkę z ESP i przekaźnikiem/przekaźnikami.
Jeśli w opcjach przekaźnika zmienię z
inverted: true na false, to działa poprawnie sterowanie z pinów. Ale z kolei w Dashboardzie HA głupio wygląda. Włącznik (ikona) pokazuje odwrotne stany przekaźnika.
linki do części:
Jeżeli tu odwracasz logikę dla relay1 - czyli robisz zapis dla niego inverted: false i przekaźnik działa prawidłowo, to domyślam się, że za prezentację jego stanu w HA odpowiada binary_sensor o nazwie “styk_termostatu” - czy to ta encja w HA ma odwrotną prezentację stanu na suwaku? Dobrze Cię zrozumiałem?
Twój moduł przekaźników jest sterowany stanem niskim. Dlatego przy ustawieniu inverted: true stanem “on” jest stan niski na GPIO który steruje przekaźnikiem. Jeśli ustawisz inverted na false to stan wyskoki jest traktowany jako stan “on” i tak jest przedstawiany w HA a fizycznie w takim stanie przekaźnik jest wyłączony.
Opcja inverted nie zmienia fizycznie stanu wyjścia GPIO ale odwraca interpretację stanu “on” i “off” w dashbordzie HA.
Dobrze zrozumiałeś. Pokombinowałem z kodem i działa poprawnie chociaż styk termostatu pokazuje odwrotne stany. Nie mam go na dashboardzie, więc nie będzie mnie denerwował.
Styk fizycznie rozwarty, przekaźnik nie działa:
Styk fizycznie zwarty, przekaźnik działa:
I kod poprawiony [ zmiana pracy “styku_termostatu”] :
Tutaj już musisz użyć automatyzacji ESPHOME.
Czynnikiem który ma decydować o włączeniu przekaźnika ma być temperatura z czujnika , więc wartość tego czujnika będzie niejako trigerem całej automatyzacji.
Dlatego akcja tej automatyzacji powinna być umieszczona w sekcji sensora temperatury.
Zobacz sobie jedną z prostszych automatyzacji z mojego kodu
Trochę Ci ją objaśnię
Dokładnie tak miałem za pierwszym razem. Ale przekaźnik po zwarciu GPIO18 z masą, załączył się i w takim stanie zostawał mimo rozwarcia GPIO18 od masy.
Ja masz fizycznie to podłączone? Czy ten styk termostatu to jakiś styk bezpotencjałowy przekaźnika termostatu? Co jest podane na GPIO18 w momencie zwarcia tego styku - stan wysoki czy niski(masa)?
Fizycznie będzie podłączone do styku bezpotencjałowego [stary Auraton]. GPIO18 wedle wskazówek kolegów powinno być sterowane masą [GND]. Na początku GPIO18 sterowałem stanem wysokim z 3,3V bez rezystora pomiędzy 3,3V i GPIO18 i działało wszystko poprawnie oprócz tego, że dotknięcie palcem GPIO18 powodowało naprzemienne włączanie i wyłączanie przekaźnika kilka razy na sekundę. Aktualnie rezystor 10k [ GPIO18 - 3,3V ] i włączenie przekaźnika [ GPIO18 - GND]. Działa poprawnie, tylko ten odwrócony stan styku w dashboardzie.