ADS
The ADS (automation device specification) describes a device-independent and fieldbus independent interface for communication between Beckhoff
There is currently support for the following device types within Home Assistant:
Configuration
To enable ADS, add the following lines to your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file.
After changing the configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file, restart Home Assistant to apply the changes.   The integration is now shown on the integrations page under Settings > Devices & services. Its entities are listed on the integration card itself and on the Entities tab.
# Example configuration.yaml entry
ads:
  device: "127.0.0.1.1.1"
  port: 801
Action
The ADS integration will register the write_by_name action allowing you to write a value to a variable on your ADS device.
{
    "adsvar": ".myvariable",
    "adstype": "int",
    "value": 123
}
Action parameters:
- 
adsvar: Name of the variable on the ADS device. To access global variables on TwinCAT2 use a prepending dot 
.myvariable, for TwinCAT3 useGBL.myvariable. - 
adstype: Specify the type of the variable. Use one of the following: 
int,byte,uint,bool - value: The value that will be written in the variable.
 
Binary sensor
The ads binary sensor platform can be used to monitor a boolean value on your ADS device.
To use your ADS device, you first have to set up your ADS hub and then add the following to your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more]
file:
# Example configuration.yaml entry
binary_sensor:
  - platform: ads
    adsvar: .boolean1
Configuration Variables
Sets the class of the device, changing the device state and icon that is displayed on the frontend.
Light
The ads light platform allows you to control your connected ADS lights.
To use your ADS device, you first have to set up your ADS hub and then add the following to your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more]
file:
# Example configuration.yaml entry
light:
  - platform: ads
    adsvar: GVL.enable_light
    adsvar_brightness: GVL.brightness
Sensor
The ads sensor platform allows reading the value of a numeric variable on your ADS device. The variable can be of type BOOL, BYTE, INT, UINT, SINT, USINT, DINT, UDINT, WORD, DWORD, REAL, or LREAL.
To use your ADS device, you first have to set up your ADS hub and then add the following to your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more]
file:
# Example configuration.yaml entry
sensor:
  - platform: ads
    adsvar: GVL.temperature
    unit_of_measurement: "°C"
    adstype: int
Configuration Variables
The datatype of the ADS variable, possible values are bool, byte, int, uint, sint, usint, dint, udint, word, dword, real and lreal.
The factor can be used to implement fixed decimals. E.g., set factor to 100 if you want to display a fixed decimal value with two decimals. A variable value of 123 will be displayed as 1.23.
Switch
The ads switch platform accesses a boolean variable on the connected ADS device. The variable is identified by its name.
To use your ADS device, you first have to set up your ADS hub and then add the following to your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more]
file:
# Example configuration.yaml entry
switch:
  - platform: ads
    adsvar: .global_bool
Cover
The ads cover platform allows you to control your connected ADS covers.
To use your ADS device, you first have to set up your ADS hub and then add the following to your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more]
file:
# Example configuration.yaml entry
cover:
  - platform: ads
    name: Curtain master bed room
    adsvar: covers.master_bed_room_is_closed
    adsvar_open: covers.master_bed_room_open
    adsvar_close: covers.master_bed_room_close
    adsvar_stop: covers.master_bed_room_stop
    device_class: curtain
Configuration Variables
The name of the boolean variable that returns the current status of the cover (True = closed)
The name of the variable that returns the current cover position, use a byte variable on the PLC side
The name of the variable that sets the new cover position, use a byte variable on the PLC side
Sets the class of the device, changing the device state and icon that is displayed on the frontend.
Select
The ads select entity accesses an ENUM (int) variable on the connected ADS device. The variable is identified by its name. You have to set up a corresponding ENUM in the TwinCAT PLC. It is recommended to use explicit values starting from 0.
TYPE E_SampleA :
(
    e1 := 0,
    e2 := 1,
    e3 := 2, 
);
END_TYPE
Valve
The ads valve entity accesses a boolean variable on the connected ADS device. The variable is identified by its name.
To use your ADS device, you first have to set up your ADS hub and then add the following to your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more]
file:
# Example configuration.yaml entry
select:
  - platform: ads
    adsvar: MAIN.eMyEnum
    options:
      - "Off"
      - "Setup"
      - "Automatic"
      - "Manual"
      - "Guest"
      - "Error"
valve:
  - platform: ads
    adsvar: MAIN.bValveControl