jest sterownik Beckhoff, który obsługuje logikę. Mam przyciski dzwonkowe, którymi załączam i wyłączam światła. W HA stworzyłem interaktywny rzut piętra i chciałem wrzucić switche, które będą pokazywały stan oświetlenia i przy okazji pozwalały na sterowanie. Jednak gdy uruchamiam wizualizację i sterownik to albo mam efekt stroboskopu, albo w HA nie zmienia się stan switcha gdy użyję do włączenia światła klawisz dzwonkowy. Komunikację między HA a sterownikiem mam przez node red. A komunikacja sterownik Node RED jest po ADS.
PS. Chwytam się już każdego pomysłu, bo myślałem że może rozbiję włączanie i wyłączanie na dwie osobne encje i będę je podmieniał w zależności od stanu światła.
W takim przypadku możesz użyć Mqtt do przekazania danych do HA.
W HA tworzysz encję switch mqtt, komendy do wysłania wystawiasz na jednym temacie a stan odczytujesz na innym. Encję jest “no optimistic”.
Od strony PLC za pomocą funkcji ADS w node-red ustawiasz/odczytujesz stan wejść na podstawie tematów mqtt.
Najprostsze rozwiązanie, które odwzorowuje stan przełączników bez względu z źródło sterowania.
Musisz tylko uruchomić mqtt . Mqtt pozwala na unifikację platformy wymiany danych pomiędzy urządzeniami pracującymi z różnymi protokołami. Node-red otwiera nieskończone możliwości.
Ten sposób pozwala na podstawowe odwzorowanie stanu za pomocą zmiany koloru i pozycji przełącznika.
Jeśli chcesz dodatkowo zmieniać ikony stanu to musisz na podstawie stanu encji podstawowej stworzyć template.
np.
Nie używam (jeszcze) NR ale może skorzystać, w tym przypadku, z pomocnika w HA. W końcu chyba do tego zostały stworzone w HA aby pomóc odwzorować działanie logiki.
No dobrze, próbowałem i dalej mam jakby tej samej natury problem.
Mam przycisk dzwonkowy w pomieszczeniu na nim 3 kombinacje tzn. na PLC wykrywam pojedyncze kliknięcie podwójne i przytrzymanie. Do tego przypisuje różne akcje.
Mam interaktywny rzut pomieszczenia na nim ustawione switche. Chciałbym zrobić tak:
1.Klikam pojedynczo w fizyczny przycisk na ścianie załącza się lampa - w tym samym czasie na interaktywny rzucie switch zmienia swój stan na załączony.
2. Klikając w switch w HA wyłączam światło.
3. Zmieniam kolejność w HA załączam a na fizycznym wyłączam.
4. etc.
Problem polega na tym, że na samym plc wszystko hula dopóki nie zaczynam tego integrować na HA.
robi mi się efekt stroboskopu przez to, że chcę żeby switch na interaktywnym rzucie pomieszczenia zmieniał stan po kliknięciu na rzeczywistym klawiszu. Tutaj jest cały pies pogrzebany, jak zmienić stan switcha a jednocześnie żeby nie było efektu stroboskopu , bo stany się mi przełączają.
Dokładnie co masz na myśli pod słowem integruje? Z pkt1-4 wynika, ze już jest zintegrowane.
Niewiele z Twojego opisu wynika… powróżę - używasz switch.toggle do przełączania i automatyzacja reaguje tylko na zmiany stanów przełącznika i bez “zastanowienia” przełącza na stan przeciwny.
Musisz jawnie wywoływywać usługi, coś na wzór (poglądowo):
lub w automatyzacji, bo nie wiadomo co tam wymyśliłeś
automation:
- alias: 'Switch On'
trigger:
platform: state
entity_id: switch.swiatlo
to: 'on'
action:
service: switch.turn_on
- alias: 'Switch Off'
trigger:
platform: state
entity_id: switch.swiatlo
to: 'off'
action:
service: switch.turn_off
To oczywiście wymaga napisania tego poprawnie…
Przy takiej konstrukcji jeśli zmienisz stan za pomocą przełącznika w ścianie, HA ponownie wyśle takie samo polecenie - czyli jeszcze poprawi, a stanu nie zmieni.