5.5 KiB
layout | title | description | date | sidebar | comments | sharing | footer | logo | ha_category | ha_release | ha_iot_class | redirect_from | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
page | ADS | Connect Home Assistant to TwinCAT devices via the ADS interface | 2017-12-05 12:00 | true | false | true | true | beckhoff.png |
|
0.60 | Local Push |
|
The ADS (automation device specification) describes a device-independent and fieldbus independent interface for communication between Beckhoff automation devices running TwinCAT and other devices implementing this interface.
There is currently support for the following device types within Home Assistant:
{% linkable_title Configuration %}
To enable ADS, add the following lines to your configuration.yaml
file:
# Example configuration.yaml entry
ads:
device: '127.0.0.1.1.1'
port: 48898
{% configuration %}
device:
description: The AMS NetId that identifies the device.
required: true
type: string
port:
description: The port that runs the AMS server on the device, typically this would be 801 or 851.
required: true
type: integer
ip_address:
description: The IP address of the ADS device, if not set the first 4 bytes of the device id will be used.
required: false
type: string
{% endconfiguration %}
{% linkable_title Service %}
The ADS component will register the service write_by_name
allowing you to write a value to a variable on your ADS device.
{
"adsvar": ".myvariable",
"adstype": "int",
"value": 123
}
Service 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.
{% linkable_title 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.yaml
file:
# Example configuration.yaml entry
binary_sensor:
- platform: ads
adsvar: .boolean1
{% configuration %} adsvar: description: The name of the variable which you want to access on the ADS device. required: true type: string name: description: An identifier for the light in the frontend. required: false type: string device_class: description: The type/class of the sensor to set the icon in the frontend. required: false type: string {% endconfiguration %}
{% linkable_title Light %}
The ads
light platform allows you to control your connecte ADS lights.
To use your ADS device, you first have to set up your ADS hub and then add the following to your configuration.yaml
file:
# Example configuration.yaml entry
light:
- platform: ads
adsvar: GVL.enable_light
adsvar_brightness: GVL.brightness
{% configuration %} adsvar: required: true description: The name of the boolean variable that switches the light on type: string adsvar_brightness: required: false description: The name of the variable that controls the brightness, use an unsigned integer on the PLC side type: integer name: required: false description: An identifier for the Light in the frontend type: string {% endconfiguration %}
{% linkable_title Sensor %}
The ads
sensor platform allows reading the value of a numeric variable on your ADS device. The variable can be of type INT, UINT or BYTE.
To use your ADS device, you first have to set up your ADS hub and then add the following to your configuration.yaml
file:
# Example configuration.yaml entry
sensor:
- platform: ads
adsvar: GVL.temperature
unit_of_measurement: '°C'
adstype: integer
{% configuration %} adsvar: required: true description: The name of the variable which you want to access. type: string adstype: required: false description: The datatype of the ADS variable, possible values are int, uint, byte. default: int type: string name: required: false description: An identifier for the sensor. type: string factor: required: false description: A factor that divides the stored value before displaying in Home Assistant. default: 1 type: integer {% endconfiguration %}
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
.
{% linkable_title 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.yaml
file:
# Example configuration.yaml entry
switch:
- platform: ads
adsvar: .global_bool
{% configuration %} adsvar: required: true description: The name of the variable which you want to access on the ADS device. type: string name: required: false description: An identifier for the switch in the frontend. type: string {% endconfiguration %}