Więcej niż 5x PWM w Tasmota i Home Assistant

Witajcie, konstruuje właśnie urządzonko na ESP32 i doszedłem do bariery ilość PWM w integracji z Tasmota->Home Assistant. Ustawiłem 6szt PWM na kilku GPIO oraz opcje SetOption68 na 1 (każdy kanał sterowany osobno) oraz SetOption15 na 0 (zwykłe PWM, nie light). W Tasmocie w MQTT mam teraz tylko jedno pole FriendlyName i tu moge sobie reszte ponazywać w consoli. Ale jak zmusić Tasmote aby encje kolejnych PWMów pojawiły się w HA? Dla 5PWM jest prosto bo ustawiasz SetOption15 na 1 wtedy traktuje jak light i ustawia pięć pasków do regulowania jasności oraz 5 encji.
Nadmienię że PWMy działają mi poprawnie jak ręcznie steruje nimi w consoli poleceniami PWMx

Czyżby czekało mnie przejście na ESPHome? W dokumentacji tasmoty nic szczególnego nie znalazłem, a na forach nikt nie podał rozwiązania.

Gdy sterujesz z konsoli to publikują się w Mqtt?.
Jeśli tak to dodaj je ręcznie jako encje mqtt.
Nie mówię tu o temacie discovery, bo tam taczej się nie prezentują skoro z automatu się nie dodają do HA

Witamy na forum. Próbowałem na szybko odtworzyć Twój przykład i wnioskuję, że to programowe ograniczenie w Tasmota, dotyczy WebUI i jego przeniesienia funkcji, w postaci encji, do HA poprzez mechanizm MQTT Discovery.
Jeśli jednak masz sprawdzone, że

to pozostają dwa wyjścia:

  1. To co proponuje @RobinI30 - czyli stworzenie własnych encji w HA na bazie komunikacji po MQTT z Tasmota.
  2. Lub przejść a ESPHome, bo jak widać Tasmota z racji swojego upakowania wielofunkcyjności w jednym pliku bin, ma przez to ograniczenia. Natomiast w ESPHome szyjesz na miarę funkcjonalność pod HA, z takimi detalami jak ikony i zachowanie danych elementów.

Możliwe jest, że nie wiemy wszystkiego o takim przypadku użycia PWM w Tasmota i dobrze było by zapytać twórców dla potwierdzenia tych tez.

Dziękuję za przywitanie i zainteresowanie.
W załączniku zrzuty gdzie pokazuję ustawienia poszczególnych GPIO oraz ustawienia Others gdzie niestety jest tylko jedno FriendlyName (jak SetOption15
ustawiam na 1 to normlanie mam 5szt FriendlyName lub jak wsadze 8 przekaźników to wtedy mam 8 FriendlyName więc teoretycznie kod tasmota pozwala na to, probnlem tylko jest z PWMami).


A co do publikowania w MQTT, jak widzicie publikuje status po zmianie PWM6 na 200:

08:58:34.026 CMD: PWM6 200
08:58:34.033 MQT: stat/ESP32-02/RESULT = {"PWM":{"PWM1":0,"PWM2":0,"PWM3":0,"PWM4":0,"PWM5":0,"PWM6":200}}

Sądzicie, że to wystarczy aby HA po dodaniu ręcznie encji aktualizował sobie na bieżąco paski wypełnienia PWMa? W jaki sposób mogę dodać ręcznie encje? W configuration.yaml w sekcji mqtt?

Szukałem jeszcze informacji w dokumentacji odnośnie własnej kompilacji Tasmota, co można wykonać dość łatwo dzięki TasmoCompiler ale nic oprócz tej wzmianki o możliwości użycia do 16 kanałów PWM nie znalazłem.

Tak, encję dodajesz tak jak każdą inną opartą o tę komunikację w sekcji mqtt. Pomocne będzie to narzędzie dla sprawnego określania tematów (topic) oraz ładunków z wiadomości MQTT:

Nie podałeś dokładnie jaka encja ma powstać w HA więc nie chcę wpuszczać Cię na złą ścieżkę, bez tej wiedzy.

Dokładnie ten sam fragment dokumentacji przewertowałem więc mówię musi być taka możliwość. ESPHome jest niestety dla mnie jeszcze za trudny a muszę skończyć ten projekt bo zaraz jesień i oświetlenie by się przydało :slightly_smiling_face:

Co do encji to nie wiem czy dobrze odpowiem ale zależy mi na typie light czyli zwykły pasek w HA gdzie mogę regulować jasność (wypełnienie) i w % podawać wartość jasności w automatyzacjach.

To ten przypadek jest właśnie opisany dobrze w oficjalnej dokumentacji:

P.S.
Jak przebrniesz przez ten dział i konfigurację encji suwaka dla pojedynczego PWM, to prawdopodobnie równie dobrze będziesz mógł zrobić to w ESPHome. Jest to bardzo podobna droga, pozostaje tylko kwestia zrozumienia tej składni YAML. Z tą różnicą, że w ESPHome omijasz pośrednika w formie MQTT, tych wszystkich topic i payload gdzie łatwo o błąd. Ale masz wybór…

Dwa komponenty do opanowania, całkiem fajne jak na początek przygody z ESPHome:

1 polubienie

Jeśli chodzi o sprzętowy PWM w ESP32 to raczej to (programowy PWM działa tylko na ESP8285/ESP8266)

2 polubienia