找回密码
 立即注册

微信扫码登录

搜索
楼主: gasment

[UI界面] 分享一个简单开关功能的电器控制卡片,button-card+card_mod

  [复制链接]

30

主题

224

回帖

1888

积分

论坛UI达人

积分
1888
金钱
1629
HASS币
50
 楼主| 发表于 3 天前 | 显示全部楼层
Collect 发表于 2025-9-5 22:25
这个带圈的闪电图标是自绘的吗 在库里面没看到

mdi:lightning-bolt-circle
回复

使用道具 举报

0

主题

12

回帖

57

积分

注册会员

积分
57
金钱
45
HASS币
0
发表于 3 天前 | 显示全部楼层
交作业了

                               
登录/注册后可看大图
回复

使用道具 举报

0

主题

12

回帖

57

积分

注册会员

积分
57
金钱
45
HASS币
0
发表于 3 天前 | 显示全部楼层
提个建议 可以考虑在带能耗统计的开关类下方加入电量统计 可以方便看到当日设备能耗 我尝试改 发现格式会乱掉 我不咋会css

                               
登录/注册后可看大图
回复

使用道具 举报

0

主题

19

回帖

204

积分

中级会员

积分
204
金钱
185
HASS币
0
发表于 3 天前 | 显示全部楼层
大佬优秀,感谢分享
回复

使用道具 举报

1

主题

29

回帖

1524

积分

金牌会员

积分
1524
金钱
1494
HASS币
0
发表于 3 天前 | 显示全部楼层
wolaikankan
回复

使用道具 举报

0

主题

11

回帖

58

积分

注册会员

积分
58
金钱
47
HASS币
0
发表于 前天 14:48 | 显示全部楼层
看着挺好看的
回复

使用道具 举报

3

主题

37

回帖

390

积分

中级会员

积分
390
金钱
350
HASS币
0
发表于 前天 15:34 | 显示全部楼层
酷酷酷 需要
回复

使用道具 举报

0

主题

12

回帖

57

积分

注册会员

积分
57
金钱
45
HASS币
0
发表于 前天 16:11 | 显示全部楼层
    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写了一个 实现了 就是不知道逻辑性咋样

                               
登录/注册后可看大图
回复

使用道具 举报

30

主题

224

回帖

1888

积分

论坛UI达人

积分
1888
金钱
1629
HASS币
50
 楼主| 发表于 前天 21:10 | 显示全部楼层
Collect 发表于 2025-9-7 16:11
用ai写了一个 实现了 就是不知道逻辑性咋样

state信息超过一行之后,文字内容的垂直布局有点不协调,调到与图标平齐就好看一些,可以在styles里给name和state加上margin-top来微调一下上下位置
回复

使用道具 举报

0

主题

12

回帖

83

积分

注册会员

积分
83
金钱
71
HASS币
0
发表于 前天 21:35 | 显示全部楼层
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-9-9 05:31 , Processed in 0.093852 second(s), 10 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表