This entity platform is the default choice when representing modifiable NUMERIC registers (i.e. configurable numeric values like ‘Maximum charge current’, ‘Bulk voltage’ and so on). You cannot set a binding with a TEXT frame label here since it would have no meaning: modifiable registers are not exposed or managed through this layer.
Configuration for NUMERIC registers
This is the typical configuration needed to bind a configurable register (The example relates to a register available on Phoenix inverters).
number:
- platform: m3_vedirect
vedirect_id: vedirect_0
vedirect_entities:
- name: "AC Output voltage setpoint"
register:
address: 0x0230
data_type: UN16
numeric:
scale: 0.01
unit: "V"
min_value: 210
max_value: 240
step: 0.1
Note you’d have to properly set the data_type in order to correctly decode/encode the raw data for HEX framing. If not set, the component will try to auto-detect the data size (1,2,4 bytes) when receiving the first frame for the register, but it will nevertheless assume the value is an unsigned type
address, data_type, scale and unit are all extracted from the official VE.Direct-HEX-Protocol-Phoenix-Inverter for the register.
In order to understand the ‘defaults’, this other minimal configuration should work too:
number:
- platform: m3_vedirect
vedirect_id: vedirect_0
vedirect_entities:
- name: "AC Output voltage setpoint"
register:
address: 0x0230
Here, having not set anything about the register layout, the component will assume:
data_type: unsigned numeric with size automatically inferred when receiving a frame.scale: defaults to 1 (i.e. exposes/sets the raw values).min,max,step: unassigned so you don’t have any and things depends on the defaults in the EspHome->HA chain.