Skip to content

Commit f79560d

Browse files
authored
Add state_class to various sensor configurations
1 parent 5e76490 commit f79560d

1 file changed

Lines changed: 43 additions & 22 deletions

File tree

lib/teslamate/mqtt/pubsub/home_assistant.ex

Lines changed: 43 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -276,54 +276,61 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistant do
276276
name: "Power",
277277
device_class: "power",
278278
unit_of_measurement: "kW",
279-
icon: "mdi:flash"
279+
icon: "mdi:flash",
280+
state_class: "measurement"
280281
}},
281282
{"sensor", "speed",
282283
%{
283284
state_topic_key: :speed,
284285
name: "Speed",
285286
device_class: "speed",
286287
unit_of_measurement: "km/h",
287-
icon: "mdi:speedometer"
288+
icon: "mdi:speedometer",
289+
state_class: "measurement"
288290
}},
289291
{"sensor", "heading",
290292
%{
291293
state_topic_key: :heading,
292294
name: "Heading",
293295
unit_of_measurement: "°",
294-
icon: "mdi:compass"
296+
icon: "mdi:compass",
297+
state_class: "measurement_angle"
295298
}},
296299
{"sensor", "elevation",
297300
%{
298301
state_topic_key: :elevation,
299302
name: "Elevation",
300303
device_class: "distance",
301304
unit_of_measurement: "m",
302-
icon: "mdi:image-filter-hdr"
305+
icon: "mdi:image-filter-hdr",
306+
state_class: "measurement"
303307
}},
304308
{"sensor", "inside_temp",
305309
%{
306310
state_topic_key: :inside_temp,
307311
name: "Inside Temp",
308312
device_class: "temperature",
309313
unit_of_measurement: "°C",
310-
icon: "mdi:thermometer-lines"
314+
icon: "mdi:thermometer-lines",
315+
state_class: "measurement"
311316
}},
312317
{"sensor", "outside_temp",
313318
%{
314319
state_topic_key: :outside_temp,
315320
name: "Outside Temp",
316321
device_class: "temperature",
317322
unit_of_measurement: "°C",
318-
icon: "mdi:thermometer-lines"
323+
icon: "mdi:thermometer-lines",
324+
state_class: "measurement"
319325
}},
320326
{"sensor", "odometer",
321327
%{
322328
state_topic_key: :odometer,
323329
name: "Odometer",
324330
device_class: "distance",
325331
unit_of_measurement: "km",
326-
icon: "mdi:counter"
332+
icon: "mdi:counter",
333+
state_class: "total_increasing"
327334
}},
328335
{"sensor", "est_battery_range",
329336
%{
@@ -355,15 +362,17 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistant do
355362
name: "Battery Level",
356363
device_class: "battery",
357364
unit_of_measurement: "%",
358-
icon: "mdi:battery-80"
365+
icon: "mdi:battery-80",
366+
state_class: "measurement"
359367
}},
360368
{"sensor", "usable_battery_level",
361369
%{
362370
state_topic_key: :usable_battery_level,
363371
name: "Usable Battery Level",
364372
device_class: "battery",
365373
unit_of_measurement: "%",
366-
icon: "mdi:battery-80"
374+
icon: "mdi:battery-80",
375+
state_class: "measurement"
367376
}},
368377
{"sensor", "charge_energy_added",
369378
%{
@@ -380,15 +389,17 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistant do
380389
name: "Charge Limit Soc",
381390
device_class: "battery",
382391
unit_of_measurement: "%",
383-
icon: "mdi:battery-charging-100"
392+
icon: "mdi:battery-charging-100",
393+
state_class: "measurement"
384394
}},
385395
{"sensor", "charger_actual_current",
386396
%{
387397
state_topic_key: :charger_actual_current,
388398
name: "Charger Actual Current",
389399
device_class: "current",
390400
unit_of_measurement: "A",
391-
icon: "mdi:lightning-bolt"
401+
icon: "mdi:lightning-bolt",
402+
state_class: "measurement"
392403
}},
393404
{"sensor", "charger_phases",
394405
%{state_topic_key: :charger_phases, name: "Charger Phases", icon: "mdi:sine-wave"}},
@@ -398,22 +409,24 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistant do
398409
name: "Charger Power",
399410
device_class: "power",
400411
unit_of_measurement: "kW",
401-
icon: "mdi:lightning-bolt"
412+
icon: "mdi:lightning-bolt",
413+
state_class: "measurement"
402414
}},
403415
{"sensor", "charger_voltage",
404416
%{
405417
state_topic_key: :charger_voltage,
406418
name: "Charger Voltage",
407419
device_class: "voltage",
408420
unit_of_measurement: "V",
409-
icon: "mdi:lightning-bolt"
421+
icon: "mdi:lightning-bolt",
422+
state_class: "measurement"
410423
}},
411424
{"sensor", "scheduled_charging_start_time",
412425
%{
413426
state_topic_key: :scheduled_charging_start_time,
414427
name: "Scheduled Charging Start Time",
415428
device_class: "timestamp",
416-
icon: "mdi:clock-outline"
429+
icon: "mdi:clock-outline",
417430
}},
418431
{"sensor", "time_to_full_charge",
419432
%{
@@ -431,31 +444,35 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistant do
431444
name: "TPMS Pressure Front Left",
432445
device_class: "pressure",
433446
unit_of_measurement: "bar",
434-
icon: "mdi:car-tire-alert"
447+
icon: "mdi:car-tire-alert",
448+
state_class: "measurement"
435449
}},
436450
{"sensor", "tpms_pressure_fr",
437451
%{
438452
state_topic_key: :tpms_pressure_fr,
439453
name: "TPMS Pressure Front Right",
440454
device_class: "pressure",
441455
unit_of_measurement: "bar",
442-
icon: "mdi:car-tire-alert"
456+
icon: "mdi:car-tire-alert",
457+
state_class: "measurement"
443458
}},
444459
{"sensor", "tpms_pressure_rl",
445460
%{
446461
state_topic_key: :tpms_pressure_rl,
447462
name: "TPMS Pressure Rear Left",
448463
device_class: "pressure",
449464
unit_of_measurement: "bar",
450-
icon: "mdi:car-tire-alert"
465+
icon: "mdi:car-tire-alert",
466+
state_class: "measurement"
451467
}},
452468
{"sensor", "tpms_pressure_rr",
453469
%{
454470
state_topic_key: :tpms_pressure_rr,
455471
name: "TPMS Pressure Rear Right",
456472
device_class: "pressure",
457473
unit_of_measurement: "bar",
458-
icon: "mdi:car-tire-alert"
474+
icon: "mdi:car-tire-alert",
475+
state_class: "measurement"
459476
}},
460477

