Modbus Sensor


modbus 센서를 사용하면 Modbus 레지스터에서 데이터를 수집할 수 있습니다.

설정

Modbus 센서를 사용하려면 configuration.yaml 파일에 다음을 추가하십시오.

# 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 Variables

registers

(map)(Required)

The array contains a list of relevant registers to read from.

name

(string)(Required)

Name of the sensor.

hub

(string)(Optional)

The name of the hub.

Default value:

default

slave

(integer)(Required)

The number of the slave (Optional for tcp and upd Modbus).

register

(integer)(Required)

Register number.

register_type

(string)(Optional)

Modbus register type (holding, input), default holding.

unit_of_measurement

(integer)(Optional)

Unit to attach to value.

device_class

(device_class)(Optional)

The type/class of the sensor to set the icon in the frontend.

Default value:

None

count

(integer)(Optional)

Number of registers to read.

Default value:

1

reverse_order

(boolean)(Optional)

Reverse the order of registers when count >1.

Default value:

false

scale

(float)(Optional)

Scale factor (output = scale * value + offset).

Default value:

1

offset

(float)(Optional)

Final offset (output = scale * value + offset).

Default value:

0

precision

(integer)(Optional)

Number of valid decimals.

Default value:

0

data_type

(string)(Optional)

Response representation (int, uint, float, custom). If float selected, value will be converted to IEEE 754 floating point format.

Default value:

int

structure

(string)(Optional)

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.

Platform options 설명서에 표시된대로 센서 업데이트에 대한 기본 30 초 스캔 간격을 변경할 수 있습니다.

스케일(scale) 또는 오프셋(offset)을 부동 소수점 값으로 지정하면 배정도 부동 소수점 산술(double precision floating point arithmetic)이 최종값을 계산하는데 사용됩니다. 이로 인해 2^53보다 큰 값의 정밀도가 손실될 수 있습니다.

전체 사례

스캔 간격이 10 초인 온도 센서의 예 :

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