PVE下用openrgb控制argb灯,再接入Home assistant方便操作

2024-10-01 10:08:37 1点赞 0收藏 0评论

现在主板都支持argb灯,风扇,内存,线缆什么的都很方便的接到argb接口,制造光污染。虽说一般用PVE的人不会用光污染主机,但是避免不了还是有人会用,比如我。我发现海景房机箱非常适合组NAS,因为一般海景房机箱主板右侧会有12cm的空位安装风扇,然后高度有的高有的低,当不使用显卡的时候,这个位置正好可以叠叠放硬盘,海景房机箱丰俭由人,几十到几百都有,不像NAS机箱,8盘位以上没有什么便宜货,不适合我们垃圾佬。

我把我的全套设备搬到海景房之后,配套买了几把rgb风扇,虽说买风扇是为了散热,但是看着漂亮的灯光如法控制还是心痒痒。我的AIO底层是PVE,所以想办法在PVE下把这些rgb灯驱动起来,用到了openrgb。

1,首先打开openrgb网站 release页面。https://openrgb.org/releases.html 查看自己pve对应版本的连接复制下来,比如PVE8.2是debian12 也就是 Debian Bookworm. 连接上点右键复制连接。

PVE下用openrgb控制argb灯,再接入Home assistant方便操作

2, PVE shell下 输入把刚才的连接下载下来。

wget https://openrgb.org/releases/release_0.9/openrgb_0.9_amd64_bookworm_b5f46e3.deb

dpkg -i 刚刚下载的文件 如果提示错误 再输入 apt-get -f install 解决依赖

3,然后可以运行 openrgb -l 查看搜索到的设备。比如我的设备有2条内存以及主板三个设备(device),分别编号 0 1 2. 这里我想要控制主板argb接口接的风扇,我分别有几个风扇接在主板的argb1和argb2接口上,对应openrgb里面的zones: JRAINBOW1和JRAINBOW2

PVE下用openrgb控制argb灯,再接入Home assistant方便操作

4,解释一下openrgb的操作流程,上面看到的每个device下面有mode和leds是device自己支持的模式,通过openrgb可以直接设定这些模式然后控制器(device)本身会自动执行,不需要openrgb一直运行。如果想要更高级的控制,比如声音同步或者图案显示啥的,就需要openrgb一直运行着。但是PVE没有GUI图形界面,所以如果想要高级控制需要把openrgb运行在server模式,然后用其他有图形界面的电脑来连接openrgb的server达到控制的目的。

5,通过opwnrgb -h命令可以查看openrgb的用法。毕竟是PVE主机也不想搞那么复杂,我就用命令行直接让控制器切换模式就可以了。

6,但是每次都去命令行输入命令很麻烦,所以就想到用home-assistant 的shell_command的方法给PVE发命令。

7,这里用最简单的命令指定device运行内置模式,比如openrgb -d 2 -m 'Rainbow wave' -b 100

8,只需要让HA调用这个命令明前指定模式和亮度就可以了,所以在HA的主机上新建python文件,内容如下: 需要编辑PVE地址,用户名和密码 里面的命令根据自己的实际情况做修改。保存python文件在HA config目录下的python_scripts目录。

#!/usr/bin/python3

import sys

import paramiko

HOST = "192.168.10.x" # ip adress of the host that can run openrgb

USER = "root" # username

PASS = "yourpass" # password

argc = len(sys.argv)

mode = sys.argv[1]

for i in range(2,argc-1):

mode = f"{mode} {sys.argv[i]}"

br = sys.argv[argc-1]

if ' ' in mode:

mode = f"'{mode}'"

print("MODE:",mode)

print("Brightness:",br)

CMD = f"openrgb -d 2 -m {mode} -b {br}rn"

print("CMD:",CMD)

# 创建SSH对象

ssh = paramiko.SSHClient()

# 允许连接不在know_hosts文件中的主机

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接服务器

ssh.connect(hostname=HOST, port=22, username=USER, password=PASS)

# 执行命令

stdin, stdout, stderr = ssh.exec_command(CMD)

# 获取命令结果

print(stdout.read().decode())

# 关闭连接

ssh.close()

9,修改HA的config文件,增加一个input_select用来控制模式,一个input_number用来控制亮度,比如:input_selct的options根据自己的device支持的模式修改,就是openrgb -l之后device下面的modes对应的支持的所有模式。

input_select:

light_mode:

options:

- Direct

- Static

- Breathing

- Flashing

- Double flashing

- Lightning

- Meteor

- Color ring

- Planetary

- Double meteor

- Energy

- Blink

- Clock

- Color pulse

- Color shift

- Color wave

- Marquee

- Rainbow wave

- Visor

- Rainbow flashing

- Color ring double flashing

- Stack

- Fire

initial: Breathing

input_number:

openrgb_br:

initial: 100

min: 0

max: 255

step: 5

10,修改HA的config文件,增加shell_command,比如:

python_script:

shell_command:

pve_openrgb: 'python3 /config/python_scripts/pvelight.py {{light_mode}} {{brightness}}'

11,config文件保存完后重启或者重载HA。然后到HA的开发者工具->模板里面输入,在右边应该能看到对应的数值。

brightness: {{ states('input_number.openrgb_br') | int}}

light_mode: {{ states('input_select.light_mode') }}

PVE下用openrgb控制argb灯,再接入Home assistant方便操作

12,到开发者工具->服务里面,找到shell command 自己写的command

然后输入

service: shell_command.pve_openrgb

data:

brightness: 255

light_mode: Direct

后,点击调用服务,看看能不能控制灯。

输入

service: shell_command.pve_openrgb

data:

brightness: "{{ states('input_number.openrgb_br') | int }}"

light_mode: "{{ states('input_select.light_mode') }}"

后调用服务,看看能不能控制灯。

PVE下用openrgb控制argb灯,再接入Home assistant方便操作

13,都没问题后写一条自动话就行了

alias: 触发pve灯光

description: ""

trigger:

- platform: state

entity_id:

- input_select.light_mode

for:

hours: 0

minutes: 0

seconds: 0

- platform: state

entity_id:

- input_number.openrgb_br

condition: []

action:

- service: shell_command.pve_openrgb

data:

brightness: "{{ states('input_number.openrgb_br') | int }}"

light_mode: "{{ states('input_select.light_mode') }}"

mode: single

14,最后看一下效果

下面是openrgb高级控制音频同步的效果

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松