『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 473|回复: 5

[UI界面] 使用button-card写一些服务器状态监控页面,配合nodered

[复制链接]

15

主题

59

帖子

576

积分

论坛分享达人

积分
576
金钱
517
HASS币
10
发表于 2024-12-11 10:52:43 | 显示全部楼层 |阅读模式
在ha中写了些卡片页面来展示各个服务器设备的运行状态,分享一下纯纯button-card叠叠乐,绝大部分数值实体由nodered提供,在nodered提前处理并格式化
openwrt.png     debian.png
dsm.png

没有美工基础,图标都是现成的svg缝合,主题颜色为配合tapbar选了蓝紫色系
没有限制卡片宽度,可以根据设备视图宽度自动拉伸,在PC和平板上有相似的显示效果,但是注意最小宽度,大约在370px左右(针对自己的手机宽度做了限制)
全部页面代码1w多行,非常多自定义的实体,不好复刻,贴几个有代表性的卡片吧
button-card和nodered怎么玩,坛内有相关教程

首先是设备名卡片
op_head.png
实体由UPnP/IGD集成提供,如果同一局域网内存在openwrt设备,该集成会提示发现并是否添加设备
微信截图_20241211093811.png
需要的实体:
binary_sensor.openwrt_router_wan_status
sensor.openwrt_router_uptime
图标资源:
openwrt.svg (9.09 KB, 下载次数: 6)
自定义图标的制作,可以在图标库 - Yesicon搜索下载需要的svg图标资源,使用ps等软件编辑,最后导出回svg即可
配色代码可以在在线颜色选择器 - 码工具选择,英文名称和rgb值均可
示例代码: op_head.yaml (6.45 KB, 下载次数: 14)
右边有一个重启的弹窗需要用到browser-mod,发送重启的实现方式很多种,我这里是ssh途径,使用nodered的bigssh节点+ha_entity_button触发
微信截图_20241211095513.png

CPU/GPU占用卡片
微信截图_20241211095920.png
进度条根据占用%动态变化,分3个阈值变化颜色
需要的实体:
cpu或gpu的使用率实体(怎么获取这里就不示例了,为了达到高刷新率,我的方法过于复杂,不便细说)
示例代码:
cpu_gpu.yaml (5.28 KB, 下载次数: 15)
举一反三,内存、显存、闪存等需要用到进度条的卡片都可以使用
进度条依赖百分比,只有具体数值的话需要在对应的js代码段做下换算
微信截图_20241211100653.png 微信截图_20241211100710.png

以上是进度条样式,下面是信息块
微信截图_20241211101114.png
需要的实体:
网口信息
上传、下载速率
示例代码:
net.yaml (5.56 KB, 下载次数: 9)

进度条与信息块组合的样式,以及子视图(详细)跳转
微信截图_20241211101535.png
代码示例:
disk.yaml (10.47 KB, 下载次数: 8)

docker容器状态卡片示例
微信截图_20241211101932.png
这里需要的实体状态,我在nodered中使用docker相关节点获取,二次处理流程过于复杂,不便细说
请各位自显神通了
微信截图_20241211102211.png
管理弹窗需要browser-mod,容器操作使用select实体,由nodered+ha_entity_select+bigssh节点实现
微信截图_20241211102327.png
微信截图_20241211102451.png 微信截图_20241211102503.png

储存池卡片,这里主要针对群晖编写
微信截图_20241211102924.png
大图标会根据储存池状态变化,分别对应健康、警告、降级、损毁
微信截图_20241211103126.png
需要的实体大部分可在Synology DSM集成中添加获取
代码示例:(这里整体卡片代码过多,只展示其中一个存储池的,其他池按需复制即可)
pool.yaml (7.4 KB, 下载次数: 9)

磁盘卡片
微信截图_20241211103623.png
大图标也会根据磁盘健康状态变化,样式类似上面存储池的标识
实体使用脚本+nodered_http节点+ha_entity_sensor节点提供
实体获取与自定义过程复杂,复刻难度大,有兴趣的朋友可以探讨下
微信截图_20241211104219.png
示例代码:(提供了一组示例)
disk2.yaml (7.6 KB, 下载次数: 8)


最后提一下这个clash页面嵌套的问题,clash与ha页面的http(s)需要一致,
如果你的ha配置了https,那么clash页面也需要配置https,方可以进行嵌套,反之亦然
比如我这里使用的是yacd,需要同时反向代理yacd的web地址,以及clash api 的地址,而且需要把secret带入到嵌套的url来实现免密登录
代码示例:
            type: iframe
            url: >-
              https://yacd-web.xxxx.com:9999/? ... xxx&theme=light
            aspect_ratio: 180%



评分

参与人数 4金钱 +48 收起 理由
sorrypqa + 16 大神666!
隔壁的王叔叔 + 12 论坛有你更精彩!
hungheo + 8 高手,这是高手!
DDDear + 12 墙都不扶,就服楼主!

查看全部评分

回复

使用道具 举报

1

主题

60

帖子

266

积分

中级会员

Rank: 3Rank: 3

积分
266
金钱
206
HASS币
0
发表于 2024-12-11 17:35:00 | 显示全部楼层
太牛了。天花板更高了
回复

使用道具 举报

52

主题

1349

帖子

5740

积分

论坛DIY达人

积分
5740
金钱
4391
HASS币
20
发表于 2024-12-11 19:50:40 | 显示全部楼层
一万多行代码?我的天呀!想想都可怕.......
回复

使用道具 举报

3

主题

121

帖子

1605

积分

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1484
HASS币
0
发表于 2024-12-11 19:55:05 | 显示全部楼层
不错,大佬逐条说明,很用心
回复

使用道具 举报

1

主题

56

帖子

322

积分

中级会员

Rank: 3Rank: 3

积分
322
金钱
266
HASS币
10
发表于 2024-12-12 19:48:31 | 显示全部楼层
这个很棒!收藏了
回复

使用道具 举报

2

主题

30

帖子

293

积分

中级会员

Rank: 3Rank: 3

积分
293
金钱
263
HASS币
0
发表于 3 天前 | 显示全部楼层
东西很好,实现难度太大
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-26 19:04 , Processed in 0.171044 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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