diff --git a/src/device/b2500Base.ts b/src/device/b2500Base.ts index 6914304..d5f5a2b 100644 --- a/src/device/b2500Base.ts +++ b/src/device/b2500Base.ts @@ -82,6 +82,7 @@ export function registerBaseMessage({ name: 'Battery Percentage', device_class: 'battery', unit_of_measurement: '%', + state_class: 'measurement', }), ); field({ @@ -96,6 +97,7 @@ export function registerBaseMessage({ name: 'Battery Capacity', device_class: 'energy_storage', unit_of_measurement: 'Wh', + state_class: 'measurement', }), ); field({ @@ -284,6 +286,7 @@ export function registerBaseMessage({ name: 'Temperature Min', device_class: 'temperature', unit_of_measurement: '°C', + state_class: 'measurement', }), ); field({ @@ -298,6 +301,7 @@ export function registerBaseMessage({ name: 'Temperature Max', device_class: 'temperature', unit_of_measurement: '°C', + state_class: 'measurement', }), ); field({ @@ -551,6 +555,7 @@ export function registerBaseMessage({ name: 'Host Battery SoC', device_class: 'battery', unit_of_measurement: '%', + state_class: 'measurement', }), ); field({ @@ -565,6 +570,7 @@ export function registerBaseMessage({ name: 'Extra 1 Battery SoC', device_class: 'battery', unit_of_measurement: '%', + state_class: 'measurement', enabled_by_default: false, }), ); @@ -580,6 +586,7 @@ export function registerBaseMessage({ name: 'Extra 2 Battery SoC', device_class: 'battery', unit_of_measurement: '%', + state_class: 'measurement', enabled_by_default: false, }), ); @@ -725,6 +732,7 @@ export function registerCellDataMessage(message: BuildMessageFn) { name: `Min Cell Voltage ${battery}`, device_class: 'voltage', unit_of_measurement: 'V', + state_class: 'measurement', enabled_by_default: battery === 'host', }), ); @@ -740,6 +748,7 @@ export function registerCellDataMessage(message: BuildMessageFn) { name: `Max Cell Voltage ${battery}`, device_class: 'voltage', unit_of_measurement: 'V', + state_class: 'measurement', enabled_by_default: battery === 'host', }), ); @@ -755,6 +764,7 @@ export function registerCellDataMessage(message: BuildMessageFn) { name: `Cell Voltage Difference ${battery}`, device_class: 'voltage', unit_of_measurement: 'V', + state_class: 'measurement', enabled_by_default: battery === 'host', }), ); @@ -770,6 +780,7 @@ export function registerCellDataMessage(message: BuildMessageFn) { name: `Average Cell Voltage ${battery}`, device_class: 'voltage', unit_of_measurement: 'V', + state_class: 'measurement', enabled_by_default: battery === 'host', }), ); @@ -787,6 +798,7 @@ export function registerCellDataMessage(message: BuildMessageFn) { name: `Cell Voltage ${battery} ${(i + 1).toString().padStart(2, '0')}`, device_class: 'voltage', unit_of_measurement: 'V', + state_class: 'measurement', enabled_by_default: battery === 'host', }), ); diff --git a/src/device/b2500V1.ts b/src/device/b2500V1.ts index 3816efd..c92f7a0 100644 --- a/src/device/b2500V1.ts +++ b/src/device/b2500V1.ts @@ -230,6 +230,7 @@ function registerExtraBatteryData(message: BuildMessageFn) { name: `Input Voltage ${input}`, device_class: 'voltage', unit_of_measurement: 'V', + state_class: 'measurement', }), ); field({ diff --git a/src/device/venus.ts b/src/device/venus.ts index 6549d33..b1ffe70 100644 --- a/src/device/venus.ts +++ b/src/device/venus.ts @@ -210,6 +210,7 @@ function registerRuntimeInfoMessage( name: 'Battery Capacity', device_class: 'energy_storage', unit_of_measurement: 'Wh', + state_class: 'measurement', }), ); @@ -225,6 +226,7 @@ function registerRuntimeInfoMessage( name: 'Battery State of Charge', device_class: 'battery', unit_of_measurement: '%', + state_class: 'measurement', }), ); @@ -447,6 +449,7 @@ function registerRuntimeInfoMessage( name: 'Off Grid Power', device_class: 'apparent_power', unit_of_measurement: 'VA', + state_class: 'measurement', }), ); @@ -1366,6 +1369,7 @@ function registerBMSInfoMessage( name: `Cell Voltage ${i}`, unit_of_measurement: 'mV', device_class: 'voltage', + state_class: 'measurement', enabled_by_default: false, }), ); @@ -1385,6 +1389,7 @@ function registerBMSInfoMessage( name: `Cell Temperature ${i}`, unit_of_measurement: '°C', device_class: 'temperature', + state_class: 'measurement', enabled_by_default: false, }), ); @@ -1398,10 +1403,32 @@ function registerBMSInfoMessage( // Battery pack voltage is reported in centivolts (e.g. 4328 -> 43.28 V) [ 'b_vol', - { id: 'voltage', deviceClass: 'voltage', unitOfMeasurement: 'V', transform: divide(100) }, + { + id: 'voltage', + deviceClass: 'voltage', + unitOfMeasurement: 'V', + transform: divide(100), + stateClass: 'measurement', + }, + ], + [ + 'b_cur', + { + id: 'current', + deviceClass: 'current', + unitOfMeasurement: 'mA', + stateClass: 'measurement', + }, + ], + [ + 'b_tem', + { + id: 'temperature', + deviceClass: 'temperature', + unitOfMeasurement: '°C', + stateClass: 'measurement', + }, ], - ['b_cur', { id: 'current', deviceClass: 'current', unitOfMeasurement: 'mA' }], - ['b_tem', { id: 'temperature', deviceClass: 'temperature', unitOfMeasurement: '°C' }], // Charge voltage is reported in decivolts (e.g. 468 -> 46.8 V) [ 'b_chv', @@ -1410,6 +1437,7 @@ function registerBMSInfoMessage( deviceClass: 'voltage', unitOfMeasurement: 'V', transform: divide(10), + stateClass: 'measurement', }, ], ['b_chf', { id: 'fullChargeCapacity' }], @@ -1425,6 +1453,7 @@ function registerBMSInfoMessage( deviceClass: 'temperature', unitOfMeasurement: '°C', transform: scaleTemperatures ? divide(10) : undefined, + stateClass: 'measurement', }, ], ] as const; @@ -1442,6 +1471,7 @@ function registerBMSInfoMessage( name: `BMS ${info.id.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase())}`, unit_of_measurement: 'unitOfMeasurement' in info ? info.unitOfMeasurement : undefined, device_class: 'deviceClass' in info ? info.deviceClass : undefined, + state_class: 'stateClass' in info ? info.stateClass : undefined, enabled_by_default: false, }), );