hatasmota
hatasmota copied to clipboard
[Feature request] Deduct `unit` from metric name and apply unit to value.
Current implementation of sensor.py is trying to match exact metric name to predefined list. If it matches a preconfigured unit is applied. All other metrics have no unit at all.
To keep the current JSON format compatible I vote for a naming pattern like "
sensor.py would need to subtract "%%
My Tasmota installation reads three meters and provides their readings like this:
{
"Time": "2023-04-30T15:48:46",
"Strom": {
"P_in%%W": 998.34,
"L1%%W": 4.29,
"L2%%W": 645.19,
"L3%%W": 348.86,
"E_in%%kWh": 20687.329,
"E_out%%kWh": 0
},
"SekHK": {
"Temp_Outside%%°C": 13,
...
I think having two values, Temp_Outside
and Temp_Outside_Unit
would be better. It's weird to have to parse a value name.
{
"Time": "2023-04-30T15:48:46",
"SekHK": {
"Temp_Outside": 13,
"Temp_Outside_Unit": "°C"
}
}
With my solution I had code size, RAM and network impact in mind. Two k/v pairs per metric is a much cleaner approach of course but has less likelihood of being merged into Tasmota.
I'd be ok with either solution as long as this dreaded problem (measurements without units) is resolved.