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

 找回密码
 立即注册
查看: 1613|回复: 0

[进阶教程] dyson本地插件使用脚本

[复制链接]

62

主题

603

帖子

6388

积分

论坛元老

Rank: 8Rank: 8

积分
6388
金钱
5710
HASS币
240

教程狂人论坛风云人物

发表于 2023-5-16 14:50:06 | 显示全部楼层 |阅读模式
写了个戴森的本地插件脚本,你进入你机子的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)
上面脚本如果不适合你的机子,请自己看上面三个链接手动执行

评分

参与人数 1金钱 +10 收起 理由
隔壁的王叔叔 + 10 我来瀚思就为看你!

查看全部评分

尝试过萝卜,我想你一定会忘记青瓜
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 16:30 , Processed in 0.057254 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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