@nysander
Oczywiście ! służę pomocą mam od początku prawie od początku ADS i potwierdzam że działa BEZ PROBLEMU :)
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ą.
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?
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.
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.