logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Problemy z konfiguracją 4-kanałowego ściemniacza PWM w OBK dla automatycznego wykrywania Home Assist

mculibrk 30 Sty 2024 16:24 1122 2
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 20936582
    mculibrk
    Poziom 2  
    Posty: 4
    Ocena: 1

    Cześć!
    Mam pewne problemy z automatycznym wykrywaniem OBK związane z HomeAssistantem.
    Przypuszczam, że robię coś złego… lub właściwie nie rozumiem, jak wszystko (powinno) działać w OBK, więc po kilku próbach i błędach zdecydowałem się zacząć zawracać sobie głowę tutaj…
    Mam nadzieję, że to tylko moje złe postępowanie (brak zrozumienia), a nie coś innego...

    Co próbuję osiągnąć:
    - zdefiniuj „funkcjonalności” w konfiguracji sieciowej OBK (zdefiniuj piny, pwms, przyciski...)
    - wydaj funkcję automatycznego wykrywania HA z OBK, aby wyświetlić/skonfigurować urządzenie/elementy w HomeAssistant

    Niektóre podstawowe opcje wydają się działać OK (deklarowanie pinu jako przycisku + deklarowanie pinu jako przekaźnika dla tego samego przycisku powoduje utworzenie „przełącznika” w HA; zadeklarowanie pinu jako „dInput” powoduje również utworzenie „czujnika binarnego” w HA...), więc to chyba „ok”.

    Problemy zaczynają się od świateł/ściemniaczy PWM.

    Mam 4-kanałowy ściemniacz, w którym chciałbym używać każdego kanału jako prostego ściemniacza - po prostu „jasność” dla czterech różnych świateł.
    Tak więc skonfigurowałem piny 6,7,8,9 jako PWM i ustaw odpowiednie piny „channelType” na „Dimmer” za pośrednictwem aplikacji internetowej
    Ale… po automatycznym wykryciu otrzymuję pojedyncze „lekkie” urządzenie w HA z właściwościami RGB, color… zamiast 4 prostych „ściemniaczy”.
    Pomyślałem, że problem może polegać na tym, że OBK domyślnie pobiera kolejne „kanały” jako elementy RGB i dlatego „publikuje” tylko jedno światło… więc skonfigurowałem piny jako 6,7,8,9 jako PWM1, PWM10, PWM20, PWM30 miał nadzieję uzyskać 4 oddzielne „światła” i… połowicznie się udało!

    W konfiguracji OBK HA konfiguracja jest ładnie pokazana, ALE automatyczne wykrywanie w HA nie ma ŻADNEGO ŚWIATŁA?!
    Zrzut ekranu z konfiguracją MQTT dla czterech świateł w HomeAssistant.
    Zrzut ekranu z konfiguracją MQTT dla urządzenia domowego z czterema kanałami.

    Poza tym... kanały w MQTT są „po prostu czymś” (6,7,8,9) zamiast 1,10,20,30, jak powinny. Ponadto „led_dimmer” itp. to tylko JEDEN zamiast dla każdego kanału (jak rozumiem).

    Jak skonfigurować urządzenie OBK, aby automatycznie wykrywało 4 (proste) dimmery w HA?
    Wiem, że mógłbym skopiować i wkleić sugerowaną konfigurację HA w pliku config.yaml, ale jest to brzydkie i wymaga ciągłych edycji/poprawek w dwóch miejscach (urządzenie + plik konfiguracyjny)
    Wygenerowana konfiguracja HA (lub zmiany ręczne) NIE JEST wysyłana do HA poprzez „rozpoczęcie automatycznego wykrywania HA”, prawda? Służy tylko do „kopiowania do schowka”, prawda?

    Ponadto... czy można „skonfigurować” piny, które mają być wykrywane jako WYZWALACZE (przyciski) w HA? Jak mówią dokumenty HA, wyzwalacze nie mogą być definiowane w pliku confg.yaml, ale (tylko) poprzez automatyczne wykrywanie?
    Przyciski powinny naprawdę działać jako wyzwalacze w HA (NIE czujniki binarne, w których trzeba sprawdzać przejścia z włączenia->wyłączenia lub wyłączenia->włączenia) - aby były prawdziwymi wyzwalaczami/zdarzeniami. To znacznie uprościłoby przyciski wielofunkcyjne (pojedyncze, podwójne, potrójne naciśnięcie, krótkie naciśnięcie, długie naciśnięcie...)

    Jak zachowuje się jakiekolwiek „automatyczne zachowanie” powiązane z pinami (na przykład PWM, domyślnie działające jako światła RGBC(W)), gdy zaczynasz dodawać procedury obsługi zdarzeń itp. w OBK? Czy „automatyczne zachowanie” pozostaje nienaruszone? (byłe publikowanie i słuchanie led_dimmer... led_brightness...)

    Czy istnieje sposób użycia „zmiennych” (innych niż kanały) w poleceniach PUBLISH/SUBSCRIBE w skryptach/procedurach obsługi OBK, na przykład w celu użycia „krótkiej nazwy”, „pełnej nazwy”, „podstawowego tematu mqtt”? W ten sposób skrypt mógłby być taki sam i automatycznie używałby poprawnych nazw/tematów dla poleceń MQTT. (po utworzeniu procedur obsługi zdarzeń/skryptów dla pras btn lub obsługi ściemniaczy itp.)
  • REKLAMA
  • #2 20938228
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14570
    Pomógł: 654
    Ocena: 12585
    Przepraszam za opóźnienie, to dość długi post! Spróbuję Ci pomóc, ale pamiętaj, że naszym podstawowym założeniem jest to, że automatyczne wykrywanie HASS jest przeznaczone dla prostych urządzeń, a dla zaawansowanych przypadków użycia powinieneś pisać YAML ręcznie.

    mculibrk napisał:

    Mam 4-kanałowy ściemniacz, w którym chciałbym używać każdego kanału jako prostego ściemniacza - po prostu „jasność” dla czterech różnych świateł.
    Tak więc skonfigurowałem piny 6,7,8,9 jako PWM i ustaw odpowiednie piny „channelType” na „Dimmer” za pośrednictwem aplikacji internetowej
    Ale… po automatycznym wykryciu otrzymuję pojedyncze „lekkie” urządzenie w HA z właściwościami RGB, color… zamiast 4 prostych „ściemniaczy”.
    Pomyślałem, że problem może polegać na tym, że OBK domyślnie pobiera kolejne „kanały” jako elementy RGB i dlatego „publikuje” tylko jedno światło… więc skonfigurowałem piny jako 6,7,8,9 jako PWM1, PWM10, PWM20, PWM30 miał nadzieję uzyskać 4 oddzielne „światła” i… połowicznie się udało!

    To po prostu nie jest obsługiwane, ponieważ nigdy w życiu nie widziałem takiego urządzenia, a już to zrobiłem setki rozbiórek:
    https://openbekeniot.github.io/webapp/devicesList.html
    Mogę rozważyć dodanie go, ale jak powiedziałem, pomysł jest taki, że wykrywanie HASS jest przeznaczone dla prostych urządzeń, a w przypadku niestandardowych funkcjonalności można ręcznie wykonać Yaml.



    mculibrk napisał:

    Poza tym... kanały w MQTT są „po prostu czymś” (6,7,8,9) zamiast 1,10,20,30, jak powinny. Ponadto „led_dimmer” itp. to tylko JEDEN zamiast dla każdego kanału (jak rozumiem).

    Kod aktualnie przyjmuje pierwszy kanał PWM i zakłada, że kolejne kanały dotyczą kolejnych kolorów.

    mculibrk napisał:

    Jak skonfigurować urządzenie OBK, aby automatycznie wykrywało 4 (proste) dimmery w HA?
    Wiem, że mógłbym skopiować i wkleić sugerowaną konfigurację HA w pliku config.yaml, ale jest to brzydkie i wymaga ciągłych edycji/poprawek w dwóch miejscach (urządzenie + plik konfiguracyjny)

    Być może przyjrzę się temu i dodam tę możliwość, jeśli uznasz, że może to być przydatne.


    mculibrk napisał:

    Wygenerowana konfiguracja HA (lub zmiany ręczne) NIE JEST wysyłana do HA poprzez „rozpoczęcie automatycznego wykrywania HA”, prawda? Służy tylko do „kopiowania do schowka”, prawda?

    Masz rację, wygenerowana konfiguracja HA jest starszą rzeczą i nie jest zsynchronizowana z Discovery. Być może w przyszłości całkowicie to ukryjemy lub przeniesiemy do aplikacji internetowej.

    mculibrk napisał:

    Ponadto... czy można „skonfigurować” piny, które mają być wykrywane jako WYZWALACZE (przyciski) w HA? Jak mówią dokumenty HA, wyzwalacze nie mogą być definiowane w pliku confg.yaml, ale (tylko) poprzez automatyczne wykrywanie?

    Jak dotąd nie wiem nic o wyzwalaczach, ale jeśli podasz przykładowy kod, mogę dodać go do odkrycia HASS.
    W przypadku przycisków korzystam z tego przewodnika Home Assistant - jak stworzyć przycisk wyzwalający zdarzenie, MQTT, panel dashboard

    mculibrk napisał:

    Jak zachowuje się jakiekolwiek „automatyczne zachowanie” powiązane z pinami (na przykład PWM, domyślnie działające jako światła RGBC(W)), gdy zaczynasz dodawać procedury obsługi zdarzeń itp. w OBK? Czy „automatyczne zachowanie” pozostaje nienaruszone? (byłe publikowanie i słuchanie led_dimmer... led_brightness...)

    Automatyczne zachowanie zawsze pozostaje nienaruszone.

    mculibrk napisał:

    Czy istnieje sposób użycia „zmiennych” (innych niż kanały) w poleceniach PUBLISH/SUBSCRIBE w skryptach/procedurach obsługi OBK, na przykład w celu użycia „krótkiej nazwy”, „pełnej nazwy”, „podstawowego tematu mqtt”? W ten sposób skrypt mógłby być taki sam i automatycznie używałby poprawnych nazw/tematów dla poleceń MQTT. (po utworzeniu procedur obsługi zdarzeń/skryptów dla pras btn lub obsługi ściemniaczy itp.)

    Jeśli użyjesz polecenia publikowania, zostanie ono automatycznie opublikowane pod krótką nazwą MQTT danego urządzenia:
    Zrzut ekranu tabeli z instrukcjami dotyczącymi publikacji danych za pomocą MQTT.
    Pomogłem? Kup mi kawę.
  • #3 20939109
    mculibrk
    Poziom 2  
    Posty: 4
    Ocena: 1
    Przede wszystkim dziękuję za odpowiedź i poświęcony czas!

    Masz rację... to był długi post. Podzielę to teraz na kilka części, żeby było łatwiej...

    p.kaczmarek2 napisał:
    Przepraszam za opóźnienie, to dość długi post! Spróbuję Ci pomóc, ale pamiętaj, że naszym podstawowym założeniem jest to, że automatyczne wykrywanie HASS jest przeznaczone dla prostych urządzeń, a dla zaawansowanych przypadków użycia powinieneś pisać YAML ręcznie.


    Tak, wiem o tym... ale to trochę "paskudne". Konieczność ręcznej edycji i utrzymywania „synchronizacji” rzeczy nie jest zbyt miła/przyjazna…

    p.kaczmarek2 napisał:

    mculibrk napisał:

    Mam 4-kanałowy ściemniacz, w którym chciałbym używać każdego kanału jako prostego ściemniacza - po prostu „jasność” dla czterech różnych świateł.


    To po prostu nie jest obsługiwane, ponieważ nigdy w życiu nie widziałem takiego urządzenia, a już to zrobiłem setki rozbiórek:
    https://openbekeniot.github.io/webapp/devicesList.html


    Wiem o wszystkich Twoich rozbiórkach i urządzeniach... a tak przy okazji, fantastyczna robota! Dziękuję i za to!
    Mówiłeś, że nigdy nie widziałeś czegoś takiego? Cóż… jako przykład weźmy „Magic Home RGB CTT” https://www.elektroda.com/rtvforum/topic3889041.html#19999397 i podobne urządzenia (mam to - podam informacje o rozbiórce - https:// www.aliexpress.com/item/725319185.html - podobny, ale z mocniejszymi MOSFETami)
    Poza tym po co ograniczać się do „oryginalnej roli” urządzenia, skoro można go używać/rozszerzać, aby lepiej odpowiadał swoim potrzebom? (dodaj wejścia, czujniki, wyjścia...)

    Zatem zamiast sterować jednym światłem RGBxx, używam go do sterowania ponad 4 różnymi jednokolorowymi światłami (lub diodami LED lub paskami...)
    dlatego potrzebuję wielu „prostych ściemniaczy”

    p.kaczmarek2 napisał:

    mculibrk napisał:

    Poza tym... kanały w MQTT są „po prostu czymś” (6,7,8,9) zamiast 1,10,20,30, jak powinny. Ponadto „led_dimmer” itp. to tylko JEDEN zamiast dla każdego kanału (jak rozumiem).

    Kod aktualnie przyjmuje pierwszy kanał PWM i zakłada, że kolejne kanały dotyczą kolejnych kolorów.

    Tak przypuszczałem… dlatego próbowałem używać bardzo „odległych” kanałów… ale, jak widać, tematy MQTT otrzymują „nieuzasadnioną/nielogiczną” numerację/nazewnictwo

    Ponadto, o ile widzę, obecnie system nie jest „przygotowany” do kontrolowania więcej niż jednego światła RGBCT/RGBxx...
    Przypuszczam, że „właściwym sposobem” byłoby sprawdzenie, czy typ kanału jest skonfigurowany jako „Ściemniacz” i w zależności od tego skonfigurowanie zachowania kanału jako „RGB/RGBCT/DIMMER” (z odpowiednią konfiguracją HA)

    Niedawno zacząłem „nurkować” w kodzie, aby zobaczyć, jak coś się robi… więc będę potrzebował trochę czasu, aby zrozumieć, jak to się robi…

    W każdym razie myślę, że cała „niestandardowa konfiguracja” powinna być w jakiś sposób przechowywana na urządzeniu i „automatycznie wykrywana” przez HA (poprzez publikację informacji o konfiguracji).
    Jest to o wiele lepsze z punktu widzenia administracyjnego (wszystkie zmiany w jednym miejscu) a także do tworzenia kopii zapasowych/klonowania konfiguracji urządzenia, na przykład poprzez wykonanie „(config) zrzutu/przywrócenia flash” z aplikacji WebApp.

    Może tę „niestandardową (automatyczną) konfigurację” można zapisać jako rodzaj „szablonu” w pliku? To powinno być łatwiejsze/szybsze niż programowanie automatycznego wykrywania dla wszystkich możliwych wariantów…

    Wiem, że dokonałeś pewnych modyfikacji, aby umożliwić zdalną konfigurację przez HA/MQTT, wydając polecenia (dla (masowego) udostępniania), co jest świetne... ale myślę, że „przywracanie kopii zapasowej” byłoby szybszą/lepszą opcją, nie To?
    Konfigurujesz swoje (szablon) urządzenie ze wszystkimi ustawieniami, skryptami, modułami obsługi itp., a następnie po prostu wykonujesz „kopię zapasową konfiguracji”, która tworzy kopię zapasową wszystkiego (z wyjątkiem adresów MAC, może nazw? itp.). Następnie możesz wykonać pełne przywracanie w jednym „kroku” (za pomocą aplikacji internetowej lub polecenia przesyłania HA/MQTT)

    Dodano po 13 [minutach]:

    p.kaczmarek2 napisał:

    mculibrk napisał:

    Ponadto... czy można „skonfigurować” piny, które mają być wykrywane jako WYZWALACZE (przyciski) w HA? Jak mówią dokumenty HA, wyzwalacze nie mogą być definiowane w pliku confg.yaml, ale (tylko) poprzez automatyczne wykrywanie?

    Jak dotąd nie wiem nic o wyzwalaczach, ale jeśli podasz przykładowy kod, mogę dodać go do odkrycia HASS.
    W przypadku przycisków korzystam z tego przewodnika Home Assistant - jak stworzyć przycisk wyzwalający zdarzenie, MQTT, panel dashboard

    Nie... przykład, o którym wspomniałeś, dotyczy „przycisków” w interfejsie użytkownika HA.

    Przyciski jako takie powinny generować wyzwalacze lub zdarzenia (rodzaj naciśnięcia, zwolnienia, krótkie_naciśnięcie, długie_naciśnięcie, podwójne_naciśnięcie, potrójne_naciśnięcie...) i nie mieć żadnego stanu (jak robią to przekaźniki/przełączniki).
    Po stronie HA wyzwalacze są wyświetlane pod urządzeniem i można ich używać bezpośrednio do wyzwalania czegoś (nie ma potrzeby sprawdzania stanu wyłączonego --> stanu włączonego itp.)

    Przykłady HA dla definicji:
    https://www.home-assistant.io/integrations/device_trigger.mqtt/
    https://www.home-assistant.io/integrations/event.mqtt/
    https://www.home-assistant.io/integrations/event/#device-class

    Obecnie nie mam pod ręką żadnego urządzenia, które „publikuje” wyzwalacz w danych automatycznego wykrywania, aby pokazać „prawdziwy przykład”, ale znajdę jakieś i opublikuję je tutaj, abyś mógł je zobaczyć

    Dodano po 10 [minutach]:

    p.kaczmarek2 napisał:

    mculibrk napisał:

    Czy istnieje sposób użycia „zmiennych” (innych niż kanały) w poleceniach PUBLISH/SUBSCRIBE w skryptach/procedurach obsługi OBK, na przykład w celu użycia „krótkiej nazwy”, „pełnej nazwy”, „podstawowego tematu mqtt”? W ten sposób skrypt mógłby być taki sam i automatycznie używałby poprawnych nazw/tematów dla poleceń MQTT. (po utworzeniu procedur obsługi zdarzeń/skryptów dla pras btn lub obsługi ściemniaczy itp.)

    Jeśli użyjesz polecenia publikowania, zostanie ono automatycznie opublikowane pod krótką nazwą MQTT danego urządzenia:
    Zrzut ekranu tabeli z instrukcjami dotyczącymi publikacji danych za pomocą MQTT.


    O tak... przegapiłem tę część... że domyślnie używa "właściwego" tematu podstawowego... to pomaga... ALE...
    czy można używać zmiennych w konfiguracji MQTT „Temat klienta (temat podstawowy)”?
    Mam na myśli ustawienie „$ShortName” (lub podobnego), aby zawsze śledzić zmiany w konfiguracji urządzenia?
    Jeszcze raz – żeby nie musieć sprawdzać/modyfikować „tego samego” w różnych miejscach.

    Czy tak, aby użyć tego „baseTopic” w innych miejscach, na przykład publikować niestandardowe automatyczne wykrywanie? (ponieważ musisz opublikować dane odkrycia w homeassistant// /config i konieczność zmiany tego wszędzie przy zmianie nazwy urządzenia nie jest „miła”)
REKLAMA