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.