461478
# TPMS pressure (psi) - derived via value_template from the bar topic
@@ -467,7 +484,8 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistant do
467484
unit_of_measurement: "psi",
468485
icon: "mdi:car-tire-alert",
469486
value_template: "{{ (value | float * 14.50377) | round(2) }}",
470-
suggested_display_precision: 2
487+
suggested_display_precision: 2,
488+
state_class: "measurement"
471489
}},
472490
{"sensor", "tpms_pressure_fr_psi",
473491
%{
@@ -477,7 +495,8 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistant do
477495
unit_of_measurement: "psi",
478496
icon: "mdi:car-tire-alert",
479497
value_template: "{{ (value | float * 14.50377) | round(2) }}",
480-
suggested_display_precision: 2
498+
suggested_display_precision: 2,
499+
state_class: "measurement"
481500
}},
482501
{"sensor", "tpms_pressure_rl_psi",
483502
%{
@@ -487,7 +506,8 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistant do
487506
unit_of_measurement: "psi",
488507
icon: "mdi:car-tire-alert",
489508
value_template: "{{ (value | float * 14.50377) | round(2) }}",
490-
suggested_display_precision: 2
509+
suggested_display_precision: 2,
510+
state_class: "measurement"
491511
}},
492512
{"sensor", "tpms_pressure_rr_psi",
493513
%{
@@ -497,7 +517,8 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistant do
497517
unit_of_measurement: "psi",
498518
icon: "mdi:car-tire-alert",
499519
value_template: "{{ (value | float * 14.50377) | round(2) }}",
500-
suggested_display_precision: 2
520+
suggested_display_precision: 2,
521+
state_class: "measurement"
501522
}},
502523

503524
# --- Active route sensors (derived from the JSON active_route topic) ---

0 commit comments

Comments
 (0)