PVE下Openrgb使用说明,搭配homeassistant控制
1,首先打开openrgb网站 release页面。https://openrgb.org/releases.html 查看自己pve对应版本的连接复制下来,比如PVE8.2是debian12 也就是 Debian Bookworm. 连接上点右键复制连接
[[attached/PVE下Openrgb使用说明,搭配homeassistant方便控制/26718dc0bac08908564b0f02a995f04d_MD5.jpeg|Open: Pasted image 20240930111043.png]]

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
[[attached/PVE下Openrgb使用说明,搭配homeassistant方便控制/1491b40e686bf7c108093f90a961dc76_MD5.jpeg|Open: Pasted image 20240930112614.png]]

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}\r\n"
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') }}
[[attached/PVE下Openrgb使用说明,搭配homeassistant方便控制/933dd4db6499724d42e363a9623af5b2_MD5.jpeg|Open: Pasted image 20240930115815.png]]

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') }}"
后调用服务,看看能不能控制灯。
[[attached/PVE下Openrgb使用说明,搭配homeassistant方便控制/16873227b311686791893a5dc53c1315_MD5.jpeg|Open: Pasted image 20240930120423.png]]

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,最后看一下效果
![[video_20240930_121446.mp4]]
Openrgb声音同步的展示
![[attached/PVE下Openrgb使用说明,搭配homeassistant方便控制/video_20240930_131306.mp4|video_20240930_131306]]
文章作者:Administrator
文章链接:https://www.nasnas.site//archives/pve-openrgb-ha
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!
评论