mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-05-30 14:56:50 +00:00

* Update Modbus component configuration variable Update style of Modbus component (all the 4 files) documentation to follow new configuration variables description. * Update modbus.markdown * Update binary_sensor.modbus.markdown * Tweak fix * Tweak round 2 😛 * ✏️ Tweak round 3
131 lines
3.3 KiB
Markdown
131 lines
3.3 KiB
Markdown
---
|
|
layout: page
|
|
title: Modbus Sensor
|
|
description: "Instructions on how to integrate Modbus sensors into Home Assistant."
|
|
date: 2015-08-30 23:38
|
|
sidebar: true
|
|
comments: false
|
|
sharing: true
|
|
footer: true
|
|
logo: modbus.png
|
|
ha_category: Sensor
|
|
ha_release: pre 0.7
|
|
ha_iot_class: "Local Push"
|
|
---
|
|
|
|
|
|
The `modbus` sensor allows you to gather data from [Modbus](http://www.modbus.org/) registers.
|
|
|
|
## {% linkable_title Configuration %}
|
|
|
|
To use your Modbus sensors in your installation, add the following to your `configuration.yaml` file:
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry
|
|
sensor:
|
|
platform: modbus
|
|
registers:
|
|
- name: Sensor1
|
|
unit_of_measurement: °C
|
|
slave: 1
|
|
register: 100
|
|
- name: Sensor2
|
|
unit_of_measurement: mg
|
|
slave: 1
|
|
register: 110
|
|
count: 2
|
|
- name: Sensor3
|
|
unit_of_measurement: °C
|
|
slave: 1
|
|
register: 120
|
|
register_type: input
|
|
data_type: float
|
|
scale: 0.01
|
|
offset: -273.16
|
|
precision: 2
|
|
```
|
|
|
|
{% configuration %}
|
|
registers:
|
|
description: The array contains a list of relevant registers to read from.
|
|
required: true
|
|
type: map
|
|
keys:
|
|
name:
|
|
description: Name of the sensor.
|
|
required: true
|
|
type: string
|
|
slave:
|
|
description: The number of the slave (Optional for tcp and upd Modbus).
|
|
required: true
|
|
type: integer
|
|
register:
|
|
description: Register number.
|
|
required: true
|
|
type: integer
|
|
register_type:
|
|
description: Modbus register type (holding, input), default holding.
|
|
required: false
|
|
type: string
|
|
unit_of_measurement:
|
|
description: Unit to attach to value.
|
|
required: false
|
|
type: integer
|
|
count:
|
|
description: Number of registers to read.
|
|
required: integer
|
|
type: integer
|
|
reverse_order:
|
|
description: Reverse the order of registers when count >1.
|
|
required: false
|
|
default: False
|
|
type: boolean
|
|
scale:
|
|
description: Scale factor (output = scale * value + offset).
|
|
required: false
|
|
default: 1
|
|
type: float
|
|
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
|
|
data_type:
|
|
description: Response representation (int, uint, float, custom). If float selected, value will be converted to IEEE 754 floating point format.
|
|
required: false
|
|
default: int
|
|
type: string
|
|
structure:
|
|
description: "If data_type is custom specify here a double quoted python struct format string to unpack the value. See python documentation for details. Ex: >i."
|
|
required: false
|
|
type: string
|
|
{% endconfiguration %}
|
|
|
|
It's possible to change the default 30 seconds scan interval for the sensor updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation.
|
|
|
|
### {% linkable_title Full example %}
|
|
|
|
Example a temperature sensor with a 10 seconds scan interval:
|
|
|
|
```yaml
|
|
sensor:
|
|
- platform: modbus
|
|
scan_interval: 10
|
|
registers:
|
|
- name: Room_1
|
|
slave: 10
|
|
register: 0
|
|
register_type: holding
|
|
unit_of_measurement: °C
|
|
count: 1
|
|
scale: 0.1
|
|
offset: 0
|
|
precision: 1
|
|
data_type: integer
|
|
```
|