home-assistant.io/source/_components/sensor.modbus.markdown
Ben Van Mechelen 6cf9eee5fa Add support for multiple modbus hubs. (#8027)
* Add support for multiple modbus hubs.

* fixed typo

* Update documentation for flexit

* Hub name is optional
2019-02-11 14:52:46 -05:00

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