mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-19 07:17:14 +00:00
New modbus data types (#18369)
* New data_types, and regulate indent. * review.
This commit is contained in:
parent
7b87b63b7a
commit
a025548c1c
@ -56,6 +56,16 @@ name:
|
|||||||
required: false
|
required: false
|
||||||
default: "modbus_hub"
|
default: "modbus_hub"
|
||||||
type: string
|
type: string
|
||||||
|
retries:
|
||||||
|
description: Number of times to retry a request.
|
||||||
|
required: false
|
||||||
|
default: 3
|
||||||
|
type: integer
|
||||||
|
retry_on_empty:
|
||||||
|
description: Retry request, when receiving and empty message.
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
timeout:
|
timeout:
|
||||||
description: "Timeout while waiting for a response in seconds."
|
description: "Timeout while waiting for a response in seconds."
|
||||||
required: false
|
required: false
|
||||||
@ -220,11 +230,60 @@ slave:
|
|||||||
default: 0
|
default: 0
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
### Configuring platform binary sensor
|
### Configuring data_type and struct
|
||||||
|
|
||||||
|
Climate and Sensor share setup of data_type and struct.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry for platform common parameters
|
||||||
|
modbus:
|
||||||
|
- type: tcp
|
||||||
|
host: IP_ADDRESS_1
|
||||||
|
port: 2020
|
||||||
|
name: "hub1"
|
||||||
|
sensors:
|
||||||
|
- name: sensor1
|
||||||
|
data_type: int
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
data_type:
|
||||||
|
description: Response representation (int16, int32, int64, uint16, uint32, uint64, float16, float32, float64, string). `int/uint`are silently converted to `int16/uint16`.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: int16
|
||||||
|
offset:
|
||||||
|
description: Final offset (output = scale * value + offset).
|
||||||
|
required: false
|
||||||
|
type: float
|
||||||
|
default: 0
|
||||||
|
precision:
|
||||||
|
description: Number of valid decimals.
|
||||||
|
required: false
|
||||||
|
type: integer
|
||||||
|
default: 1
|
||||||
|
scale:
|
||||||
|
description: Scale factor (output = scale * value + offset).
|
||||||
|
required: false
|
||||||
|
type: float
|
||||||
|
default: 1
|
||||||
|
structure:
|
||||||
|
description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`."
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: ">f"
|
||||||
|
swap:
|
||||||
|
description: "Swap the order of bytes/words, options are `none`, `byte`, `word`, `word_byte`."
|
||||||
|
required: false
|
||||||
|
default: none
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
## Configuring platform binary sensor
|
||||||
|
|
||||||
The Modbus binary sensor allows you to gather data from coils which as per standard have state ON/OFF.
|
The Modbus binary sensor allows you to gather data from coils which as per standard have state ON/OFF.
|
||||||
|
|
||||||
To use your Modbus binary sensors in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring- platform-common-parameters):
|
To use your Modbus binary sensors in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring-platform-common-parameters):
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry for binary_sensor configuration
|
# Example configuration.yaml entry for binary_sensor configuration
|
||||||
@ -264,11 +323,11 @@ binary_sensors:
|
|||||||
type: string
|
type: string
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
### Configuring platform climate
|
## Configuring platform climate
|
||||||
|
|
||||||
The Modbus climate platform allows you to monitor your thermostat as well as set a target temperature.
|
The Modbus climate platform allows you to monitor your thermostat as well as set a target temperature.
|
||||||
|
|
||||||
To use your Modbus thermostat in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring- platform-common-parameters):
|
To use your Modbus thermostat in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring-platform-common-parameters) and [response regresentation](#configuring-data_type-and-struct):
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -310,11 +369,6 @@ climates:
|
|||||||
required: false
|
required: false
|
||||||
type: integer
|
type: integer
|
||||||
default: 2
|
default: 2
|
||||||
data_type:
|
|
||||||
description: Response representation (`int`, `uint`, `float`, `custom`). If `float` selected, value will converted to IEEE 754 floating point format. If `custom`is selected `structure`must de defined.
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
default: float
|
|
||||||
input_type:
|
input_type:
|
||||||
description: Modbus register type (`holding`, `input`) for current temperature.
|
description: Modbus register type (`holding`, `input`) for current temperature.
|
||||||
required: false
|
required: false
|
||||||
@ -330,31 +384,6 @@ climates:
|
|||||||
required: false
|
required: false
|
||||||
type: integer
|
type: integer
|
||||||
default: 5
|
default: 5
|
||||||
offset:
|
|
||||||
description: Final offset (output = scale * value + offset).
|
|
||||||
required: false
|
|
||||||
type: float
|
|
||||||
default: 0
|
|
||||||
precision:
|
|
||||||
description: Number of valid decimals.
|
|
||||||
required: false
|
|
||||||
type: integer
|
|
||||||
default: 1
|
|
||||||
scale:
|
|
||||||
description: Scale factor (output = scale * value + offset).
|
|
||||||
required: false
|
|
||||||
type: float
|
|
||||||
default: 1
|
|
||||||
structure:
|
|
||||||
description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`."
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
default: ">f"
|
|
||||||
swap:
|
|
||||||
description: "Swap the order of bytes/words, options are `none`, `byte`, `word`, `word_byte`."
|
|
||||||
required: false
|
|
||||||
default: none
|
|
||||||
type: string
|
|
||||||
target_temp_register:
|
target_temp_register:
|
||||||
description: Register address for target temperature (Setpoint).
|
description: Register address for target temperature (Setpoint).
|
||||||
required: true
|
required: true
|
||||||
@ -371,13 +400,13 @@ climates:
|
|||||||
default: C
|
default: C
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
#### Service `modbus.set-temperature`
|
### Service `modbus.set-temperature`
|
||||||
|
|
||||||
| Service | Description |
|
| Service | Description |
|
||||||
| ------- | ----------- |
|
| ------- | ----------- |
|
||||||
| set_temperature | Set Temperature. Requires `value` to be passed in, which is the desired target temperature. `value` should be in the same type as `data_type` |
|
| set_temperature | Set Temperature. Requires `value` to be passed in, which is the desired target temperature. `value` should be in the same type as `data_type` |
|
||||||
|
|
||||||
### Configuring platform cover
|
## Configuring platform cover
|
||||||
|
|
||||||
The `modbus` cover platform allows you to control covers (such as blinds, a roller shutter, or a garage door).
|
The `modbus` cover platform allows you to control covers (such as blinds, a roller shutter, or a garage door).
|
||||||
|
|
||||||
@ -387,7 +416,7 @@ Cover that uses `input_type: coil` is not able to determine intermediary states
|
|||||||
|
|
||||||
If your cover uses ìnput_type: holding` (default) to send commands, it can also read the intermediary states. To adjust which value represents what state, you can fine-tune the optional state attributes, like `state_open`. These optional state values are also used for specifying values written into the register. If you specify an optional status_register attribute, cover states will be read from status_register instead of the register used for sending commands.
|
If your cover uses ìnput_type: holding` (default) to send commands, it can also read the intermediary states. To adjust which value represents what state, you can fine-tune the optional state attributes, like `state_open`. These optional state values are also used for specifying values written into the register. If you specify an optional status_register attribute, cover states will be read from status_register instead of the register used for sending commands.
|
||||||
|
|
||||||
To use Modbus covers in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring- platform-common-parameters):
|
To use Modbus covers in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring-platform-common-parameters):
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -462,7 +491,7 @@ covers:
|
|||||||
type: string
|
type: string
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
#### Example: Modbus cover controlled by a coil
|
### Example: Modbus cover controlled by a coil
|
||||||
|
|
||||||
This example shows a configuration for a Modbus cover controlled using a coil. Intermediary states like opening/closing are not supported. The cover state is polled from Modbus every 10 seconds.
|
This example shows a configuration for a Modbus cover controlled using a coil. Intermediary states like opening/closing are not supported. The cover state is polled from Modbus every 10 seconds.
|
||||||
|
|
||||||
@ -485,7 +514,7 @@ modbus:
|
|||||||
scan_interval: 10
|
scan_interval: 10
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Example: Modbus cover controlled by a coil, it's state is read from the register
|
### Example: Modbus cover controlled by a coil, it's state is read from the register
|
||||||
|
|
||||||
This example shows a configuration for a Modbus cover controlled using a coil. Actual cover state is read from the `status_register`. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds.
|
This example shows a configuration for a Modbus cover controlled using a coil. Actual cover state is read from the `status_register`. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds.
|
||||||
|
|
||||||
@ -509,7 +538,7 @@ modbus:
|
|||||||
state_closed: 4
|
state_closed: 4
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Example: Modbus cover controlled by a holding register
|
### Example: Modbus cover controlled by a holding register
|
||||||
|
|
||||||
This example shows a configuration for a Modbus cover controlled using a holding register, from which we also read current cover state. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds.
|
This example shows a configuration for a Modbus cover controlled using a holding register, from which we also read current cover state. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds.
|
||||||
|
|
||||||
@ -531,7 +560,7 @@ modbus:
|
|||||||
state_closed: 4
|
state_closed: 4
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Example: Modbus cover controlled by a holding register, it's state is read from the status register
|
### Example: Modbus cover controlled by a holding register, it's state is read from the status register
|
||||||
|
|
||||||
This example shows a configuration for a Modbus cover controlled using a holding register. However, cover state is read from a `status_register`. In this case, we've specified only values for `state_open` and `state_closed`, for the rest, default values are used. The cover state is polled from Modbus every 10 seconds.
|
This example shows a configuration for a Modbus cover controlled using a holding register. However, cover state is read from a `status_register`. In this case, we've specified only values for `state_open` and `state_closed`, for the rest, default values are used. The cover state is polled from Modbus every 10 seconds.
|
||||||
|
|
||||||
@ -556,11 +585,11 @@ modbus:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Configuring platform fan
|
## Configuring platform fan
|
||||||
|
|
||||||
The `modbus` fan platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
|
The `modbus` fan platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
|
||||||
|
|
||||||
To use your Modbus fans in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring- platform-common-parameters):
|
To use your Modbus fans in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring-platform-common-parameters):
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -649,11 +678,11 @@ fans:
|
|||||||
type: integer
|
type: integer
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
### Configuring platform light
|
## Configuring platform light
|
||||||
|
|
||||||
The `modbus` light platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
|
The `modbus` light platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
|
||||||
|
|
||||||
To use your Modbus lights in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring- platform-common-parameters):
|
To use your Modbus lights in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring-platform-common-parameters):
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -738,11 +767,11 @@ lights:
|
|||||||
type: integer
|
type: integer
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
### Configuring platform sensor
|
## Configuring platform sensor
|
||||||
|
|
||||||
The `modbus` sensor allows you to gather data from [Modbus](http://www.modbus.org/) registers.
|
The `modbus` sensor allows you to gather data from [Modbus](http://www.modbus.org/) registers.
|
||||||
|
|
||||||
To use your Modbus sensors in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring- platform-common-parameters):
|
To use your Modbus sensors in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring-platform-common-parameters) and [response regresentation](#configuring-data_type-and-struct):
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -786,11 +815,6 @@ sensors:
|
|||||||
required: false
|
required: false
|
||||||
type: integer
|
type: integer
|
||||||
default: 1
|
default: 1
|
||||||
data_type:
|
|
||||||
description: Response representation (int, uint, float, string, custom). If float selected, value will be converted to IEEE 754 floating point format.
|
|
||||||
required: false
|
|
||||||
default: int
|
|
||||||
type: string
|
|
||||||
device_class:
|
device_class:
|
||||||
description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend.
|
description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend.
|
||||||
required: false
|
required: false
|
||||||
@ -804,26 +828,6 @@ sensors:
|
|||||||
description: Name of the sensor.
|
description: Name of the sensor.
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
offset:
|
|
||||||
description: Final offset (output = scale * value + offset).
|
|
||||||
required: false
|
|
||||||
default: 0
|
|
||||||
type: float
|
|
||||||
precision:
|
|
||||||
description: Number of valid decimals.
|
|
||||||
required: false
|
|
||||||
default: 0
|
|
||||||
type: integer
|
|
||||||
swap:
|
|
||||||
description: swap the order of bytes/words, options are none, byte, word, word_byte.
|
|
||||||
required: false
|
|
||||||
default: none
|
|
||||||
type: string
|
|
||||||
scale:
|
|
||||||
description: Scale factor (output = scale * value + offset).
|
|
||||||
required: false
|
|
||||||
default: 1
|
|
||||||
type: float
|
|
||||||
scan_interval:
|
scan_interval:
|
||||||
description: Defines the update interval of the sensor in seconds.
|
description: Defines the update interval of the sensor in seconds.
|
||||||
required: false
|
required: false
|
||||||
@ -833,10 +837,6 @@ sensors:
|
|||||||
description: The number of the slave (Optional for tcp and upd Modbus).
|
description: The number of the slave (Optional for tcp and upd Modbus).
|
||||||
required: true
|
required: true
|
||||||
type: integer
|
type: integer
|
||||||
structure:
|
|
||||||
description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`."
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
unit_of_measurement:
|
unit_of_measurement:
|
||||||
description: Unit to attach to value.
|
description: Unit to attach to value.
|
||||||
required: false
|
required: false
|
||||||
@ -849,7 +849,7 @@ If you specify scale or offset as floating point values, double precision floati
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
#### Full example
|
### Full example
|
||||||
|
|
||||||
Example temperature sensor with a default scan interval:
|
Example temperature sensor with a default scan interval:
|
||||||
|
|
||||||
@ -872,11 +872,11 @@ modbus:
|
|||||||
data_type: integer
|
data_type: integer
|
||||||
```
|
```
|
||||||
|
|
||||||
### Configuring platform switch
|
## Configuring platform switch
|
||||||
|
|
||||||
The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
|
The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
|
||||||
|
|
||||||
To use your Modbus switches in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring- platform-common-parameters):
|
To use your Modbus switches in your installation, add the following to your `configuration.yaml` file, in addition to the [common parameters](#configuring-platform-common-parameters):
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
|
Loading…
x
Reference in New Issue
Block a user