73 lines
3.6 KiB
Text
73 lines
3.6 KiB
Text
## --- "metric" configuration style ---
|
|
|
|
## Per metric definition
|
|
##
|
|
|
|
## Request optimization algorithm across metrics
|
|
## |---none -- Do not perform any optimization and just group requests
|
|
## | within metrics (default)
|
|
## |---max_insert -- Collate registers across all defined metrics and fill in
|
|
## holes to optimize the number of requests.
|
|
# optimization = "none"
|
|
|
|
## Maximum number of registers the optimizer is allowed to insert between
|
|
## non-consecutive registers to save requests.
|
|
## This option is only used for the 'max_insert' optimization strategy and
|
|
## effectively denotes the hole size between registers to fill.
|
|
# optimization_max_register_fill = 50
|
|
|
|
## Define a metric produced by the requests to the device
|
|
## Multiple of those metrics can be defined. The referenced registers will
|
|
## be collated into requests send to the device
|
|
[[inputs.modbus.metric]]
|
|
## ID of the modbus slave device to query
|
|
## If you need to query multiple slave-devices, create several "metric" definitions.
|
|
slave_id = 1
|
|
|
|
## Byte order of the data
|
|
## |---ABCD -- Big Endian (Motorola)
|
|
## |---DCBA -- Little Endian (Intel)
|
|
## |---BADC -- Big Endian with byte swap
|
|
## |---CDAB -- Little Endian with byte swap
|
|
# byte_order = "ABCD"
|
|
|
|
## Name of the measurement
|
|
# measurement = "modbus"
|
|
|
|
## Field definitions
|
|
## register - type of the modbus register, can be "coil", "discrete",
|
|
## "holding" or "input". Defaults to "holding".
|
|
## address - address of the register to query. For coil and discrete inputs this is the bit address.
|
|
## name - field name
|
|
## type *1 - type of the modbus field, can be
|
|
## BIT (single bit of a register)
|
|
## INT8L, INT8H, UINT8L, UINT8H (low and high byte variants)
|
|
## INT16, UINT16, INT32, UINT32, INT64, UINT64 and
|
|
## FLOAT16, FLOAT32, FLOAT64 (IEEE 754 binary representation)
|
|
## STRING (byte-sequence converted to string)
|
|
## length *1 - (optional) number of registers, ONLY valid for STRING type
|
|
## bit *1,2 - (optional) bit of the register, ONLY valid for BIT type
|
|
## scale *1,3 - (optional) factor to scale the variable with
|
|
## output *2,3 - (optional) type of resulting field, can be INT64, UINT64 or FLOAT64. Defaults to FLOAT64 if
|
|
## "scale" is provided and to the input "type" class otherwise (i.e. INT* -> INT64, etc).
|
|
##
|
|
## *1: These fields are ignored for both "coil" and "discrete"-input type of registers.
|
|
## *2: This field can only be "UINT16" or "BOOL" if specified for both "coil"
|
|
## and "discrete"-input type of registers. By default the fields are
|
|
## output as zero or one in UINT16 format unless "BOOL" is used.
|
|
## *3: These fields cannot be used with "STRING"-type fields.
|
|
fields = [
|
|
{ register="coil", address=0, name="door_open"},
|
|
{ register="coil", address=1, name="status_ok"},
|
|
{ register="holding", address=0, name="voltage", type="INT16" },
|
|
{ address=1, name="current", type="INT32", scale=0.001 },
|
|
{ address=5, name="energy", type="FLOAT32", scale=0.001 },
|
|
{ address=7, name="frequency", type="UINT32", scale=0.1 },
|
|
{ address=8, name="power_factor", type="INT64", scale=0.01 },
|
|
{ address=9, name="firmware", type="STRING", length=8 },
|
|
]
|
|
|
|
## Tags assigned to the metric
|
|
# [inputs.modbus.metric.tags]
|
|
# machine = "impresser"
|
|
# location = "main building"
|