本地部署 Home Assistant 高级自动化 AppDaemon 并实现外部访问
AppDaemon 是一款用 Python 编写的、独立于 Home Assistant 运行时的自动化应用程序运行环境它允许用户使用 Python 编写更加复杂、灵活和可维护的自动化逻辑而不仅仅依赖于 Home Assistant 内置的 YAML 或可视化自动化编辑器。本文将详细介绍如何利用 Docker 在局域网内部署 AppDaemon 并结合路由侠实现外网访问局域网内部署的 AppDaemon 。第一步本地部署安装 AppDaemon1本教程操作环境为 Linux Ubuntu 系统AppDaemon 依赖 Docker 运行我们需要先确保你的系统上已经安装了 Docker 。如果尚未安装可以参考文档进行安装点此查看。2安装 Docker Compose 。sudo curl -L https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po tag_name: \K.*\d) /usr/local/bin/docker-compose3可以参考文档安装 Home Assistant 点此查看安装完成后从 HA 用户界面生成长期访问令牌复制以备后用。4在终端输入以下命令创建并进入项目目录。mkdir -p ~/appdaemon cd ~/appdaemon mkdir config5创建 docker-compose.yml 文件。sudo vim docker-compose.yml写入以下内容version: 3 services: appdaemon: image: acockburn/appdaemon:latest container_name: appdaemon restart: unless-stopped ports: - 5050:5050 volumes: - ./config:/conf environment: - TZAsia/Shanghai networks: - appdaemon-net networks: appdaemon-net: driver: bridge6编辑 ~/appdaemon/config/appdaemon.yaml 文件。sudo vim ~/appdaemon/config/appdaemon.yaml修改你的 Home Assistant 地址和长期访问令牌等基本配置。appdaemon: latitude: 31.2304 longitude: 121.4737 elevation: 10 time_zone: Asia/Shanghai plugins: HASS: type: hass api_port: 8123 ha_url: http://你的服务器 IP:8123 token: 你的长期访问令牌 http: url: http://0.0.0.0:5050 ssl: false admin: api: hadashboard:7启动 AppDaemon 服务。docker-compose up -d8打开浏览器访问地址 http://你的服务器 IP:5050 就能看到你部署的 AppDaemon 界面了。第二步外网访问本地 AppDaemon安装路由侠内网穿透。1当前未提供网页管理需要先在任意一台 Windows 机器安装路由侠 Windows 版本用作跨机器管理。点此下载2在路由侠客户端主界面进入“ 设备管理 ”点击右下角的“ 添加设备 ”此时可查看到对应的安装码此安装码用于将设备添加到对应账号下可选中后复制。3直接下载后导入wget https://dl.luyouxia.com:8443/v2/lyx-docker-x86_64.tar docker load -i lyx-docker-x86_64.tar4然后使用该镜像启动容器。docker run --name lyx -it --restartalways --nethost -e code这里填写安装码luyouxia/lyx5此时需要等待下载和安装的过程如果一切正常最终可以看到一些输出并且可以看到如下提示[Device] Logged in. Token: ....这就表示安装成功了。当前 Linux 终端这边如果是使用的上面的命令Docker 是运行在前台此时可以按住 Ctrl C 退出路由侠容器也将退出。现在可以使用以下命令将其放入后台持续运行docker start lyx注意如果容器删除重新 docker run 将创建为新的设备。需要注意的是因为容器参数已经添加了 --restartalways 这样开机就会自动启动不需要再手动启动路由侠了。6现在回到 Windows 这边设备列表点击右上角的 × 返回主界面再次进入就可以找到这个设备可以修改名称。7回到主界面点击【内网映射】。8注意右上角的设备名称下拉框这里选中刚刚添加的设备名称此时在这个界面上添加的映射就属于刚刚这个设备。添加或修改一般需要等待 30 秒容器中的路由侠进程就会更新并加载。切换好设备后点击【添加映射】。9选择【原生端口】。10在内网地址填写你的服务器 IP 和 AppDaemon 端口 5050 后点击【创建】按钮如下图。11创建好后就可以看到一条映射的公网地址鼠标右键点击【复制地址】。12在外网电脑上打开浏览器在地址栏输入从路由侠生成的外网地址就可以看到内网部署的 AppDaemon 界面了。