Brak aktualizacji danych z ADS

Witam,

próbuję ogarnąć komunikację TwinCAT’a w trybie symulatora (na razie) z home assistantem jako VM na VMware Player

udało mi się ogarnąć nawiązanie komunikacji między nimi i dodanie kilku sensorów i jednego binary_sensor.

wartości jakie wyświetla mi HA są to wartości zaczytane podczas restartu.

Jeżeli później z poziomu TwinCAT’a nadpiszę jakąś wartość to HA w ogóle nie widzi tej aktualizacji do czasu aż go znów zresetuję.

Co mogę robić źle lub czego mi brakuje w konfiguracji (to czysta instalacja HA), czy jakiś pooling o odpytywanie wartości z ADS trzeba jeszcze dodać?

Podobno nie ma głupich pytań…
Co to jest ADS?

http://automatyka.kia.prz.edu.pl/attachments/article/13/Instrukcja-TwinCAT.pdf

ADS - Home Assistant protokół komunikacyjny PLC Beckhoff

próbowałem dodać scan_interval: 10000 jak i 1 ale bez zmian



Symulator na pewno w trybie online bo symulowałem zmianę wartości
np sensor := sensor + 1 i HA też tego nie czytał

1 polubienie

Sporo mniej niż 0.1‰ instalacji HA używa tej integracji (ads), więc sugeruję zajrzeć na oficjalne forum…

W takiej sytuacji odpowiedzi zacząłbym szukać najpierw na githubie

murcin używa tego rozwiązania - sterownika Beckhoff (SmartMyHome - taki mój przykład - inspiracja dla innych Dashboard), powinien pomóc.

1 polubienie

@nysander
Oczywiście ! służę pomocą :slight_smile: mam od początku prawie od początku ADS i potwierdzam że działa BEZ PROBLEMU :):slight_smile:
moja konfiguracja to PLC Beckhoffa i po ADS łączę się z HA który jest na VirtualBox

jeżeli masz samą konfigurację poprawną (a wygląda OK) i połączenie nawiązane gdzie widać zmienne to powinno być OK.
ważną rzeczą są restarty samego PLC - ponieważ samo HA nawiązuje połączenia ale gdy je utraci np przez restart PLC lub przeładowanie projektu z aktywacją wtedy HA zrywa połączenie i już go nie naziązuje ponownie… dopiero po ponownym uruchomieniu.
kolejną ważną rzeczą jest dobrze zrobiony ROUTING na samym PLC - chodzi o to abo PLC nie blokowało komunikacji przy innych urządzeniach się łączą.

2 polubienia

Podeślę później screeny z routingu ale może być coś w tym że przeładowanie projektu w TC psuje połączenie z HA. Muszę to zweryfikować u siebie.

Musiałem na windows gdzie mam twincata wyłączyć całkiem firewalla bo inaczej w ogóle się nie łączyły.

Z góry dzięki za chęć pomocy

Cześć wszystkim, wczoraj postanowiłem się pobawić tą integracją (Beckhoff ADS). Faktycznie po wyłączeniu PLC i włączeniu ponownie komunikacja jest martwa. Pomaga restart HA. Czy drążył ktoś temat czy da się przywrócenie komunikacji zrobić w jakiś cywilizowany sposób żeby nie musieć robić restartu HA?

Próbowałeś przeładować samą integrację?

homeassistant.reload_config_entry

Bardzo dziękuję za sugestię. Sprawdziłem integrację Beckhoff ADS używając sterownika CX7080 i naprawdę działa to dobrze i wygodne jest posługiwanie się nazwami zmiennych. Dokopałem się do informacji że integracja skonfigurowana w configuration.yaml nie zawiera entry_id i niestety nie da się jej załadować ponownie. Myślę że na obecną chwilę to jedyne działające rozwiązanie to LifeBit co jakiś czas i automatyzacja resetująca HA w przypadku zaniku. Rozważam jeszcze opcję MQTT jako alternatywę ale to jak nadejdzie weekend i będzie dłuższa wolna chwila. Obiecuję się podzielić.

Udało się z niewielką pomocą GPT5 dodać usługę ads.reconnect, którą można użyć np. w połączeniu z Lifebitem. Działa to dobrze. Krok po kroku w skrócie:

1) Przeniesienie integracji do custom_components
Skopiowałem integrację ADS do:
config/custom_components/ads/

2) Dodanie usługi ads.reconnect do UI
W custom_components/ads/services.yaml dopisałem osobny wpis (top-level):
reconnect:
name: Reconnect ADS
description: Rozłącz i połącz ponownie klienta ADS bez restartu HA.
2025-10-23_13h40_11

3) Rejestracja usługi w init.py
Bez zbędnych szczegółów: przy reconnect() robię:
close() → connect() → _resubscribe_all() → Skutek: po reconnect encje znów dostają eventy, więc Historia i Logbook znów notują zmiany.
Po zmianach w kodzie oczywiście restart HA.

4) Test działania
Rozłączyłem PLC → encje przestały dostawać eventy.
Podłączyłem PLC + wywołałem ads.reconnect (Narzędzia deweloperskie → Akcje). Zmiany z PLC znowu zaczęły wpadać do encji; Historia pokazuje nowe wpisy.

Chętnie się podzielę moją customową integracją ADS jakby ktoś chciał. Dobrego weekendu!

2 polubienia

ja bym prosił, chętnie przetestuje :slight_smile:

ads.zip (75,2 KB)

Bardzo proszę :slight_smile: