I have a Beckhoff PLC controlling a big part of my home, and I used to use the core ads compment to communicate with the PLC.
However, the core ads compment had some important drawbacks that I couldn’t accept for my setup:
- It is fully YAML-based, which means having to restart HA to change things like entity names
- In addtion to point 1, it has no support for the
unique_idYAML parameter so I can’t even edit the names or entity IDs of my ADS entities in the UI - It doesn’t support the way my blinds and lights are built on the Beckhoff side (my lights use BYTE for brightness with a range of 0-100, my covers are also controlled differently than the core
adsintegration expects them to be and I have some boolean statuses that are REAL variables with 0/1 on the Beckhoff side)
To fix all of this, I copied the files of the core ads integration to a new GitHub repo and had Github Copilot transform it a bit. I know how to write Python code, but not enough to implement things like this.
Copilot added full UI support (YAML is still supported, even with a working unique_id parameter), implemented some of my special cases and fixed all the bugs the integration had after the AI did all these changes.
Now I have a new integration called ads_custom, which works perfectly for my needs and is much easier to use than the core integration.
If you also have a Beckhoff PLC, feel free to try the integration, just add it to HACS
(GitHub - Aaroneisele55/homeassistant-ads: A modified version of the Home Asistant `ads` core component that adds some features, including making binary_sensors from REAL variables and `unique_id` support), add it in the Devices and Services menu, then open the options of the ADS entry to add entities.
If you have any feedback (be it positive or constructively negative), please let me know!