写了个戴森的本地插件脚本,你进入你机子的ssh,把下面的代码复制到ssh里面,回车,按照脚本提示执行就可以,只在自己的系统测试,其他的环境没有测试过,有问题可以跟帖反馈
#!/bin/bash
# 一个用于在 root 目录创建 dysontool.sh 文件并执行的脚本
# 启用错误处理选项
set -euo pipefail
# 定义错误处理函数
error_exit () {
echo "错误: $1"
exit 1
}
# 定义 dysontool.sh 的内容
dysontool_content='#!/bin/bash
# 一个用于下载 GitHub 仓库并复制 dyson_local 文件夹的脚本
# 启用错误处理选项
set -euo pipefail
# 定义错误处理函数
error_exit () {
echo "错误: $1"
exit 1
}
# 定义清理函数
cleanup () {
rm -rf "${tempfiles[@]}"
}
# 捕捉信号和退出事件
trap cleanup EXIT
trap "error_exit ${LINENO}" ERR
# 创建临时目录 tmpha
temp_dir=$(mktemp -d -t tmpha.XXXXXX) || error_exit "无法创建临时目录"
tempfiles+=("$temp_dir")
echo "创建临时目录: $temp_dir"
# 下载 GitHub 仓库 shenxn/ha-dyson 到临时目录
wget -O "$temp_dir"/ha-dyson.zip https://github.com/shenxn/ha-dyson/archive/refs/heads/main.zip || error_exit "无法下载 GitHub 仓库"
# 检查是否是压缩文件
if file "$temp_dir"/ha-dyson.zip | grep -q "Zip archive data"; then
# 是压缩文件,检查是否安装 unzip 命令
if ! command -v unzip &> /dev/null; then
error_exit "unzip 命令没有安装"
fi
# 解压文件到临时目录
unzip "$temp_dir"/ha-dyson.zip -d "$temp_dir" || error_exit "无法解压文件"
# 查找 dyson_local 文件夹,限制深度为 2
dyson_local=$(find "$temp_dir" -maxdepth 2 -type d -name dyson_local) || error_exit "无法查找 dyson_local 文件夹"
else
# 不是压缩文件,直接查找 dyson_local 文件夹,限制深度为 2
dyson_local=$(find "$temp_dir" -maxdepth 2 -type d -name dyson_local) || error_exit "无法查找 dyson_local 文件夹"
fi
# 确认 dyson_local 文件夹里面包含 manifest.json 文件
if [ ! -f "$dyson_local"/manifest.json ]; then
error_exit "dyson_local 文件夹里面没有 manifest.json 文件"
fi
# 扫描本地系统存在 custom_components 文件夹的路径,并给出数字编号的选择项
echo "请选择要复制 dyson_local 文件夹的路径:"
select dest in $(find / -type d -name custom_components); do
if [ ! -z "$dest" ]; then
# 复制 dyson_local 文件夹到指定的路径
cp -r "$dyson_local" "$dest" || error_exit "无法复制 dyson_local 文件夹"
echo "已复制 dyson_local 文件夹到 $dest"
break
else
echo "无效的选择,请重新选择"
fi
done
# 提示要重启 ha
echo "请重启 ha"'
# 在 root 目录创建 dysontool.sh 文件并写入内容,如果文件已存在则覆盖原内容,如果没有写入权限则提示用户并退出
echo "$dysontool_content" > /root/dysontool.sh || error_exit "无法写入 /root/dysontool.sh"
# 给 dysontool.sh 赋予0755权限,如果没有修改权限则提示用户并退出
chmod 0755 /root/dysontool.sh || error_exit "无法修改 /root/dysontool.sh 的权限"
# 执行 dysontool.sh,如果没有执行权限则提示用户并退出
/root/dysontool.sh || error_exit "无法执行 /root/dysontool.sh"
插件来源:
Dyson 風扇/冷暖扇 接入 HomeAssistant/Homekit | Logan 的隨手筆記 (dotw.me)
shenxn/ha-dyson: HomeAssitant custom integration for dyson (github.com)
shenxn/libdyson: Python library for dyson devices (github.com)
上面脚本如果不适合你的机子,请自己看上面三个链接手动执行
|