state_display: |
[[[
var control_method = variables.control_method;
var state = states[`${variables.entity}`].state;
if (state === "on"){
state = "打开";
} else if (state === "off"){
state = "关闭";
}
const lastChangedStr = states[`${variables.entity}`].last_changed;
const lastChanged = new Date(lastChangedStr);
const now = new Date();
const diffMs = now - lastChanged;
if (diffMs < 0 && control_method === "auto") {
return state + " · 刚刚<br>自动";
}
const diffMins = Math.floor(diffMs / 60000);
const days = Math.floor(diffMins / 1440);
const hours = Math.floor((diffMins % 1440) / 60);
const minutes = diffMins % 60;
let result = "";
if (days > 0) {
result = `${days}天前`;
} else if (hours > 0) {
result = `${hours}小时前`;
} else if (minutes > 0) {
result = `${minutes}分钟前`;
} else {
result = "刚刚";
}
// 先拼接状态和时间
let display = state + " · " + result;
// 如果开机且有日电量 → 插入到“自动”之前
let dailyLine = "";
if (states[`${variables.entity}`].state === "on") {
var daily_energy = states[variables.daily_energy_sensor]?.state;
if (daily_energy && daily_energy !== "unknown") {
daily_energy = parseFloat(daily_energy).toFixed(2) + "kWh";
dailyLine = "<br>电量 · " + daily_energy;
}
}
if (control_method === "auto") {
display += dailyLine + "<br>自动";
} else {
display += dailyLine;
}
return display;
]]]
用ai写了一个 实现了 就是不知道逻辑性咋样
|