
* Add support for multiple modbus hubs. * fixed typo * Update documentation for flexit * Hub name is optional
3.5 KiB
layout | title | description | date | sidebar | comments | sharing | footer | logo | ha_category | ha_release | ha_iot_class |
---|---|---|---|---|---|---|---|---|---|---|---|
page | Modbus Sensor | Instructions on how to integrate Modbus sensors into Home Assistant. | 2015-08-30 23:38 | true | false | true | true | modbus.png | Sensor | pre 0.7 | Local Push |
The modbus
sensor allows you to gather data from Modbus registers.
{% linkable_title Configuration %}
To use your Modbus sensors in your installation, add the following to your configuration.yaml
file:
# Example configuration.yaml entry
sensor:
platform: modbus
registers:
- name: Sensor1
hub: hub1
unit_of_measurement: °C
slave: 1
register: 100
- name: Sensor2
hub: hub1
unit_of_measurement: mg
slave: 1
register: 110
count: 2
- name: Sensor3
hub: hub1
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 hub: description: The name of the hub. required: false default: default 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 documentation.
{% linkable_title Full example %}
Example a temperature sensor with a 10 seconds scan interval:
sensor:
- platform: modbus
scan_interval: 10
registers:
- name: Room_1
hub: hub1
slave: 10
register: 0
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: integer